UNPKG

@yoyoboot/l-52abp-ng

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.13.

118 lines 13.9 kB
import { Directive, Input, Output, EventEmitter } from '@angular/core'; import PerfectScrollbar from 'perfect-scrollbar'; import { toBoolean } from '@delon/util'; import { PerfectScrollbarEvents } from './interfaces'; import { fromEvent, Subject } from 'rxjs'; import { debounceTime, takeUntil } from 'rxjs/operators'; import * as i0 from "@angular/core"; export class ScrollbarDirective { constructor(elRef, zone) { this.elRef = elRef; this.zone = zone; this.instance = null; this.ngDestroy = new Subject(); this._disabled = false; this.options = {}; this.psScrollX = new EventEmitter(); this.psScrollY = new EventEmitter(); this.psScrollUp = new EventEmitter(); this.psScrollDown = new EventEmitter(); this.psScrollLeft = new EventEmitter(); this.psScrollRight = new EventEmitter(); this.psXReachStart = new EventEmitter(); this.psXReachEnd = new EventEmitter(); this.psYReachStart = new EventEmitter(); this.psYReachEnd = new EventEmitter(); } set disabled(value) { this._disabled = toBoolean(value); if (this._disabled) { this.ngOnDestroy(); } else { this.init(); } } get el() { return this.elRef.nativeElement; } scrollToBottom() { this.el.scrollTop = this.el.scrollHeight - this.el.clientHeight; } scrollToTop() { this.el.scrollTop = 0; } scrollToLeft() { this.el.scrollLeft = 0; } scrollToRight() { this.el.scrollLeft = this.el.scrollWidth - this.el.clientWidth; } init() { this.zone.runOutsideAngular(() => { const options = Object.assign({ wheelSpeed: 0.5, swipeEasing: true, wheelPropagation: false, minScrollbarLength: 40, maxScrollbarLength: 300 }, this.options); setTimeout(() => { if (this._disabled) { return; } this.instance = new PerfectScrollbar(this.el, options); PerfectScrollbarEvents.forEach((eventName) => { const eventType = eventName.replace(/([A-Z])/g, c => `-${c.toLowerCase()}`); fromEvent(this.el, eventType) .pipe(debounceTime(20), takeUntil(this.ngDestroy)) .subscribe((event) => { this[eventName].emit(event); }); }); }, this.options.delay || 0); }); } ngOnDestroy() { this.ngDestroy.next(); this.ngDestroy.complete(); this.zone.runOutsideAngular(() => { if (this.instance) { this.instance.destroy(); } this.instance = null; }); } ngAfterViewInit() { this.init(); } } ScrollbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ScrollbarDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); ScrollbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: ScrollbarDirective, selector: "[Scrollbar]", inputs: { options: ["scrollbar", "options"], disabled: "disabled" }, outputs: { psScrollX: "psScrollX", psScrollY: "psScrollY", psScrollUp: "psScrollUp", psScrollDown: "psScrollDown", psScrollLeft: "psScrollLeft", psScrollRight: "psScrollRight", psXReachStart: "psXReachStart", psXReachEnd: "psXReachEnd", psYReachStart: "psYReachStart", psYReachEnd: "psYReachEnd" }, exportAs: ["scrollbarComp"], ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ScrollbarDirective, decorators: [{ type: Directive, args: [{ selector: '[Scrollbar]', exportAs: 'scrollbarComp', }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { options: [{ type: Input, args: ['scrollbar'] }], disabled: [{ type: Input }], psScrollX: [{ type: Output }], psScrollY: [{ type: Output }], psScrollUp: [{ type: Output }], psScrollDown: [{ type: Output }], psScrollLeft: [{ type: Output }], psScrollRight: [{ type: Output }], psXReachStart: [{ type: Output }], psXReachEnd: [{ type: Output }], psYReachStart: [{ type: Output }], psYReachEnd: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2wtNTJhYnAtbmcvc3JjL2RpcmVjdGl2ZXMvc2Nyb2xsYmFyL3Njcm9sbGJhci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFLVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLGdCQUFnQixNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUFtQixzQkFBc0IsRUFBd0IsTUFBTSxjQUFjLENBQUM7QUFDN0YsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFDLFlBQVksRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNdkQsTUFBTSxPQUFPLGtCQUFrQjtJQThCN0IsWUFBb0IsS0FBaUIsRUFBVSxJQUFZO1FBQXZDLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBN0JuRCxhQUFRLEdBQXFCLElBQUksQ0FBQztRQUN6QixjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDbEQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVOLFlBQU8sR0FBcUIsRUFBRSxDQUFDO1FBWWhDLGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN2RCxjQUFTLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFdkQsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3hELGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUQsaUJBQVksR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMxRCxrQkFBYSxHQUFz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SUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDekI7WUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQzs7Z0hBaEdVLGtCQUFrQjtvR0FBbEIsa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSxlQUFlO2lCQUMxQjtzSEFNcUIsT0FBTztzQkFBMUIsS0FBSzt1QkFBQyxXQUFXO2dCQUdkLFFBQVE7c0JBRFgsS0FBSztnQkFVYSxTQUFTO3NCQUEzQixNQUFNO2dCQUNZLFNBQVM7c0JBQTNCLE1BQU07Z0JBRVksVUFBVTtzQkFBNUIsTUFBTTtnQkFDWSxZQUFZO3NCQUE5QixNQUFNO2dCQUNZLFlBQVk7c0JBQTlCLE1BQU07Z0JBQ1ksYUFBYTtzQkFBL0IsTUFBTTtnQkFFWSxhQUFhO3NCQUEvQixNQUFNO2dCQUNZLFdBQVc7c0JBQTdCLE1BQU07Z0JBQ1ksYUFBYTtzQkFBL0IsTUFBTTtnQkFDWSxXQUFXO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBBZnRlclZpZXdJbml0LFxuICBPbkRlc3Ryb3ksXG4gIEVsZW1lbnRSZWYsXG4gIE5nWm9uZSxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IFBlcmZlY3RTY3JvbGxiYXIgZnJvbSAncGVyZmVjdC1zY3JvbGxiYXInO1xuaW1wb3J0IHt0b0Jvb2xlYW59IGZyb20gJ0BkZWxvbi91dGlsJztcbmltcG9ydCB7U2Nyb2xsYmFyT3B0aW9ucywgUGVyZmVjdFNjcm9sbGJhckV2ZW50cywgUGVyZmVjdFNjcm9sbGJhckV2ZW50fSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbU2Nyb2xsYmFyXScsXG4gIGV4cG9ydEFzOiAnc2Nyb2xsYmFyQ29tcCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjcm9sbGJhckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgaW5zdGFuY2U6IFBlcmZlY3RTY3JvbGxiYXIgPSBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IG5nRGVzdHJveTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCdzY3JvbGxiYXInKSBvcHRpb25zOiBTY3JvbGxiYXJPcHRpb25zID0ge307XG5cbiAgQElucHV0KClcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB0b0Jvb2xlYW4odmFsdWUpO1xuICAgIGlmICh0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgdGhpcy5uZ09uRGVzdHJveSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXQoKTtcbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgcHNTY3JvbGxYOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcHNTY3JvbGxZOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBwc1Njcm9sbFVwOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcHNTY3JvbGxEb3duOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcHNTY3JvbGxMZWZ0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcHNTY3JvbGxSaWdodDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgcHNYUmVhY2hTdGFydDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHBzWFJlYWNoRW5kOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcHNZUmVhY2hTdGFydDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHBzWVJlYWNoRW5kOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgem9uZTogTmdab25lKSB7XG4gIH1cblxuICBwcml2YXRlIGdldCBlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICB9XG5cbiAgc2Nyb2xsVG9Cb3R0b20oKSB7XG4gICAgdGhpcy5lbC5zY3JvbGxUb3AgPSB0aGlzLmVsLnNjcm9sbEhlaWdodCAtIHRoaXMuZWwuY2xpZW50SGVpZ2h0O1xuICB9XG5cbiAgc2Nyb2xsVG9Ub3AoKSB7XG4gICAgdGhpcy5lbC5zY3JvbGxUb3AgPSAwO1xuICB9XG5cbiAgc2Nyb2xsVG9MZWZ0KCkge1xuICAgIHRoaXMuZWwuc2Nyb2xsTGVmdCA9IDA7XG4gIH1cblxuICBzY3JvbGxUb1JpZ2h0KCkge1xuICAgIHRoaXMuZWwuc2Nyb2xsTGVmdCA9IHRoaXMuZWwuc2Nyb2xsV2lkdGggLSB0aGlzLmVsLmNsaWVudFdpZHRoO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0KCkge1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICB3aGVlbFNwZWVkOiAwLjUsXG4gICAgICAgIHN3aXBlRWFzaW5nOiB0cnVlLFxuICAgICAgICB3aGVlbFByb3BhZ2F0aW9uOiBmYWxzZSxcbiAgICAgICAgbWluU2Nyb2xsYmFyTGVuZ3RoOiA0MCxcbiAgICAgICAgbWF4U2Nyb2xsYmFyTGVuZ3RoOiAzMDAsXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIH07XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZSA9IG5ldyBQZXJmZWN0U2Nyb2xsYmFyKHRoaXMuZWwsIG9wdGlvbnMpO1xuXG4gICAgICAgIFBlcmZlY3RTY3JvbGxiYXJFdmVudHMuZm9yRWFjaCgoZXZlbnROYW1lOiBQZXJmZWN0U2Nyb2xsYmFyRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBldmVudFR5cGUgPSBldmVudE5hbWUucmVwbGFjZSgvKFtBLVpdKS9nLCBjID0+IGAtJHtjLnRvTG93ZXJDYXNlKCl9YCk7XG5cbiAgICAgICAgICBmcm9tRXZlbnQ8RXZlbnQ+KHRoaXMuZWwsIGV2ZW50VHlwZSlcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyMCksIHRha2VVbnRpbCh0aGlzLm5nRGVzdHJveSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgdGhpc1tldmVudE5hbWVdLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSwgdGhpcy5vcHRpb25zLmRlbGF5IHx8IDApO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ0Rlc3Ryb3kubmV4dCgpO1xuICAgIHRoaXMubmdEZXN0cm95LmNvbXBsZXRlKCk7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UuZGVzdHJveSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5pbnN0YW5jZSA9IG51bGw7XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cbn1cbiJdfQ==