{"version":3,"file":"ngx-side-page.mjs","sources":["../../../projects/ngx-side-page/src/lib/animation.ts","../../../projects/ngx-side-page/src/lib/side-page-data.token.ts","../../../projects/ngx-side-page/src/lib/page/page.component.ts","../../../projects/ngx-side-page/src/lib/page/page.component.html","../../../projects/ngx-side-page/src/lib/side-page.component.ts","../../../projects/ngx-side-page/src/lib/side-page.component.html","../../../projects/ngx-side-page/src/lib/side-page-config.token.ts","../../../projects/ngx-side-page/src/lib/side-page.service.ts","../../../projects/ngx-side-page/src/lib/side-page.providers.ts","../../../projects/ngx-side-page/src/public-api.ts","../../../projects/ngx-side-page/src/ngx-side-page.ts"],"sourcesContent":["import {animate, state, style, transition, trigger} from \"@angular/animations\";\r\n\r\ntype Direction = 'ltr' | 'rtl';\r\n\r\nexport interface AnimationDomContext {\r\n  window?: Pick<Window, 'getComputedStyle'>;\r\n  document?: Pick<Document, 'documentElement' | 'body'>;\r\n}\r\n\r\nexport const resolveDirection = (context?: AnimationDomContext): Direction => {\r\n  const win = context?.window ?? (typeof window !== 'undefined' ? window : undefined);\r\n  const doc = context?.document ?? (typeof document !== 'undefined' ? document : undefined);\r\n\r\n  if (win?.getComputedStyle && doc?.documentElement) {\r\n    try {\r\n      const computedDirection = win.getComputedStyle(doc.documentElement).direction;\r\n\r\n      if (computedDirection === 'rtl') {\r\n        return 'rtl';\r\n      }\r\n\r\n      if (computedDirection === 'ltr') {\r\n        return 'ltr';\r\n      }\r\n    } catch {\r\n      // Ignored – fall back to attribute lookup/default direction.\r\n    }\r\n  }\r\n\r\n  const attributeDirection =\r\n    doc?.documentElement?.getAttribute?.('dir') ??\r\n    doc?.body?.getAttribute?.('dir');\r\n\r\n  return attributeDirection === 'rtl' ? 'rtl' : 'ltr';\r\n};\r\n\r\nexport const animations = (context?: AnimationDomContext) => {\r\n  return [\r\n\r\n    // Unified animation that takes direction parameter\r\n    trigger('slideInOut', [\r\n      transition(':enter', [\r\n        style({ transform: 'translateX({{ direction }})' }),\r\n        animate('150ms ease-in-out', style({ transform: 'translateX(0%)' }))\r\n      ], { params: { direction: '100%' } }),\r\n      transition(':leave', [\r\n        animate('150ms ease-in-out', style({ transform: 'translateX({{ direction }})' }))\r\n      ], { params: { direction: '100%' } }),\r\n      transition('in => out', animate('200ms ease-in-out')),\r\n      transition('out => in', animate('200ms ease-in-out'))\r\n    ]),\r\n\r\n    trigger('slideInOutStart', [\r\n      transition(':enter', [\r\n        style({ transform: 'translateX({{ direction }})' }),\r\n        animate('150ms ease-in-out', style({ transform: 'translateX(0%)' }))\r\n      ], { params: { direction: '-100%' } }),\r\n      transition(':leave', [\r\n        animate('150ms ease-in-out', style({ transform: 'translateX({{ direction }})' }))\r\n      ], { params: { direction: '-100%' } }),\r\n      transition('in => out', animate('200ms ease-in-out')),\r\n      transition('out => in', animate('200ms ease-in-out'))\r\n    ]),\r\n\r\n\r\n\r\n\r\n\r\n    trigger('show', [\r\n      state('in', style({\r\n        opacity: '1'\r\n      })),\r\n      state('out', style({\r\n        opacity: '0',\r\n        display: 'none'\r\n      })),\r\n      transition('in => out', animate('200ms ease-out')),\r\n      transition('out => in', animate('200ms ease-in'))\r\n    ]),\r\n    trigger('remove', [\r\n      state('in', style({})),\r\n      state('out', style({\r\n        display: 'none'\r\n      })),\r\n      transition('in => out', animate('300ms ease-out')),\r\n      transition('out => in', animate('300ms ease-in'))\r\n    ])\r\n\r\n  ];\r\n};\r\n\r\n","import { InjectionToken } from '@angular/core';\r\nimport {SidePageInfo, SidePageRef} from \"./side-page.service\";\r\n\r\nexport const SIDE_PAGE_DATA = new InjectionToken<SidePageInfo<any>>('SIDE_PAGE_DATA');\r\n\r\nexport const SIDE_PAGE_REF = new InjectionToken<SidePageRef<any>>('SIDE_PAGE_REF');\r\n","import {Component, EventEmitter, Injector, Input, OnInit, Output, ViewChild, ViewContainerRef} from '@angular/core';\r\nimport {SidePageInfo, SidePageOption, SidePageService} from \"../side-page.service\";\r\nimport {animations} from \"../animation\";\r\nimport {NgIf} from \"@angular/common\";\r\nimport {SIDE_PAGE_DATA, SIDE_PAGE_REF} from \"../side-page-data.token\";\r\n\r\n@Component({\r\n  selector: 'lib-page',\r\n  standalone: true,\r\n  imports: [\r\n    NgIf\r\n  ],\r\n  templateUrl: './page.component.html',\r\n  styleUrls: ['./page.component.css'],\r\n  animations: animations(),\r\n})\r\nexport class PageComponent implements OnInit {\r\n\r\n  @ViewChild('contentContainer', {read: ViewContainerRef, static: true}) contentContainer!: ViewContainerRef;\r\n\r\n  @Input() sidePage!: SidePageInfo;\r\n  @Output() close: EventEmitter<SidePageInfo> = new EventEmitter();\r\n\r\n  _isOpen = false;\r\n  _key = '';\r\n  _options: SidePageOption = {};\r\n\r\n  sidePages: SidePageInfo[] = [];\r\n\r\n  constructor(\r\n    private sidePageService: SidePageService,\r\n    private injector: Injector\r\n  ) {\r\n  }\r\n\r\n  ngOnInit() {\r\n    const sp = this.sidePage;\r\n    if (sp?.state) {\r\n      this._isOpen = sp.state;\r\n      this._key = sp.key;\r\n      this._options = {...sp.options, key: sp.key};\r\n\r\n      const injector = Injector.create({\r\n        providers: [\r\n          {provide: SIDE_PAGE_DATA, useValue: {key: sp.key, ...sp.options}},\r\n          {provide: SIDE_PAGE_REF, useValue: sp.ref}],\r\n        parent: this.injector\r\n      });\r\n\r\n      this.contentContainer.createComponent(sp.component, {injector});\r\n    }\r\n\r\n\r\n  }\r\n\r\n\r\n  closeClicked() {\r\n    this._isOpen = false;\r\n    this.sidePageService.closeSidePage(this._key, null);\r\n    setTimeout(() => {\r\n      this.contentContainer.clear();\r\n\r\n    }, 300);\r\n    this.close.emit(this.sidePage);\r\n  }\r\n}\r\n","<button\r\n  *ngIf=\"sidePage.options.showCloseBtn\"\r\n  (click)=\"closeClicked()\" class=\"absolute end-2 top-4 rounded-full hover:bg-gray-100 p-1 mx-2\">\r\n  <svg style=\"fill: #666\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n    <path\r\n      d=\"M11.9998 13.3998L7.0998 18.2998C6.91647 18.4831 6.68314 18.5748 6.3998 18.5748C6.11647 18.5748 5.88314 18.4831 5.6998 18.2998C5.51647 18.1165 5.4248 17.8831 5.4248 17.5998C5.4248 17.3165 5.51647 17.0831 5.6998 16.8998L10.5998 11.9998L5.6998 7.0998C5.51647 6.91647 5.4248 6.68314 5.4248 6.3998C5.4248 6.11647 5.51647 5.88314 5.6998 5.6998C5.88314 5.51647 6.11647 5.4248 6.3998 5.4248C6.68314 5.4248 6.91647 5.51647 7.0998 5.6998L11.9998 10.5998L16.8998 5.6998C17.0831 5.51647 17.3165 5.4248 17.5998 5.4248C17.8831 5.4248 18.1165 5.51647 18.2998 5.6998C18.4831 5.88314 18.5748 6.11647 18.5748 6.3998C18.5748 6.68314 18.4831 6.91647 18.2998 7.0998L13.3998 11.9998L18.2998 16.8998C18.4831 17.0831 18.5748 17.3165 18.5748 17.5998C18.5748 17.8831 18.4831 18.1165 18.2998 18.2998C18.1165 18.4831 17.8831 18.5748 17.5998 18.5748C17.3165 18.5748 17.0831 18.4831 16.8998 18.2998L11.9998 13.3998Z\"/>\r\n  </svg>\r\n\r\n</button>\r\n\r\n<div class=\"contentContainer\">\r\n  <ng-container id=\"asd\" #contentContainer>\r\n    <!--    <ng-content></ng-content>-->\r\n\r\n  </ng-container>\r\n</div>\r\n","import {\r\n  Component,\r\n  OnInit,\r\n} from '@angular/core';\r\nimport {SidePageInfo, SidePageOption, SidePageService} from './side-page.service';\r\nimport {CommonModule} from '@angular/common';\r\nimport {animations, resolveDirection} from './animation';\r\nimport {PageComponent} from \"./page/page.component\";\r\n\r\n@Component({\r\n  selector: 'app-side-page',\r\n  standalone: true,\r\n  imports: [\r\n    CommonModule,\r\n    PageComponent\r\n  ],\r\n  templateUrl: './side-page.component.html',\r\n  styleUrls: ['./side-page.component.scss'],\r\n  animations: animations(), // We'll keep this but update the logic\r\n\r\n})\r\nexport class SidePageComponent implements OnInit {\r\n\r\n  sidePages: SidePageInfo[] = [];\r\n\r\n  key = '';\r\n  options: SidePageOption = {};\r\n\r\n  constructor(\r\n    private sidePageService: SidePageService,\r\n  ) {\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.sidePageService.initiated = true;\r\n    this.sidePageService.getSidePage().subscribe((sidePages) => {\r\n      this.sidePages = sidePages;\r\n    });\r\n  }\r\n\r\n  close(sidePage: SidePageInfo, value: any = null) {\r\n    if (sidePage.options.disableClose)\r\n      return;\r\n    if (this.sidePageService)\r\n      this.sidePageService.closeSidePage(sidePage.key, value);\r\n  }\r\n\r\n  // Helper method to get current direction for dynamic checks\r\n  getCurrentDirection(): 'ltr' | 'rtl' {\r\n    return resolveDirection();\r\n  }\r\n\r\n  // Helper method to check if backdrop should be shown\r\n  // Returns true if at least one side page has hasBackdrop enabled (default is true)\r\n  shouldShowBackdrop(): boolean {\r\n    return this.sidePages.some(sp => sp.options.hasBackdrop !== false);\r\n  }\r\n\r\n  // Helper method to get backdrop custom classes\r\n  getBackdropClass(): string {\r\n    // Get backdrop classes from all open side pages (last one takes precedence)\r\n    if (this.sidePages.length > 0) {\r\n      const lastPage = this.sidePages[this.sidePages.length - 1];\r\n      return lastPage.options.backdropClass || '';\r\n    }\r\n    return '';\r\n  }\r\n\r\n  // Helper method to get overlay z-index (should be lower than side pages)\r\n  getOverlayZIndex(): number {\r\n    if (this.sidePages.length > 0) {\r\n      // Get the highest z-index from all open side pages and subtract 1 for overlay\r\n      const maxZIndex = Math.max(...this.sidePages.map(sp => sp.options.zIndex || 1000));\r\n      return maxZIndex - 1;\r\n    }\r\n    return 999; // Default overlay z-index\r\n  }\r\n\r\n  // Get animation direction parameter based on position and RTL direction\r\n  getAnimationDirection(position: 'start' | 'end'): string {\r\n    const isRTL = this.getCurrentDirection() === 'rtl';\r\n    \r\n    if (position === 'end') {\r\n      // End position: slide from right in LTR, from left in RTL\r\n      return isRTL ? '-100%' : '100%';\r\n    } else {\r\n      // Start position: slide from left in LTR, from right in RTL\r\n      return isRTL ? '100%' : '-100%';\r\n    }\r\n  }\r\n\r\n  // Helper method to determine animation trigger based on position and direction\r\n  getAnimationTrigger(position: 'start' | 'end'): string {\r\n    const isRtl = this.getCurrentDirection() === 'rtl';\r\n    \r\n    // In RTL mode, the logic should be inverted:\r\n    // - position 'end' should slide from left (like 'start' in LTR)\r\n    // - position 'start' should slide from right (like 'end' in LTR)\r\n    if (isRtl) {\r\n      return position === 'end' ? 'slideInOutStart' : 'slideInOut';\r\n    } else {\r\n      return position === 'end' ? 'slideInOut' : 'slideInOutStart';\r\n    }\r\n  }\r\n}\r\n","<!--{{ sidePages.length }}-->\r\n@if (shouldShowBackdrop() && sidePages.length > 0) {\r\n  <div [@show]=\"sidePages.length ? 'in' : 'out'\"\r\n       (click)=\"close(sidePages[sidePages.length-1])\"\r\n       [class]=\"'overlay ' + getBackdropClass()\"\r\n       [ngStyle]=\"{\r\n         'z-index': getOverlayZIndex()\r\n       }\">\r\n  <!--  {{ sidePages.length }}-->\r\n  </div>\r\n}\r\n\r\n\r\n@for (sidePage of sidePages; track sidePage?.key) {\r\n  @if (sidePage.options.position === 'end') {\r\n    <lib-page\r\n      [class]=\"'fixed top-0 bottom-0 bg-white flex flex-col shadow-lg ' + (sidePage.options.panelClass || '')\"\r\n      style=\"inset-Inline-End: 0;\"\r\n      [ngStyle]=\"{\r\n        'min-width': sidePage.options.minWidth || '200px',\r\n        'max-width': sidePage.options.maxWidth || '500px',\r\n        'width': sidePage.options.width || '100%',\r\n        'z-index': sidePage.options.zIndex || 1000\r\n      }\"\r\n      [@slideInOut]=\"{ value: true, params: { direction: getAnimationDirection('end') } }\"\r\n      [sidePage]=\"sidePage\"></lib-page>\r\n  }\r\n  @if (sidePage.options.position === 'start') {\r\n    <lib-page\r\n      style=\"inset-Inline-start: 0%;\"\r\n      [class]=\"'fixed top-0 bottom-0 bg-white flex flex-col shadow-lg ' + (sidePage.options.panelClass || '')\"\r\n      [ngStyle]=\"{\r\n        'min-width': sidePage.options.minWidth || '200px',\r\n        'max-width': sidePage.options.maxWidth || '500px',\r\n        'width': sidePage.options.width || '100%',\r\n        'z-index': sidePage.options.zIndex || 1000\r\n      }\"\r\n      [@slideInOutStart]=\"{ value: true, params: { direction: getAnimationDirection('start') } }\"\r\n      [sidePage]=\"sidePage\"></lib-page>\r\n  }\r\n}\r\n","// file: projects/ngx-side-page/src/lib/side-page-config.token.ts\r\nimport { InjectionToken } from '@angular/core';\r\nimport {SidePageConfig} from \"./side-page.service\";\r\n\r\nexport const SIDE_PAGE_CONFIG = new InjectionToken<SidePageConfig>('SidePageConfig');\r\n","import {ApplicationRef, ComponentRef, createComponent, Inject, Injectable, Optional} from '@angular/core';\r\nimport {BehaviorSubject, filter, map, Observable, Subject, take} from \"rxjs\";\r\nimport {SidePageComponent} from \"./side-page.component\";\r\nimport {SIDE_PAGE_CONFIG} from \"./side-page-config.token\";\r\n\r\nexport interface SidePageOption {\r\n  key?: string;\r\n  position?: 'end' | 'start';\r\n  disableClose?: boolean;\r\n  showCloseBtn?: boolean;\r\n  width?: string;\r\n  maxWidth?: string;\r\n  minWidth?: string;\r\n\r\n  panelClass?: string;\r\n  backdropClass?: string;\r\n  hasBackdrop?: boolean;\r\n  zIndex?: number;\r\n\r\n  data?: any;\r\n\r\n}\r\n\r\nexport interface SidePageConfig {\r\n  minWidth?: string;\r\n  maxWidth?: string;\r\n  width?: string;\r\n  position?: 'start' | 'end';\r\n  disableClose?: boolean;\r\n}\r\n\r\n\r\nexport interface SidePageInfo<T = any> {\r\n  key: string;\r\n  component: T;\r\n  options: SidePageOption;\r\n  state: boolean;\r\n  data?: any;\r\n  ref?: SidePageRef<T>;\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class SidePageService {\r\n\r\n  sidePages: SidePageInfo[] = [];\r\n  initiated: boolean = false;\r\n  private sidePages$ = new BehaviorSubject<SidePageInfo[]>([]);\r\n  private startClosing$ = new Subject<any>();\r\n  private endClosing$ = new Subject<any>();\r\n  private endOpening$ = new Subject<any>();\r\n  private options: SidePageOption = {\r\n    position: 'end',\r\n    width: '100%',\r\n    maxWidth: '400px',\r\n    minWidth: '250px',\r\n    showCloseBtn: true,\r\n    zIndex: 1000,\r\n  } as SidePageOption;\r\n\r\n  private config: SidePageConfig;\r\n\r\n\r\n  constructor(\r\n    private appRef: ApplicationRef,\r\n    @Optional() @Inject(SIDE_PAGE_CONFIG) config: SidePageConfig\r\n  ) {\r\n    this.config = config || {};\r\n\r\n    this.sidePages$.subscribe((pages) => {\r\n      if (!this.isBrowser()) {\r\n        return;\r\n      }\r\n\r\n      if (pages.length) {\r\n        // Add overflow: hidden to body when any side page is open\r\n        document.body.style.overflow = 'hidden';\r\n      } else {\r\n        // Remove overflow: hidden when all side pages are closed\r\n        document.body.style.overflow = '';\r\n      }\r\n    });\r\n\r\n  }\r\n\r\n\r\n  addComponentToBody() {\r\n    if (!this.isBrowser()) {\r\n      return;\r\n    }\r\n\r\n    const componentRef: ComponentRef<SidePageComponent> = createComponent(SidePageComponent, {\r\n      environmentInjector: this.appRef.injector,\r\n    });\r\n\r\n    // Set the inputs\r\n    /*componentRef.instance.key = key;\r\n    componentRef.instance.options = options || {};*/\r\n\r\n    // Attach component to the application so change detection works\r\n    this.appRef.attachView(componentRef.hostView);\r\n    componentRef.changeDetectorRef.detectChanges();\r\n\r\n    // Get the DOM element of the component\r\n    const domElem = (componentRef.hostView as any).rootNodes[0] as HTMLElement;\r\n\r\n    // Append the component's DOM element to the body\r\n    document.body.appendChild(domElem);\r\n  }\r\n\r\n\r\n  getSidePage() {\r\n    return this.sidePages$.asObservable();\r\n  }\r\n\r\n  closeLastSidePage(someValue: any = null) {\r\n    if (!this.sidePages.length) {\r\n      return;\r\n    }\r\n\r\n    this.closeSidePageAtIndex(this.sidePages.length - 1, someValue);\r\n  }\r\n\r\n  closeSidePage(key: string, someValue: any) {\r\n    const index = this.sidePages.findIndex((sp1) => sp1.key === key);\r\n    if (index === -1) {\r\n      return;\r\n    }\r\n\r\n    this.closeSidePageAtIndex(index, someValue);\r\n  }\r\n\r\n  private closeSidePageAtIndex(index: number, someValue: any) {\r\n    const sp = this.sidePages[index];\r\n\r\n    if (!sp) {\r\n      return;\r\n    }\r\n\r\n    this.startClosing$.next({key: sp.key, sidePage: sp, value: someValue});\r\n\r\n    this.sidePages.splice(index, 1);\r\n    this.sidePages$.next(this.sidePages);\r\n\r\n    setTimeout(() => {\r\n      this.endClosing$.next({key: sp.key, sidePage: sp, value: someValue});\r\n    }, 300);\r\n  }\r\n\r\n  openSidePage<T = any>(key: string, component: T, options?: SidePageOption): SidePageRef<T> {\r\n    if (!this.initiated) {\r\n      this.addComponentToBody();\r\n    }\r\n\r\n    const _options = {...this.options, ...options};\r\n    const thisSp = {key: key, component, options: _options, state: true};\r\n    const spRef = new SidePageRef<T>(thisSp, this.sidePages, this.endOpening$, this.startClosing$, this.endClosing$, this);\r\n    this.sidePages.push({...thisSp, ref: spRef});\r\n    this.sidePages$.next(this.sidePages);\r\n    // this.sidePages$.complete();\r\n    setTimeout(() => {\r\n      this.endOpening$.next(thisSp);\r\n      // this.endOpening$.complete();\r\n    }, 300);\r\n\r\n    return spRef;\r\n  }\r\n\r\n  private isBrowser(): boolean {\r\n    return typeof window !== 'undefined' && typeof document !== 'undefined';\r\n  }\r\n\r\n\r\n}\r\n\r\nexport class SidePageRef<T> {\r\n\r\n  constructor(\r\n    private _sidePage: SidePageInfo,\r\n    private _sidePages: SidePageInfo[],\r\n    private _endOpening$: Subject<any>,\r\n    private _startClosing$: Subject<any>,\r\n    private _endClosing$: Subject<any>,\r\n    private _sidePageService: SidePageService\r\n  ) {\r\n  }\r\n\r\n  public get key() {\r\n    return this._sidePage.key;\r\n  }\r\n\r\n  public get componentInstance(): T {\r\n    return this._sidePage.component;\r\n  }\r\n\r\n  public get options() {\r\n    return this._sidePage.options;\r\n  }\r\n\r\n  public get openedSidePages() {\r\n    return this._sidePages;\r\n  }\r\n\r\n  afterClosed(): Observable<any> {\r\n    return this._endClosing$.asObservable().pipe(\r\n      filter((value) => value.key === this._sidePage.key),\r\n      take(1),\r\n      map((value) => value.value)\r\n    );\r\n  }\r\n\r\n  afterOpened(): Observable<void> {\r\n    return this._endOpening$.asObservable().pipe(\r\n      filter((value) => value.key === this._sidePage.key),\r\n      map(() => {\r\n      })\r\n    );\r\n  }\r\n\r\n  backdropClick(): Observable<MouseEvent> {\r\n    return {} as any;\r\n  }\r\n\r\n  beforeClosed(): Observable<any> {\r\n    return this._startClosing$.asObservable().pipe(\r\n      filter((value) => value.key === this._sidePage.key),\r\n      map((value) => value.value)\r\n    );\r\n  }\r\n\r\n  getState() {\r\n    return this._sidePage.state;\r\n  }\r\n\r\n  close(someValue?: any): void {\r\n    this._sidePageService.closeSidePage(this._sidePage.key, someValue);\r\n\r\n  }\r\n}\r\n","// file: projects/ngx-side-page/src/lib/side-page.providers.ts\r\nimport { Provider } from '@angular/core';\r\nimport { SIDE_PAGE_CONFIG,  } from './side-page-config.token';\r\nimport {SidePageConfig} from \"./side-page.service\";\r\n\r\nexport function provideSidePageConfig(config: SidePageConfig): Provider {\r\n  return { provide: SIDE_PAGE_CONFIG, useValue: config };\r\n}\r\n","/*\r\n * Public API Surface of side-page\r\n */\r\n\r\nexport * from './lib/side-page.service';\r\nexport * from './lib/side-page.component';\r\nexport * from './lib/side-page-data.token';\r\nexport * from './lib/side-page-config.token';\r\nexport * from './lib/side-page.providers';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SidePageService"],"mappings":"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"}