{"version":3,"file":"axulus-uikit-styleclass.mjs","sources":["../../src/app/components/styleclass/styleclass.ts","../../src/app/components/styleclass/axulus-uikit-styleclass.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Directive, ElementRef, Input, NgModule, OnDestroy, Renderer2 } from '@angular/core';\nimport { DomHandler } from '@axulus/uikit/dom';\n\n@Directive({\n  selector: '[pStyleClass]',\n  host: {\n    class: 'p-element'\n  }\n})\nexport class StyleClass implements AfterViewInit, OnDestroy {\n  constructor(public el: ElementRef, public renderer: Renderer2) {}\n\n  @Input('pStyleClass') selector: string;\n\n  @Input() enterClass: string;\n\n  @Input() enterActiveClass: string;\n\n  @Input() enterToClass: string;\n\n  @Input() leaveClass: string;\n\n  @Input() leaveActiveClass: string;\n\n  @Input() leaveToClass: string;\n\n  @Input() hideOnOutsideClick: boolean;\n\n  @Input() toggleClass: string;\n\n  @Input() activeHostClass: string;\n\n  eventListener: Function;\n\n  documentListener: Function;\n\n  target: HTMLElement;\n\n  enterListener: Function;\n\n  leaveListener: Function;\n\n  animating: boolean;\n\n  ngAfterViewInit() {\n    this.eventListener = this.renderer.listen(this.el.nativeElement, 'click', () => {\n      this.target = this.resolveTarget();\n\n      if (this.activeHostClass) {\n        const host = this.el.nativeElement;\n        if (DomHandler.hasClass(host, this.activeHostClass)) DomHandler.removeClass(host, this.activeHostClass);\n        else DomHandler.addClass(host, this.activeHostClass);\n      }\n\n      if (this.toggleClass) {\n        if (DomHandler.hasClass(this.target, this.toggleClass)) DomHandler.removeClass(this.target, this.toggleClass);\n        else DomHandler.addClass(this.target, this.toggleClass);\n      } else {\n        if (this.target.offsetParent === null) this.enter();\n        else this.leave();\n      }\n    });\n  }\n\n  enter() {\n    if (this.enterActiveClass) {\n      if (!this.animating) {\n        this.animating = true;\n\n        if (this.enterActiveClass === 'slidedown') {\n          this.target.style.height = '0px';\n          DomHandler.removeClass(this.target, 'hidden');\n          this.target.style.maxHeight = this.target.scrollHeight + 'px';\n          DomHandler.addClass(this.target, 'hidden');\n          this.target.style.height = '';\n        }\n\n        DomHandler.addClass(this.target, this.enterActiveClass);\n        if (this.enterClass) {\n          DomHandler.removeClass(this.target, this.enterClass);\n        }\n\n        this.enterListener = this.renderer.listen(this.target, 'animationend', () => {\n          DomHandler.removeClass(this.target, this.enterActiveClass);\n          if (this.enterToClass) {\n            DomHandler.addClass(this.target, this.enterToClass);\n          }\n          this.enterListener();\n\n          if (this.enterActiveClass === 'slidedown') {\n            this.target.style.maxHeight = '';\n          }\n          this.animating = false;\n        });\n      }\n    } else {\n      if (this.enterClass) {\n        DomHandler.removeClass(this.target, this.enterClass);\n      }\n\n      if (this.enterToClass) {\n        DomHandler.addClass(this.target, this.enterToClass);\n      }\n    }\n\n    if (this.hideOnOutsideClick) {\n      this.bindDocumentListener();\n    }\n  }\n\n  leave() {\n    if (this.leaveActiveClass) {\n      if (!this.animating) {\n        this.animating = true;\n        DomHandler.addClass(this.target, this.leaveActiveClass);\n        if (this.leaveClass) {\n          DomHandler.removeClass(this.target, this.leaveClass);\n        }\n\n        this.leaveListener = this.renderer.listen(this.target, 'animationend', () => {\n          DomHandler.removeClass(this.target, this.leaveActiveClass);\n          if (this.leaveToClass) {\n            DomHandler.addClass(this.target, this.leaveToClass);\n          }\n          this.leaveListener();\n          this.animating = false;\n        });\n      }\n    } else {\n      if (this.leaveClass) {\n        DomHandler.removeClass(this.target, this.leaveClass);\n      }\n\n      if (this.leaveToClass) {\n        DomHandler.addClass(this.target, this.leaveToClass);\n      }\n    }\n\n    if (this.hideOnOutsideClick) {\n      this.unbindDocumentListener();\n    }\n  }\n\n  resolveTarget() {\n    if (this.target) {\n      return this.target;\n    }\n\n    switch (this.selector) {\n      case '@next':\n        return this.el.nativeElement.nextElementSibling;\n\n      case '@prev':\n        return this.el.nativeElement.previousElementSibling;\n\n      case '@parent':\n        return this.el.nativeElement.parentElement;\n\n      case '@grandparent':\n        return this.el.nativeElement.parentElement.parentElement;\n\n      default:\n        return document.querySelector(this.selector);\n    }\n  }\n\n  bindDocumentListener() {\n    if (!this.documentListener) {\n      this.documentListener = this.renderer.listen(this.el.nativeElement.ownerDocument, 'click', (event) => {\n        if (!this.isVisible() || getComputedStyle(this.target).getPropertyValue('position') === 'static') this.unbindDocumentListener();\n        else if (this.isOutsideClick(event)) this.leave();\n      });\n    }\n  }\n\n  isVisible() {\n    return this.target.offsetParent !== null;\n  }\n\n  isOutsideClick(event: MouseEvent) {\n    return (\n      !this.el.nativeElement.isSameNode(event.target) &&\n      !this.el.nativeElement.contains(event.target) &&\n      !this.target.contains(<HTMLElement>event.target)\n    );\n  }\n\n  unbindDocumentListener() {\n    if (this.documentListener) {\n      this.documentListener();\n      this.documentListener = null;\n    }\n  }\n\n  ngOnDestroy() {\n    this.target = null;\n    if (this.eventListener) {\n      this.eventListener();\n    }\n    this.unbindDocumentListener();\n  }\n}\n\n@NgModule({\n  imports: [CommonModule],\n  exports: [StyleClass],\n  declarations: [StyleClass]\n})\nexport class StyleClassModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}