UNPKG

3.56 kBTypeScriptView Raw
1import { LgQuery, lgQuery } from '../../lgQuery';
2import { LightGallery } from '../../lightgallery';
3interface Coords {
4 x: number;
5 y: number;
6}
7interface DragAllowedAxises {
8 allowX: boolean;
9 allowY: boolean;
10}
11interface ZoomTouchEvent {
12 pageX: number;
13 touches: {
14 pageY: number;
15 pageX: number;
16 }[];
17 pageY: number;
18}
19interface PossibleCords {
20 minX: number;
21 minY: number;
22 maxX: number;
23 maxY: number;
24}
25export default class Zoom {
26 private core;
27 private settings;
28 private $LG;
29 private imageReset;
30 zoomableTimeout: any;
31 positionChanged: boolean;
32 pageX: number;
33 pageY: number;
34 scale: number;
35 containerRect: ClientRect;
36 dragAllowedAxises: DragAllowedAxises;
37 top: number;
38 left: number;
39 scrollTop: number;
40 constructor(instance: LightGallery, $LG: LgQuery);
41 buildTemplates(): void;
42 /**
43 * @desc Enable zoom option only once the image is completely loaded
44 * If zoomFromOrigin is true, Zoom is enabled once the dummy image has been inserted
45 *
46 * Zoom styles are defined under lg-zoomable CSS class.
47 */
48 enableZoom(event: CustomEvent): void;
49 enableZoomOnSlideItemLoad(): void;
50 getDragCords(e: MouseEvent): Coords;
51 getSwipeCords(e: TouchEvent): Coords;
52 getDragAllowedAxises(scale: number, scaleDiff?: number): DragAllowedAxises;
53 setZoomEssentials(): void;
54 /**
55 * @desc Image zoom
56 * Translate the wrap and scale the image to get better user experience
57 *
58 * @param {String} scale - Zoom decrement/increment value
59 */
60 zoomImage(scale: number, scaleDiff: number, reposition: boolean, resetToMax: boolean): void;
61 resetImageTranslate(index: number): void;
62 setZoomImageSize(): void;
63 /**
64 * @desc apply scale3d to image and translate to image wrap
65 * @param {style} X,Y and scale
66 */
67 setZoomStyles(style: {
68 x: number;
69 y: number;
70 scale: number;
71 }): void;
72 /**
73 * @param index - Index of the current slide
74 * @param event - event will be available only if the function is called on clicking/taping the imags
75 */
76 setActualSize(index: number, event?: ZoomTouchEvent): void;
77 getNaturalWidth(index: number): number;
78 getActualSizeScale(naturalWidth: number, width: number): number;
79 getCurrentImageActualSizeScale(): number;
80 getPageCords(event?: ZoomTouchEvent): Coords;
81 setPageCords(event?: ZoomTouchEvent): void;
82 manageActualPixelClassNames(): void;
83 beginZoom(scale: number): boolean;
84 getScale(scale: number): number;
85 init(): void;
86 zoomIn(): void;
87 resetZoom(index?: number): void;
88 getTouchDistance(e: TouchEvent): number;
89 pinchZoom(): void;
90 touchendZoom(startCoords: Coords, endCoords: Coords, allowX: boolean, allowY: boolean, touchDuration: number): void;
91 getZoomSwipeCords(startCoords: Coords, endCoords: Coords, allowX: boolean, allowY: boolean, possibleSwipeCords: PossibleCords): Coords;
92 private isBeyondPossibleLeft;
93 private isBeyondPossibleRight;
94 private isBeyondPossibleTop;
95 private isBeyondPossibleBottom;
96 isImageSlide(index: number): boolean;
97 getPossibleSwipeDragCords(scale?: number): PossibleCords;
98 setZoomSwipeStyles(LGel: lgQuery, distance: {
99 x: number;
100 y: number;
101 }): void;
102 zoomSwipe(): void;
103 zoomDrag(): void;
104 closeGallery(): void;
105 destroy(): void;
106}
107export {};