{"version":3,"file":"alyle-ui-dialog.mjs","sources":["../../../lib/dialog/dialog-ref.ts","../../../lib/dialog/dialog-config.ts","../../../lib/dialog/dialog-data.ts","../../../lib/dialog/dialog-container.component.ts","../../../lib/dialog/dynamic-injector.ts","../../../lib/dialog/dialog.ts","../../../lib/dialog/dialog-title.directive.ts","../../../lib/dialog/dialog-content.directive.ts","../../../lib/dialog/dialog-actions.directive.ts","../../../lib/dialog/dialog.module.ts","../../../lib/dialog/alyle-ui-dialog.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { LyOverlayRef } from '@alyle/ui';\nimport { LyDialogContainer } from './dialog-container.component';\n\n@Injectable()\nexport class LyDialogRef {\n  private _result: any;\n  get afterOpened() {\n    return (\n      this._overlayRef.componentRef!.instance as LyDialogContainer\n    )._afterOpened.asObservable();\n  }\n  get beforeClosed() {\n    return (\n      this._overlayRef.componentRef!.instance as LyDialogContainer\n    )._beforeClosed.asObservable();\n  }\n  get afterClosed() {\n    return (\n      this._overlayRef.componentRef!.instance as LyDialogContainer\n    )._afterClosed.asObservable();\n  }\n\n  /**\n   * @internal\n   * @docs-private\n   */\n  get result() {\n    return this._result;\n  }\n  constructor(\n    private _overlayRef: LyOverlayRef\n  ) {\n\n  }\n  close(result?: any) {\n    const dialogContainer = (this._overlayRef.componentRef!.instance as LyDialogContainer);\n    dialogContainer._beforeClosed.next(result);\n    dialogContainer._beforeClosed.complete();\n    dialogContainer._startClose();\n    this._result = result;\n  }\n}\n","import { MediaQueryArray } from '@alyle/ui';\n\n/**\n * Configuration for opening a modal dialog with the LyDialog service.\n */\nexport class LyDialogConfig<DATA = unknown> {\n\n  /** Data being injected into the child component. */\n  data?: DATA | null;\n\n  /**\n   * Width of the dialog container.\n   * Support beakpoints\n   */\n  width?: MediaQueryArray | number | string;\n\n  /**\n   * Height of the dialog container.\n   * Support beakpoints\n   */\n  height?: MediaQueryArray | number | string;\n\n  /**\n   * Max-height of the dialog container. If a number is provided, pixel units are assumed.\n   * Defaults to `['calc(100vw - 90px)']`\n   * Support beakpoints\n   */\n  maxHeight?: MediaQueryArray | number | string | null = ['calc(100vh - 64px)'];\n\n  /**\n   * Max-width of the dialog container. If a number is provided, pixel units are assumed.\n   * Defaults to `['calc(100vw - 90px)']`\n   * Support beakpoints\n   */\n  maxWidth?: MediaQueryArray | number | string | null = ['calc(100vw - 64px)'];\n\n  /**\n   * Min-height of the dialog container. If a number is provided, pixel units are assumed.\n   * Support beakpoints\n   */\n  minHeight?: MediaQueryArray | number | string;\n\n  /**\n   * Min-width of the dialog container. If a number is provided, pixel units are assumed.\n   * Support beakpoints\n   */\n  minWidth?: MediaQueryArray | number | string;\n\n  /** Whether the dialog has a backdrop. */\n  hasBackdrop?: boolean = true;\n\n  /**\n   * Custom class for the backdrop. Overrides the current style.\n   */\n  backdropClass?: string;\n\n  /**\n   * Custom class for the `<ly-dialog-container>`. Overwrite the current style.\n   */\n  containerClass?: string;\n\n  /**\n   * Whether the user can click on the backdrop to close the dialog.\n   */\n  disableClose?: boolean;\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const LY_DIALOG_DATA = new InjectionToken('LyDialogData');\n","import {\n  OnInit,\n  Component,\n  ComponentFactory,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n  Injector,\n  ApplicationRef,\n  ComponentRef,\n  EmbeddedViewRef,\n  ChangeDetectionStrategy,\n  Renderer2,\n  ElementRef,\n  ChangeDetectorRef,\n  OnDestroy,\n  AfterContentInit,\n  } from '@angular/core';\nimport { state, style, transition, animate, trigger, AnimationEvent } from '@angular/animations';\nimport {\n  LyOverlayRef,\n  LyTheme2,\n  ThemeVariables,\n  shadowBuilder,\n  st2c,\n  LyClasses,\n  StyleCollection,\n  StyleTemplate,\n  ThemeRef,\n  StyleRenderer,\n  WithStyles } from '@alyle/ui';\nimport { Subject } from 'rxjs';\n\nimport { LyDialogRef } from './dialog-ref';\nimport { LyDialogConfig } from './dialog-config';\nimport { LY_DIALOG_DATA } from './dialog-data';\nimport { Color } from '@alyle/ui/color';\nimport {\n  FocusTrapFactory,\n  FocusTrap,\n} from '@angular/cdk/a11y';\nimport { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';\n\nconst STYLE_PRIORITY = -2;\n\nexport interface LyDialogTheme {\n  /** Styles for Dialog Component. */\n  root?: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)>\n  | ((classes: LyClasses<typeof STYLES>) => StyleTemplate);\n  /** Styles that apply when a color is set. */\n  color?: (classes: LyClasses<typeof STYLES>, color: Color) => StyleTemplate;\n}\n\nexport interface LyDialogVariables {\n  dialog?: LyDialogTheme;\n}\n\n/** @docs-private */\nconst STYLES = (theme: ThemeVariables & LyDialogVariables, ref: ThemeRef) => {\n  const dialog = ref.selectorsOf(STYLES);\n  return {\n    root: ( ) => (_className: string) => `${_className}{display:flex;position:relative;background-color:${theme.background.primary.default};border-radius:4px;box-shadow:${shadowBuilder(12)};overflow:auto;pointer-events:auto;}${_className} > :first-child{display:flex;flex-direction:column;width:100%;}${st2c((\n          (theme.dialog\n            && theme.dialog.root\n            && (theme.dialog.root instanceof StyleCollection\n              ? theme.dialog.root.setTransformer(fn => fn(dialog))\n              : theme.dialog.root(dialog))\n          )), `${_className}`)}`\n  };\n};\n\n/** @docs-private */\n@Component({\n  selector: 'ly-dialog-container',\n  template: '<ng-template></ng-template>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('dialogContainer', [\n      state('void, exit', style({opacity: 0, transform: 'scale(0.7)'})),\n      state('enter', style({transform: 'none'})),\n      transition('* => enter', animate('150ms cubic-bezier(0, 0, 0.2, 1)',\n        style({transform: 'none', opacity: 1}))),\n      transition('* => void, * => exit',\n        animate('75ms cubic-bezier(0.4, 0.0, 0.2, 1)', style({opacity: 0})))\n    ])\n  ],\n  host: {\n    '[@dialogContainer]': '_state',\n    '(@dialogContainer.start)': '_onAnimationStart($event)',\n    '(@dialogContainer.done)': '_onAnimationDone($event)'\n  },\n  providers: [\n    StyleRenderer\n  ],\n  standalone: false\n})\nexport class LyDialogContainer implements WithStyles, OnInit, AfterContentInit, OnDestroy {\n  /** @docs-private */\n  readonly classes = this._theme.addStyleSheet(STYLES, STYLE_PRIORITY);\n  private _embeddedViewRef: EmbeddedViewRef<any>;\n  private _componentRef: ComponentRef<any>;\n  private _focusTrap: FocusTrap;\n\n  /** Previously focused element to restore focus to upon destroy when using autoCapture. */\n  private _previouslyFocusedElement: HTMLElement | null = null;\n\n  /** @internal */\n  readonly _afterOpened = new Subject<void>();\n  /** @internal */\n  readonly _beforeClosed = new Subject<any>();\n  /** @internal */\n  readonly _afterClosed = new Subject<any>();\n\n  /**\n   * State of the dialog animation.\n   * @internal\n   */\n  _state: 'void' | 'enter' | 'exit' = 'enter';\n\n  /** @internal */\n  @ViewChild(TemplateRef, { read: ViewContainerRef, static: true }) private readonly viewContainerRef: ViewContainerRef;\n\n  /** @internal */\n  private _componentFactoryOrTemplate: ComponentFactory<any> | TemplateRef<any>;\n\n  private _newInjector: Injector;\n\n  constructor(\n    readonly sRenderer: StyleRenderer,\n    private _appRef: ApplicationRef,\n    private _overlayRef: LyOverlayRef,\n    private _theme: LyTheme2,\n    private _el: ElementRef<HTMLElement>,\n    private _cd: ChangeDetectorRef,\n    private _renderer: Renderer2,\n    private _trapFactory: FocusTrapFactory\n  ) {\n    _renderer.addClass(_el.nativeElement, this.classes.root);\n  }\n  ngOnInit() {\n\n    if (this._componentFactoryOrTemplate instanceof TemplateRef) {\n\n      const context = new LyDialogContext(this._newInjector);\n\n      this._embeddedViewRef = this.viewContainerRef\n      .createEmbeddedView(this._componentFactoryOrTemplate, context);\n    } else {\n      this._componentRef = this.viewContainerRef\n          .createComponent(this._componentFactoryOrTemplate, undefined, this._newInjector);\n    }\n\n    // If exist dialogStyleBlock apply for this component, else do nothing.\n    const { containerClass } = this._newInjector.get(LyDialogConfig);\n    if (containerClass) {\n      this._renderer.addClass(this._el.nativeElement, containerClass);\n    }\n  }\n\n  ngAfterContentInit() {\n    this._focusTrap = this._trapFactory.create(this._el.nativeElement);\n    this._captureFocus();\n  }\n\n  ngOnDestroy(): void {\n    this._focusTrap.destroy();\n    if (this._previouslyFocusedElement) {\n      this._previouslyFocusedElement.focus();\n      this._previouslyFocusedElement = null;\n    }\n  }\n\n  /** @internal */\n  _init(componentFactoryOrTemplate: ComponentFactory<any> | TemplateRef<any>, newInjector: Injector) {\n    this._componentFactoryOrTemplate = componentFactoryOrTemplate;\n    this._newInjector = newInjector;\n  }\n\n  /**\n   * Start to close, starts the dialog exit animation.\n   * @internal\n   */\n  _startClose() {\n    this._state = 'exit';\n    this._cd.markForCheck();\n  }\n\n  _onAnimationStart(event: AnimationEvent) {\n    if (event.toState === 'enter') {\n      this._overlayRef!.onResizeScroll!();\n    }\n  }\n\n  /** @internal */\n  _onAnimationDone(event: AnimationEvent) {\n    if (event.toState === 'exit') {\n      const dialogRef = this._newInjector.get(LyDialogRef);\n      this._destroy();\n      this._overlayRef.destroy();\n      this._afterClosed.next(dialogRef.result);\n      this._afterClosed.complete();\n    } else if (event.toState === 'enter') {\n      this._afterOpened.next();\n      this._afterOpened.complete();\n    }\n  }\n\n  private _destroy() {\n    if (this._componentRef) {\n      this._appRef.detachView(this._componentRef.hostView);\n      this._componentRef.destroy();\n    } else {\n      this._appRef.detachView(this._embeddedViewRef);\n      this._embeddedViewRef.detach();\n      this._embeddedViewRef.destroy();\n    }\n  }\n\n  /** @internal */\n  _getHostElement() {\n    return this._el.nativeElement;\n  }\n\n  private _captureFocus() {\n    this._previouslyFocusedElement = _getFocusedElementPierceShadowDom();\n    this._focusTrap.focusInitialElementWhenReady();\n  }\n}\n\nexport class LyDialogContext {\n  $implicit: any = this._injector.get(LyDialogRef);\n  dialogRef = this._injector.get(LyDialogRef);\n\n  get data() {\n    return this._injector.get(LY_DIALOG_DATA);\n  }\n\n  constructor(private _injector: Injector) { }\n}\n","import { Injector, Type, InjectionToken, InjectFlags } from '@angular/core';\n\nexport class DynamicInjector implements Injector {\n\n  constructor(private _newInjector: Injector, private _parentInjector: Injector) { }\n\n  get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T;\n  get(token: any, notFoundValue?: any);\n  get(token: any, notFoundValue?: any, _flags?: any) {\n    const value = this._newInjector.get(token, notFoundValue);\n\n    if (value) {\n      return value;\n    }\n\n    return this._parentInjector.get<any>(token, notFoundValue);\n  }\n}\n","import { Injectable, Type, TemplateRef, ComponentFactoryResolver, ComponentFactory, Injector, StaticProvider } from '@angular/core';\nimport { LyOverlay, LyOverlayRef, LyTheme2, STYLES_BACKDROP_DARK, createStyle, LyStyle, MediaQueryArray } from '@alyle/ui';\n\nimport { LyDialogContainer } from './dialog-container.component';\nimport { LyDialogRef } from './dialog-ref';\nimport { DynamicInjector } from './dynamic-injector';\nimport { LyDialogConfig } from './dialog-config';\nimport { LY_DIALOG_DATA } from './dialog-data';\nimport { ESCAPE } from '@angular/cdk/keycodes';\n\nconst dialogContainerStyleProperties = [\n  'width',\n  'maxWidth',\n  'minWidth',\n  'height',\n  'maxHeight',\n  'minHeight',\n];\n\n@Injectable()\nexport class LyDialog {\n\n  constructor(\n    private _overlay: LyOverlay,\n    private _componentFactoryResolver: ComponentFactoryResolver,\n    private _theme: LyTheme2,\n    private _injector: Injector\n  ) { }\n  open<T, DATA = unknown>(componentOrTemplateRef: Type<T> | TemplateRef<T>,\n                          config?: LyDialogConfig<DATA>): LyDialogRef {\n\n    // merge with default config\n    config = { ...new LyDialogConfig(), ...config };\n\n    let componentFactoryOrTemplate: ComponentFactory<any> | TemplateRef<any>;\n    if (componentOrTemplateRef instanceof TemplateRef) {\n      componentFactoryOrTemplate = componentOrTemplateRef;\n    } else {\n      componentFactoryOrTemplate = this._componentFactoryResolver.resolveComponentFactory(componentOrTemplateRef);\n    }\n\n    const noop = () => {};\n\n    const overlayRef = this._overlay.create(LyDialogContainer, null, {\n      styles: {\n        top: 0,\n        left: 0,\n        right: 0,\n        bottom: 0\n      },\n      hasBackdrop: config.hasBackdrop,\n      onResizeScroll: noop,\n      disableClose: config.disableClose,\n      backdropClass: config.backdropClass || this._theme.style(STYLES_BACKDROP_DARK),\n      fnDestroy: () => {\n        dialogRef.close();\n        keydownEventsSuscription.unsubscribe();\n      }\n    });\n\n    const keydownEvents = overlayRef.keydownEvents();\n    const keydownEventsSuscription = keydownEvents.subscribe((event) => {\n      if (!(config?.disableClose) && event.keyCode === ESCAPE) {\n        dialogRef.close();\n      }\n    });\n\n    const instance: LyDialogContainer = overlayRef.componentRef!.instance;\n\n    dialogContainerStyleProperties.forEach(property => {\n      if (config![property]) {\n        createStyle<string | MediaQueryArray | number | null, LyDialogContainer>(\n          instance,\n          { key: property, и: LyStyle.и },\n          config![property],\n          LyStyle[property],\n          LyStyle.$priority\n        );\n      }\n    });\n\n    const providers: StaticProvider[] = [\n      {\n        provide: LyDialogRef,\n        useValue: new LyDialogRef(overlayRef.componentRef!.injector.get(LyOverlayRef))\n      },\n      {\n        provide: LyDialogConfig,\n        useValue: config\n      }\n    ];\n\n    if (config.data != null) {\n      providers.push({\n        provide: LY_DIALOG_DATA,\n        useValue: config.data\n      });\n    }\n\n    const newInjector = new DynamicInjector(\n        Injector.create(providers, overlayRef.componentRef!.injector), this._injector);\n    instance._init(componentFactoryOrTemplate, newInjector);\n    const dialogRef = newInjector.get(LyDialogRef);\n    return dialogRef;\n  }\n}\n\n","import { Directive, ElementRef, OnInit, Renderer2 } from '@angular/core';\nimport {\n  LyTheme2,\n  ThemeVariables } from '@alyle/ui';\n\n/** @docs-private */\nconst STYLE_PRIORITY = -2;\n\n/** @docs-private */\nconst STYLES_DIALOG_TITLE = (theme: ThemeVariables) => (_className: string) => `${_className}{display:block;flex:0 0 auto;margin:20px 0 16px;padding:0 24px;font-size:20px;line-height:24px;font-weight:500;font-family:${theme.typography.fontFamily};}`;\n\n@Directive({\n  selector: '[ly-dialog-title], [lyDialogTitle]',\n  exportAs: 'lyDialogTitle',\n    standalone: false\n})\nexport class LyDialogTitle implements OnInit {\n  constructor(\n    private _renderer: Renderer2,\n    private _el: ElementRef<HTMLElement>,\n    private _theme: LyTheme2) { }\n\n  ngOnInit() {\n    this._renderer.addClass(\n      this._el.nativeElement, this._theme.renderStyle(STYLES_DIALOG_TITLE, STYLE_PRIORITY));\n  }\n}\n","import { Directive, ElementRef, OnInit, Renderer2 } from '@angular/core';\nimport {\n  LyTheme2 } from '@alyle/ui';\n\n/** @docs-private */\nconst STYLE_PRIORITY = -2;\n\n/** @docs-private */\nconst STYLES_DIALOG_CONTENT = () => (_className: string) => `${_className}{display:block;overflow-y:auto;flex:1 1 auto;padding:0 24px 24px;-webkit-overflow-scrolling:touch;}`;\n\n@Directive({\n  selector: 'ly-dialog-content, [ly-dialog-content], [lyDialogContent]',\n  exportAs: 'lyDialogContent',\n  standalone: false\n})\nexport class LyDialogContent implements OnInit {\n  constructor(\n    private _renderer: Renderer2,\n    private _el: ElementRef<HTMLElement>,\n    private _theme: LyTheme2) { }\n\n  ngOnInit() {\n    this._renderer.addClass(\n      this._el.nativeElement, this._theme.renderStyle(STYLES_DIALOG_CONTENT, STYLE_PRIORITY));\n  }\n}\n","import { Directive, ElementRef, OnInit, Renderer2 } from '@angular/core';\nimport {\n  LyTheme2 } from '@alyle/ui';\n\n/** @docs-private */\nconst STYLE_PRIORITY = -2;\n\n/** @docs-private */\nconst STYLES_DIALOG_ACTIONS = () => (_className: string) => `${_className}{display:flex;flex:0 0 auto;padding:8px;flex-wrap:wrap;min-height:52px;align-items:center;}`;\n\n@Directive({\n  selector: 'ly-dialog-actions, [ly-dialog-actions], [lyDialogActions]',\n  exportAs: 'lyDialogActions',\n  standalone: false\n})\nexport class LyDialogActions implements OnInit {\n  constructor(\n    private _renderer: Renderer2,\n    private _el: ElementRef<HTMLElement>,\n    private _theme: LyTheme2) { }\n\n  ngOnInit() {\n    this._renderer.addClass(\n      this._el.nativeElement, this._theme.renderStyle(STYLES_DIALOG_ACTIONS, STYLE_PRIORITY));\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LyCommonModule, LyOverlayModule } from '@alyle/ui';\n\nimport { LyDialogContainer } from './dialog-container.component';\nimport { LyDialog } from './dialog';\nimport { LyDialogTitle } from './dialog-title.directive';\nimport { LyDialogContent } from './dialog-content.directive';\nimport { LyDialogActions } from './dialog-actions.directive';\nimport { A11yModule } from '@angular/cdk/a11y';\n\n@NgModule({\n    declarations: [\n        LyDialogContainer,\n        LyDialogTitle,\n        LyDialogContent,\n        LyDialogActions\n    ],\n    imports: [\n        CommonModule,\n        LyCommonModule,\n        LyOverlayModule,\n        A11yModule\n    ],\n    exports: [\n        LyCommonModule,\n        LyDialogContainer,\n        LyDialogTitle,\n        LyDialogContent,\n        LyDialogActions\n    ],\n    providers: [\n        LyDialog\n    ]\n})\nexport class LyDialogModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["STYLE_PRIORITY"],"mappings":"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"}