{"version":3,"file":"perfect-scrollbar-angular.mjs","sources":["../../../projects/lib/src/lib/perfect-scrollbar.interfaces.ts","../../../projects/lib/src/lib/perfect-scrollbar.directive.ts","../../../projects/lib/src/lib/perfect-scrollbar.component.ts","../../../projects/lib/src/lib/perfect-scrollbar.component.html","../../../projects/lib/src/lib/perfect-scrollbar-force-native-scroll.directive.ts","../../../projects/lib/src/lib/perfect-scrollbar.module.ts","../../../projects/lib/src/perfect-scrollbar-angular.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const PERFECT_SCROLLBAR_CONFIG = new InjectionToken('PERFECT_SCROLLBAR_CONFIG');\n\nexport class Geometry {\n  public x: number;\n  public y: number;\n\n  public w: number;\n  public h: number;\n\n  constructor(x: number, y: number, w: number, h: number) {\n    this.x = x;\n    this.y = y;\n    this.w = w;\n    this.h = h;\n  }\n}\n\nexport class Position {\n  public x: number | 'start' | 'end';\n  public y: number | 'start' | 'end';\n\n  constructor(x: number | 'start' | 'end', y: number | 'start' | 'end') {\n    this.x = x;\n    this.y = y;\n  }\n}\n\nexport type PerfectScrollbarEvent = 'psScrollY' | 'psScrollX' | 'psScrollUp'| 'psScrollDown' |\n  'psScrollLeft' | 'psScrollRight' | 'psYReachEnd' | 'psYReachStart' | 'psXReachEnd' | 'psXReachStart';\n\nexport const PerfectScrollbarEvents: PerfectScrollbarEvent[] = [\n  'psScrollY',\n  'psScrollX',\n\n  'psScrollUp',\n  'psScrollDown',\n  'psScrollLeft',\n  'psScrollRight',\n\n  'psYReachEnd',\n  'psYReachStart',\n  'psXReachEnd',\n  'psXReachStart'\n];\n\nexport interface PerfectScrollbarConfigInterface {\n  handlers?: string[];\n\n  wheelSpeed?: number;\n  swipeEasing?: boolean;\n\n  suppressScrollX?: boolean;\n  suppressScrollY?: boolean;\n\n  wheelPropagation?: boolean;\n  useBothWheelAxes?: boolean;\n\n  scrollingThreshold?: number;\n\n  minScrollbarLength?: number;\n  maxScrollbarLength?: number;\n\n  scrollXMarginOffset?: number;\n  scrollYMarginOffset?: number;\n}\n\nexport class PerfectScrollbarConfig implements PerfectScrollbarConfigInterface {\n  public handlers?: string[];\n\n  public wheelSpeed?: number;\n  public swipeEasing?: boolean;\n\n  public suppressScrollX?: boolean;\n  public suppressScrollY?: boolean;\n\n  public wheelPropagation?: boolean;\n  public useBothWheelAxes?: boolean;\n\n  public scrollingThreshold?: number;\n\n  public minScrollbarLength?: number;\n  public maxScrollbarLength?: number;\n\n  public scrollXMarginOffset?: number;\n  public scrollYMarginOffset?: number;\n\n  constructor(config: PerfectScrollbarConfigInterface = {}) {\n    this.assign(config);\n  }\n\n  public assign(config: PerfectScrollbarConfigInterface = {}) {\n    for (const key in config) {\n      this[key as keyof PerfectScrollbarConfig] = config[key as keyof PerfectScrollbarConfigInterface] as never;\n    }\n  }\n}\n","import PerfectScrollbar from 'perfect-scrollbar';\n\nimport ResizeObserver from 'resize-observer-polyfill';\n\nimport { Subject, fromEvent } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\n\nimport { PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { NgZone, Inject, Optional, ElementRef, Directive,\n  OnInit, DoCheck, OnChanges, OnDestroy, Input, Output, EventEmitter,\n  SimpleChanges, KeyValueDiffer, KeyValueDiffers } from '@angular/core';\n\nimport { Geometry, Position } from './perfect-scrollbar.interfaces';\n\nimport { PERFECT_SCROLLBAR_CONFIG, PerfectScrollbarConfig, PerfectScrollbarConfigInterface,\n  PerfectScrollbarEvent, PerfectScrollbarEvents } from './perfect-scrollbar.interfaces';\n\n@Directive({\n  selector: '[perfectScrollbar]',\n  exportAs: 'ngxPerfectScrollbar'\n})\nexport class PerfectScrollbarDirective implements OnInit, OnDestroy, DoCheck, OnChanges {\n  private instance: PerfectScrollbar | null = null;\n\n  private ro: ResizeObserver | null = null;\n\n  private timeout: number | null = null;\n  private animation: number | null = null;\n\n  private configDiff: KeyValueDiffer<string, any> | null = null;\n\n  private readonly ngDestroy: Subject<void> = new Subject();\n\n  @Input() disabled: boolean = false;\n\n  @Input('perfectScrollbar') config?: PerfectScrollbarConfigInterface;\n\n  @Output() psScrollY: EventEmitter<any> = new EventEmitter<any>();\n  @Output() psScrollX: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() psScrollUp: EventEmitter<any> = new EventEmitter<any>();\n  @Output() psScrollDown: EventEmitter<any> = new EventEmitter<any>();\n  @Output() psScrollLeft: EventEmitter<any> = new EventEmitter<any>();\n  @Output() psScrollRight: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() psYReachEnd: EventEmitter<any> = new EventEmitter<any>();\n  @Output() psYReachStart: EventEmitter<any> = new EventEmitter<any>();\n  @Output() psXReachEnd: EventEmitter<any> = new EventEmitter<any>();\n  @Output() psXReachStart: EventEmitter<any> = new EventEmitter<any>();\n\n  constructor(private zone: NgZone, private differs: KeyValueDiffers,\n    public elementRef: ElementRef, @Inject(PLATFORM_ID) private platformId: Object,\n    @Optional() @Inject(PERFECT_SCROLLBAR_CONFIG) private defaults: PerfectScrollbarConfigInterface) {}\n\n  ngOnInit(): void {\n    if (!this.disabled && isPlatformBrowser(this.platformId)) {\n      const config = new PerfectScrollbarConfig(this.defaults);\n\n      config.assign(this.config); // Custom configuration\n\n      this.zone.runOutsideAngular(() => {\n        this.instance = new PerfectScrollbar(this.elementRef.nativeElement, config);\n      });\n\n      if (!this.configDiff) {\n        this.configDiff = this.differs.find(this.config || {}).create();\n\n        this.configDiff.diff(this.config || {});\n      }\n\n      this.zone.runOutsideAngular(() => {\n        this.ro = new ResizeObserver(() => {\n          this.update();\n        });\n\n        if (this.elementRef.nativeElement.children[0]) {\n          this.ro.observe(this.elementRef.nativeElement.children[0]);\n        }\n\n        this.ro.observe(this.elementRef.nativeElement);\n      });\n\n      this.zone.runOutsideAngular(() => {\n        PerfectScrollbarEvents.forEach((eventName: PerfectScrollbarEvent) => {\n          const eventType = eventName.replace(/([A-Z])/g, (c) => `-${c.toLowerCase()}`);\n\n          fromEvent<Event>(this.elementRef.nativeElement, eventType)\n            .pipe(\n              auditTime(20),\n              takeUntil(this.ngDestroy)\n            )\n            .subscribe((event: Event) => {\n              this[eventName].emit(event);\n            });\n        });\n      });\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (isPlatformBrowser(this.platformId)) {\n      this.ngDestroy.next();\n      this.ngDestroy.complete();\n\n      if (this.ro) {\n        this.ro.disconnect();\n      }\n\n      if (this.timeout && typeof window !== 'undefined') {\n        window.clearTimeout(this.timeout);\n      }\n\n      this.zone.runOutsideAngular(() => {\n        if (this.instance) {\n          this.instance.destroy();\n        }\n      });\n\n      this.instance = null;\n    }\n  }\n\n  ngDoCheck(): void {\n    if (!this.disabled && this.configDiff && isPlatformBrowser(this.platformId)) {\n      const changes = this.configDiff.diff(this.config || {});\n\n      if (changes) {\n        this.ngOnDestroy();\n\n        this.ngOnInit();\n      }\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['disabled'] && !changes['disabled'].isFirstChange() && isPlatformBrowser(this.platformId)) {\n      if (changes['disabled'].currentValue !== changes['disabled'].previousValue) {\n        if (changes['disabled'].currentValue === true) {\n         this.ngOnDestroy();\n        } else if (changes['disabled'].currentValue === false) {\n          this.ngOnInit();\n        }\n      }\n    }\n  }\n\n  public ps(): PerfectScrollbar | null {\n    return this.instance;\n  }\n\n  public update(): void {\n    if (typeof window !== 'undefined') {\n      if (this.timeout) {\n        window.clearTimeout(this.timeout);\n      }\n\n      this.timeout = window.setTimeout(() => {\n        if (!this.disabled && this.configDiff) {\n          try {\n            this.zone.runOutsideAngular(() => {\n              if (this.instance) {\n                this.instance.update();\n              }\n            });\n          } catch (error) {\n            // Update can be finished after destroy so catch errors\n          }\n        }\n      }, 0);\n    }\n  }\n\n  public geometry(prefix: string = 'scroll'): Geometry {\n    return new Geometry(\n      this.elementRef.nativeElement[prefix + 'Left'],\n      this.elementRef.nativeElement[prefix + 'Top'],\n      this.elementRef.nativeElement[prefix + 'Width'],\n      this.elementRef.nativeElement[prefix + 'Height']\n    );\n  }\n\n  public position(absolute: boolean = false): Position {\n    if (!absolute && this.instance) {\n      return new Position(\n        this.instance.reach.x || 0,\n        this.instance.reach.y || 0\n      );\n    } else {\n      return new Position(\n        this.elementRef.nativeElement.scrollLeft,\n        this.elementRef.nativeElement.scrollTop\n      );\n    }\n  }\n\n  public scrollable(direction: string = 'any'): boolean {\n    const element = this.elementRef.nativeElement;\n\n    if (direction === 'any') {\n      return element.classList.contains('ps--active-x') ||\n        element.classList.contains('ps--active-y');\n    } else if (direction === 'both') {\n      return element.classList.contains('ps--active-x') &&\n        element.classList.contains('ps--active-y');\n    } else {\n      return element.classList.contains('ps--active-' + direction);\n    }\n  }\n\n  public scrollTo(x: number, y?: number, speed?: number): void {\n    if (!this.disabled) {\n      if (y == null && speed == null) {\n        this.animateScrolling('scrollTop', x, speed);\n      } else {\n        if (x != null) {\n          this.animateScrolling('scrollLeft', x, speed);\n        }\n\n        if (y != null) {\n          this.animateScrolling('scrollTop', y, speed);\n        }\n      }\n    }\n  }\n\n  public scrollToX(x: number, speed?: number): void {\n    this.animateScrolling('scrollLeft', x, speed);\n  }\n\n  public scrollToY(y: number, speed?: number): void {\n    this.animateScrolling('scrollTop', y, speed);\n  }\n\n  public scrollToTop(offset?: number, speed?: number): void {\n    this.animateScrolling('scrollTop', (offset || 0), speed);\n  }\n\n  public scrollToLeft(offset?: number, speed?: number): void {\n    this.animateScrolling('scrollLeft', (offset || 0), speed);\n  }\n\n  public scrollToRight(offset?: number, speed?: number): void {\n    const left = this.elementRef.nativeElement.scrollWidth -\n      this.elementRef.nativeElement.clientWidth;\n\n    this.animateScrolling('scrollLeft', left - (offset || 0), speed);\n  }\n\n  public scrollToBottom(offset?: number, speed?: number): void {\n    const top = this.elementRef.nativeElement.scrollHeight -\n      this.elementRef.nativeElement.clientHeight;\n\n    this.animateScrolling('scrollTop', top - (offset || 0), speed);\n  }\n\n  public scrollToElement(element: HTMLElement | string, offset?: number, speed?: number): void {\n    if (typeof element === 'string') {\n      element = this.elementRef.nativeElement.querySelector(element) as HTMLElement;\n    }\n\n    if (element) {\n      const elementPos = element.getBoundingClientRect();\n\n      const scrollerPos = this.elementRef.nativeElement.getBoundingClientRect();\n\n      if (this.elementRef.nativeElement.classList.contains('ps--active-x')) {\n        const currentPos = this.elementRef.nativeElement['scrollLeft'];\n\n        const position = elementPos.left - scrollerPos.left + currentPos;\n\n        this.animateScrolling('scrollLeft', position + (offset || 0), speed);\n      }\n\n      if (this.elementRef.nativeElement.classList.contains('ps--active-y')) {\n        const currentPos = this.elementRef.nativeElement['scrollTop'];\n\n        const position = elementPos.top - scrollerPos.top + currentPos;\n\n        this.animateScrolling('scrollTop', position + (offset || 0), speed);\n      }\n    }\n  }\n\n  private animateScrolling(target: string, value: number, speed?: number): void {\n    if (this.animation) {\n      window.cancelAnimationFrame(this.animation);\n\n      this.animation = null;\n    }\n\n    if (!speed || typeof window === 'undefined') {\n      this.elementRef.nativeElement[target] = value;\n    } else if (value !== this.elementRef.nativeElement[target]) {\n      let newValue = 0;\n      let scrollCount = 0;\n\n      let oldTimestamp = performance.now();\n      let oldValue = this.elementRef.nativeElement[target];\n\n      const cosParameter = (oldValue - value) / 2;\n\n      const step = (newTimestamp: number) => {\n        scrollCount += Math.PI / (speed / (newTimestamp - oldTimestamp));\n\n        newValue = Math.round(value + cosParameter + cosParameter * Math.cos(scrollCount));\n\n        // Only continue animation if scroll position has not changed\n        if (this.elementRef.nativeElement[target] === oldValue) {\n          if (scrollCount >= Math.PI) {\n            this.animateScrolling(target, value, 0);\n          } else {\n            this.elementRef.nativeElement[target] = newValue;\n\n            // On a zoomed out page the resulting offset may differ\n            oldValue = this.elementRef.nativeElement[target];\n\n            oldTimestamp = newTimestamp;\n\n            this.animation = window.requestAnimationFrame(step);\n          }\n        }\n      };\n\n      window.requestAnimationFrame(step);\n    }\n  }\n}\n","import { Subject, merge, fromEvent } from 'rxjs';\nimport { mapTo, takeUntil, distinctUntilChanged } from 'rxjs/operators';\n\nimport { PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { NgZone, Inject, Component,\n  OnInit, OnDestroy, DoCheck, Input, Output, EventEmitter, HostBinding,\n  ViewChild, ViewEncapsulation, ChangeDetectorRef } from '@angular/core';\n\nimport { PerfectScrollbarDirective } from './perfect-scrollbar.directive';\n\nimport { PerfectScrollbarEvent, PerfectScrollbarEvents,\n  PerfectScrollbarConfigInterface } from './perfect-scrollbar.interfaces';\n\n@Component({\n  selector: 'perfect-scrollbar',\n  exportAs: 'ngxPerfectScrollbar',\n  templateUrl: './perfect-scrollbar.component.html',\n  styleUrls: [\n    './perfect-scrollbar.component.css',\n    '../../../../node_modules/perfect-scrollbar/css/perfect-scrollbar.css'\n  ],\n  encapsulation: ViewEncapsulation.None\n})\nexport class PerfectScrollbarComponent implements OnInit, OnDestroy, DoCheck {\n  public states: any = {};\n\n  public indicatorX: boolean = false;\n  public indicatorY: boolean = false;\n\n  public interaction: boolean = false;\n\n  private scrollPositionX: number = 0;\n  private scrollPositionY: number = 0;\n\n  private scrollDirectionX: number = 0;\n  private scrollDirectionY: number = 0;\n\n  private usePropagationX: boolean = false;\n  private usePropagationY: boolean = false;\n\n  private allowPropagationX: boolean = false;\n  private allowPropagationY: boolean = false;\n\n  private stateTimeout: number | null = null;\n\n  private readonly ngDestroy: Subject<void> = new Subject();\n\n  private readonly stateUpdate: Subject<string> = new Subject();\n\n  @Input() disabled: boolean = false;\n\n  @Input() usePSClass: boolean = true;\n\n  @HostBinding('class.ps-show-limits')\n  @Input() autoPropagation: boolean = false;\n\n  @HostBinding('class.ps-show-active')\n  @Input() scrollIndicators: boolean = false;\n\n  @Input() config?: PerfectScrollbarConfigInterface;\n\n  @Output() psScrollY: EventEmitter<any> = new EventEmitter<any>();\n  @Output() psScrollX: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() psScrollUp: EventEmitter<any> = new EventEmitter<any>();\n  @Output() psScrollDown: EventEmitter<any> = new EventEmitter<any>();\n  @Output() psScrollLeft: EventEmitter<any> = new EventEmitter<any>();\n  @Output() psScrollRight: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() psYReachEnd: EventEmitter<any> = new EventEmitter<any>();\n  @Output() psYReachStart: EventEmitter<any> = new EventEmitter<any>();\n  @Output() psXReachEnd: EventEmitter<any> = new EventEmitter<any>();\n  @Output() psXReachStart: EventEmitter<any> = new EventEmitter<any>();\n\n  @ViewChild(PerfectScrollbarDirective, { static: true }) directiveRef?: PerfectScrollbarDirective;\n\n  constructor(private zone: NgZone, private cdRef: ChangeDetectorRef,\n    @Inject(PLATFORM_ID) private platformId: Object) {}\n\n  ngOnInit(): void {\n    if (isPlatformBrowser(this.platformId)) {\n      this.stateUpdate\n        .pipe(\n          takeUntil(this.ngDestroy),\n          distinctUntilChanged((a, b) => (a === b && !this.stateTimeout))\n        )\n        .subscribe((state: string) => {\n          if (this.stateTimeout && typeof window !== 'undefined') {\n            window.clearTimeout(this.stateTimeout);\n\n            this.stateTimeout = null;\n          }\n\n          if (state === 'x' || state === 'y') {\n            this.interaction = false;\n\n            if (state === 'x') {\n              this.indicatorX = false;\n\n              this.states.left = false;\n              this.states.right = false;\n\n              if (this.autoPropagation && this.usePropagationX) {\n                this.allowPropagationX = false;\n              }\n            } else if (state === 'y') {\n              this.indicatorY = false;\n\n              this.states.top = false;\n              this.states.bottom = false;\n\n              if (this.autoPropagation && this.usePropagationY) {\n                this.allowPropagationY = false;\n              }\n            }\n          } else {\n            if (state === 'left' || state === 'right') {\n              this.states.left = false;\n              this.states.right = false;\n\n              this.states[state] = true;\n\n              if (this.autoPropagation && this.usePropagationX) {\n                this.indicatorX = true;\n              }\n            } else if (state === 'top' || state === 'bottom') {\n              this.states.top = false;\n              this.states.bottom = false;\n\n              this.states[state] = true;\n\n              if (this.autoPropagation && this.usePropagationY) {\n                this.indicatorY = true;\n              }\n            }\n\n            if (this.autoPropagation && typeof window !== 'undefined') {\n              this.stateTimeout = window.setTimeout(() => {\n                this.indicatorX = false;\n                this.indicatorY = false;\n\n                this.stateTimeout = null;\n\n                if (this.interaction && (this.states.left || this.states.right)) {\n                  this.allowPropagationX = true;\n                }\n\n                if (this.interaction && (this.states.top || this.states.bottom)) {\n                  this.allowPropagationY = true;\n                }\n\n                this.cdRef.markForCheck();\n              }, 500);\n            }\n          }\n\n          this.cdRef.markForCheck();\n          this.cdRef.detectChanges();\n        });\n\n      this.zone.runOutsideAngular(() => {\n        if (this.directiveRef) {\n          const element = this.directiveRef.elementRef.nativeElement;\n\n          fromEvent<WheelEvent>(element, 'wheel')\n            .pipe(\n              takeUntil(this.ngDestroy)\n            )\n            .subscribe((event: WheelEvent) => {\n              if (!this.disabled && this.autoPropagation) {\n                const scrollDeltaX = event.deltaX;\n                const scrollDeltaY = event.deltaY;\n\n                this.checkPropagation(event, scrollDeltaX, scrollDeltaY);\n              }\n            });\n\n          fromEvent<TouchEvent>(element, 'touchmove')\n            .pipe(\n              takeUntil(this.ngDestroy)\n            )\n            .subscribe((event: TouchEvent) => {\n              if (!this.disabled && this.autoPropagation) {\n                const scrollPositionX = event.touches[0].clientX;\n                const scrollPositionY = event.touches[0].clientY;\n\n                const scrollDeltaX = scrollPositionX - this.scrollPositionX;\n                const scrollDeltaY = scrollPositionY - this.scrollPositionY;\n\n                this.checkPropagation(event, scrollDeltaX, scrollDeltaY);\n\n                this.scrollPositionX = scrollPositionX;\n                this.scrollPositionY = scrollPositionY;\n              }\n            });\n\n            merge(\n              fromEvent(element, 'ps-scroll-x')\n                .pipe(mapTo('x')),\n              fromEvent(element, 'ps-scroll-y')\n                .pipe(mapTo('y')),\n              fromEvent(element, 'ps-x-reach-end')\n                .pipe(mapTo('right')),\n              fromEvent(element, 'ps-y-reach-end')\n                .pipe(mapTo('bottom')),\n              fromEvent(element, 'ps-x-reach-start')\n                .pipe(mapTo('left')),\n              fromEvent(element, 'ps-y-reach-start')\n                .pipe(mapTo('top')),\n            )\n            .pipe(\n              takeUntil(this.ngDestroy)\n            )\n            .subscribe((state: string) => {\n              if (!this.disabled && (this.autoPropagation || this.scrollIndicators)) {\n                this.stateUpdate.next(state);\n              }\n            });\n        }\n      });\n\n      window.setTimeout(() => {\n        PerfectScrollbarEvents.forEach((eventName: PerfectScrollbarEvent) => {\n          if (this.directiveRef) {\n            this.directiveRef[eventName] = this[eventName];\n          }\n        });\n      }, 0);\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (isPlatformBrowser(this.platformId)) {\n      this.ngDestroy.next();\n      this.ngDestroy.unsubscribe();\n\n      if (this.stateTimeout && typeof window !== 'undefined') {\n        window.clearTimeout(this.stateTimeout);\n      }\n    }\n  }\n\n  ngDoCheck(): void {\n    if (isPlatformBrowser(this.platformId)) {\n      if (!this.disabled && this.autoPropagation && this.directiveRef) {\n        const element = this.directiveRef.elementRef.nativeElement;\n\n        this.usePropagationX = element.classList.contains('ps--active-x');\n\n        this.usePropagationY = element.classList.contains('ps--active-y');\n      }\n    }\n  }\n\n  private checkPropagation(event: any, deltaX: number, deltaY: number): void {\n    this.interaction = true;\n\n    const scrollDirectionX = (deltaX < 0) ? -1 : 1;\n    const scrollDirectionY = (deltaY < 0) ? -1 : 1;\n\n    if ((this.usePropagationX && this.usePropagationY) ||\n        (this.usePropagationX && (!this.allowPropagationX ||\n        (this.scrollDirectionX !== scrollDirectionX))) ||\n        (this.usePropagationY && (!this.allowPropagationY ||\n        (this.scrollDirectionY !== scrollDirectionY))))\n    {\n      event.preventDefault();\n      event.stopPropagation();\n    }\n\n    if (!!deltaX) {\n      this.scrollDirectionX = scrollDirectionX;\n    }\n\n    if (!!deltaY) {\n      this.scrollDirectionY = scrollDirectionY;\n    }\n\n    this.stateUpdate.next('interaction');\n\n    this.cdRef.detectChanges();\n  }\n}\n","<div style=\"position: static;\" [class.ps]=\"usePSClass\" [perfectScrollbar]=\"config\" [disabled]=\"disabled\">\n  <div class=\"ps-content\">\n    <ng-content></ng-content>\n  </div>\n\n  <div *ngIf=\"scrollIndicators\" class=\"ps-overlay\" [class.ps-at-top]=\"states.top\" [class.ps-at-left]=\"states.left\" [class.ps-at-right]=\"states.right\" [class.ps-at-bottom]=\"states.bottom\">\n    <div class=\"ps-indicator-top\" [class.ps-indicator-show]=\"indicatorY && interaction\"></div>\n    <div class=\"ps-indicator-left\" [class.ps-indicator-show]=\"indicatorX && interaction\"></div>\n    <div class=\"ps-indicator-right\" [class.ps-indicator-show]=\"indicatorX && interaction\"></div>\n    <div class=\"ps-indicator-bottom\" [class.ps-indicator-show]=\"indicatorY && interaction\"></div>\n  </div>\n</div>\n","import { Directive, ElementRef, Renderer2 } from '@angular/core';\n\n@Directive({\n  selector: '[forceNativeScrolling]'\n})\nexport class ForceNativeScrollDirective {\n\n  constructor(private renderer: Renderer2, el: ElementRef) {\n    ['ps__child', 'ps__child--consume'].forEach((className) => {\n      this.renderer.addClass(el?.nativeElement, className);\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PerfectScrollbarComponent } from './perfect-scrollbar.component';\nimport { PerfectScrollbarDirective } from './perfect-scrollbar.directive';\nimport { ForceNativeScrollDirective } from './perfect-scrollbar-force-native-scroll.directive';\n\n@NgModule({\n    imports: [CommonModule],\n    declarations: [PerfectScrollbarComponent, PerfectScrollbarDirective, ForceNativeScrollDirective],\n    exports: [CommonModule, PerfectScrollbarComponent, PerfectScrollbarDirective, ForceNativeScrollDirective]\n})\nexport class PerfectScrollbarModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.PerfectScrollbarDirective"],"mappings":"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"}