@ahmedhfarag/ngx-perfect-scrollbar 20.0.8 → 20.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,8 +2,7 @@ import { Subject, fromEvent, merge } from 'rxjs';
2
2
  import { auditTime, takeUntil, distinctUntilChanged, mapTo } from 'rxjs/operators';
3
3
  import * as i0 from '@angular/core';
4
4
  import { InjectionToken, EventEmitter, PLATFORM_ID, Directive, Inject, Optional, Input, Output, Component, ViewEncapsulation, HostBinding, ViewChild } from '@angular/core';
5
- import * as i1 from '@angular/common';
6
- import { isPlatformBrowser, CommonModule, NgIf } from '@angular/common';
5
+ import { isPlatformBrowser, CommonModule } from '@angular/common';
7
6
  import PerfectScrollbar from 'perfect-scrollbar';
8
7
  import ResizeObserver from 'resize-observer-polyfill';
9
8
 
@@ -563,19 +562,26 @@ class PerfectScrollbarComponent {
563
562
  this.cdRef.detectChanges();
564
563
  }
565
564
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: PerfectScrollbarComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
566
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: PerfectScrollbarComponent, isStandalone: true, selector: "perfect-scrollbar", inputs: { disabled: "disabled", usePSClass: "usePSClass", autoPropagation: "autoPropagation", scrollIndicators: "scrollIndicators", config: "config" }, outputs: { psScrollY: "psScrollY", psScrollX: "psScrollX", psScrollUp: "psScrollUp", psScrollDown: "psScrollDown", psScrollLeft: "psScrollLeft", psScrollRight: "psScrollRight", psYReachEnd: "psYReachEnd", psYReachStart: "psYReachStart", psXReachEnd: "psXReachEnd", psXReachStart: "psXReachStart" }, host: { properties: { "class.ps-show-limits": "this.autoPropagation", "class.ps-show-active": "this.scrollIndicators" } }, viewQueries: [{ propertyName: "directiveRef", first: true, predicate: PerfectScrollbarDirective, descendants: true, static: true }], exportAs: ["ngxPerfectScrollbar"], ngImport: i0, template: "<div #contentDiv\n [class.ps]=\"usePSClass\"\n [perfectScrollbar]=\"config\"\n [attr.disabled]=\"disabled ? '' : null\">\n <div class=\"ps-content\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"scrollIndicators\" class=\"ps-overlay\"\n [class.ps-at-top]=\"states.top\"\n [class.ps-at-left]=\"states.left\"\n [class.ps-at-right]=\"states.right\"\n [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>", styles: ["perfect-scrollbar{position:relative;display:block;overflow:hidden;width:100%;height:100%;max-width:100%;max-height:100%}perfect-scrollbar[hidden]{display:none}perfect-scrollbar[fxflex]{display:flex;flex-direction:column;height:auto;min-width:0;min-height:0;-webkit-box-direction:column;-webkit-box-orient:column}perfect-scrollbar[fxflex]>.ps{-ms-flex:1 1 auto;flex:1 1 auto;width:auto;height:auto;min-width:0;min-height:0;-webkit-box-flex:1}perfect-scrollbar[fxlayout]>.ps,perfect-scrollbar[fxlayout]>.ps>.ps-content{display:flex;-ms-flex:1 1 auto;flex:1 1 auto;flex-direction:inherit;align-items:inherit;align-content:inherit;justify-content:inherit;width:100%;height:100%;-webkit-box-align:inherit;-webkit-box-direction:inherit;-webkit-box-flex:1;-webkit-box-orient:inherit;-webkit-box-pack:inherit}perfect-scrollbar[fxlayout=row]>.ps,perfect-scrollbar[fxlayout=row]>.ps>.ps-content{flex-direction:row!important;-webkit-box-direction:row!important;-webkit-box-orient:row!important}perfect-scrollbar[fxlayout=column]>.ps,perfect-scrollbar[fxlayout=column]>.ps>.ps-content{flex-direction:column!important;-webkit-box-direction:column!important;-webkit-box-orient:column!important}perfect-scrollbar>.ps{position:static;display:block;width:100%;height:100%;max-width:100%;max-height:100%}perfect-scrollbar>.ps textarea{-ms-overflow-style:scrollbar}perfect-scrollbar>.ps>.ps-overlay{position:absolute;inset:0;display:block;overflow:hidden;pointer-events:none}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom{position:absolute;opacity:0;transition:opacity .3s ease-in-out}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom{left:0;min-width:100%;min-height:24px}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right{top:0;min-width:24px;min-height:100%}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top{top:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left{left:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right{right:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom{bottom:0}perfect-scrollbar>.ps.ps--active-y>.ps__rail-y{top:0!important;right:0!important;left:auto!important;width:10px;cursor:default;transition:width .2s linear,opacity .2s linear,background-color .2s linear}perfect-scrollbar>.ps.ps--active-y>.ps__rail-y:hover,perfect-scrollbar>.ps.ps--active-y>.ps__rail-y.ps--clicking{width:15px}perfect-scrollbar>.ps.ps--active-x>.ps__rail-x{top:auto!important;bottom:0!important;left:0!important;height:10px;cursor:default;transition:height .2s linear,opacity .2s linear,background-color .2s linear}perfect-scrollbar>.ps.ps--active-x>.ps__rail-x:hover,perfect-scrollbar>.ps.ps--active-x>.ps__rail-x.ps--clicking{height:15px}perfect-scrollbar>.ps.ps--active-x.ps--active-y>.ps__rail-y{margin:0 0 10px}perfect-scrollbar>.ps.ps--active-x.ps--active-y>.ps__rail-x{margin:0 10px 0 0}perfect-scrollbar>.ps.ps--scrolling-y>.ps__rail-y,perfect-scrollbar>.ps.ps--scrolling-x>.ps__rail-x{opacity:.9;background-color:#eee}perfect-scrollbar.ps-show-always>.ps.ps--active-y>.ps__rail-y,perfect-scrollbar.ps-show-always>.ps.ps--active-x>.ps__rail-x{opacity:.6}perfect-scrollbar.ps-show-active>.ps.ps--active-y>.ps-overlay:not(.ps-at-top) .ps-indicator-top{opacity:1;background:linear-gradient(to bottom,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active>.ps.ps--active-y>.ps-overlay:not(.ps-at-bottom) .ps-indicator-bottom{opacity:1;background:linear-gradient(to top,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active>.ps.ps--active-x>.ps-overlay:not(.ps-at-left) .ps-indicator-left{opacity:1;background:linear-gradient(to right,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active>.ps.ps--active-x>.ps-overlay:not(.ps-at-right) .ps-indicator-right{opacity:1;background:linear-gradient(to left,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-top .ps-indicator-top{background:linear-gradient(to bottom,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-bottom .ps-indicator-bottom{background:linear-gradient(to top,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-left .ps-indicator-left{background:linear-gradient(to right,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-right .ps-indicator-right{background:linear-gradient(to left,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-top .ps-indicator-top.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-bottom .ps-indicator-bottom.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-left .ps-indicator-left.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-right .ps-indicator-right.ps-indicator-show{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PerfectScrollbarDirective, selector: "[perfectScrollbar]", inputs: ["disabled", "perfectScrollbar"], outputs: ["psScrollY", "psScrollX", "psScrollUp", "psScrollDown", "psScrollLeft", "psScrollRight", "psYReachEnd", "psYReachStart", "psXReachEnd", "psXReachStart"], exportAs: ["ngxPerfectScrollbar"] }], encapsulation: i0.ViewEncapsulation.None });
565
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: PerfectScrollbarComponent, isStandalone: true, selector: "perfect-scrollbar", inputs: { disabled: "disabled", usePSClass: "usePSClass", autoPropagation: "autoPropagation", scrollIndicators: "scrollIndicators", config: "config" }, outputs: { psScrollY: "psScrollY", psScrollX: "psScrollX", psScrollUp: "psScrollUp", psScrollDown: "psScrollDown", psScrollLeft: "psScrollLeft", psScrollRight: "psScrollRight", psYReachEnd: "psYReachEnd", psYReachStart: "psYReachStart", psXReachEnd: "psXReachEnd", psXReachStart: "psXReachStart" }, host: { properties: { "class.ps-show-limits": "this.autoPropagation", "class.ps-show-active": "this.scrollIndicators" } }, viewQueries: [{ propertyName: "directiveRef", first: true, predicate: PerfectScrollbarDirective, descendants: true, static: true }], hostDirectives: [{ directive: PerfectScrollbarDirective }, { directive: ForceNativeScrollDirective }], ngImport: i0, template: `
566
+ <div class="ps-wrapper" [class.ps]="usePSClass">
567
+ <div class="ps-content">
568
+ <ng-content></ng-content>
569
+ </div>
570
+ </div>
571
+ `, isInline: true, styles: ["perfect-scrollbar{position:relative;display:block;overflow:hidden;width:100%;height:100%;max-width:100%;max-height:100%}perfect-scrollbar[hidden]{display:none}perfect-scrollbar[fxflex]{display:flex;flex-direction:column;height:auto;min-width:0;min-height:0;-webkit-box-direction:column;-webkit-box-orient:column}perfect-scrollbar[fxflex]>.ps{-ms-flex:1 1 auto;flex:1 1 auto;width:auto;height:auto;min-width:0;min-height:0;-webkit-box-flex:1}perfect-scrollbar[fxlayout]>.ps,perfect-scrollbar[fxlayout]>.ps>.ps-content{display:flex;-ms-flex:1 1 auto;flex:1 1 auto;flex-direction:inherit;align-items:inherit;align-content:inherit;justify-content:inherit;width:100%;height:100%;-webkit-box-align:inherit;-webkit-box-direction:inherit;-webkit-box-flex:1;-webkit-box-orient:inherit;-webkit-box-pack:inherit}perfect-scrollbar[fxlayout=row]>.ps,perfect-scrollbar[fxlayout=row]>.ps>.ps-content{flex-direction:row!important;-webkit-box-direction:row!important;-webkit-box-orient:row!important}perfect-scrollbar[fxlayout=column]>.ps,perfect-scrollbar[fxlayout=column]>.ps>.ps-content{flex-direction:column!important;-webkit-box-direction:column!important;-webkit-box-orient:column!important}perfect-scrollbar>.ps{position:static;display:block;width:100%;height:100%;max-width:100%;max-height:100%}perfect-scrollbar>.ps textarea{-ms-overflow-style:scrollbar}perfect-scrollbar>.ps>.ps-overlay{position:absolute;inset:0;display:block;overflow:hidden;pointer-events:none}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom{position:absolute;opacity:0;transition:opacity .3s ease-in-out}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom{left:0;min-width:100%;min-height:24px}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right{top:0;min-width:24px;min-height:100%}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top{top:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left{left:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right{right:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom{bottom:0}perfect-scrollbar>.ps.ps--active-y>.ps__rail-y{top:0!important;right:0!important;left:auto!important;width:10px;cursor:default;transition:width .2s linear,opacity .2s linear,background-color .2s linear}perfect-scrollbar>.ps.ps--active-y>.ps__rail-y:hover,perfect-scrollbar>.ps.ps--active-y>.ps__rail-y.ps--clicking{width:15px}perfect-scrollbar>.ps.ps--active-x>.ps__rail-x{top:auto!important;bottom:0!important;left:0!important;height:10px;cursor:default;transition:height .2s linear,opacity .2s linear,background-color .2s linear}perfect-scrollbar>.ps.ps--active-x>.ps__rail-x:hover,perfect-scrollbar>.ps.ps--active-x>.ps__rail-x.ps--clicking{height:15px}perfect-scrollbar>.ps.ps--active-x.ps--active-y>.ps__rail-y{margin:0 0 10px}perfect-scrollbar>.ps.ps--active-x.ps--active-y>.ps__rail-x{margin:0 10px 0 0}perfect-scrollbar>.ps.ps--scrolling-y>.ps__rail-y,perfect-scrollbar>.ps.ps--scrolling-x>.ps__rail-x{opacity:.9;background-color:#eee}perfect-scrollbar.ps-show-always>.ps.ps--active-y>.ps__rail-y,perfect-scrollbar.ps-show-always>.ps.ps--active-x>.ps__rail-x{opacity:.6}perfect-scrollbar.ps-show-active>.ps.ps--active-y>.ps-overlay:not(.ps-at-top) .ps-indicator-top{opacity:1;background:linear-gradient(to bottom,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active>.ps.ps--active-y>.ps-overlay:not(.ps-at-bottom) .ps-indicator-bottom{opacity:1;background:linear-gradient(to top,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active>.ps.ps--active-x>.ps-overlay:not(.ps-at-left) .ps-indicator-left{opacity:1;background:linear-gradient(to right,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active>.ps.ps--active-x>.ps-overlay:not(.ps-at-right) .ps-indicator-right{opacity:1;background:linear-gradient(to left,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-top .ps-indicator-top{background:linear-gradient(to bottom,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-bottom .ps-indicator-bottom{background:linear-gradient(to top,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-left .ps-indicator-left{background:linear-gradient(to right,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-right .ps-indicator-right{background:linear-gradient(to left,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-top .ps-indicator-top.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-bottom .ps-indicator-bottom.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-left .ps-indicator-left.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-right .ps-indicator-right.ps-indicator-show{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], encapsulation: i0.ViewEncapsulation.None });
567
572
  }
568
573
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: PerfectScrollbarComponent, decorators: [{
569
574
  type: Component,
570
- args: [{ selector: 'perfect-scrollbar', exportAs: 'ngxPerfectScrollbar', standalone: true, imports: [
571
- CommonModule,
572
- NgIf,
575
+ args: [{ selector: 'perfect-scrollbar', standalone: true, imports: [CommonModule], template: `
576
+ <div class="ps-wrapper" [class.ps]="usePSClass">
577
+ <div class="ps-content">
578
+ <ng-content></ng-content>
579
+ </div>
580
+ </div>
581
+ `, hostDirectives: [
573
582
  PerfectScrollbarDirective,
574
583
  ForceNativeScrollDirective
575
- ], encapsulation: ViewEncapsulation.None, host: {
576
- '[class.ps-show-limits]': 'autoPropagation',
577
- '[class.ps-show-active]': 'scrollIndicators'
578
- }, template: "<div #contentDiv\n [class.ps]=\"usePSClass\"\n [perfectScrollbar]=\"config\"\n [attr.disabled]=\"disabled ? '' : null\">\n <div class=\"ps-content\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"scrollIndicators\" class=\"ps-overlay\"\n [class.ps-at-top]=\"states.top\"\n [class.ps-at-left]=\"states.left\"\n [class.ps-at-right]=\"states.right\"\n [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>", styles: ["perfect-scrollbar{position:relative;display:block;overflow:hidden;width:100%;height:100%;max-width:100%;max-height:100%}perfect-scrollbar[hidden]{display:none}perfect-scrollbar[fxflex]{display:flex;flex-direction:column;height:auto;min-width:0;min-height:0;-webkit-box-direction:column;-webkit-box-orient:column}perfect-scrollbar[fxflex]>.ps{-ms-flex:1 1 auto;flex:1 1 auto;width:auto;height:auto;min-width:0;min-height:0;-webkit-box-flex:1}perfect-scrollbar[fxlayout]>.ps,perfect-scrollbar[fxlayout]>.ps>.ps-content{display:flex;-ms-flex:1 1 auto;flex:1 1 auto;flex-direction:inherit;align-items:inherit;align-content:inherit;justify-content:inherit;width:100%;height:100%;-webkit-box-align:inherit;-webkit-box-direction:inherit;-webkit-box-flex:1;-webkit-box-orient:inherit;-webkit-box-pack:inherit}perfect-scrollbar[fxlayout=row]>.ps,perfect-scrollbar[fxlayout=row]>.ps>.ps-content{flex-direction:row!important;-webkit-box-direction:row!important;-webkit-box-orient:row!important}perfect-scrollbar[fxlayout=column]>.ps,perfect-scrollbar[fxlayout=column]>.ps>.ps-content{flex-direction:column!important;-webkit-box-direction:column!important;-webkit-box-orient:column!important}perfect-scrollbar>.ps{position:static;display:block;width:100%;height:100%;max-width:100%;max-height:100%}perfect-scrollbar>.ps textarea{-ms-overflow-style:scrollbar}perfect-scrollbar>.ps>.ps-overlay{position:absolute;inset:0;display:block;overflow:hidden;pointer-events:none}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom{position:absolute;opacity:0;transition:opacity .3s ease-in-out}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom{left:0;min-width:100%;min-height:24px}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right{top:0;min-width:24px;min-height:100%}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top{top:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left{left:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right{right:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom{bottom:0}perfect-scrollbar>.ps.ps--active-y>.ps__rail-y{top:0!important;right:0!important;left:auto!important;width:10px;cursor:default;transition:width .2s linear,opacity .2s linear,background-color .2s linear}perfect-scrollbar>.ps.ps--active-y>.ps__rail-y:hover,perfect-scrollbar>.ps.ps--active-y>.ps__rail-y.ps--clicking{width:15px}perfect-scrollbar>.ps.ps--active-x>.ps__rail-x{top:auto!important;bottom:0!important;left:0!important;height:10px;cursor:default;transition:height .2s linear,opacity .2s linear,background-color .2s linear}perfect-scrollbar>.ps.ps--active-x>.ps__rail-x:hover,perfect-scrollbar>.ps.ps--active-x>.ps__rail-x.ps--clicking{height:15px}perfect-scrollbar>.ps.ps--active-x.ps--active-y>.ps__rail-y{margin:0 0 10px}perfect-scrollbar>.ps.ps--active-x.ps--active-y>.ps__rail-x{margin:0 10px 0 0}perfect-scrollbar>.ps.ps--scrolling-y>.ps__rail-y,perfect-scrollbar>.ps.ps--scrolling-x>.ps__rail-x{opacity:.9;background-color:#eee}perfect-scrollbar.ps-show-always>.ps.ps--active-y>.ps__rail-y,perfect-scrollbar.ps-show-always>.ps.ps--active-x>.ps__rail-x{opacity:.6}perfect-scrollbar.ps-show-active>.ps.ps--active-y>.ps-overlay:not(.ps-at-top) .ps-indicator-top{opacity:1;background:linear-gradient(to bottom,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active>.ps.ps--active-y>.ps-overlay:not(.ps-at-bottom) .ps-indicator-bottom{opacity:1;background:linear-gradient(to top,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active>.ps.ps--active-x>.ps-overlay:not(.ps-at-left) .ps-indicator-left{opacity:1;background:linear-gradient(to right,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active>.ps.ps--active-x>.ps-overlay:not(.ps-at-right) .ps-indicator-right{opacity:1;background:linear-gradient(to left,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-top .ps-indicator-top{background:linear-gradient(to bottom,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-bottom .ps-indicator-bottom{background:linear-gradient(to top,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-left .ps-indicator-left{background:linear-gradient(to right,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-right .ps-indicator-right{background:linear-gradient(to left,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-top .ps-indicator-top.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-bottom .ps-indicator-bottom.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-left .ps-indicator-left.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-right .ps-indicator-right.ps-indicator-show{opacity:1}\n"] }]
584
+ ], encapsulation: ViewEncapsulation.None, styles: ["perfect-scrollbar{position:relative;display:block;overflow:hidden;width:100%;height:100%;max-width:100%;max-height:100%}perfect-scrollbar[hidden]{display:none}perfect-scrollbar[fxflex]{display:flex;flex-direction:column;height:auto;min-width:0;min-height:0;-webkit-box-direction:column;-webkit-box-orient:column}perfect-scrollbar[fxflex]>.ps{-ms-flex:1 1 auto;flex:1 1 auto;width:auto;height:auto;min-width:0;min-height:0;-webkit-box-flex:1}perfect-scrollbar[fxlayout]>.ps,perfect-scrollbar[fxlayout]>.ps>.ps-content{display:flex;-ms-flex:1 1 auto;flex:1 1 auto;flex-direction:inherit;align-items:inherit;align-content:inherit;justify-content:inherit;width:100%;height:100%;-webkit-box-align:inherit;-webkit-box-direction:inherit;-webkit-box-flex:1;-webkit-box-orient:inherit;-webkit-box-pack:inherit}perfect-scrollbar[fxlayout=row]>.ps,perfect-scrollbar[fxlayout=row]>.ps>.ps-content{flex-direction:row!important;-webkit-box-direction:row!important;-webkit-box-orient:row!important}perfect-scrollbar[fxlayout=column]>.ps,perfect-scrollbar[fxlayout=column]>.ps>.ps-content{flex-direction:column!important;-webkit-box-direction:column!important;-webkit-box-orient:column!important}perfect-scrollbar>.ps{position:static;display:block;width:100%;height:100%;max-width:100%;max-height:100%}perfect-scrollbar>.ps textarea{-ms-overflow-style:scrollbar}perfect-scrollbar>.ps>.ps-overlay{position:absolute;inset:0;display:block;overflow:hidden;pointer-events:none}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom{position:absolute;opacity:0;transition:opacity .3s ease-in-out}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom{left:0;min-width:100%;min-height:24px}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right{top:0;min-width:24px;min-height:100%}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top{top:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left{left:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right{right:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom{bottom:0}perfect-scrollbar>.ps.ps--active-y>.ps__rail-y{top:0!important;right:0!important;left:auto!important;width:10px;cursor:default;transition:width .2s linear,opacity .2s linear,background-color .2s linear}perfect-scrollbar>.ps.ps--active-y>.ps__rail-y:hover,perfect-scrollbar>.ps.ps--active-y>.ps__rail-y.ps--clicking{width:15px}perfect-scrollbar>.ps.ps--active-x>.ps__rail-x{top:auto!important;bottom:0!important;left:0!important;height:10px;cursor:default;transition:height .2s linear,opacity .2s linear,background-color .2s linear}perfect-scrollbar>.ps.ps--active-x>.ps__rail-x:hover,perfect-scrollbar>.ps.ps--active-x>.ps__rail-x.ps--clicking{height:15px}perfect-scrollbar>.ps.ps--active-x.ps--active-y>.ps__rail-y{margin:0 0 10px}perfect-scrollbar>.ps.ps--active-x.ps--active-y>.ps__rail-x{margin:0 10px 0 0}perfect-scrollbar>.ps.ps--scrolling-y>.ps__rail-y,perfect-scrollbar>.ps.ps--scrolling-x>.ps__rail-x{opacity:.9;background-color:#eee}perfect-scrollbar.ps-show-always>.ps.ps--active-y>.ps__rail-y,perfect-scrollbar.ps-show-always>.ps.ps--active-x>.ps__rail-x{opacity:.6}perfect-scrollbar.ps-show-active>.ps.ps--active-y>.ps-overlay:not(.ps-at-top) .ps-indicator-top{opacity:1;background:linear-gradient(to bottom,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active>.ps.ps--active-y>.ps-overlay:not(.ps-at-bottom) .ps-indicator-bottom{opacity:1;background:linear-gradient(to top,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active>.ps.ps--active-x>.ps-overlay:not(.ps-at-left) .ps-indicator-left{opacity:1;background:linear-gradient(to right,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active>.ps.ps--active-x>.ps-overlay:not(.ps-at-right) .ps-indicator-right{opacity:1;background:linear-gradient(to left,#ffffff80,#fff0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-top .ps-indicator-top{background:linear-gradient(to bottom,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-bottom .ps-indicator-bottom{background:linear-gradient(to top,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-left .ps-indicator-left{background:linear-gradient(to right,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-right .ps-indicator-right{background:linear-gradient(to left,#aaaaaa80,#aaa0)}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-top .ps-indicator-top.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-bottom .ps-indicator-bottom.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-left .ps-indicator-left.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-right .ps-indicator-right.ps-indicator-show{opacity:1}\n"] }]
579
585
  }], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: Object, decorators: [{
580
586
  type: Inject,
581
587
  args: [PLATFORM_ID]
@@ -1 +1 @@
1
- {"version":3,"file":"ahmedhfarag-ngx-perfect-scrollbar.mjs","sources":["../../../projects/lib/src/lib/perfect-scrollbar.interfaces.ts","../../../projects/lib/src/lib/perfect-scrollbar.directive.ts","../../../projects/lib/src/lib/perfect-scrollbar-force-native-scroll.directive.ts","../../../projects/lib/src/lib/perfect-scrollbar.component.ts","../../../projects/lib/src/lib/perfect-scrollbar.component.html","../../../projects/lib/src/ahmedhfarag-ngx-perfect-scrollbar.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 standalone: true\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 { Directive, ElementRef, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[forceNativeScrolling]',\n standalone: true\n})\nexport class ForceNativeScrollDirective {\n constructor(private renderer: Renderer2, private el: ElementRef) {\n const classNames:any = ['ps__child', 'ps__child--consume'];\n classNames.forEach(className => {\n this.renderer.addClass(this.el.nativeElement, className);\n });\n }\n}","import { Subject, merge, fromEvent } from 'rxjs';\nimport { mapTo, takeUntil, distinctUntilChanged } from 'rxjs/operators';\n\nimport { PLATFORM_ID } from '@angular/core';\nimport { CommonModule, isPlatformBrowser, NgIf } 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';\nimport { ForceNativeScrollDirective } from './perfect-scrollbar-force-native-scroll.directive';\n\n @Component({\n selector: 'perfect-scrollbar',\n exportAs: 'ngxPerfectScrollbar',\n templateUrl: './perfect-scrollbar.component.html',\n styleUrls: ['./perfect-scrollbar.component.css'],\n standalone: true,\n imports: [\n CommonModule, \n NgIf,\n PerfectScrollbarDirective,\n ForceNativeScrollDirective\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.ps-show-limits]': 'autoPropagation',\n '[class.ps-show-active]': 'scrollIndicators'\n }\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 #contentDiv\n [class.ps]=\"usePSClass\"\n [perfectScrollbar]=\"config\"\n [attr.disabled]=\"disabled ? '' : null\">\n <div class=\"ps-content\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"scrollIndicators\" class=\"ps-overlay\"\n [class.ps-at-top]=\"states.top\"\n [class.ps-at-left]=\"states.left\"\n [class.ps-at-right]=\"states.right\"\n [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 * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;MAEa,wBAAwB,GAAG,IAAI,cAAc,CAAC,0BAA0B;MAExE,QAAQ,CAAA;AACZ,IAAA,CAAC;AACD,IAAA,CAAC;AAED,IAAA,CAAC;AACD,IAAA,CAAC;AAER,IAAA,WAAA,CAAY,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AACpD,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC;AACV,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC;AACV,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC;AACV,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC;;AAEb;MAEY,QAAQ,CAAA;AACZ,IAAA,CAAC;AACD,IAAA,CAAC;IAER,WAAY,CAAA,CAA2B,EAAE,CAA2B,EAAA;AAClE,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC;AACV,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC;;AAEb;AAKY,MAAA,sBAAsB,GAA4B;IAC7D,WAAW;IACX,WAAW;IAEX,YAAY;IACZ,cAAc;IACd,cAAc;IACd,eAAe;IAEf,aAAa;IACb,eAAe;IACf,aAAa;IACb;;MAwBW,sBAAsB,CAAA;AAC1B,IAAA,QAAQ;AAER,IAAA,UAAU;AACV,IAAA,WAAW;AAEX,IAAA,eAAe;AACf,IAAA,eAAe;AAEf,IAAA,gBAAgB;AAChB,IAAA,gBAAgB;AAEhB,IAAA,kBAAkB;AAElB,IAAA,kBAAkB;AAClB,IAAA,kBAAkB;AAElB,IAAA,mBAAmB;AACnB,IAAA,mBAAmB;AAE1B,IAAA,WAAA,CAAY,SAA0C,EAAE,EAAA;AACtD,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;;IAGd,MAAM,CAAC,SAA0C,EAAE,EAAA;AACxD,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACxB,IAAI,CAAC,GAAmC,CAAC,GAAG,MAAM,CAAC,GAA4C,CAAU;;;AAG9G;;MC1EY,yBAAyB,CAAA;AA6BhB,IAAA,IAAA;AAAsB,IAAA,OAAA;AACjC,IAAA,UAAA;AAAqD,IAAA,UAAA;AACN,IAAA,QAAA;IA9BhD,QAAQ,GAA4B,IAAI;IAExC,EAAE,GAA0B,IAAI;IAEhC,OAAO,GAAkB,IAAI;IAC7B,SAAS,GAAkB,IAAI;IAE/B,UAAU,GAAuC,IAAI;AAE5C,IAAA,SAAS,GAAkB,IAAI,OAAO,EAAE;IAEhD,QAAQ,GAAY,KAAK;AAEP,IAAA,MAAM;AAEvB,IAAA,SAAS,GAAsB,IAAI,YAAY,EAAO;AACtD,IAAA,SAAS,GAAsB,IAAI,YAAY,EAAO;AAEtD,IAAA,UAAU,GAAsB,IAAI,YAAY,EAAO;AACvD,IAAA,YAAY,GAAsB,IAAI,YAAY,EAAO;AACzD,IAAA,YAAY,GAAsB,IAAI,YAAY,EAAO;AACzD,IAAA,aAAa,GAAsB,IAAI,YAAY,EAAO;AAE1D,IAAA,WAAW,GAAsB,IAAI,YAAY,EAAO;AACxD,IAAA,aAAa,GAAsB,IAAI,YAAY,EAAO;AAC1D,IAAA,WAAW,GAAsB,IAAI,YAAY,EAAO;AACxD,IAAA,aAAa,GAAsB,IAAI,YAAY,EAAO;IAEpE,WAAoB,CAAA,IAAY,EAAU,OAAwB,EACzD,UAAsB,EAA+B,UAAkB,EACxB,QAAyC,EAAA;QAF7E,IAAI,CAAA,IAAA,GAAJ,IAAI;QAAkB,IAAO,CAAA,OAAA,GAAP,OAAO;QACxC,IAAU,CAAA,UAAA,GAAV,UAAU;QAA2C,IAAU,CAAA,UAAA,GAAV,UAAU;QAChB,IAAQ,CAAA,QAAA,GAAR,QAAQ;;IAEhE,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACxD,MAAM,MAAM,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAExD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAE3B,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC;AAC7E,aAAC,CAAC;AAEF,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAE/D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;;AAGzC,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,gBAAA,IAAI,CAAC,EAAE,GAAG,IAAI,cAAc,CAAC,MAAK;oBAChC,IAAI,CAAC,MAAM,EAAE;AACf,iBAAC,CAAC;gBAEF,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC7C,oBAAA,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;;gBAG5D,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAChD,aAAC,CAAC;AAEF,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,gBAAA,sBAAsB,CAAC,OAAO,CAAC,CAAC,SAAgC,KAAI;oBAClE,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA,CAAE,CAAC;oBAE7E,SAAS,CAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS;AACtD,yBAAA,IAAI,CACH,SAAS,CAAC,EAAE,CAAC,EACb,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AAE1B,yBAAA,SAAS,CAAC,CAAC,KAAY,KAAI;wBAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,qBAAC,CAAC;AACN,iBAAC,CAAC;AACJ,aAAC,CAAC;;;IAIN,WAAW,GAAA;AACT,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACrB,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AAEzB,YAAA,IAAI,IAAI,CAAC,EAAE,EAAE;AACX,gBAAA,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE;;YAGtB,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjD,gBAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;;AAGnC,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,oBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;;AAE3B,aAAC,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;;IAIxB,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC3E,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;YAEvD,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,WAAW,EAAE;gBAElB,IAAI,CAAC,QAAQ,EAAE;;;;AAKrB,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACrG,YAAA,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE;gBAC1E,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,KAAK,IAAI,EAAE;oBAC9C,IAAI,CAAC,WAAW,EAAE;;qBACZ,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,KAAK,KAAK,EAAE;oBACrD,IAAI,CAAC,QAAQ,EAAE;;;;;IAMhB,EAAE,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ;;IAGf,MAAM,GAAA;AACX,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;;YAGnC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;gBACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AACrC,oBAAA,IAAI;AACF,wBAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,4BAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gCAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;;AAE1B,yBAAC,CAAC;;oBACF,OAAO,KAAK,EAAE;;;;aAInB,EAAE,CAAC,CAAC;;;IAIF,QAAQ,CAAC,SAAiB,QAAQ,EAAA;QACvC,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,EAC9C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC,EAC7C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC,EAC/C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,QAAQ,CAAC,CACjD;;IAGI,QAAQ,CAAC,WAAoB,KAAK,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC9B,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAC1B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAC3B;;aACI;AACL,YAAA,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,EACxC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CACxC;;;IAIE,UAAU,CAAC,YAAoB,KAAK,EAAA;AACzC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AAE7C,QAAA,IAAI,SAAS,KAAK,KAAK,EAAE;AACvB,YAAA,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC/C,gBAAA,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;;AACvC,aAAA,IAAI,SAAS,KAAK,MAAM,EAAE;AAC/B,YAAA,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC/C,gBAAA,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;;aACvC;YACL,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC;;;AAIzD,IAAA,QAAQ,CAAC,CAAS,EAAE,CAAU,EAAE,KAAc,EAAA;AACnD,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;gBAC9B,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC;;iBACvC;AACL,gBAAA,IAAI,CAAC,IAAI,IAAI,EAAE;oBACb,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC;;AAG/C,gBAAA,IAAI,CAAC,IAAI,IAAI,EAAE;oBACb,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC;;;;;IAM7C,SAAS,CAAC,CAAS,EAAE,KAAc,EAAA;QACxC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC;;IAGxC,SAAS,CAAC,CAAS,EAAE,KAAc,EAAA;QACxC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC;;IAGvC,WAAW,CAAC,MAAe,EAAE,KAAc,EAAA;AAChD,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC;;IAGnD,YAAY,CAAC,MAAe,EAAE,KAAc,EAAA;AACjD,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC;;IAGpD,aAAa,CAAC,MAAe,EAAE,KAAc,EAAA;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW;AACpD,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW;AAE3C,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC;;IAG3D,cAAc,CAAC,MAAe,EAAE,KAAc,EAAA;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY;AACpD,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY;AAE5C,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC;;AAGzD,IAAA,eAAe,CAAC,OAA6B,EAAE,MAAe,EAAE,KAAc,EAAA;AACnF,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAgB;;QAG/E,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,UAAU,GAAG,OAAO,CAAC,qBAAqB,EAAE;YAElD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE;AAEzE,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBACpE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC;gBAE9D,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,GAAG,UAAU;AAEhE,gBAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,QAAQ,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC;;AAGtE,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBACpE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;gBAE7D,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,GAAG,UAAU;AAE9D,gBAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC;;;;AAKjE,IAAA,gBAAgB,CAAC,MAAc,EAAE,KAAa,EAAE,KAAc,EAAA;AACpE,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC;AAE3C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;;QAGvB,IAAI,CAAC,KAAK,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAC3C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,KAAK;;aACxC,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;YAC1D,IAAI,QAAQ,GAAG,CAAC;YAChB,IAAI,WAAW,GAAG,CAAC;AAEnB,YAAA,IAAI,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACpC,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC;YAEpD,MAAM,YAAY,GAAG,CAAC,QAAQ,GAAG,KAAK,IAAI,CAAC;AAE3C,YAAA,MAAM,IAAI,GAAG,CAAC,YAAoB,KAAI;AACpC,gBAAA,WAAW,IAAI,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,YAAY,GAAG,YAAY,CAAC,CAAC;AAEhE,gBAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,GAAG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;;gBAGlF,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;AACtD,oBAAA,IAAI,WAAW,IAAI,IAAI,CAAC,EAAE,EAAE;wBAC1B,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;;yBAClC;wBACL,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,QAAQ;;wBAGhD,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC;wBAEhD,YAAY,GAAG,YAAY;wBAE3B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC;;;AAGzD,aAAC;AAED,YAAA,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC;;;uGA9S3B,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EA8BK,WAAW,EAAA,EAAA,EAAA,KAAA,EAC9B,wBAAwB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FA/BnC,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE;AACb,iBAAA;;0BA+BmC,MAAM;2BAAC,WAAW;;0BACjD;;0BAAY,MAAM;2BAAC,wBAAwB;yCAnBrC,QAAQ,EAAA,CAAA;sBAAhB;gBAE0B,MAAM,EAAA,CAAA;sBAAhC,KAAK;uBAAC,kBAAkB;gBAEf,SAAS,EAAA,CAAA;sBAAlB;gBACS,SAAS,EAAA,CAAA;sBAAlB;gBAES,UAAU,EAAA,CAAA;sBAAnB;gBACS,YAAY,EAAA,CAAA;sBAArB;gBACS,YAAY,EAAA,CAAA;sBAArB;gBACS,aAAa,EAAA,CAAA;sBAAtB;gBAES,WAAW,EAAA,CAAA;sBAApB;gBACS,aAAa,EAAA,CAAA;sBAAtB;gBACS,WAAW,EAAA,CAAA;sBAApB;gBACS,aAAa,EAAA,CAAA;sBAAtB;;;MC5CU,0BAA0B,CAAA;AACjB,IAAA,QAAA;AAA6B,IAAA,EAAA;IAAjD,WAAoB,CAAA,QAAmB,EAAU,EAAc,EAAA;QAA3C,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAAqB,IAAE,CAAA,EAAA,GAAF,EAAE;AACjD,QAAA,MAAM,UAAU,GAAO,CAAC,WAAW,EAAE,oBAAoB,CAAC;AAC1D,QAAA,UAAU,CAAC,OAAO,CAAC,SAAS,IAAG;AAC7B,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;AAC1D,SAAC,CAAC;;uGALO,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MC4BY,yBAAyB,CAAA;AAqDhB,IAAA,IAAA;AAAsB,IAAA,KAAA;AACX,IAAA,UAAA;IArDxB,MAAM,GAAQ,EAAE;IAEhB,UAAU,GAAY,KAAK;IAC3B,UAAU,GAAY,KAAK;IAE3B,WAAW,GAAY,KAAK;IAE3B,eAAe,GAAW,CAAC;IAC3B,eAAe,GAAW,CAAC;IAE3B,gBAAgB,GAAW,CAAC;IAC5B,gBAAgB,GAAW,CAAC;IAE5B,eAAe,GAAY,KAAK;IAChC,eAAe,GAAY,KAAK;IAEhC,iBAAiB,GAAY,KAAK;IAClC,iBAAiB,GAAY,KAAK;IAElC,YAAY,GAAkB,IAAI;AAEzB,IAAA,SAAS,GAAkB,IAAI,OAAO,EAAE;AAExC,IAAA,WAAW,GAAoB,IAAI,OAAO,EAAE;IAEpD,QAAQ,GAAY,KAAK;IAEzB,UAAU,GAAY,IAAI;IAG1B,eAAe,GAAY,KAAK;IAGhC,gBAAgB,GAAY,KAAK;AAEjC,IAAA,MAAM;AAEL,IAAA,SAAS,GAAsB,IAAI,YAAY,EAAO;AACtD,IAAA,SAAS,GAAsB,IAAI,YAAY,EAAO;AAEtD,IAAA,UAAU,GAAsB,IAAI,YAAY,EAAO;AACvD,IAAA,YAAY,GAAsB,IAAI,YAAY,EAAO;AACzD,IAAA,YAAY,GAAsB,IAAI,YAAY,EAAO;AACzD,IAAA,aAAa,GAAsB,IAAI,YAAY,EAAO;AAE1D,IAAA,WAAW,GAAsB,IAAI,YAAY,EAAO;AACxD,IAAA,aAAa,GAAsB,IAAI,YAAY,EAAO;AAC1D,IAAA,WAAW,GAAsB,IAAI,YAAY,EAAO;AACxD,IAAA,aAAa,GAAsB,IAAI,YAAY,EAAO;AAEZ,IAAA,YAAY;AAEpE,IAAA,WAAA,CAAoB,IAAY,EAAU,KAAwB,EACnC,UAAkB,EAAA;QAD7B,IAAI,CAAA,IAAA,GAAJ,IAAI;QAAkB,IAAK,CAAA,KAAA,GAAL,KAAK;QAChB,IAAU,CAAA,UAAA,GAAV,UAAU;;IAEzC,QAAQ,GAAA;AACN,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC;AACF,iBAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EACzB,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAEhE,iBAAA,SAAS,CAAC,CAAC,KAAa,KAAI;gBAC3B,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACtD,oBAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;AAEtC,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;;gBAG1B,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE;AAClC,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AAExB,oBAAA,IAAI,KAAK,KAAK,GAAG,EAAE;AACjB,wBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AAEvB,wBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK;AACxB,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK;wBAEzB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE;AAChD,4BAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;;;AAE3B,yBAAA,IAAI,KAAK,KAAK,GAAG,EAAE;AACxB,wBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AAEvB,wBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,KAAK;AACvB,wBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK;wBAE1B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE;AAChD,4BAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;;;;qBAG7B;oBACL,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE;AACzC,wBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK;AACxB,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK;AAEzB,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI;wBAEzB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE;AAChD,4BAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;;yBAEnB,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ,EAAE;AAChD,wBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,KAAK;AACvB,wBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK;AAE1B,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI;wBAEzB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE;AAChD,4BAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;;oBAI1B,IAAI,IAAI,CAAC,eAAe,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;wBACzD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;AACzC,4BAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,4BAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AAEvB,4BAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AAExB,4BAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC/D,gCAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;;AAG/B,4BAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AAC/D,gCAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;;AAG/B,4BAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;yBAC1B,EAAE,GAAG,CAAC;;;AAIX,gBAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;AACzB,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AAC5B,aAAC,CAAC;AAEJ,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,gBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa;AAE1D,oBAAA,SAAS,CAAa,OAAO,EAAE,OAAO;AACnC,yBAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AAE1B,yBAAA,SAAS,CAAC,CAAC,KAAiB,KAAI;wBAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1C,4BAAA,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM;AACjC,4BAAA,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM;4BAEjC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC;;AAE5D,qBAAC,CAAC;AAEJ,oBAAA,SAAS,CAAa,OAAO,EAAE,WAAW;AACvC,yBAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AAE1B,yBAAA,SAAS,CAAC,CAAC,KAAiB,KAAI;wBAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;4BAC1C,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;4BAChD,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;AAEhD,4BAAA,MAAM,YAAY,GAAG,eAAe,GAAG,IAAI,CAAC,eAAe;AAC3D,4BAAA,MAAM,YAAY,GAAG,eAAe,GAAG,IAAI,CAAC,eAAe;4BAE3D,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC;AAExD,4BAAA,IAAI,CAAC,eAAe,GAAG,eAAe;AACtC,4BAAA,IAAI,CAAC,eAAe,GAAG,eAAe;;AAE1C,qBAAC,CAAC;AAEF,oBAAA,KAAK,CACH,SAAS,CAAC,OAAO,EAAE,aAAa;AAC7B,yBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACnB,SAAS,CAAC,OAAO,EAAE,aAAa;AAC7B,yBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACnB,SAAS,CAAC,OAAO,EAAE,gBAAgB;AAChC,yBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EACvB,SAAS,CAAC,OAAO,EAAE,gBAAgB;AAChC,yBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EACxB,SAAS,CAAC,OAAO,EAAE,kBAAkB;AAClC,yBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EACtB,SAAS,CAAC,OAAO,EAAE,kBAAkB;AAClC,yBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAEtB,yBAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AAE1B,yBAAA,SAAS,CAAC,CAAC,KAAa,KAAI;AAC3B,wBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE;AACrE,4BAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;AAEhC,qBAAC,CAAC;;AAER,aAAC,CAAC;AAEF,YAAA,MAAM,CAAC,UAAU,CAAC,MAAK;AACrB,gBAAA,sBAAsB,CAAC,OAAO,CAAC,CAAC,SAAgC,KAAI;AAClE,oBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;wBACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;;AAElD,iBAAC,CAAC;aACH,EAAE,CAAC,CAAC;;;IAIT,WAAW,GAAA;AACT,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACrB,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YAE5B,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACtD,gBAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;;;;IAK5C,SAAS,GAAA;AACP,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,EAAE;gBAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa;gBAE1D,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAEjE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;;;;AAK/D,IAAA,gBAAgB,CAAC,KAAU,EAAE,MAAc,EAAE,MAAc,EAAA;AACjE,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AAEvB,QAAA,MAAM,gBAAgB,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AAC9C,QAAA,MAAM,gBAAgB,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;QAE9C,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe;aAC5C,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,iBAAiB;AACjD,iBAAC,IAAI,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,CAAC,CAAC;aAC7C,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,iBAAiB;iBAChD,IAAI,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,CAAC,CAAC,EAClD;YACE,KAAK,CAAC,cAAc,EAAE;YACtB,KAAK,CAAC,eAAe,EAAE;;AAGzB,QAAA,IAAI,CAAC,CAAC,MAAM,EAAE;AACZ,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;;AAG1C,QAAA,IAAI,CAAC,CAAC,MAAM,EAAE;AACZ,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;;AAG1C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;AAEpC,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;;AAjQjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,yEAsD1B,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAtDV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,yrBAmDzB,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpFtC,g2BAkBM,EDIA,MAAA,EAAA,CAAA,8hKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mIAEZ,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FASlB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAlBnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACnB,QAAA,EAAA,qBAAqB,EAGnB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,IAAI;wBACJ,yBAAyB;wBACzB;qBACD,EACc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC/B,IAAA,EAAA;AACJ,wBAAA,wBAAwB,EAAE,iBAAiB;AAC3C,wBAAA,wBAAwB,EAAE;AAC3B,qBAAA,EAAA,QAAA,EAAA,g2BAAA,EAAA,MAAA,EAAA,CAAA,8hKAAA,CAAA,EAAA;;0BAwDA,MAAM;2BAAC,WAAW;yCA5BZ,QAAQ,EAAA,CAAA;sBAAhB;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBAGQ,eAAe,EAAA,CAAA;sBADvB,WAAW;uBAAC,sBAAsB;;sBAClC;gBAGQ,gBAAgB,EAAA,CAAA;sBADxB,WAAW;uBAAC,sBAAsB;;sBAClC;gBAEQ,MAAM,EAAA,CAAA;sBAAd;gBAES,SAAS,EAAA,CAAA;sBAAlB;gBACS,SAAS,EAAA,CAAA;sBAAlB;gBAES,UAAU,EAAA,CAAA;sBAAnB;gBACS,YAAY,EAAA,CAAA;sBAArB;gBACS,YAAY,EAAA,CAAA;sBAArB;gBACS,aAAa,EAAA,CAAA;sBAAtB;gBAES,WAAW,EAAA,CAAA;sBAApB;gBACS,aAAa,EAAA,CAAA;sBAAtB;gBACS,WAAW,EAAA,CAAA;sBAApB;gBACS,aAAa,EAAA,CAAA;sBAAtB;gBAEuD,YAAY,EAAA,CAAA;sBAAnE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,yBAAyB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;AEpFxD;;AAEG;;;;"}
1
+ {"version":3,"file":"ahmedhfarag-ngx-perfect-scrollbar.mjs","sources":["../../../projects/lib/src/lib/perfect-scrollbar.interfaces.ts","../../../projects/lib/src/lib/perfect-scrollbar.directive.ts","../../../projects/lib/src/lib/perfect-scrollbar-force-native-scroll.directive.ts","../../../projects/lib/src/lib/perfect-scrollbar.component.ts","../../../projects/lib/src/ahmedhfarag-ngx-perfect-scrollbar.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 standalone: true\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 { Directive, ElementRef, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[forceNativeScrolling]',\n standalone: true\n})\nexport class ForceNativeScrollDirective {\n constructor(private renderer: Renderer2, private el: ElementRef) {\n const classNames:any = ['ps__child', 'ps__child--consume'];\n classNames.forEach(className => {\n this.renderer.addClass(this.el.nativeElement, className);\n });\n }\n}","import { Subject, merge, fromEvent } from 'rxjs';\nimport { mapTo, takeUntil, distinctUntilChanged } from 'rxjs/operators';\n\nimport { PLATFORM_ID } from '@angular/core';\nimport { CommonModule, isPlatformBrowser, NgIf, NgClass, NgStyle } 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';\nimport { ForceNativeScrollDirective } from './perfect-scrollbar-force-native-scroll.directive';\n\n\n@Component({\n selector: 'perfect-scrollbar',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"ps-wrapper\" [class.ps]=\"usePSClass\">\n <div class=\"ps-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n styleUrls: ['./perfect-scrollbar.component.css'],\n hostDirectives: [\n PerfectScrollbarDirective,\n ForceNativeScrollDirective\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PerfectScrollbarDirective","i2.ForceNativeScrollDirective"],"mappings":"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"}
@@ -2,6 +2,8 @@ import { NgZone, OnInit, OnDestroy, DoCheck, EventEmitter, ChangeDetectorRef } f
2
2
  import { PerfectScrollbarDirective } from './perfect-scrollbar.directive';
3
3
  import { PerfectScrollbarConfigInterface } from './perfect-scrollbar.interfaces';
4
4
  import * as i0 from "@angular/core";
5
+ import * as i1 from "./perfect-scrollbar.directive";
6
+ import * as i2 from "./perfect-scrollbar-force-native-scroll.directive";
5
7
  export declare class PerfectScrollbarComponent implements OnInit, OnDestroy, DoCheck {
6
8
  private zone;
7
9
  private cdRef;
@@ -43,5 +45,5 @@ export declare class PerfectScrollbarComponent implements OnInit, OnDestroy, DoC
43
45
  ngDoCheck(): void;
44
46
  private checkPropagation;
45
47
  static ɵfac: i0.ɵɵFactoryDeclaration<PerfectScrollbarComponent, never>;
46
- static ɵcmp: i0.ɵɵComponentDeclaration<PerfectScrollbarComponent, "perfect-scrollbar", ["ngxPerfectScrollbar"], { "disabled": { "alias": "disabled"; "required": false; }; "usePSClass": { "alias": "usePSClass"; "required": false; }; "autoPropagation": { "alias": "autoPropagation"; "required": false; }; "scrollIndicators": { "alias": "scrollIndicators"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "psScrollY": "psScrollY"; "psScrollX": "psScrollX"; "psScrollUp": "psScrollUp"; "psScrollDown": "psScrollDown"; "psScrollLeft": "psScrollLeft"; "psScrollRight": "psScrollRight"; "psYReachEnd": "psYReachEnd"; "psYReachStart": "psYReachStart"; "psXReachEnd": "psXReachEnd"; "psXReachStart": "psXReachStart"; }, never, ["*"], true, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<PerfectScrollbarComponent, "perfect-scrollbar", never, { "disabled": { "alias": "disabled"; "required": false; }; "usePSClass": { "alias": "usePSClass"; "required": false; }; "autoPropagation": { "alias": "autoPropagation"; "required": false; }; "scrollIndicators": { "alias": "scrollIndicators"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "psScrollY": "psScrollY"; "psScrollX": "psScrollX"; "psScrollUp": "psScrollUp"; "psScrollDown": "psScrollDown"; "psScrollLeft": "psScrollLeft"; "psScrollRight": "psScrollRight"; "psYReachEnd": "psYReachEnd"; "psYReachStart": "psYReachStart"; "psXReachEnd": "psXReachEnd"; "psXReachStart": "psXReachStart"; }, never, ["*"], true, [{ directive: typeof i1.PerfectScrollbarDirective; inputs: {}; outputs: {}; }, { directive: typeof i2.ForceNativeScrollDirective; inputs: {}; outputs: {}; }]>;
47
49
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ahmedhfarag/ngx-perfect-scrollbar",
3
- "version": "20.0.8",
3
+ "version": "20.0.10",
4
4
  "description": "Angular wrapper library for Perfect Scrollbar",
5
5
  "bugs": "https://github.com/zefoy/ngx-perfect-scrollbar/issues",
6
6
  "license": "MIT",