{"version":3,"file":"axulus-uikit-overlay.mjs","sources":["../../src/app/components/overlay/overlay.ts","../../src/app/components/overlay/axulus-uikit-overlay.ts"],"sourcesContent":["import { animate, animation, AnimationEvent, style, transition, trigger, useAnimation } from '@angular/animations';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Inject,\n  Input,\n  NgModule,\n  OnDestroy,\n  Output,\n  QueryList,\n  Renderer2,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n  OverlayModeType,\n  OverlayOptions,\n  OverlayService,\n  PrimeNGConfig,\n  PrimeTemplate,\n  ResponsiveOverlayOptions,\n  SharedModule\n} from '@axulus/uikit/api';\nimport { ConnectedOverlayScrollHandler, DomHandler } from '@axulus/uikit/dom';\nimport { ObjectUtils, ZIndexUtils } from '@axulus/uikit/utils';\n\nexport const OVERLAY_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => Overlay),\n  multi: true\n};\n\nconst showOverlayContentAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{showTransitionParams}}')]);\n\nconst hideOverlayContentAnimation = animation([animate('{{hideTransitionParams}}', style({ transform: '{{transform}}', opacity: 0 }))]);\n\n@Component({\n  selector: 'p-overlay',\n  template: `\n    <div\n      *ngIf=\"modalVisible\"\n      #overlay\n      [ngStyle]=\"style\"\n      [class]=\"styleClass\"\n      [ngClass]=\"{\n        'p-overlay p-component': true,\n        'p-overlay-modal p-component-overlay p-component-overlay-enter': modal,\n        'p-overlay-center': modal && overlayResponsiveDirection === 'center',\n        'p-overlay-top': modal && overlayResponsiveDirection === 'top',\n        'p-overlay-top-start': modal && overlayResponsiveDirection === 'top-start',\n        'p-overlay-top-end': modal && overlayResponsiveDirection === 'top-end',\n        'p-overlay-bottom': modal && overlayResponsiveDirection === 'bottom',\n        'p-overlay-bottom-start': modal && overlayResponsiveDirection === 'bottom-start',\n        'p-overlay-bottom-end': modal && overlayResponsiveDirection === 'bottom-end',\n        'p-overlay-left': modal && overlayResponsiveDirection === 'left',\n        'p-overlay-left-start': modal && overlayResponsiveDirection === 'left-start',\n        'p-overlay-left-end': modal && overlayResponsiveDirection === 'left-end',\n        'p-overlay-right': modal && overlayResponsiveDirection === 'right',\n        'p-overlay-right-start': modal && overlayResponsiveDirection === 'right-start',\n        'p-overlay-right-end': modal && overlayResponsiveDirection === 'right-end'\n      }\"\n      (click)=\"onOverlayClick($event)\"\n    >\n      <div\n        *ngIf=\"visible\"\n        #content\n        [ngStyle]=\"contentStyle\"\n        [class]=\"contentStyleClass\"\n        [ngClass]=\"'p-overlay-content'\"\n        (click)=\"onOverlayContentClick($event)\"\n        [@overlayContentAnimation]=\"{\n          value: 'visible',\n          params: {\n            showTransitionParams: showTransitionOptions,\n            hideTransitionParams: hideTransitionOptions,\n            transform: transformOptions[modal ? overlayResponsiveDirection : 'default']\n          }\n        }\"\n        (@overlayContentAnimation.start)=\"onOverlayContentAnimationStart($event)\"\n        (@overlayContentAnimation.done)=\"onOverlayContentAnimationDone($event)\"\n      >\n        <ng-content></ng-content>\n        <ng-container *ngTemplateOutlet=\"contentTemplate; context: { $implicit: { mode: overlayMode } }\"></ng-container>\n      </div>\n    </div>\n  `,\n  animations: [\n    trigger('overlayContentAnimation', [\n      transition(':enter', [useAnimation(showOverlayContentAnimation)]),\n      transition(':leave', [useAnimation(hideOverlayContentAnimation)])\n    ])\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  providers: [OVERLAY_VALUE_ACCESSOR],\n  styleUrls: ['./overlay.css'],\n  host: {\n    class: 'p-element'\n  }\n})\nexport class Overlay implements AfterContentInit, OnDestroy {\n  @Input() get visible(): boolean {\n    return this._visible;\n  }\n  set visible(value: boolean) {\n    this._visible = value;\n\n    if (this._visible && !this.modalVisible) {\n      this.modalVisible = true;\n    }\n  }\n\n  @Input() get mode(): OverlayModeType | string {\n    return this._mode || this.overlayOptions?.mode;\n  }\n  set mode(value: OverlayModeType | string) {\n    this._mode = value;\n  }\n\n  @Input() get style(): any {\n    return ObjectUtils.merge(this._style, this.modal ? this.overlayResponsiveOptions?.style : this.overlayOptions?.style);\n  }\n  set style(value: any) {\n    this._style = value;\n  }\n\n  @Input() get styleClass(): string {\n    return ObjectUtils.merge(this._styleClass, this.modal ? this.overlayResponsiveOptions?.styleClass : this.overlayOptions?.styleClass);\n  }\n\n  set styleClass(value: string) {\n    this._styleClass = value;\n  }\n\n  @Input() get contentStyle(): any {\n    return ObjectUtils.merge(\n      this._contentStyle,\n      this.modal ? this.overlayResponsiveOptions?.contentStyle : this.overlayOptions?.contentStyle\n    );\n  }\n  set contentStyle(value: any) {\n    this._contentStyle = value;\n  }\n\n  @Input() get contentStyleClass(): string {\n    return ObjectUtils.merge(\n      this._contentStyleClass,\n      this.modal ? this.overlayResponsiveOptions?.contentStyleClass : this.overlayOptions?.contentStyleClass\n    );\n  }\n  set contentStyleClass(value: string) {\n    this._contentStyleClass = value;\n  }\n\n  @Input() get target(): any {\n    const value = this._target || this.overlayOptions?.target;\n    return value === undefined ? '@prev' : value;\n  }\n  set target(value: any) {\n    this._target = value;\n  }\n\n  @Input() get appendTo(): any {\n    return this._appendTo || this.overlayOptions?.appendTo;\n  }\n  set appendTo(value: any) {\n    this._appendTo = value;\n  }\n\n  @Input() get autoZIndex(): boolean {\n    const value = this._autoZIndex || this.overlayOptions?.autoZIndex;\n    return value === undefined ? true : value;\n  }\n  set autoZIndex(value: boolean) {\n    this._autoZIndex = value;\n  }\n\n  @Input() get baseZIndex(): number {\n    const value = this._baseZIndex || this.overlayOptions?.baseZIndex;\n    return value === undefined ? 0 : value;\n  }\n  set baseZIndex(value: number) {\n    this._baseZIndex = value;\n  }\n\n  @Input() get showTransitionOptions(): string {\n    const value = this._showTransitionOptions || this.overlayOptions?.showTransitionOptions;\n    return value === undefined ? '.12s cubic-bezier(0, 0, 0.2, 1)' : value;\n  }\n  set showTransitionOptions(value: string) {\n    this._showTransitionOptions = value;\n  }\n\n  @Input() get hideTransitionOptions(): string {\n    const value = this._hideTransitionOptions || this.overlayOptions?.hideTransitionOptions;\n    return value === undefined ? '.1s linear' : value;\n  }\n  set hideTransitionOptions(value: string) {\n    this._hideTransitionOptions = value;\n  }\n\n  @Input() get listener(): any {\n    return this._listener || this.overlayOptions?.listener;\n  }\n  set listener(value: any) {\n    this._listener = value;\n  }\n\n  @Input() get responsive(): ResponsiveOverlayOptions | undefined {\n    return this._responsive || this.overlayOptions?.responsive;\n  }\n  set responsive(val: ResponsiveOverlayOptions | undefined) {\n    this._responsive = val;\n  }\n\n  @Input() get options(): OverlayOptions | undefined {\n    return this._options;\n  }\n  set options(val: OverlayOptions | undefined) {\n    this._options = val;\n  }\n\n  @Output() visibleChange: EventEmitter<any> = new EventEmitter();\n\n  @Output() onBeforeShow: EventEmitter<any> = new EventEmitter();\n\n  @Output() onShow: EventEmitter<any> = new EventEmitter();\n\n  @Output() onBeforeHide: EventEmitter<any> = new EventEmitter();\n\n  @Output() onHide: EventEmitter<any> = new EventEmitter();\n\n  @Output() onAnimationStart: EventEmitter<any> = new EventEmitter();\n\n  @Output() onAnimationDone: EventEmitter<any> = new EventEmitter();\n\n  @ContentChildren(PrimeTemplate) templates: QueryList<any> | undefined;\n\n  @ViewChild('overlay') overlayViewChild: ElementRef | undefined;\n\n  @ViewChild('content') contentViewChild: ElementRef | undefined;\n\n  contentTemplate: TemplateRef<any> | undefined;\n\n  _visible: boolean = false;\n\n  _mode: OverlayModeType | string;\n\n  _style: any;\n\n  _styleClass: string | undefined;\n\n  _contentStyle: any;\n\n  _contentStyleClass: string | undefined;\n\n  _target: any;\n\n  _appendTo: 'body' | HTMLElement | undefined;\n\n  _autoZIndex: boolean | undefined;\n\n  _baseZIndex: number | undefined;\n\n  _showTransitionOptions: string | undefined;\n\n  _hideTransitionOptions: string | undefined;\n\n  _listener: any;\n\n  _responsive: ResponsiveOverlayOptions | undefined;\n\n  _options: OverlayOptions | undefined;\n\n  modalVisible: boolean = false;\n\n  isOverlayClicked: boolean = false;\n\n  isOverlayContentClicked: boolean = false;\n\n  scrollHandler: any;\n\n  documentClickListener: any;\n\n  documentResizeListener: any;\n\n  private window: Window | null;\n\n  protected transformOptions: any = {\n    default: 'scaleY(0.8)',\n    center: 'scale(0.7)',\n    top: 'translate3d(0px, -100%, 0px)',\n    'top-start': 'translate3d(0px, -100%, 0px)',\n    'top-end': 'translate3d(0px, -100%, 0px)',\n    bottom: 'translate3d(0px, 100%, 0px)',\n    'bottom-start': 'translate3d(0px, 100%, 0px)',\n    'bottom-end': 'translate3d(0px, 100%, 0px)',\n    left: 'translate3d(-100%, 0px, 0px)',\n    'left-start': 'translate3d(-100%, 0px, 0px)',\n    'left-end': 'translate3d(-100%, 0px, 0px)',\n    right: 'translate3d(100%, 0px, 0px)',\n    'right-start': 'translate3d(100%, 0px, 0px)',\n    'right-end': 'translate3d(100%, 0px, 0px)'\n  };\n\n  get modal() {\n    return (\n      this.mode === 'modal' ||\n      (this.overlayResponsiveOptions &&\n        this.window?.matchMedia(\n          this.overlayResponsiveOptions.media?.replace('@media', '') || `(max-width: ${this.overlayResponsiveOptions.breakpoint})`\n        ).matches)\n    );\n  }\n\n  get overlayMode() {\n    return this.mode || (this.modal ? 'modal' : 'overlay');\n  }\n\n  get overlayOptions() {\n    return { ...this.config?.overlayOptions, ...this.options }; // TODO: Improve performance\n  }\n\n  get overlayResponsiveOptions() {\n    return { ...this.overlayOptions?.responsive, ...this.responsive }; // TODO: Improve performance\n  }\n\n  get overlayResponsiveDirection() {\n    return this.overlayResponsiveOptions?.direction || 'center';\n  }\n\n  get overlayEl() {\n    return this.overlayViewChild?.nativeElement;\n  }\n\n  get contentEl() {\n    return this.contentViewChild?.nativeElement;\n  }\n\n  get targetEl() {\n    return DomHandler.getTargetElement(this.target, this.el?.nativeElement);\n  }\n\n  constructor(\n    @Inject(DOCUMENT) private document: Document,\n    public el: ElementRef,\n    public renderer: Renderer2,\n    private config: PrimeNGConfig,\n    public overlayService: OverlayService,\n    private cd: ChangeDetectorRef\n  ) {\n    this.window = this.document.defaultView;\n  }\n\n  ngAfterContentInit() {\n    this.templates?.forEach((item) => {\n      switch (item.getType()) {\n        case 'content':\n          this.contentTemplate = item.template;\n          break;\n        // TODO: new template types may be added.\n        default:\n          this.contentTemplate = item.template;\n          break;\n      }\n    });\n  }\n\n  show(overlay?: HTMLElement, isFocus: boolean = false) {\n    this.onVisibleChange(true);\n    this.handleEvents('onShow', { overlay: overlay || this.overlayEl, target: this.targetEl, mode: this.overlayMode });\n\n    isFocus && DomHandler.focus(this.targetEl);\n    this.modal && DomHandler.addClass(this.document?.body, 'p-overflow-hidden');\n  }\n\n  hide(overlay?: HTMLElement, isFocus: boolean = false) {\n    this.onVisibleChange(false);\n    this.handleEvents('onHide', { overlay: overlay || this.overlayEl, target: this.targetEl, mode: this.overlayMode });\n\n    isFocus && DomHandler.focus(this.targetEl);\n    this.modal && DomHandler.removeClass(this.document?.body, 'p-overflow-hidden');\n  }\n\n  alignOverlay() {\n    !this.modal && DomHandler.alignOverlay(this.overlayEl, this.targetEl, this.appendTo);\n  }\n\n  onVisibleChange(visible: boolean) {\n    this._visible = visible;\n    this.visibleChange.emit(visible);\n  }\n\n  onOverlayClick() {\n    this.isOverlayClicked = true;\n  }\n\n  onOverlayContentClick(event: MouseEvent) {\n    this.overlayService.add({\n      originalEvent: event,\n      target: this.targetEl\n    });\n\n    this.isOverlayContentClicked = true;\n  }\n\n  onOverlayContentAnimationStart(event: AnimationEvent) {\n    switch (event.toState) {\n      case 'visible':\n        this.handleEvents('onBeforeShow', { overlay: this.overlayEl, target: this.targetEl, mode: this.overlayMode });\n\n        if (this.autoZIndex) {\n          ZIndexUtils.set(this.overlayMode, this.overlayEl, this.baseZIndex + this.config?.zIndex[this.overlayMode]);\n        }\n\n        DomHandler.appendOverlay(this.overlayEl, this.appendTo === 'body' ? this.document.body : this.appendTo, this.appendTo);\n        this.alignOverlay();\n\n        break;\n\n      case 'void':\n        this.handleEvents('onBeforeHide', { overlay: this.overlayEl, target: this.targetEl, mode: this.overlayMode });\n\n        this.modal && DomHandler.addClass(this.overlayEl, 'p-component-overlay-leave');\n\n        break;\n    }\n\n    this.handleEvents('onAnimationStart', event);\n  }\n\n  onOverlayContentAnimationDone(event: AnimationEvent) {\n    const container = this.overlayEl || event.element.parentElement;\n\n    switch (event.toState) {\n      case 'visible':\n        this.show(container, true);\n        this.bindListeners();\n\n        break;\n\n      case 'void':\n        this.hide(container, true);\n        this.unbindListeners();\n\n        DomHandler.appendOverlay(this.overlayEl, this.targetEl, this.appendTo);\n        ZIndexUtils.clear(container);\n        this.modalVisible = false;\n\n        break;\n    }\n\n    this.handleEvents('onAnimationDone', event);\n  }\n\n  handleEvents(name: string, params: any) {\n    (this as any)[name].emit(params);\n    this.options && (this.options as any)[name] && (this.options as any)[name](params);\n    this.config?.overlayOptions && (this.config?.overlayOptions as any)[name] && (this.config?.overlayOptions as any)[name](params);\n  }\n\n  bindListeners() {\n    this.bindScrollListener();\n    this.bindDocumentClickListener();\n    this.bindDocumentResizeListener();\n  }\n\n  unbindListeners() {\n    this.unbindScrollListener();\n    this.unbindDocumentClickListener();\n    this.unbindDocumentResizeListener();\n  }\n\n  bindScrollListener() {\n    if (!this.scrollHandler) {\n      this.scrollHandler = new ConnectedOverlayScrollHandler(this.targetEl, (event: any) => {\n        const valid = this.listener ? this.listener(event, { type: 'scroll', mode: this.overlayMode, valid: true }) : true;\n\n        valid && this.hide(event, true);\n      });\n    }\n\n    this.scrollHandler.bindScrollListener();\n  }\n\n  unbindScrollListener() {\n    if (this.scrollHandler) {\n      this.scrollHandler.unbindScrollListener();\n    }\n  }\n\n  bindDocumentClickListener() {\n    if (!this.documentClickListener) {\n      this.documentClickListener = this.renderer.listen(this.document, 'click', (event) => {\n        const isTargetClicked =\n          this.targetEl && (this.targetEl.isSameNode(event.target) || (!this.isOverlayClicked && this.targetEl.contains(event.target)));\n        const isOutsideClicked = !isTargetClicked && !this.isOverlayContentClicked;\n        const valid = this.listener\n          ? this.listener(event, {\n              type: 'outside',\n              mode: this.overlayMode,\n              valid: event.which !== 3 && isOutsideClicked\n            })\n          : isOutsideClicked;\n\n        valid && this.hide(event);\n        this.isOverlayClicked = this.isOverlayContentClicked = false;\n      });\n    }\n  }\n\n  unbindDocumentClickListener() {\n    if (this.documentClickListener) {\n      this.documentClickListener();\n      this.documentClickListener = null;\n    }\n  }\n\n  bindDocumentResizeListener() {\n    if (!this.documentResizeListener) {\n      this.documentResizeListener = this.renderer.listen('window', 'resize', (event) => {\n        const valid = this.listener\n          ? this.listener(event, { type: 'resize', mode: this.overlayMode, valid: !DomHandler.isTouchDevice() })\n          : !DomHandler.isTouchDevice();\n\n        valid && this.hide(event, true);\n      });\n    }\n  }\n\n  unbindDocumentResizeListener() {\n    if (this.documentResizeListener) {\n      this.documentResizeListener();\n      this.documentResizeListener = null;\n    }\n  }\n\n  ngOnDestroy() {\n    this.hide(this.overlayEl, true);\n\n    if (this.overlayEl) {\n      DomHandler.appendOverlay(this.overlayEl, this.targetEl, this.appendTo);\n      ZIndexUtils.clear(this.overlayEl);\n    }\n\n    if (this.scrollHandler) {\n      this.scrollHandler.destroy();\n      this.scrollHandler = null;\n    }\n\n    this.unbindListeners();\n  }\n}\n\n@NgModule({\n  imports: [CommonModule, SharedModule],\n  exports: [Overlay],\n  declarations: [Overlay]\n})\nexport class OverlayModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}