{"version":3,"file":"axulus-uikit-confirmdialog.mjs","sources":["../../src/app/components/confirmdialog/confirmdialog.ts","../../src/app/components/confirmdialog/axulus-uikit-confirmdialog.ts"],"sourcesContent":["import { animate, animation, AnimationEvent, style, transition, trigger, useAnimation } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgModule,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Output,\n  QueryList,\n  Renderer2,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {\n  Confirmation,\n  ConfirmationService,\n  ConfirmEventType,\n  Footer,\n  PrimeNGConfig,\n  PrimeTemplate,\n  TranslationKeys\n} from '@axulus/uikit/api';\nimport { ButtonModule } from '@axulus/uikit/button';\nimport { DomHandler } from '@axulus/uikit/dom';\nimport { RippleModule } from '@axulus/uikit/ripple';\nimport { UniqueComponentId, ZIndexUtils } from '@axulus/uikit/utils';\nimport { Subscription } from 'rxjs';\n\nconst showAnimation = animation([\n  style({ transform: '{{transform}}', opacity: 0 }),\n  animate('{{transition}}', style({ transform: 'none', opacity: 1 }))\n]);\n\nconst hideAnimation = animation([animate('{{transition}}', style({ transform: '{{transform}}', opacity: 0 }))]);\n\n@Component({\n  selector: 'p-confirmDialog',\n  template: `\n    <div [class]=\"maskStyleClass\" [ngClass]=\"getMaskClass()\" *ngIf=\"maskVisible\">\n      <div\n        [ngClass]=\"{ 'p-dialog p-confirm-dialog p-component': true, 'p-dialog-rtl': rtl }\"\n        [ngStyle]=\"style\"\n        [class]=\"styleClass\"\n        [@animation]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n        (@animation.start)=\"onAnimationStart($event)\"\n        (@animation.done)=\"onAnimationEnd($event)\"\n        *ngIf=\"visible\"\n      >\n        <div class=\"p-dialog-header\" *ngIf=\"headerTemplate\">\n          <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n        </div>\n        <div class=\"p-dialog-header\" *ngIf=\"!headerTemplate\">\n          <span class=\"p-dialog-title\" *ngIf=\"option('header')\">{{ option('header') }}</span>\n          <div class=\"p-dialog-header-icons\">\n            <button\n              *ngIf=\"closable\"\n              type=\"button\"\n              [ngClass]=\"{ 'p-dialog-header-icon p-dialog-header-close p-link': true }\"\n              (click)=\"close($event)\"\n              (keydown.enter)=\"close($event)\"\n            >\n              <span class=\"pi pi-times\"></span>\n            </button>\n          </div>\n        </div>\n        <div #content class=\"p-dialog-content\">\n          <i [ngClass]=\"'p-confirm-dialog-icon'\" [class]=\"option('icon')\" *ngIf=\"option('icon')\"></i>\n          <span class=\"p-confirm-dialog-message\" [innerHTML]=\"option('message')\"></span>\n        </div>\n        <div class=\"p-dialog-footer\" *ngIf=\"footer || footerTemplate\">\n          <ng-content select=\"p-footer\"></ng-content>\n          <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n        </div>\n        <div class=\"p-dialog-footer\" *ngIf=\"!footer && !footerTemplate\">\n          <button\n            type=\"button\"\n            pRipple\n            pButton\n            [icon]=\"option('rejectIcon')\"\n            [label]=\"rejectButtonLabel\"\n            (click)=\"reject()\"\n            [ngClass]=\"'p-confirm-dialog-reject'\"\n            [class]=\"option('rejectButtonStyleClass')\"\n            *ngIf=\"option('rejectVisible')\"\n            [attr.aria-label]=\"rejectAriaLabel\"\n          ></button>\n          <button\n            type=\"button\"\n            pRipple\n            pButton\n            [icon]=\"option('acceptIcon')\"\n            [label]=\"acceptButtonLabel\"\n            (click)=\"accept()\"\n            [ngClass]=\"'p-confirm-dialog-accept'\"\n            [class]=\"option('acceptButtonStyleClass')\"\n            *ngIf=\"option('acceptVisible')\"\n            [attr.aria-label]=\"acceptAriaLabel\"\n          ></button>\n        </div>\n      </div>\n    </div>\n  `,\n  animations: [\n    trigger('animation', [\n      transition('void => visible', [useAnimation(showAnimation)]),\n      transition('visible => void', [useAnimation(hideAnimation)])\n    ])\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['../dialog/dialog.css'],\n  host: {\n    class: 'p-element'\n  }\n})\nexport class ConfirmDialog implements AfterContentInit, OnInit, OnDestroy {\n  @Input() header: string;\n\n  @Input() icon: string;\n\n  @Input() message: string;\n\n  @Input() style: any;\n\n  @Input() styleClass: string;\n\n  @Input() maskStyleClass: string;\n\n  @Input() acceptIcon: string = 'pi pi-check';\n\n  @Input() acceptLabel: string;\n\n  @Input() acceptAriaLabel: string;\n\n  @Input() acceptVisible: boolean = true;\n\n  @Input() rejectIcon: string = 'pi pi-times';\n\n  @Input() rejectLabel: string;\n\n  @Input() rejectAriaLabel: string;\n\n  @Input() rejectVisible: boolean = true;\n\n  @Input() acceptButtonStyleClass: string;\n\n  @Input() rejectButtonStyleClass: string;\n\n  @Input() closeOnEscape: boolean = true;\n\n  @Input() dismissableMask: boolean;\n\n  @Input() blockScroll: boolean = true;\n\n  @Input() rtl: boolean;\n\n  @Input() closable: boolean = true;\n\n  @Input() appendTo: any;\n\n  @Input() key: string;\n\n  @Input() autoZIndex: boolean = true;\n\n  @Input() baseZIndex: number = 0;\n\n  @Input() transitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n\n  @Input() focusTrap: boolean = true;\n\n  @Input() defaultFocus: string = 'accept';\n\n  @Input() breakpoints: any;\n\n  @Input() get visible(): any {\n    return this._visible;\n  }\n  set visible(value: any) {\n    this._visible = value;\n\n    if (this._visible && !this.maskVisible) {\n      this.maskVisible = true;\n    }\n\n    this.cd.markForCheck();\n  }\n\n  @Input() get position(): string {\n    return this._position;\n  }\n\n  set position(value: string) {\n    this._position = value;\n\n    switch (value) {\n      case 'top-left':\n      case 'bottom-left':\n      case 'left':\n        this.transformOptions = 'translate3d(-100%, 0px, 0px)';\n        break;\n      case 'top-right':\n      case 'bottom-right':\n      case 'right':\n        this.transformOptions = 'translate3d(100%, 0px, 0px)';\n        break;\n      case 'bottom':\n        this.transformOptions = 'translate3d(0px, 100%, 0px)';\n        break;\n      case 'top':\n        this.transformOptions = 'translate3d(0px, -100%, 0px)';\n        break;\n      default:\n        this.transformOptions = 'scale(0.7)';\n        break;\n    }\n  }\n\n  @Output() onHide: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild(Footer) footer;\n\n  @ViewChild('content') contentViewChild: ElementRef;\n\n  @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n  ngAfterContentInit() {\n    this.templates.forEach((item) => {\n      switch (item.getType()) {\n        case 'header':\n          this.headerTemplate = item.template;\n          break;\n        case 'footer':\n          this.footerTemplate = item.template;\n          break;\n      }\n    });\n  }\n\n  headerTemplate: TemplateRef<any>;\n\n  footerTemplate: TemplateRef<any>;\n\n  confirmation: Confirmation;\n\n  _visible: boolean;\n\n  maskVisible: boolean;\n\n  documentEscapeListener: any;\n\n  container: HTMLDivElement;\n\n  wrapper: HTMLElement;\n\n  contentContainer: HTMLDivElement;\n\n  subscription: Subscription;\n\n  maskClickListener: Function;\n\n  preWidth: number;\n\n  _position: string = 'center';\n\n  transformOptions: any = 'scale(0.7)';\n\n  styleElement: any;\n\n  id = UniqueComponentId();\n\n  confirmationOptions: Confirmation;\n\n  translationSubscription: Subscription;\n\n  constructor(\n    public el: ElementRef,\n    public renderer: Renderer2,\n    private confirmationService: ConfirmationService,\n    public zone: NgZone,\n    private cd: ChangeDetectorRef,\n    public config: PrimeNGConfig\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        this.confirmationOptions = {\n          message: this.confirmation.message || this.message,\n          icon: this.confirmation.icon || this.icon,\n          header: this.confirmation.header || this.header,\n          rejectVisible: this.confirmation.rejectVisible == null ? this.rejectVisible : this.confirmation.rejectVisible,\n          acceptVisible: this.confirmation.acceptVisible == null ? this.acceptVisible : this.confirmation.acceptVisible,\n          acceptLabel: this.confirmation.acceptLabel || this.acceptLabel,\n          rejectLabel: this.confirmation.rejectLabel || this.rejectLabel,\n          acceptIcon: this.confirmation.acceptIcon || this.acceptIcon,\n          rejectIcon: this.confirmation.rejectIcon || this.rejectIcon,\n          acceptButtonStyleClass: this.confirmation.acceptButtonStyleClass || this.acceptButtonStyleClass,\n          rejectButtonStyleClass: this.confirmation.rejectButtonStyleClass || this.rejectButtonStyleClass,\n          defaultFocus: this.confirmation.defaultFocus || this.defaultFocus,\n          blockScroll:\n            this.confirmation.blockScroll === false || this.confirmation.blockScroll === true\n              ? this.confirmation.blockScroll\n              : this.blockScroll,\n          closeOnEscape:\n            this.confirmation.closeOnEscape === false || this.confirmation.closeOnEscape === true\n              ? this.confirmation.closeOnEscape\n              : this.closeOnEscape,\n          dismissableMask:\n            this.confirmation.dismissableMask === false || this.confirmation.dismissableMask === true\n              ? this.confirmation.dismissableMask\n              : this.dismissableMask\n        };\n\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  ngOnInit() {\n    if (this.breakpoints) {\n      this.createStyle();\n    }\n\n    this.translationSubscription = this.config.translationObserver.subscribe(() => {\n      if (this.visible) {\n        this.cd.markForCheck();\n      }\n    });\n  }\n\n  option(name: string) {\n    const source = this.confirmationOptions || this;\n    if (source.hasOwnProperty(name)) {\n      return source[name];\n    }\n    return undefined;\n  }\n\n  onAnimationStart(event: AnimationEvent) {\n    switch (event.toState) {\n      case 'visible':\n        this.container = event.element;\n        this.wrapper = this.container.parentElement;\n        this.contentContainer = DomHandler.findSingle(this.container, '.p-dialog-content');\n        this.container.setAttribute(this.id, '');\n        this.appendContainer();\n        this.moveOnTop();\n        this.bindGlobalListeners();\n        this.enableModality();\n\n        const element = this.getElementToFocus();\n        if (element) {\n          element.focus();\n        }\n        break;\n    }\n  }\n\n  onAnimationEnd(event: AnimationEvent) {\n    switch (event.toState) {\n      case 'void':\n        this.onOverlayHide();\n        break;\n    }\n  }\n\n  getElementToFocus() {\n    switch (this.option('defaultFocus')) {\n      case 'accept':\n        return DomHandler.findSingle(this.container, '.p-confirm-dialog-accept');\n\n      case 'reject':\n        return DomHandler.findSingle(this.container, '.p-confirm-dialog-reject');\n\n      case 'close':\n        return DomHandler.findSingle(this.container, '.p-dialog-header-close');\n\n      case 'none':\n        return null;\n\n      //backward compatibility\n      default:\n        return DomHandler.findSingle(this.container, '.p-confirm-dialog-accept');\n    }\n  }\n\n  appendContainer() {\n    if (this.appendTo) {\n      if (this.appendTo === 'body') document.body.appendChild(this.wrapper);\n      else DomHandler.appendChild(this.wrapper, this.appendTo);\n    }\n  }\n\n  restoreAppend() {\n    if (this.wrapper && this.appendTo) {\n      this.el.nativeElement.appendChild(this.wrapper);\n    }\n  }\n\n  enableModality() {\n    if (this.option('blockScroll')) {\n      DomHandler.addClass(document.body, 'p-overflow-hidden');\n    }\n\n    if (this.option('dismissableMask')) {\n      this.maskClickListener = this.renderer.listen(this.wrapper, 'mousedown', (event: any) => {\n        if (this.wrapper && this.wrapper.isSameNode(event.target)) {\n          this.close(event);\n        }\n      });\n    }\n  }\n\n  disableModality() {\n    this.maskVisible = false;\n\n    if (this.option('blockScroll')) {\n      DomHandler.removeClass(document.body, 'p-overflow-hidden');\n    }\n\n    if (this.dismissableMask) {\n      this.unbindMaskClickListener();\n    }\n\n    if (this.container && !this.cd['destroyed']) {\n      this.cd.detectChanges();\n    }\n  }\n\n  createStyle() {\n    if (!this.styleElement) {\n      this.styleElement = document.createElement('style');\n      this.styleElement.type = 'text/css';\n      document.head.appendChild(this.styleElement);\n      let innerHTML = '';\n      for (let breakpoint in this.breakpoints) {\n        innerHTML += `\n                    @media screen and (max-width: ${breakpoint}) {\n                        .p-dialog[${this.id}] {\n                            width: ${this.breakpoints[breakpoint]} !important;\n                        }\n                    }\n                `;\n      }\n\n      this.styleElement.innerHTML = innerHTML;\n    }\n  }\n\n  close(event: Event) {\n    if (this.confirmation.rejectEvent) {\n      this.confirmation.rejectEvent.emit(ConfirmEventType.CANCEL);\n    }\n\n    this.hide(ConfirmEventType.CANCEL);\n    event.preventDefault();\n  }\n\n  hide(type?) {\n    this.onHide.emit(type);\n    this.visible = false;\n    this.confirmation = null;\n    this.confirmationOptions = null;\n  }\n\n  moveOnTop() {\n    if (this.autoZIndex) {\n      ZIndexUtils.set('modal', this.container, this.baseZIndex + this.config.zIndex.modal);\n      this.wrapper.style.zIndex = String(parseInt(this.container.style.zIndex, 10) - 1);\n    }\n  }\n\n  getMaskClass() {\n    let maskClass = { 'p-dialog-mask p-component-overlay': true, 'p-dialog-mask-scrollblocker': this.blockScroll };\n    maskClass[this.getPositionClass().toString()] = true;\n    return maskClass;\n  }\n\n  getPositionClass() {\n    const positions = ['left', 'right', 'top', 'top-left', 'top-right', 'bottom', 'bottom-left', 'bottom-right'];\n    const pos = positions.find((item) => item === this.position);\n\n    return pos ? `p-dialog-${pos}` : '';\n  }\n\n  bindGlobalListeners() {\n    if ((this.option('closeOnEscape') && this.closable) || (this.focusTrap && !this.documentEscapeListener)) {\n      const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : 'document';\n\n      this.documentEscapeListener = this.renderer.listen(documentTarget, 'keydown', (event) => {\n        if (event.which == 27 && this.option('closeOnEscape') && this.closable) {\n          if (parseInt(this.container.style.zIndex) === ZIndexUtils.get(this.container) && this.visible) {\n            this.close(event);\n          }\n        }\n\n        if (event.which === 9 && this.focusTrap) {\n          event.preventDefault();\n\n          let focusableElements = DomHandler.getFocusableElements(this.container);\n\n          if (focusableElements && focusableElements.length > 0) {\n            if (!focusableElements[0].ownerDocument.activeElement) {\n              focusableElements[0].focus();\n            } else {\n              let focusedIndex = focusableElements.indexOf(focusableElements[0].ownerDocument.activeElement);\n\n              if (event.shiftKey) {\n                if (focusedIndex == -1 || focusedIndex === 0) focusableElements[focusableElements.length - 1].focus();\n                else focusableElements[focusedIndex - 1].focus();\n              } else {\n                if (focusedIndex == -1 || focusedIndex === focusableElements.length - 1) focusableElements[0].focus();\n                else focusableElements[focusedIndex + 1].focus();\n              }\n            }\n          }\n        }\n      });\n    }\n  }\n\n  unbindGlobalListeners() {\n    if (this.documentEscapeListener) {\n      this.documentEscapeListener();\n      this.documentEscapeListener = null;\n    }\n  }\n\n  unbindMaskClickListener() {\n    if (this.maskClickListener) {\n      this.maskClickListener();\n      this.maskClickListener = null;\n    }\n  }\n\n  onOverlayHide() {\n    if (this.container && this.autoZIndex) {\n      ZIndexUtils.clear(this.container);\n    }\n\n    this.disableModality();\n    this.unbindGlobalListeners();\n    this.container = null;\n  }\n\n  destroyStyle() {\n    if (this.styleElement) {\n      document.head.removeChild(this.styleElement);\n      this.styleElement = null;\n    }\n  }\n\n  ngOnDestroy() {\n    this.restoreAppend();\n    this.onOverlayHide();\n    this.subscription.unsubscribe();\n\n    if (this.translationSubscription) {\n      this.translationSubscription.unsubscribe();\n    }\n\n    this.destroyStyle();\n  }\n\n  accept() {\n    if (this.confirmation && this.confirmation.acceptEvent) {\n      this.confirmation.acceptEvent.emit();\n    }\n\n    this.hide(ConfirmEventType.ACCEPT);\n  }\n\n  reject() {\n    if (this.confirmation && this.confirmation.rejectEvent) {\n      this.confirmation.rejectEvent.emit(ConfirmEventType.REJECT);\n    }\n\n    this.hide(ConfirmEventType.REJECT);\n  }\n\n  get acceptButtonLabel(): string {\n    return this.option('acceptLabel') || this.config.getTranslation(TranslationKeys.ACCEPT);\n  }\n\n  get rejectButtonLabel(): string {\n    return this.option('rejectLabel') || this.config.getTranslation(TranslationKeys.REJECT);\n  }\n}\n\n@NgModule({\n  imports: [CommonModule, ButtonModule, RippleModule],\n  exports: [ConfirmDialog],\n  declarations: [ConfirmDialog]\n})\nexport class ConfirmDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}