chore(types): add types to slide gestures

This commit is contained in:
Adam Bradley
2016-02-16 22:08:22 -06:00
parent d33db81ed6
commit 80fa94bd41
2 changed files with 26 additions and 15 deletions

View File

@ -1,6 +1,6 @@
import {Menu} from './menu'; import {Menu} from './menu';
import {SlideEdgeGesture} from '../../gestures/slide-edge-gesture'; import {SlideEdgeGesture} from '../../gestures/slide-edge-gesture';
import {SlideData} from '../../gestures/slide-gesture';
import {assign} from '../../util/util'; import {assign} from '../../util/util';
@ -19,7 +19,7 @@ export class MenuContentGesture extends SlideEdgeGesture {
}, options)); }, options));
} }
canStart(ev) { canStart(ev: any) {
let menu = this.menu; let menu = this.menu;
if (!menu.enabled || !menu.swipeEnabled) { if (!menu.enabled || !menu.swipeEnabled) {
@ -68,12 +68,12 @@ export class MenuContentGesture extends SlideEdgeGesture {
} }
// Set CSS, then wait one frame for it to apply before sliding starts // Set CSS, then wait one frame for it to apply before sliding starts
onSlideBeforeStart(slide, ev) { onSlideBeforeStart(slide: SlideData, ev: any) {
console.debug('menu gesture, onSlideBeforeStart', this.menu.side); console.debug('menu gesture, onSlideBeforeStart', this.menu.side);
this.menu.swipeStart(); this.menu.swipeStart();
} }
onSlide(slide, ev) { onSlide(slide: SlideData, ev: any) {
let z = (this.menu.side === 'right' ? slide.min : slide.max); let z = (this.menu.side === 'right' ? slide.min : slide.max);
let stepValue = (slide.distance / z); let stepValue = (slide.distance / z);
console.debug('menu gesture, onSlide', this.menu.side, 'distance', slide.distance, 'min', slide.min, 'max', slide.max, 'z', z, 'stepValue', stepValue); console.debug('menu gesture, onSlide', this.menu.side, 'distance', slide.distance, 'min', slide.min, 'max', slide.max, 'z', z, 'stepValue', stepValue);
@ -81,7 +81,7 @@ export class MenuContentGesture extends SlideEdgeGesture {
this.menu.swipeProgress(stepValue); this.menu.swipeProgress(stepValue);
} }
onSlideEnd(slide, ev) { onSlideEnd(slide: SlideData, ev: any) {
let z = (this.menu.side === 'right' ? slide.min : slide.max); let z = (this.menu.side === 'right' ? slide.min : slide.max);
let shouldComplete = (Math.abs(ev.velocityX) > 0.2) || let shouldComplete = (Math.abs(ev.velocityX) > 0.2) ||
@ -94,7 +94,7 @@ export class MenuContentGesture extends SlideEdgeGesture {
this.menu.swipeEnd(shouldComplete, currentStepValue); this.menu.swipeEnd(shouldComplete, currentStepValue);
} }
getElementStartPos(slide, ev) { getElementStartPos(slide: SlideData, ev: any) {
if (this.menu.side === 'right') { if (this.menu.side === 'right') {
// right menu // right menu
return this.menu.isOpen ? slide.min : slide.max; return this.menu.isOpen ? slide.min : slide.max;

View File

@ -3,7 +3,7 @@ import {clamp} from '../util';
export class SlideGesture extends DragGesture { export class SlideGesture extends DragGesture {
public slide: any = null; public slide: SlideData = null;
constructor(element, opts = {}) { constructor(element, opts = {}) {
super(element, opts); super(element, opts);
@ -14,7 +14,7 @@ export class SlideGesture extends DragGesture {
* Get the min and max for the slide. pageX/pageY. * Get the min and max for the slide. pageX/pageY.
* Only called on dragstart. * Only called on dragstart.
*/ */
getSlideBoundaries(slide, ev) { getSlideBoundaries(slide: SlideData, ev: any) {
return { return {
min: 0, min: 0,
max: this.element.offsetWidth max: this.element.offsetWidth
@ -26,7 +26,7 @@ export class SlideGesture extends DragGesture {
* For example, an open side menu starts at 100% and a closed * For example, an open side menu starts at 100% and a closed
* sidemenu starts at 0%. * sidemenu starts at 0%.
*/ */
getElementStartPos(slide, ev) { getElementStartPos(slide: SlideData, ev: any) {
return 0; return 0;
} }
@ -34,7 +34,7 @@ export class SlideGesture extends DragGesture {
return true; return true;
} }
onDragStart(ev): boolean { onDragStart(ev: any): boolean {
if (!this.canStart(ev)) { if (!this.canStart(ev)) {
return false; return false;
} }
@ -70,14 +70,25 @@ export class SlideGesture extends DragGesture {
return true; return true;
} }
onDragEnd(ev) { onDragEnd(ev: any) {
if (!this.slide || !this.slide.started) return; if (!this.slide || !this.slide.started) return;
this.onSlideEnd(this.slide, ev); this.onSlideEnd(this.slide, ev);
this.slide = null; this.slide = null;
} }
onSlideBeforeStart(slide?: any, ev?: any): void {} onSlideBeforeStart(slide?: SlideData, ev?: any): void {}
onSlideStart(slide?: any, ev?: any): void {} onSlideStart(slide?: SlideData, ev?: any): void {}
onSlide(slide?: any, ev?: any): void {} onSlide(slide?: SlideData, ev?: any): void {}
onSlideEnd(slide?: any, ev?: any): void {} onSlideEnd(slide?: SlideData, ev?: any): void {}
}
export interface SlideData {
min?: number;
max?: number;
distance?: number;
delta?: number;
started?: boolean;
pos?: any;
pointerStartPos?: number;
elementStartPos?: number;
} }