{"version":3,"file":"axulus-uikit-confirmpopup.mjs","sources":["../../src/app/components/confirmpopup/confirmpopup.ts","../../src/app/components/confirmpopup/axulus-uikit-confirmpopup.ts"],"sourcesContent":["import {\n  NgModule,\n  Component,\n  ChangeDetectionStrategy,\n  ViewEncapsulation,\n  ElementRef,\n  ChangeDetectorRef,\n  OnDestroy,\n  Input,\n  EventEmitter,\n  Renderer2\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Confirmation, ConfirmationService, OverlayService, PrimeNGConfig, TranslationKeys } from '@axulus/uikit/api';\nimport { Subscription } from 'rxjs';\nimport { ButtonModule } from '@axulus/uikit/button';\nimport { ZIndexUtils } from '@axulus/uikit/utils';\nimport { trigger, state, style, transition, animate, AnimationEvent } from '@angular/animations';\nimport { DomHandler, ConnectedOverlayScrollHandler } from '@axulus/uikit/dom';\n\n@Component({\n  selector: 'p-confirmPopup',\n  template: `\n    <div\n      *ngIf=\"visible\"\n      [ngClass]=\"'p-confirm-popup p-component'\"\n      [ngStyle]=\"style\"\n      [class]=\"styleClass\"\n      (click)=\"onOverlayClick($event)\"\n      [@animation]=\"{\n        value: 'open',\n        params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions }\n      }\"\n      (@animation.start)=\"onAnimationStart($event)\"\n      (@animation.done)=\"onAnimationEnd($event)\"\n    >\n      <div #content class=\"p-confirm-popup-content\">\n        <i [ngClass]=\"'p-confirm-popup-icon'\" [class]=\"confirmation.icon\" *ngIf=\"confirmation.icon\"></i>\n        <span class=\"p-confirm-popup-message\">{{ confirmation.message }}</span>\n      </div>\n      <div class=\"p-confirm-popup-footer\">\n        <button\n          type=\"button\"\n          pButton\n          [icon]=\"confirmation.rejectIcon\"\n          [label]=\"rejectButtonLabel\"\n          (click)=\"reject()\"\n          [ngClass]=\"'p-confirm-popup-reject p-button-sm'\"\n          [class]=\"confirmation.rejectButtonStyleClass || 'p-button-text'\"\n          *ngIf=\"confirmation.rejectVisible !== false\"\n          [attr.aria-label]=\"rejectButtonLabel\"\n        ></button>\n        <button\n          type=\"button\"\n          pButton\n          [icon]=\"confirmation.acceptIcon\"\n          [label]=\"acceptButtonLabel\"\n          (click)=\"accept()\"\n          [ngClass]=\"'p-confirm-popup-accept p-button-sm'\"\n          [class]=\"confirmation.acceptButtonStyleClass\"\n          *ngIf=\"confirmation.acceptVisible !== false\"\n          [attr.aria-label]=\"acceptButtonLabel\"\n        ></button>\n      </div>\n    </div>\n  `,\n  animations: [\n    trigger('animation', [\n      state(\n        'void',\n        style({\n          transform: 'scaleY(0.8)',\n          opacity: 0\n        })\n      ),\n      state(\n        'open',\n        style({\n          transform: 'translateY(0)',\n          opacity: 1\n        })\n      ),\n      transition('void => open', animate('{{showTransitionParams}}')),\n      transition('open => void', animate('{{hideTransitionParams}}'))\n    ])\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['./confirmpopup.css'],\n  host: {\n    class: 'p-element'\n  }\n})\nexport class ConfirmPopup implements OnDestroy {\n  @Input() key: string;\n\n  @Input() defaultFocus: string = 'accept';\n\n  @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n\n  @Input() hideTransitionOptions: string = '.1s linear';\n\n  @Input() autoZIndex: boolean = true;\n\n  @Input() baseZIndex: number = 0;\n\n  @Input() style: any;\n\n  @Input() styleClass: string;\n\n  container: HTMLDivElement;\n\n  subscription: Subscription;\n\n  confirmation: Confirmation;\n\n  _visible: boolean;\n\n  documentClickListener: any;\n\n  documentResizeListener: any;\n\n  scrollHandler: any;\n\n  @Input() get visible(): any {\n    return this._visible;\n  }\n  set visible(value: any) {\n    this._visible = value;\n    this.cd.markForCheck();\n  }\n\n  constructor(\n    public el: ElementRef,\n    private confirmationService: ConfirmationService,\n    public renderer: Renderer2,\n    private cd: ChangeDetectorRef,\n    public config: PrimeNGConfig,\n    public overlayService: OverlayService\n  ) {\n    this.subscription = this.confirmationService.requireConfirmation$.subscribe((confirmation) => {\n      if (!confirmation) {\n        this.hide();\n        return;\n      }\n\n      if (confirmation.key === this.key) {\n        this.confirmation = confirmation;\n        if (this.confirmation.accept) {\n          this.confirmation.acceptEvent = new EventEmitter();\n          this.confirmation.acceptEvent.subscribe(this.confirmation.accept);\n        }\n\n        if (this.confirmation.reject) {\n          this.confirmation.rejectEvent = new EventEmitter();\n          this.confirmation.rejectEvent.subscribe(this.confirmation.reject);\n        }\n\n        this.visible = true;\n      }\n    });\n  }\n\n  onAnimationStart(event: AnimationEvent) {\n    if (event.toState === 'open') {\n      this.container = event.element;\n      document.body.appendChild(this.container);\n      this.align();\n      this.bindListeners();\n\n      const element = this.getElementToFocus();\n      if (element) {\n        element.focus();\n      }\n    }\n  }\n\n  onAnimationEnd(event: AnimationEvent) {\n    switch (event.toState) {\n      case 'void':\n        this.onContainerDestroy();\n        break;\n    }\n  }\n\n  getElementToFocus() {\n    switch (this.defaultFocus) {\n      case 'accept':\n        return DomHandler.findSingle(this.container, '.p-confirm-popup-accept');\n\n      case 'reject':\n        return DomHandler.findSingle(this.container, '.p-confirm-popup-reject');\n\n      case 'none':\n        return null;\n    }\n  }\n\n  align() {\n    if (this.autoZIndex) {\n      ZIndexUtils.set('overlay', this.container, this.config.zIndex.overlay);\n    }\n\n    DomHandler.absolutePosition(this.container, this.confirmation.target);\n\n    const containerOffset = DomHandler.getOffset(this.container);\n    const targetOffset = DomHandler.getOffset(this.confirmation.target);\n    let arrowLeft = 0;\n\n    if (containerOffset.left < targetOffset.left) {\n      arrowLeft = targetOffset.left - containerOffset.left;\n    }\n    this.container.style.setProperty('--overlayArrowLeft', `${arrowLeft}px`);\n\n    if (containerOffset.top < targetOffset.top) {\n      DomHandler.addClass(this.container, 'p-confirm-popup-flipped');\n    }\n  }\n\n  hide() {\n    this.visible = false;\n  }\n\n  accept() {\n    if (this.confirmation.acceptEvent) {\n      this.confirmation.acceptEvent.emit();\n    }\n\n    this.hide();\n  }\n\n  reject() {\n    if (this.confirmation.rejectEvent) {\n      this.confirmation.rejectEvent.emit();\n    }\n\n    this.hide();\n  }\n\n  onOverlayClick(event) {\n    this.overlayService.add({\n      originalEvent: event,\n      target: this.el.nativeElement\n    });\n  }\n\n  bindListeners(): void {\n    /*\n     * Called inside `setTimeout` to avoid listening to the click event that appears when `confirm` is first called(bubbling).\n     * Need wait when bubbling event up and hang the handler on the next tick.\n     * This is the case when eventTarget and confirmation.target do not match when the `confirm` method is called.\n     */\n    setTimeout(() => {\n      this.bindDocumentClickListener();\n      this.bindDocumentResizeListener();\n      this.bindScrollListener();\n    });\n  }\n\n  unbindListeners() {\n    this.unbindDocumentClickListener();\n    this.unbindDocumentResizeListener();\n    this.unbindScrollListener();\n  }\n\n  bindDocumentClickListener() {\n    if (!this.documentClickListener) {\n      let documentEvent = DomHandler.isIOS() ? 'touchstart' : 'click';\n      const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : document;\n\n      this.documentClickListener = this.renderer.listen(documentTarget, documentEvent, (event) => {\n        let targetElement = <HTMLElement>this.confirmation.target;\n        if (\n          this.container !== event.target &&\n          !this.container.contains(event.target) &&\n          targetElement !== event.target &&\n          !targetElement.contains(event.target)\n        ) {\n          this.hide();\n        }\n      });\n    }\n  }\n\n  unbindDocumentClickListener() {\n    if (this.documentClickListener) {\n      this.documentClickListener();\n      this.documentClickListener = null;\n    }\n  }\n\n  onWindowResize() {\n    if (this.visible && !DomHandler.isTouchDevice()) {\n      this.hide();\n    }\n  }\n\n  bindDocumentResizeListener() {\n    this.documentResizeListener = this.onWindowResize.bind(this);\n    window.addEventListener('resize', this.documentResizeListener);\n  }\n\n  unbindDocumentResizeListener() {\n    if (this.documentResizeListener) {\n      window.removeEventListener('resize', this.documentResizeListener);\n      this.documentResizeListener = null;\n    }\n  }\n\n  bindScrollListener() {\n    if (!this.scrollHandler) {\n      this.scrollHandler = new ConnectedOverlayScrollHandler(this.confirmation.target, () => {\n        if (this.visible) {\n          this.hide();\n        }\n      });\n    }\n\n    this.scrollHandler.bindScrollListener();\n  }\n\n  unbindScrollListener() {\n    if (this.scrollHandler) {\n      this.scrollHandler.unbindScrollListener();\n    }\n  }\n\n  unsubscribeConfirmationSubscriptions() {\n    if (this.confirmation) {\n      if (this.confirmation.acceptEvent) {\n        this.confirmation.acceptEvent.unsubscribe();\n      }\n\n      if (this.confirmation.rejectEvent) {\n        this.confirmation.rejectEvent.unsubscribe();\n      }\n    }\n  }\n\n  onContainerDestroy() {\n    this.unbindListeners();\n    this.unsubscribeConfirmationSubscriptions();\n\n    if (this.autoZIndex) {\n      ZIndexUtils.clear(this.container);\n    }\n\n    this.confirmation = null;\n    this.container = null;\n  }\n\n  restoreAppend() {\n    if (this.container) {\n      document.body.removeChild(this.container);\n    }\n\n    this.onContainerDestroy();\n  }\n\n  get acceptButtonLabel(): string {\n    return this.confirmation.acceptLabel || this.config.getTranslation(TranslationKeys.ACCEPT);\n  }\n\n  get rejectButtonLabel(): string {\n    return this.confirmation.rejectLabel || this.config.getTranslation(TranslationKeys.REJECT);\n  }\n\n  ngOnDestroy() {\n    this.restoreAppend();\n\n    if (this.subscription) {\n      this.subscription.unsubscribe();\n    }\n  }\n}\n\n@NgModule({\n  imports: [CommonModule, ButtonModule],\n  exports: [ConfirmPopup],\n  declarations: [ConfirmPopup]\n})\nexport class ConfirmPopupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}