UNPKG

ngx-mat-cdk

Version:

Extra Components for Angular Material including Filters,Drag Drop File, MatSelect Mobile Version

102 lines 12.1 kB
import { Directive, ElementRef, EventEmitter, Inject, Output, PLATFORM_ID } from '@angular/core'; import { isPlatformBrowser } from "@angular/common"; export class NgxCdkTouchDetectDirective { constructor(el, plateFormId) { this.el = el; this.plateFormId = plateFormId; this.swipeLeft = new EventEmitter(); this.swipeUp = new EventEmitter(); this.swipeRight = new EventEmitter(); this.swipeDown = new EventEmitter(); this.swipe = new EventEmitter(); this.xDown = null; this.yDown = null; } getTouches(evt) { return evt.touches || // browser API evt.originalEvent.touches; // jQuery } ngAfterViewInit() { if (isPlatformBrowser(this.plateFormId)) { this._addEvents(); } } _handleTouchStartFunc(evt) { const firstTouch = this.getTouches(evt)[0]; this.xDown = firstTouch.clientX; this.yDown = firstTouch.clientY; } _handleTouchMoveFunc(evt) { if (!this.xDown || !this.yDown) { return; } let xUp = evt.touches[0].clientX; let yUp = evt.touches[0].clientY; let xDiff = this.xDown - xUp; let yDiff = this.yDown - yUp; let direction = 'up'; if (Math.abs(xDiff) > Math.abs(yDiff)) { /*most significant*/ if (xDiff > 0) { /* left swipe */ this.swipeLeft.emit(evt); direction = 'left'; } else { /* right swipe */ this.swipeRight.emit(evt); direction = 'right'; } } else { if (yDiff > 0) { /* up swipe */ this.swipeUp.emit(evt); direction = 'up'; } else { /* down swipe */ this.swipeDown.emit(evt); direction = 'down'; } } this.swipe.emit({ event: evt, direction }); /* reset values */ this.xDown = null; this.yDown = null; } ; _addEvents() { this._handleTouchMove = this._handleTouchMoveFunc.bind(this); this._handleTouchStart = this._handleTouchStartFunc.bind(this); this.el.nativeElement.addEventListener('touchstart', this._handleTouchStart, false); this.el.nativeElement.addEventListener('touchmove', this._handleTouchMove, false); } _removeEvents() { this.el.nativeElement.removeEventListener('touchstart', this._handleTouchStart, false); this.el.nativeElement.removeEventListener('touchmove', this._handleTouchMove, false); } ngOnDestroy() { if (isPlatformBrowser(this.plateFormId)) { this._removeEvents(); } } } NgxCdkTouchDetectDirective.decorators = [ { type: Directive, args: [{ selector: '[ngxCdkTouchDetect]' },] } ]; NgxCdkTouchDetectDirective.ctorParameters = () => [ { type: ElementRef }, { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] } ]; NgxCdkTouchDetectDirective.propDecorators = { swipeLeft: [{ type: Output }], swipeUp: [{ type: Output }], swipeRight: [{ type: Output }], swipeDown: [{ type: Output }], swipe: [{ type: Output }] }; export class NgxCdkTouchResult { } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay10b3VjaC1kZXRlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL0FsaXJlemEgTW9oYW1tYWRpL3NvdXJjZS9yZXBvcy9NeUxpYnJhcnkvQW5ndWxhci5MaWJyYXJ5L2xpYnMvcHJvamVjdHMvbmd4LW1hdC1jZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC9kaXJlY3RpdmVzL25neC1jZGstdG91Y2gtZGV0ZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFBRSxZQUFZLEVBRXhCLE1BQU0sRUFFTixNQUFNLEVBQ04sV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBS2xELE1BQU0sT0FBTywwQkFBMEI7SUFPckMsWUFBb0IsRUFBYyxFQUErQixXQUFnQjtRQUE3RCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQStCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBTnZFLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzNDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQ3pDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzVDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzNDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQU14RCxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2IsVUFBSyxHQUFHLElBQUksQ0FBQztJQUhiLENBQUM7SUFNRCxVQUFVLENBQUMsR0FBRztRQUNaLE9BQU8sR0FBRyxDQUFDLE9BQU8sSUFBZ0IsY0FBYztZQUM5QyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVM7SUFDeEMsQ0FBQztJQUdELGVBQWU7UUFDYixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxX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RUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUV2RixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUVILENBQUM7OztZQXBHRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjthQUNoQzs7O1lBWEMsVUFBVTs0Q0FtQjJCLE1BQU0sU0FBQyxXQUFXOzs7d0JBTnRELE1BQU07c0JBQ04sTUFBTTt5QkFDTixNQUFNO3dCQUNOLE1BQU07b0JBQ04sTUFBTTs7QUFnR1QsTUFBTSxPQUFPLGlCQUFpQjtDQUc3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbmplY3QsXHJcbiAgT25EZXN0cm95LFxyXG4gIE91dHB1dCxcclxuICBQTEFURk9STV9JRFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge2lzUGxhdGZvcm1Ccm93c2VyfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tuZ3hDZGtUb3VjaERldGVjdF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hDZGtUb3VjaERldGVjdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgQE91dHB1dCgpIHN3aXBlTGVmdCA9IG5ldyBFdmVudEVtaXR0ZXI8VG91Y2hFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgc3dpcGVVcCA9IG5ldyBFdmVudEVtaXR0ZXI8VG91Y2hFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgc3dpcGVSaWdodCA9IG5ldyBFdmVudEVtaXR0ZXI8VG91Y2hFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgc3dpcGVEb3duID0gbmV3IEV2ZW50RW1pdHRlcjxUb3VjaEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBzd2lwZSA9IG5ldyBFdmVudEVtaXR0ZXI8Tmd4Q2RrVG91Y2hSZXN1bHQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGVGb3JtSWQ6IGFueSkge1xyXG5cclxuICB9XHJcblxyXG4gIHhEb3duID0gbnVsbDtcclxuICB5RG93biA9IG51bGw7XHJcblxyXG5cclxuICBnZXRUb3VjaGVzKGV2dCk6IGFueSB7XHJcbiAgICByZXR1cm4gZXZ0LnRvdWNoZXMgfHwgICAgICAgICAgICAgLy8gYnJvd3NlciBBUElcclxuICAgICAgZXZ0Lm9yaWdpbmFsRXZlbnQudG91Y2hlczsgLy8galF1ZXJ5XHJcbiAgfVxyXG5cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGVGb3JtSWQpKSB7XHJcbiAgICAgIHRoaXMuX2FkZEV2ZW50cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGxlVG91Y2hTdGFydDogYW55O1xyXG5cclxuICBwcml2YXRlIF9oYW5kbGVUb3VjaFN0YXJ0RnVuYyhldnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpcnN0VG91Y2ggPSB0aGlzLmdldFRvdWNoZXMoZXZ0KVswXTtcclxuICAgIHRoaXMueERvd24gPSBmaXJzdFRvdWNoLmNsaWVudFg7XHJcbiAgICB0aGlzLnlEb3duID0gZmlyc3RUb3VjaC5jbGllbnRZO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGxlVG91Y2hNb3ZlOiBhbnk7XHJcblxyXG4gIHByaXZhdGUgX2hhbmRsZVRvdWNoTW92ZUZ1bmMoZXZ0KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMueERvd24gfHwgIXRoaXMueURvd24pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB4VXAgPSBldnQudG91Y2hlc1swXS5jbGllbnRYO1xyXG4gICAgbGV0IHlVcCA9IGV2dC50b3VjaGVzWzBdLmNsaWVudFk7XHJcblxyXG4gICAgbGV0IHhEaWZmID0gdGhpcy54RG93biAtIHhVcDtcclxuICAgIGxldCB5RGlmZiA9IHRoaXMueURvd24gLSB5VXA7XHJcbiAgICBsZXQgZGlyZWN0aW9uOiBzdHJpbmcgPSAndXAnO1xyXG4gICAgaWYgKE1hdGguYWJzKHhEaWZmKSA+IE1hdGguYWJzKHlEaWZmKSkgey8qbW9zdCBzaWduaWZpY2FudCovXHJcbiAgICAgIGlmICh4RGlmZiA+IDApIHtcclxuICAgICAgICAvKiBsZWZ0IHN3aXBlICovXHJcbiAgICAgICAgdGhpcy5zd2lwZUxlZnQuZW1pdChldnQpO1xyXG4gICAgICAgIGRpcmVjdGlvbiA9ICdsZWZ0JztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvKiByaWdodCBzd2lwZSAqL1xyXG4gICAgICAgIHRoaXMuc3dpcGVSaWdodC5lbWl0KGV2dCk7XHJcbiAgICAgICAgZGlyZWN0aW9uID0gJ3JpZ2h0JztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHlEaWZmID4gMCkge1xyXG4gICAgICAgIC8qIHVwIHN3aXBlICovXHJcbiAgICAgICAgdGhpcy5zd2lwZVVwLmVtaXQoZXZ0KTtcclxuICAgICAgICBkaXJlY3Rpb24gPSAndXAnO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvKiBkb3duIHN3aXBlICovXHJcbiAgICAgICAgdGhpcy5zd2lwZURvd24uZW1pdChldnQpO1xyXG4gICAgICAgIGRpcmVjdGlvbiA9ICdkb3duJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zd2lwZS5lbWl0KHtldmVudDogZXZ0LCBkaXJlY3Rpb259KTtcclxuICAgIC8qIHJlc2V0IHZhbHVlcyAqL1xyXG4gICAgdGhpcy54RG93biA9IG51bGw7XHJcbiAgICB0aGlzLnlEb3duID0gbnVsbDtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIF9hZGRFdmVudHMoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5faGFuZGxlVG91Y2hNb3ZlID0gdGhpcy5faGFuZGxlVG91Y2hNb3ZlRnVuYy5iaW5kKHRoaXMpO1xyXG4gICAgdGhpcy5faGFuZGxlVG91Y2hTdGFydCA9IHRoaXMuX2hhbmRsZVRvdWNoU3RhcnRGdW5jLmJpbmQodGhpcyk7XHJcblxyXG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLl9oYW5kbGVUb3VjaFN0YXJ0LCBmYWxzZSk7XHJcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5faGFuZGxlVG91Y2hNb3ZlLCBmYWxzZSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVtb3ZlRXZlbnRzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLl9oYW5kbGVUb3VjaFN0YXJ0LCBmYWxzZSk7XHJcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5faGFuZGxlVG91Y2hNb3ZlLCBmYWxzZSk7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0ZUZvcm1JZCkpIHtcclxuICAgICAgdGhpcy5fcmVtb3ZlRXZlbnRzKCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOZ3hDZGtUb3VjaFJlc3VsdCB7XHJcbiAgZXZlbnQ6IFRvdWNoRXZlbnQ7XHJcbiAgZGlyZWN0aW9uOiBzdHJpbmc7XHJcbn1cclxuIl19