UNPKG

@swimlane/ngx-graph

Version:
72 lines 8.04 kB
import { Directive, Output, HostListener, EventEmitter } from '@angular/core'; import * as i0 from "@angular/core"; /** * Mousewheel directive * https://github.com/SodhanaLibrary/angular2-examples/blob/master/app/mouseWheelDirective/mousewheel.directive.ts * * @export */ // tslint:disable-next-line: directive-selector export class MouseWheelDirective { mouseWheelUp = new EventEmitter(); mouseWheelDown = new EventEmitter(); onMouseWheelChrome(event) { this.mouseWheelFunc(event); } onMouseWheelFirefox(event) { this.mouseWheelFunc(event); } onWheel(event) { this.mouseWheelFunc(event); } onMouseWheelIE(event) { this.mouseWheelFunc(event); } mouseWheelFunc(event) { if (window.event) { event = window.event; } const delta = Math.max(-1, Math.min(1, event.wheelDelta || -event.detail || event.deltaY || event.deltaX)); // Firefox don't have native support for wheel event, as a result delta values are reverse const isWheelMouseUp = event.wheelDelta ? delta > 0 : delta < 0; const isWheelMouseDown = event.wheelDelta ? delta < 0 : delta > 0; if (isWheelMouseUp) { this.mouseWheelUp.emit(event); } else if (isWheelMouseDown) { this.mouseWheelDown.emit(event); } // for IE event.returnValue = false; // for Chrome and Firefox if (event.preventDefault) { event.preventDefault(); } } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: MouseWheelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.4", type: MouseWheelDirective, isStandalone: false, selector: "[mouseWheel]", outputs: { mouseWheelUp: "mouseWheelUp", mouseWheelDown: "mouseWheelDown" }, host: { listeners: { "mousewheel": "onMouseWheelChrome($event)", "DOMMouseScroll": "onMouseWheelFirefox($event)", "wheel": "onWheel($event)", "onmousewheel": "onMouseWheelIE($event)" } }, ngImport: i0 }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: MouseWheelDirective, decorators: [{ type: Directive, args: [{ selector: '[mouseWheel]', standalone: false }] }], propDecorators: { mouseWheelUp: [{ type: Output }], mouseWheelDown: [{ type: Output }], onMouseWheelChrome: [{ type: HostListener, args: ['mousewheel', ['$event']] }], onMouseWheelFirefox: [{ type: HostListener, args: ['DOMMouseScroll', ['$event']] }], onWheel: [{ type: HostListener, args: ['wheel', ['$event']] }], onMouseWheelIE: [{ type: HostListener, args: ['onmousewheel', ['$event']] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW91c2Utd2hlZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3dpbWxhbmUvbmd4LWdyYXBoL3NyYy9saWIvZ3JhcGgvbW91c2Utd2hlZWwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTlFOzs7OztHQUtHO0FBQ0gsK0NBQStDO0FBSy9DLE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFbEMsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFHcEMsa0JBQWtCLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFHRCxtQkFBbUIsQ0FBQyxLQUFVO1FBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUdELE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUdELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkgsMEZBQTBGO1FBQzFGLE1BQU0sY0FBYyxHQUFZLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDekUsTUFBTSxnQkFBZ0IsR0FBWSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQzNFLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQzthQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsU0FBUztRQUNULEtBQUssQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBRTFCLHlCQUF5QjtRQUN6QixJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7dUdBaERVLG1CQUFtQjsyRkFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsS0FBSztpQkFDbEI7OEJBR0MsWUFBWTtzQkFEWCxNQUFNO2dCQUdQLGNBQWM7c0JBRGIsTUFBTTtnQkFJUCxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU10QyxtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTTFDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTWpDLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE91dHB1dCwgSG9zdExpc3RlbmVyLCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBNb3VzZXdoZWVsIGRpcmVjdGl2ZVxuICogaHR0cHM6Ly9naXRodWIuY29tL1NvZGhhbmFMaWJyYXJ5L2FuZ3VsYXIyLWV4YW1wbGVzL2Jsb2IvbWFzdGVyL2FwcC9tb3VzZVdoZWVsRGlyZWN0aXZlL21vdXNld2hlZWwuZGlyZWN0aXZlLnRzXG4gKlxuICogQGV4cG9ydFxuICovXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGRpcmVjdGl2ZS1zZWxlY3RvclxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21vdXNlV2hlZWxdJyxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTW91c2VXaGVlbERpcmVjdGl2ZSB7XG4gIEBPdXRwdXQoKVxuICBtb3VzZVdoZWVsVXAgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKVxuICBtb3VzZVdoZWVsRG93biA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASG9zdExpc3RlbmVyKCdtb3VzZXdoZWVsJywgWyckZXZlbnQnXSlcbiAgb25Nb3VzZVdoZWVsQ2hyb21lKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm1vdXNlV2hlZWxGdW5jKGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ0RPTU1vdXNlU2Nyb2xsJywgWyckZXZlbnQnXSlcbiAgb25Nb3VzZVdoZWVsRmlyZWZveChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5tb3VzZVdoZWVsRnVuYyhldmVudCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aGVlbCcsIFsnJGV2ZW50J10pXG4gIG9uV2hlZWwoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMubW91c2VXaGVlbEZ1bmMoZXZlbnQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignb25tb3VzZXdoZWVsJywgWyckZXZlbnQnXSlcbiAgb25Nb3VzZVdoZWVsSUUoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMubW91c2VXaGVlbEZ1bmMoZXZlbnQpO1xuICB9XG5cbiAgbW91c2VXaGVlbEZ1bmMoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh3aW5kb3cuZXZlbnQpIHtcbiAgICAgIGV2ZW50ID0gd2luZG93LmV2ZW50O1xuICAgIH1cblxuICAgIGNvbnN0IGRlbHRhOiBudW1iZXIgPSBNYXRoLm1heCgtMSwgTWF0aC5taW4oMSwgZXZlbnQud2hlZWxEZWx0YSB8fCAtZXZlbnQuZGV0YWlsIHx8IGV2ZW50LmRlbHRhWSB8fCBldmVudC5kZWx0YVgpKTtcbiAgICAvLyBGaXJlZm94IGRvbid0IGhhdmUgbmF0aXZlIHN1cHBvcnQgZm9yIHdoZWVsIGV2ZW50LCBhcyBhIHJlc3VsdCBkZWx0YSB2YWx1ZXMgYXJlIHJldmVyc2VcbiAgICBjb25zdCBpc1doZWVsTW91c2VVcDogYm9vbGVhbiA9IGV2ZW50LndoZWVsRGVsdGEgPyBkZWx0YSA+IDAgOiBkZWx0YSA8IDA7XG4gICAgY29uc3QgaXNXaGVlbE1vdXNlRG93bjogYm9vbGVhbiA9IGV2ZW50LndoZWVsRGVsdGEgPyBkZWx0YSA8IDAgOiBkZWx0YSA+IDA7XG4gICAgaWYgKGlzV2hlZWxNb3VzZVVwKSB7XG4gICAgICB0aGlzLm1vdXNlV2hlZWxVcC5lbWl0KGV2ZW50KTtcbiAgICB9IGVsc2UgaWYgKGlzV2hlZWxNb3VzZURvd24pIHtcbiAgICAgIHRoaXMubW91c2VXaGVlbERvd24uZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLy8gZm9yIElFXG4gICAgZXZlbnQucmV0dXJuVmFsdWUgPSBmYWxzZTtcblxuICAgIC8vIGZvciBDaHJvbWUgYW5kIEZpcmVmb3hcbiAgICBpZiAoZXZlbnQucHJldmVudERlZmF1bHQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG59XG4iXX0=