{"version":3,"file":"ngx-gilmapi-layout.mjs","sources":["../../../projects/ui-angular-components/layout/src/service/layout.service.ts","../../../projects/ui-angular-components/layout/src/components/breadcrumb/breadcrumb.component.ts","../../../projects/ui-angular-components/layout/src/components/breadcrumb/breadcrumb.component.html","../../../projects/ui-angular-components/layout/src/components/configurator/configurator.component.ts","../../../projects/ui-angular-components/layout/src/components/configurator/configurator.component.html","../../../projects/ui-angular-components/layout/src/components/menuitem/menuitem.component.ts","../../../projects/ui-angular-components/layout/src/components/menuitem/menuitem.component.html","../../../projects/ui-angular-components/layout/src/components/menu/menu.component.ts","../../../projects/ui-angular-components/layout/src/components/menu/menu.component.html","../../../projects/ui-angular-components/layout/src/components/sidebar/sidebar.component.ts","../../../projects/ui-angular-components/layout/src/components/sidebar/sidebar.component.html","../../../projects/ui-angular-components/layout/src/components/topbar/topbar.component.ts","../../../projects/ui-angular-components/layout/src/components/topbar/topbar.component.html","../../../projects/ui-angular-components/layout/src/components/layout/layout.component.ts","../../../projects/ui-angular-components/layout/src/components/layout/layout.component.html","../../../projects/ui-angular-components/layout/src/components/profile-menu/profile-menu.component.ts","../../../projects/ui-angular-components/layout/src/components/profile-menu/profile-menu.component.html","../../../projects/ui-angular-components/layout/src/layout.module.ts","../../../projects/ui-angular-components/layout/ngx-gilmapi-layout.ts"],"sourcesContent":["import { computed, effect, Injectable, signal, Signal, WritableSignal } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { LayoutConfig, LayoutState, MenuChangeEvent, MenuMode } from '../interfaces/layout.interface';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class LayoutService {\n  _config: LayoutConfig = {\n    preset: 'Aura',\n    primary: 'orange',\n    surface: null,\n    darkTheme: false,\n    menuMode: 'static',\n  };\n\n  _state: LayoutState = {\n    staticMenuDesktopInactive: false,\n    overlayMenuActive: false,\n    rightMenuActive: false,\n    configSidebarVisible: false,\n    staticMenuMobileActive: false,\n    menuHoverActive: false,\n    sidebarActive: false,\n    anchored: false,\n    activeMenuItem: null,\n    overlaySubmenuActive: false,\n    rightMenuVisible: false,\n    searchBarActive: false,\n  };\n\n  layoutConfig = signal<LayoutConfig>(this._config);\n  layoutState = signal<LayoutState>(this._state);\n\n  private configUpdate = new Subject<LayoutConfig>();\n  private overlayOpen = new Subject<any>();\n  private menuSource = new Subject<MenuChangeEvent>();\n  private resetSource = new Subject();\n\n  menuSource$ = this.menuSource.asObservable();\n  resetSource$ = this.resetSource.asObservable();\n  configUpdate$ = this.configUpdate.asObservable();\n  overlayOpen$ = this.overlayOpen.asObservable();\n\n  isSidebarActive: Signal<boolean> = computed(\n    () =>\n      this.layoutState().overlayMenuActive ||\n      this.layoutState().staticMenuMobileActive ||\n      this.layoutState().overlaySubmenuActive,\n  );\n\n  isSidebarStateChanged = computed(() => {\n    const layoutConfig = this.layoutConfig();\n    return (\n      layoutConfig.menuMode === 'horizontal' ||\n      layoutConfig.menuMode === 'slim' ||\n      layoutConfig.menuMode === 'slim-plus'\n    );\n  });\n\n  isDarkTheme: Signal<boolean> = computed(() => this.layoutConfig().darkTheme);\n  isOverlay: Signal<boolean> = computed(() => this.layoutConfig().menuMode === 'overlay');\n  isSlim: Signal<boolean> = computed(() => this.layoutConfig().menuMode === 'slim');\n  isSlimPlus: Signal<boolean> = computed(() => this.layoutConfig().menuMode === 'slim-plus');\n  isHorizontal: Signal<boolean> = computed(() => this.layoutConfig().menuMode === 'horizontal');\n\n  transitionComplete: WritableSignal<boolean> = signal<boolean>(false);\n  logo = computed(() => (this.layoutConfig().darkTheme ? 'light' : 'dark'));\n  rightMenuVisible = computed(() => this.layoutState().rightMenuActive);\n\n  private initialized = false;\n\n  constructor() {\n    // Load dark mode preference from localStorage on initialization\n    const savedDarkMode = localStorage.getItem('darkTheme');\n    if (savedDarkMode !== null) {\n      this._config.darkTheme = savedDarkMode === 'true';\n      this.layoutConfig.set(this._config);\n    }\n\n    effect(() => {\n      const config = this.layoutConfig();\n      if (config) {\n        this.onConfigUpdate();\n      }\n    });\n\n    effect(() => {\n      const config = this.layoutConfig();\n\n      if (!this.initialized || !config) {\n        this.initialized = true;\n        return;\n      }\n\n      // Save dark mode preference when it changes\n      localStorage.setItem('darkTheme', config.darkTheme.toString());\n      this.handleDarkModeTransition(config);\n    });\n\n    effect(() => {\n      this.isSidebarStateChanged() && this.reset();\n    });\n  }\n\n  private handleDarkModeTransition(config: LayoutConfig): void {\n    if ((document as any).startViewTransition) {\n      this.startViewTransition(config);\n    } else {\n      this.toggleDarkMode(config);\n      this.onTransitionEnd();\n    }\n  }\n\n  private startViewTransition(config: LayoutConfig): void {\n    const transition = (document as any).startViewTransition(() => {\n      this.toggleDarkMode(config);\n    });\n\n    transition.ready\n      .then(() => {\n        this.onTransitionEnd();\n      })\n      .catch(() => {});\n  }\n\n  toggleDarkMode(config?: LayoutConfig): void {\n    const _config = config || this.layoutConfig();\n    const el = document.documentElement;\n    if (_config.darkTheme) {\n      el.classList.add('app-dark');\n      el.setAttribute('data-theme', 'dark');\n    } else {\n      el.classList.remove('app-dark');\n      el.removeAttribute('data-theme');\n    }\n  }\n\n  private onTransitionEnd() {\n    this.transitionComplete.set(true);\n    setTimeout(() => {\n      this.transitionComplete.set(false);\n    });\n  }\n\n  onMenuToggle() {\n    if (this.isOverlay()) {\n      this.layoutState.update(prev => ({\n        ...prev,\n        overlayMenuActive: !this.layoutState().overlayMenuActive,\n      }));\n\n      if (this.layoutState().overlayMenuActive) {\n        this.overlayOpen.next(null);\n      }\n    }\n\n    if (this.isDesktop()) {\n      this.layoutState.update(prev => ({\n        ...prev,\n        staticMenuDesktopInactive: !this.layoutState().staticMenuDesktopInactive,\n      }));\n    } else {\n      this.layoutState.update(prev => ({\n        ...prev,\n        staticMenuMobileActive: !this.layoutState().staticMenuMobileActive,\n      }));\n\n      if (this.layoutState().staticMenuMobileActive) {\n        this.overlayOpen.next(null);\n      }\n    }\n  }\n\n  isDesktop() {\n    return window.innerWidth > 991;\n  }\n\n  isMobile() {\n    return !this.isDesktop();\n  }\n\n  onConfigUpdate() {\n    this._config = { ...this.layoutConfig() };\n    this.configUpdate.next(this.layoutConfig());\n    this.toggleDarkMode();\n  }\n\n  onMenuStateChange(event: MenuChangeEvent) {\n    this.menuSource.next(event);\n  }\n\n  reset() {\n    this.resetSource.next(true);\n  }\n\n  onOverlaySubmenuOpen() {\n    this.overlayOpen.next(null);\n  }\n\n  showProfileSidebar() {\n    this.layoutState.update(prev => ({\n      ...prev,\n      profileSidebarVisible: true,\n    }));\n  }\n\n  showConfigSidebar() {\n    this.layoutState.update(prev => ({\n      ...prev,\n      configSidebarVisible: true,\n    }));\n  }\n\n  hideConfigSidebar() {\n    this.layoutState.update(prev => ({\n      ...prev,\n      configSidebarVisible: false,\n    }));\n  }\n}\n","import {\n  Component,\n  computed,\n  ElementRef,\n  inject,\n  ViewChild,\n} from '@angular/core';\nimport {\n  ActivatedRouteSnapshot,\n  NavigationEnd,\n  Router,\n} from '@angular/router';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { Breadcrumb } from '../../interfaces/layout.interface';\nimport { LayoutService } from '../../service/layout.service';\n\n@Component({\n  selector: 'ngx-gmp-breadcrumb',\n  templateUrl: './breadcrumb.component.html',\n  styleUrls: ['./breadcrumb.component.scss'],\n  standalone: false,\n  host: {\n    class: 'layout-breadcrumb flex items-center relative h-12',\n  },\n})\nexport class GmpBreadcrumbComponent {\n  @ViewChild('searchinput') searchInput!: ElementRef<HTMLElement>;\n\n  private readonly _breadcrumbs$ = new BehaviorSubject<Breadcrumb[]>([]);\n  readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\n\n  constructor(private router: Router) {\n    this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(event => {\n      const root = this.router.routerState.snapshot.root;\n      const breadcrumbs: Breadcrumb[] = [];\n      this.addBreadcrumb(root, [], breadcrumbs);\n\n      this._breadcrumbs$.next(breadcrumbs);\n    });\n  }\n\n  layoutService = inject(LayoutService);\n  searchActive = computed(() => this.layoutService.layoutState().searchBarActive);\n\n  private addBreadcrumb(route: ActivatedRouteSnapshot, parentUrl: string[], breadcrumbs: Breadcrumb[]) {\n    const routeUrl = parentUrl.concat(route.url.map(url => url.path));\n    const breadcrumb = route.data['breadcrumb'];\n    const parentBreadcrumb = route.parent && route.parent.data ? route.parent.data['breadcrumb'] : null;\n\n    if (breadcrumb && breadcrumb !== parentBreadcrumb) {\n      breadcrumbs.push({\n        label: route.data['breadcrumb'],\n        url: '/' + routeUrl.join('/'),\n      });\n    }\n\n    if (route.firstChild) {\n      this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\n    }\n  }\n\n  activateSearch() {\n    this.layoutService.layoutState.update(val => ({\n      ...val,\n      searchBarActive: true,\n    }));\n    setTimeout(() => {\n      this.searchInput.nativeElement?.focus();\n    }, 250);\n  }\n\n  deactivateSearch() {\n    this.layoutService.layoutState.update(val => ({\n      ...val,\n      searchBarActive: false,\n    }));\n  }\n\n  onProfileMenuButtonClick() {\n    this.layoutService.layoutState.update(val => ({\n      ...val,\n      rightMenuActive: true,\n    }));\n  }\n}\n","<nav>\n  <ol class=\"breadcrumb-crumbs\">\n    <ng-template ngFor let-item let-last=\"last\" [ngForOf]=\"breadcrumbs$ | async\">\n      <li style=\"cursor: pointer;\">{{ item.label }}</li>\n      @if (!last) {\n        <li class=\"layout-breadcrumb-chevron\">/</li>\n      }\n    </ng-template>\n  </ol>\n</nav>\n<ul class=\"breadcrumb-menu breadcrumb-menu-mobile\">\n  <li class=\"breadcrumb-menu-mobile__search-item\">\n    <div class=\"breadcrumb-search breadcrumb-search-align-end\" [ngClass]=\"{ 'breadcrumb-search-active': searchActive() }\">\n      <button\n        pButton\n        pRipple\n        icon=\"pi pi-search\"\n        class=\"breadcrumb-searchbutton breadcrumb-icon-button\"\n        type=\"button\"\n        severity=\"secondary\"\n        text\n        rounded\n        (click)=\"activateSearch()\"\n      ></button>\n      <div class=\"search-input-wrapper\">\n        <p-icon-field>\n          <p-inputicon class=\"pi pi-search\" />\n          <input\n            pInputText\n            #searchinput\n            autofocus\n            type=\"text\"\n            placeholder=\"Search\"\n            (blur)=\"deactivateSearch()\"\n            (keydown.escape)=\"deactivateSearch()\"\n          />\n        </p-icon-field>\n      </div>\n    </div>\n  </li>\n  <li class=\"right-panel-button breadcrumb-right-panel\">\n    <button\n      pButton\n      pRipple\n      type=\"button\"\n      label=\"Today\"\n      style=\"width: 6.7rem\"\n      icon=\"pi pi-bookmark\"\n      class=\"layout-rightmenu-button breadcrumb-rightmenu-button breadcrumb-rightmenu-button--desktop\"\n      (click)=\"onProfileMenuButtonClick()\"\n    ></button>\n    <Button\n      pButton\n      pRipple\n      style=\"width: 3.286rem\"\n      icon=\"pi pi-bookmark\"\n      class=\"layout-rightmenu-button breadcrumb-rightmenu-button breadcrumb-rightmenu-button--mobile\"\n      (click)=\"onProfileMenuButtonClick()\"\n    ></Button>\n  </li>\n</ul>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'ngx-gmp-configurator',\n  templateUrl: './configurator.component.html',\n  standalone: false,\n})\nexport class GmpConfiguratorComponent {}\n","","import {\n  animate,\n  state,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\nimport {\n  Component,\n  computed,\n  ElementRef,\n  HostBinding,\n  Input,\n  OnDestroy,\n  OnInit,\n  QueryList,\n  ViewChild,\n} from '@angular/core';\nimport {\n  NavigationEnd,\n  Router,\n} from '@angular/router';\n\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { LayoutService } from '../../service/layout.service';\n\n@Component({\n  selector: 'li[ngx-gmp-menuitem]',\n  templateUrl: './menuitem.component.html',\n  styleUrls: ['./menuitem.component.scss'],\n  standalone: false,\n  animations: [\n    trigger('children', [\n      state(\n        'collapsed',\n        style({\n          height: '0',\n        }),\n      ),\n      state(\n        'expanded',\n        style({\n          height: '*',\n        }),\n      ),\n      state(\n        'hidden',\n        style({\n          display: 'none',\n        }),\n      ),\n      state(\n        'visible',\n        style({\n          display: 'block',\n        }),\n      ),\n      transition('collapsed <=> expanded', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)')),\n    ]),\n  ],\n})\nexport class GmpMenuitemComponent implements OnInit, OnDestroy {\n  @Input() item: any;\n  @Input() index!: number;\n  @Input() @HostBinding('class.layout-root-menuitem') root!: boolean;\n  @Input() parentKey = '';\n\n  @ViewChild('submenu') submenu!: ElementRef;\n\n  @HostBinding('class.active-menuitem')\n  get activeClass() {\n    return this.active && !this.root;\n  }\n\n  active = false;\n  menuSourceSubscription: Subscription;\n  menuResetSubscription: Subscription;\n  key: string = '';\n\n  get submenuAnimation() {\n    if (\n      this.layoutService.isDesktop() &&\n      (this.layoutService.isHorizontal() || this.layoutService.isSlim() || this.layoutService.isSlimPlus())\n    ) {\n      return this.active ? 'visible' : 'hidden';\n    } else {\n      return this.root ? 'expanded' : this.active ? 'expanded' : 'collapsed';\n    }\n  }\n\n  isSlim = computed(() => this.layoutService.isSlim());\n  isSlimPlus = computed(() => this.layoutService.isSlimPlus());\n  isHorizontal = computed(() => this.layoutService.isHorizontal());\n\n  get isDesktop() {\n    return this.layoutService.isDesktop();\n  }\n\n  get isMobile() {\n    return this.layoutService.isMobile();\n  }\n\n  constructor(public layoutService: LayoutService, public router: Router) {\n    this.menuSourceSubscription = this.layoutService.menuSource$.subscribe(value => {\n      Promise.resolve(null).then(() => {\n        if (value.routeEvent) {\n          this.active = value.key === this.key || value.key.startsWith(this.key + '-') ? true : false;\n        } else {\n          if (value.key !== this.key && !value.key.startsWith(this.key + '-')) {\n            this.active = false;\n          }\n        }\n      });\n    });\n\n    this.menuResetSubscription = this.layoutService.resetSource$.subscribe(() => {\n      this.active = false;\n    });\n\n    this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(() => {\n      if (this.isSlimPlus() || this.isSlim() || this.isHorizontal()) {\n        this.active = false;\n      } else {\n        this.refreshActiveFromUrl();\n        this.notifyActiveRouteIfMatch();\n      }\n    });\n  }\n\n  ngOnInit() {\n    this.key = this.parentKey ? this.parentKey + '-' + this.index : String(this.index);\n    if (this.item?.routerLink?.length && !this.item.items) {\n      this.refreshActiveFromUrl();\n      if (!(this.isSlimPlus() || this.isSlim() || this.isHorizontal())) {\n        this.notifyActiveRouteIfMatch();\n      }\n    }\n  }\n\n  /** Igual que corplan: avisa al layout para expandir padres cuando la ruta coincide. */\n  private notifyActiveRouteIfMatch(): void {\n    if (this.item?.items || !this.item?.routerLink?.length || !this.active) {\n      return;\n    }\n    this.layoutService.onMenuStateChange({ key: this.key, routeEvent: true });\n  }\n\n  /** Usar el árbol completo del routerLink (no solo el primer segmento). */\n  private refreshActiveFromUrl(): void {\n    if (!this.item?.routerLink?.length || this.item.items) {\n      return;\n    }\n    const urlTree = this.router.createUrlTree(this.item.routerLink);\n    this.active = this.router.isActive(urlTree, {\n      paths: 'exact',\n      queryParams: 'ignored',\n      matrixParams: 'ignored',\n      fragment: 'ignored',\n    });\n  }\n\n  ngOnDestroy() {\n    if (this.menuSourceSubscription) {\n      this.menuSourceSubscription.unsubscribe();\n    }\n\n    if (this.menuResetSubscription) {\n      this.menuResetSubscription.unsubscribe();\n    }\n  }\n\n  onSubmenuAnimated(event: any) {}\n\n  itemClick(event: any) {\n    if (this.item.disabled) {\n      event.preventDefault();\n      return;\n    }\n\n    if (this.item.command) {\n      this.item.command({ originalEvent: event, item: this.item });\n    }\n\n    if (this.item.items) {\n      this.active = !this.active;\n      this.layoutService.onMenuStateChange({ key: this.key, routeEvent: false });\n    } else {\n      this.active = true;\n      this.layoutService.onMenuStateChange({ key: this.key, routeEvent: true });\n    }\n  }\n\n  onMouseEnter() {\n    if (this.root && this.layoutService.isHorizontal() && this.layoutService.isDesktop()) {\n      if (this.layoutService.layoutState().menuHoverActive) {\n        this.layoutService.onMenuStateChange({ key: this.key, routeEvent: false });\n      }\n    }\n  }\n}\n","<ng-container>\n  @if (root && item.visible !== false && item.label) {\n    <div class=\"layout-menuitem-root-text\">\n      <span class=\"layout-menuitem-text\">{{ item.label }}</span>\n    </div>\n  }\n  @if ((!item.routerLink || item.items) && item.visible !== false) {\n    <a\n      [attr.href]=\"item.url\"\n      (click)=\"itemClick($event)\"\n      (mouseenter)=\"onMouseEnter()\"\n      [ngClass]=\"item.class\"\n      [attr.target]=\"item.target\"\n      tabindex=\"0\"\n      pRipple\n      [pTooltip]=\"item.label\"\n      [tooltipDisabled]=\"!(isSlim() && root && !active)\"\n      class=\"layout-menuitem-link\"\n    >\n      @if (item.icon) {\n        <i [ngClass]=\"item.icon\" class=\"layout-menuitem-icon\"></i>\n      }\n      <span class=\"layout-menuitem-text\">{{ item.label }}</span>\n      @if (item.items) {\n        <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n      }\n    </a>\n  }\n  @if (item.routerLink && !item.items && item.visible !== false) {\n    <a\n      (click)=\"itemClick($event)\"\n      (mouseenter)=\"onMouseEnter()\"\n      [ngClass]=\"item.class\"\n      [routerLink]=\"item.routerLink\"\n      routerLinkActive=\"active-route\"\n      [routerLinkActiveOptions]=\"\n                  item.routerLinkActiveOptions || {\n                      paths: 'exact',\n                      queryParams: 'ignored',\n                      matrixParams: 'ignored',\n                      fragment: 'ignored',\n                  }\n              \"\n      [fragment]=\"item.fragment\"\n      [queryParamsHandling]=\"item.queryParamsHandling\"\n      [preserveFragment]=\"item.preserveFragment\"\n      [skipLocationChange]=\"item.skipLocationChange\"\n      [replaceUrl]=\"item.replaceUrl\"\n      [state]=\"item.state\"\n      [queryParams]=\"item.queryParams\"\n      [attr.target]=\"item.target\"\n      tabindex=\"0\"\n      pRipple\n      [pTooltip]=\"item.label\"\n      [tooltipDisabled]=\"!(isSlim() && root)\"\n      class=\"layout-menuitem-link\"\n    >\n      @if (item.icon) {\n        <i [ngClass]=\"item.icon\" class=\"layout-menuitem-icon\"></i>\n      }\n      <span class=\"layout-menuitem-text\">{{ item.label }}</span>\n      @if (item.items) {\n        <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n      }\n    </a>\n  }\n\n  @if (item.items && item.visible !== false) {\n    <ul\n      #submenu\n      [@children]=\"submenuAnimation\"\n      (@children.done)=\"onSubmenuAnimated($event)\"\n    >\n      <ng-template ngFor let-child let-i=\"index\" [ngForOf]=\"item.items\">\n        <li ngx-gmp-menuitem [item]=\"child\" [index]=\"i\" [parentKey]=\"key\" [class]=\"child['badgeClass']\"></li>\n      </ng-template>\n    </ul>\n  }\n</ng-container>\n","import {\n  Component,\n  ElementRef,\n  inject,\n  Input,\n  ViewEncapsulation,\n  ViewChild,\n} from '@angular/core';\n\nimport { MenuItem } from '../../interfaces/layout.interface';\n\n@Component({\n  selector: 'ngx-gmp-menu',\n  templateUrl: './menu.component.html',\n  styleUrls: ['./menu.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  standalone: false,\n  host: {\n    class: 'layout-menu-container',\n  },\n})\nexport class GmpMenuComponent {\n  @Input() menuItems?: MenuItem[];\n\n  el: ElementRef = inject(ElementRef);\n  @ViewChild('menuContainer') menuContainer!: ElementRef;\n\n  get model(): MenuItem[] {\n    return (\n      this.menuItems || [\n        {\n          items: [\n            {\n              label: 'Clientes',\n              icon: 'pi pi-fw pi-users',\n              items: [\n                { label: 'Clásico', routerLink: ['/clients'] },\n                { label: 'Signals', routerLink: ['/clients', 'signals'] },\n              ],\n            },\n          ],\n        },\n      ]\n    );\n  }\n}\n","<ul class=\"layout-menu\" #menuContainer>\n  <ng-container *ngFor=\"let item of model; let i = index\">\n    @if (!item.separator) {\n      <li\n        ngx-gmp-menuitem\n        [item]=\"item\"\n        [index]=\"i\"\n        [root]=\"true\"\n      ></li>\n    }\n    @if (item.separator) {\n      <li class=\"menu-separator\"></li>\n    }\n  </ng-container>\n</ul>\n","import { Component, computed, ElementRef, HostListener, inject, Input, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { LayoutConfigOptions } from '../../interfaces/layout.interface';\nimport { LayoutService } from '../../service/layout.service';\nimport { GmpMenuComponent } from '../menu/menu.component';\n\n@Component({\n  selector: 'ngx-gmp-sidebar',\n  templateUrl: './sidebar.component.html',\n  styleUrls: ['./sidebar.component.scss'],\n  standalone: false,\n  host: {\n    class: 'layout-sidebar',\n  },\n})\nexport class GmpSidebarComponent {\n  @Input() config?: LayoutConfigOptions;\n\n  el = inject(ElementRef);\n  router = inject(Router);\n  layoutService = inject(LayoutService);\n\n  @ViewChild(GmpMenuComponent) appMenu!: GmpMenuComponent;\n\n  logo = computed(() => (this.layoutService.isDarkTheme() ? 'light' : 'dark'));\n  darkTheme = computed(() => this.layoutService.layoutConfig().darkTheme);\n\n  get userInitials(): string {\n    const name = this.config?.userDisplayName?.trim() || 'U';\n    const parts = name.split(/\\s+/).filter(Boolean);\n    if (parts.length >= 2) {\n      return (parts[0][0] + parts[1][0]).toUpperCase();\n    }\n    return name.slice(0, 2).toUpperCase();\n  }\n\n  onLogoutClick(): void {\n    const logout = this.config?.profileMenuItems?.find(item => item.label === 'Logout');\n    if (logout?.command) {\n      logout.command();\n    }\n  }\n\n  timeout!: any;\n\n  onAnchorToggle() {\n    this.layoutService.layoutState.update(val => ({ ...val, anchored: !val.anchored }));\n  }\n\n  @HostListener('mouseenter', ['$event'])\n  onMouseEnter(event: MouseEvent) {\n    if (!this.layoutService.layoutState().anchored) {\n      if (this.timeout) {\n        this.timeout = null;\n      }\n      this.layoutService.layoutState.update(val => ({ ...val, sidebarActive: true }));\n    }\n  }\n\n  @HostListener('mouseleave', ['$event'])\n  onMouseLeave(event: MouseEvent) {\n    if (!this.layoutService.layoutState().anchored) {\n      if (!this.timeout) {\n        this.timeout = setTimeout(() => {\n          this.layoutService.layoutState.update(val => ({ ...val, sidebarActive: false }));\n          this.timeout = null;\n        }, 300);\n      }\n    }\n  }\n\n  toggleDarkMode() {\n    this.executeDarkModeToggle();\n  }\n\n  executeDarkModeToggle() {\n    this.layoutService.layoutConfig.update(state => ({\n      ...state,\n      darkTheme: !state.darkTheme,\n    }));\n  }\n}\n","<div class=\"sidebar-inner\">\n  <div class=\"sidebar-header-block\">\n    <ul class=\"topbar-menu topbar-menu--sidebar\">\n      <li class=\"sidebar-logo-item\">\n        <a [routerLink]=\"['/clients']\" class=\"app-logo app-logo--row\" style=\"cursor: pointer\">\n          @if (config?.logoUrl) {\n            <div class=\"app-logo-normal\">\n              <img class=\"app-logo-img\" [src]=\"config?.logoUrl\" [alt]=\"config?.logoAlt || 'Logo'\" />\n            </div>\n          }\n\n          @if (config?.appName; as name) {\n            <span class=\"app-logo-text\">{{ name }}</span>\n          }\n        </a>\n      </li>\n      @if (config?.showNotifications) {\n        <li class=\"profile-item topbar-item\">\n          <button\n            pButton\n            pRipple\n            type=\"button\"\n            icon=\"pi pi-bell\"\n            class=\"sidebar-icon-button\"\n            severity=\"secondary\"\n            text\n            rounded\n            pTooltip=\"Notificaciones\"\n            tooltipPosition=\"bottom\"\n          ></button>\n        </li>\n      }\n    </ul>\n\n    <button class=\"layout-sidebar-anchor sidebar-anchor-button\" type=\"button\" (click)=\"onAnchorToggle()\" aria-label=\"Anclar menú\"></button>\n  </div>\n\n  <div class=\"sidebar-scroll\">\n    <ngx-gmp-menu [menuItems]=\"config?.menuItems\"></ngx-gmp-menu>\n  </div>\n\n  @if (config?.showProfileMenu || config?.showDarkModeToggle) {\n    <div class=\"sidebar-footer\">\n      <div class=\"sidebar-footer__row\">\n        @if (config?.showProfileMenu) {\n          @if (config?.userAvatarUrl; as avatar) {\n            <img [src]=\"avatar\" class=\"sidebar-footer__avatar\" alt=\"\" />\n          } @else {\n            <div class=\"sidebar-footer__avatar sidebar-footer__avatar--placeholder\" aria-hidden=\"true\">\n              <span class=\"sidebar-footer__initials\">{{ userInitials }}</span>\n            </div>\n          }\n\n          <div class=\"sidebar-footer__meta\">\n            <span class=\"sidebar-footer__name\">{{ config?.userDisplayName || 'Usuario' }}</span>\n            @if (config?.userSubtitle) {\n              <span class=\"sidebar-footer__subtitle\">{{ config?.userSubtitle }}</span>\n            }\n          </div>\n        }\n\n        <div class=\"sidebar-footer__actions\" [class.sidebar-footer__actions--end]=\"!config?.showProfileMenu\">\n          @if (config?.showDarkModeToggle) {\n            <button\n              pButton\n              pRipple\n              type=\"button\"\n              [icon]=\"darkTheme() ? 'pi pi-sun' : 'pi pi-moon'\"\n              class=\"sidebar-icon-button\"\n              size=\"large\"\n              text\n              rounded\n              severity=\"secondary\"\n              (click)=\"toggleDarkMode()\"\n              pTooltip=\"Tema\"\n              tooltipPosition=\"top\"\n            ></button>\n          }\n          @if (config?.showProfileMenu) {\n            <button\n              pButton\n              pRipple\n              type=\"button\"\n              icon=\"pi pi-sign-out\"\n              class=\"sidebar-icon-button\"\n              severity=\"danger\"\n              text\n              rounded\n              pTooltip=\"Cerrar sesión\"\n              tooltipPosition=\"top\"\n              (click)=\"onLogoutClick()\"\n            ></button>\n          }\n        </div>\n      </div>\n    </div>\n  }\n</div>\n","import {\n  Component,\n  computed,\n  ElementRef,\n  inject,\n  Input,\n  ViewChild,\n} from '@angular/core';\n\nimport { LayoutConfigOptions } from '../../interfaces/layout.interface';\nimport { LayoutService } from '../../service/layout.service';\n\n@Component({\n  selector: 'ngx-gmp-topbar',\n  templateUrl: './topbar.component.html',\n  styleUrls: ['./topbar.component.scss'],\n  standalone: false,\n  host: {\n    class: 'layout-topbar',\n  },\n})\nexport class GmpTopbarComponent {\n  @Input() config?: LayoutConfigOptions;\n\n  @ViewChild('menubutton') menuButton!: ElementRef<HTMLElement>;\n\n  el = inject(ElementRef);\n  constructor(public layoutService: LayoutService) {}\n\n  darkTheme = computed(() => this.layoutService.layoutConfig().darkTheme);\n\n  onMenuButtonClick() {\n    this.layoutService.onMenuToggle();\n  }\n\n  onConfigButtonClick() {\n    this.layoutService.showConfigSidebar();\n  }\n\n  onSidebarButtonClick() {\n    this.layoutService.layoutState.update(val => ({\n      ...val,\n      rightMenuVisible: true,\n    }));\n  }\n\n  onProfileMenuButtonClick() {\n    this.layoutService.layoutState.update(val => ({\n      ...val,\n      rightMenuActive: true,\n    }));\n  }\n\n  toggleDarkMode() {\n    this.executeDarkModeToggle();\n  }\n\n  executeDarkModeToggle() {\n    this.layoutService.layoutConfig.update(state => ({\n      ...state,\n      darkTheme: !state.darkTheme,\n    }));\n  }\n}\n","<div class=\"topbar-start\">\n  <button\n    pButton\n    pRipple\n    #menubutton\n    type=\"button\"\n    class=\"topbar-menubutton p-trigger\"\n    text\n    rounded\n    severity=\"secondary\"\n    (click)=\"onMenuButtonClick()\"\n  >\n    <i class=\"pi pi-bars\"></i>\n  </button>\n</div>\n","import {\n  Component,\n  computed,\n  Inject,\n  input,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {\n  NavigationEnd,\n  Router,\n} from '@angular/router';\n\nimport {\n  filter,\n  Subscription,\n} from 'rxjs';\n\nimport { LayoutConfigOptions } from '../../interfaces/layout.interface';\nimport { LayoutService } from '../../service/layout.service';\nimport { GmpSidebarComponent } from '../sidebar/sidebar.component';\nimport { GmpTopbarComponent } from '../topbar/topbar.component';\n\n@Component({\n  selector: 'ngx-gmp-layout',\n  templateUrl: './layout.component.html',\n  styleUrls: ['./layout.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  standalone: false,\n})\nexport class GmpLayoutComponent implements OnInit, OnDestroy {\n  readonly configFromInput = input<LayoutConfigOptions | undefined>(undefined, {\n    alias: 'config',\n  });\n\n  /** Config efectiva: input del host o señal del `AUTH_SERVICE`. */\n  readonly config = computed<LayoutConfigOptions | undefined>(() => {\n    const fromInput = this.configFromInput();\n    if (fromInput) {\n      return fromInput;\n    }\n    return this.authService?.layoutConfigSignal?.();\n  });\n\n  overlayMenuOpenSubscription?: Subscription;\n  menuOutsideClickListener: any;\n  menuScrollListener: any;\n\n  @ViewChild(GmpSidebarComponent) appSidebar!: GmpSidebarComponent;\n  @ViewChild(GmpTopbarComponent) appTopbar!: GmpTopbarComponent;\n\n  constructor(\n    public layoutService: LayoutService,\n    public renderer: Renderer2,\n    public router: Router,\n    @Inject('AUTH_SERVICE') private authService: any,\n  ) {\n    // La inicialización de servicios se hará en ngOnInit después de obtener la configuración\n  }\n\n  ngOnInit() {\n    if (this.config()) {\n      this.initializeServices();\n    }\n  }\n\n  private initializeServices() {\n    this.overlayMenuOpenSubscription = this.layoutService.overlayOpen$.subscribe(() => {\n      if (!this.menuOutsideClickListener) {\n        this.menuOutsideClickListener = this.renderer.listen('document', 'click', event => {\n          if (this.isOutsideClicked(event)) {\n            this.hideMenu();\n          }\n        });\n      }\n      if ((this.layoutService.isHorizontal() || this.layoutService.isSlim() || this.layoutService.isSlimPlus()) && !this.menuScrollListener) {\n        this.menuScrollListener = this.renderer.listen(this.appSidebar?.appMenu?.menuContainer?.nativeElement, 'scroll', event => {\n          if (this.layoutService.isDesktop()) {\n            this.hideMenu();\n          }\n        });\n      }\n      if (this.layoutService.layoutState().staticMenuMobileActive) {\n        this.blockBodyScroll();\n      }\n    });\n\n    this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(() => {\n      this.hideMenu();\n    });\n  }\n\n  isOutsideClicked(event: any) {\n    const sidebarEl = document.querySelector('.layout-sidebar');\n    const topbarButtonEl = document.querySelector('.topbar-start > button');\n\n    return !(\n      sidebarEl?.isSameNode(event.target) ||\n      sidebarEl?.contains(event.target) ||\n      topbarButtonEl?.isSameNode(event.target) ||\n      topbarButtonEl?.contains(event.target)\n    );\n  }\n\n  blockBodyScroll(): void {\n    if (document.body.classList) {\n      document.body.classList.add('blocked-scroll');\n    } else {\n      document.body.className += ' blocked-scroll';\n    }\n  }\n\n  unblockBodyScroll(): void {\n    if (document.body.classList) {\n      document.body.classList.remove('blocked-scroll');\n    } else {\n      document.body.className = document.body.className.replace(new RegExp('(^|\\\\b)' + 'blocked-scroll'.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n    }\n  }\n\n  hideMenu() {\n    this.layoutService.layoutState.update(prev => ({\n      ...prev,\n      overlayMenuActive: false,\n      staticMenuMobileActive: false,\n      menuHoverActive: false,\n    }));\n    this.layoutService.reset();\n    if (this.menuOutsideClickListener) {\n      this.menuOutsideClickListener();\n      this.menuOutsideClickListener = null;\n    }\n\n    if (this.menuScrollListener) {\n      this.menuScrollListener();\n      this.menuScrollListener = null;\n    }\n\n    this.unblockBodyScroll();\n  }\n\n  get containerClass() {\n    // Si no hay configuración, devolver clases básicas\n    if (!this.config()) {\n      return {\n        'layout-light': true,\n        'layout-static': true,\n      };\n    }\n\n    const layoutConfig = this.layoutService.layoutConfig();\n    const layoutState = this.layoutService.layoutState();\n\n    return {\n      'layout-light': !layoutConfig.darkTheme,\n      'layout-dark': layoutConfig.darkTheme,\n      'layout-overlay': layoutConfig.menuMode === 'overlay',\n      'layout-static': layoutConfig.menuMode === 'static',\n      'layout-slim': layoutConfig.menuMode === 'slim',\n      'layout-slim-plus': layoutConfig.menuMode === 'slim-plus',\n      'layout-horizontal': layoutConfig.menuMode === 'horizontal',\n      'layout-reveal': layoutConfig.menuMode === 'reveal',\n      'layout-drawer': layoutConfig.menuMode === 'drawer',\n      'layout-static-inactive': layoutState.staticMenuDesktopInactive && layoutConfig.menuMode === 'static',\n      'layout-overlay-active': layoutState.overlayMenuActive,\n      'layout-mobile-active': layoutState.staticMenuMobileActive,\n      'layout-sidebar-active': layoutState.sidebarActive,\n      'layout-sidebar-anchored': layoutState.anchored,\n    };\n  }\n\n  ngOnDestroy() {\n    if (this.overlayMenuOpenSubscription) {\n      this.overlayMenuOpenSubscription.unsubscribe();\n    }\n\n    if (this.menuOutsideClickListener) {\n      this.menuOutsideClickListener();\n    }\n  }\n}\n","<div class=\"layout-container\" [ngClass]=\"containerClass\">\n  <div class=\"layout-content-wrapper\">\n    <ngx-gmp-sidebar class=\"layout-sidebar--dark\" [config]=\"config()\"></ngx-gmp-sidebar>\n    <div class=\"layout-content\">\n      <router-outlet></router-outlet>\n    </div>\n    <div class=\"layout-mask\"></div>\n  </div>\n  @if (config()) {\n    <p-toast />\n  }\n</div>\n","import {\n  Component,\n  inject,\n} from '@angular/core';\n\nimport { LayoutService } from '../../service/layout.service';\n\n@Component({\n  selector: 'ngx-gmp-profile-menu',\n  templateUrl: './profile-menu.component.html',\n  styleUrls: ['./profile-menu.component.scss'],\n  standalone: false,\n})\nexport class GmpProfileMenuComponent {\n  layoutService = inject(LayoutService);\n\n  get rightMenuVisible() {\n    return this.layoutService.layoutState().rightMenuActive;\n  }\n\n  set rightMenuVisible(val: boolean) {\n    this.layoutService.layoutState.update(prev => ({ ...prev, rightMenuActive: val }));\n  }\n}\n","<p-drawer\n  [(visible)]=\"rightMenuVisible\"\n  header=\"Profile\"\n  position=\"right\"\n  styleClass=\"layout-profile-sidebar\"\n  [ngClass]=\"{ 'layout-rightmenu-active': rightMenuVisible }\"\n>\n  <div class=\"layout-rightmenu profile-menu-scroll\">\n    <div class=\"profile-menu-content\">\n      <div class=\"profile-menu-user\">\n        <img src=\"/assets/images/avatar.jpg\" alt=\"Profile\" class=\"user-image profile-menu-user-image\" />\n        <span class=\"user-name profile-menu-user-name\">User Name</span>\n        <span class=\"user-number\">user</span>\n      </div>\n    </div>\n  </div>\n</p-drawer>\n","import { CommonModule } from '@angular/common';\nimport {\n  CUSTOM_ELEMENTS_SCHEMA,\n  ModuleWithProviders,\n  NgModule,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { MessageService } from 'primeng/api';\nimport { ButtonModule } from 'primeng/button';\nimport { DrawerModule } from 'primeng/drawer';\nimport { IconField } from 'primeng/iconfield';\nimport { InputIcon } from 'primeng/inputicon';\nimport { InputText } from 'primeng/inputtext';\nimport { RippleModule } from 'primeng/ripple';\nimport { StyleClassModule } from 'primeng/styleclass';\nimport { ToastModule } from 'primeng/toast';\nimport { TooltipModule } from 'primeng/tooltip';\n\nimport { GmpBreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\nimport { GmpConfiguratorComponent } from './components/configurator/configurator.component';\nimport { GmpLayoutComponent } from './components/layout/layout.component';\nimport { GmpMenuComponent } from './components/menu/menu.component';\nimport { GmpMenuitemComponent } from './components/menuitem/menuitem.component';\nimport { GmpProfileMenuComponent } from './components/profile-menu/profile-menu.component';\nimport { GmpSidebarComponent } from './components/sidebar/sidebar.component';\nimport { GmpTopbarComponent } from './components/topbar/topbar.component';\n\nexport interface LayoutModuleConfig {\n  authService: any; // Tipo genérico para el AuthService\n}\n\n@NgModule({\n  declarations: [\n    GmpLayoutComponent,\n    GmpSidebarComponent,\n    GmpTopbarComponent,\n    GmpBreadcrumbComponent,\n    GmpMenuComponent,\n    GmpMenuitemComponent,\n    GmpProfileMenuComponent,\n    GmpConfiguratorComponent,\n  ],\n  imports: [\n    CommonModule,\n    FormsModule,\n    RouterModule,\n    ButtonModule,\n    StyleClassModule,\n    ToastModule,\n    DrawerModule,\n    IconField,\n    InputIcon,\n    InputText,\n    RippleModule,\n    TooltipModule,\n  ],\n  providers: [MessageService],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\n  exports: [\n    GmpLayoutComponent,\n    GmpSidebarComponent,\n    GmpTopbarComponent,\n    GmpBreadcrumbComponent,\n    GmpMenuComponent,\n    GmpMenuitemComponent,\n    GmpProfileMenuComponent,\n    GmpConfiguratorComponent,\n  ],\n})\nexport class GmpLayoutModule {\n  static forRoot(config: LayoutModuleConfig): ModuleWithProviders<GmpLayoutModule> {\n    return {\n      ngModule: GmpLayoutModule,\n      providers: [MessageService, { provide: 'AUTH_SERVICE', useClass: config.authService }],\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i7","i1.LayoutService","i4","i5","i2.GmpMenuitemComponent","i5.GmpMenuComponent","filter","i5.GmpSidebarComponent"],"mappings":"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"}