UNPKG

mt-portfolio

Version:

A Portfolio maker for Angular with image, heading, caption, ability to add contact form and demo

61 lines 7.31 kB
import { Directive, EventEmitter, HostListener, Output } from '@angular/core'; import * as i0 from "@angular/core"; export class SwipeDirective { constructor() { this.next = new EventEmitter(); this.previous = new EventEmitter(); this.swipeCoord = [0, 0]; this.swipeTime = new Date().getTime(); } onSwipeStart($event) { this.onSwipe($event, 'start'); } onSwipeEnd($event) { this.onSwipe($event, 'end'); } onSwipe(e, when) { this.swipe(e, when); } swipe(e, when) { const coord = [e.changedTouches[0].clientX, e.changedTouches[0].clientY]; const time = new Date().getTime(); if (when === 'start') { this.swipeCoord = coord; this.swipeTime = time; } else if (when === 'end') { const direction = [coord[0] - this.swipeCoord[0], coord[1] - this.swipeCoord[1]]; const duration = time - this.swipeTime; if (duration < 1000 // && Math.abs(direction[0]) > 30 // Long enough && Math.abs(direction[0]) > Math.abs(direction[1] * 3)) { // Horizontal enough const swipeDir = direction[0] < 0 ? 'next' : 'previous'; if (swipeDir === 'next') { this.next.emit(); } else { this.previous.emit(); } } } } } SwipeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SwipeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); SwipeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.4", type: SwipeDirective, selector: "[swipe]", outputs: { next: "next", previous: "previous" }, host: { listeners: { "touchstart": "onSwipeStart($event)", "touchend": "onSwipeEnd($event)" } }, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SwipeDirective, decorators: [{ type: Directive, args: [{ selector: '[swipe]' }] }], ctorParameters: function () { return []; }, propDecorators: { next: [{ type: Output }], previous: [{ type: Output }], onSwipeStart: [{ type: HostListener, args: ['touchstart', ['$event']] }], onSwipeEnd: [{ type: HostListener, args: ['touchend', ['$event']] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbXQtcG9ydGZvbGlvL3NyYy9tdC9zd2lwZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLOUUsTUFBTSxPQUFPLGNBQWM7SUFRekI7UUFOVSxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNoQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU5QyxlQUFVLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEIsY0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFakIsQ0FBQztJQUV1QixZQUFZLENBQUMsTUFBVztRQUM5RCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRXFDLFVBQVUsQ0FBQyxNQUFXO1FBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBYSxFQUFFLElBQVk7UUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELEtBQUssQ0FBQyxDQUFhLEVBQUUsSUFBWTtRQUUvQixNQUFNLEtBQUssR0FBcUIsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNGLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFbEMsSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO2FBQU0sSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQ3pCLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUV2QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRTttQkFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYzttQkFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLG9CQUFvQjtnQkFDOUUsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7Z0JBQ3hELElBQUksUUFBUSxLQUFLLE1BQU0sRUFBRTtvQkFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDbEI7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDdEI7YUFDRjtTQUNGO0lBQ0gsQ0FBQzs7MkdBN0NVLGNBQWM7K0ZBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUgxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO2lCQUNwQjswRUFHVyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFPaUMsWUFBWTtzQkFBbkQsWUFBWTt1QkFBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUEsVUFBVTtzQkFBL0MsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3N3aXBlXSdcbn0pXG5leHBvcnQgY2xhc3MgU3dpcGVEaXJlY3RpdmUge1xuXG4gIEBPdXRwdXQoKSBuZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcHJldmlvdXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgc3dpcGVDb29yZCA9IFswLCAwXTtcbiAgc3dpcGVUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBASG9zdExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSkgb25Td2lwZVN0YXJ0KCRldmVudDogYW55KSB7XG4gICAgdGhpcy5vblN3aXBlKCRldmVudCwgJ3N0YXJ0Jyk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd0b3VjaGVuZCcsIFsnJGV2ZW50J10pIG9uU3dpcGVFbmQoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9uU3dpcGUoJGV2ZW50LCAnZW5kJyk7XG4gIH1cblxuICBvblN3aXBlKGU6IFRvdWNoRXZlbnQsIHdoZW46IHN0cmluZykge1xuICAgIHRoaXMuc3dpcGUoZSwgd2hlbik7XG4gIH1cblxuICBzd2lwZShlOiBUb3VjaEV2ZW50LCB3aGVuOiBzdHJpbmcpOiB2b2lkIHtcblxuICAgIGNvbnN0IGNvb3JkOiBbbnVtYmVyLCBudW1iZXJdID0gW2UuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCwgZS5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZXTtcbiAgICBjb25zdCB0aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgICBpZiAod2hlbiA9PT0gJ3N0YXJ0Jykge1xuICAgICAgdGhpcy5zd2lwZUNvb3JkID0gY29vcmQ7XG4gICAgICB0aGlzLnN3aXBlVGltZSA9IHRpbWU7XG4gICAgfSBlbHNlIGlmICh3aGVuID09PSAnZW5kJykge1xuICAgICAgY29uc3QgZGlyZWN0aW9uID0gW2Nvb3JkWzBdIC0gdGhpcy5zd2lwZUNvb3JkWzBdLCBjb29yZFsxXSAtIHRoaXMuc3dpcGVDb29yZFsxXV07XG4gICAgICBjb25zdCBkdXJhdGlvbiA9IHRpbWUgLSB0aGlzLnN3aXBlVGltZTtcblxuICAgICAgaWYgKGR1cmF0aW9uIDwgMTAwMCAvL1xuICAgICAgICAmJiBNYXRoLmFicyhkaXJlY3Rpb25bMF0pID4gMzAgLy8gTG9uZyBlbm91Z2hcbiAgICAgICAgJiYgTWF0aC5hYnMoZGlyZWN0aW9uWzBdKSA+IE1hdGguYWJzKGRpcmVjdGlvblsxXSAqIDMpKSB7IC8vIEhvcml6b250YWwgZW5vdWdoXG4gICAgICAgIGNvbnN0IHN3aXBlRGlyID0gZGlyZWN0aW9uWzBdIDwgMCA/ICduZXh0JyA6ICdwcmV2aW91cyc7XG4gICAgICAgIGlmIChzd2lwZURpciA9PT0gJ25leHQnKSB7XG4gICAgICAgICAgdGhpcy5uZXh0LmVtaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnByZXZpb3VzLmVtaXQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSJdfQ==