Files
ionic-framework/src/components/slides/swiper/swiper-interfaces.ts
Adam Bradley 7000b1b173 refactor: improve tree shaking abilities
Internal refactor completed in order to improve tree shaking and dead
code removal. The public API, with an exception to ion-slides, has
stayed the same. However, internally many changes were required so
bundlers could better exclude modules which should not be bundled.
Ultimately most changes resorted to removing references to `window` or
`document`, or a module that referenced one of those.

BREAKING CHANGES

ion-slides was refactored to remove the external dependencies, and
rewritten in TypeScript/ES6 modules to again improve tree shaking
abilities.
2017-01-09 09:51:39 -06:00

91 lines
1.7 KiB
TypeScript

import { Slides } from '../slides';
import { Platform } from '../../../platform/platform';
export interface SlideElement extends HTMLElement {
progress: number;
swiperSlideSize: number;
swiperSlideOffset: number;
}
export interface SlideContainer extends HTMLElement {
swiper: Slides;
}
export interface SlideEffect {
setTranslate: {(s: Slides, plt: Platform): void};
setTransition: {(s: Slides, plt: Platform, duration: number): void};
}
export interface SlideEffects {
[key: string]: SlideEffect;
}
export interface SlideTouches {
startX: number;
startY: number;
currentX: number;
currentY: number;
diff: number;
}
export interface SlideUIEvent extends TouchEvent {
originalEvent: SlideUIEvent;
preventedByNestedSwiper: boolean;
pageX: number;
pageY: number;
which: number;
}
export interface SlideTouchEvents {
start: string;
move: string;
end: string;
}
export interface SlideZoom {
scale: number;
currentScale: number;
isScaling: boolean;
gesture: {
slide: SlideElement;
slideWidth: number;
slideHeight: number;
image: HTMLElement;
imageWrap: HTMLElement;
zoomMax: number;
scaleStart?: number;
scaleMove?: number;
};
image: {
isTouched: boolean;
isMoved: boolean;
currentX: number;
currentY: number;
minX: number;
minY: number;
maxX: number;
maxY: number;
width: number;
height: number;
startX: number;
startY: number;
touchesStart: {
x?: number;
y?: number;
},
touchesCurrent: {
x?: number;
y?: number;
}
};
velocity: {
x: number;
y: number;
prevPositionX: number;
prevPositionY: number;
prevTime: number
};
unRegs: Function[];
}