UNPKG

3.59 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 zoomInProgress: boolean;
33 pageX: number;
34 pageY: number;
35 scale: number;
36 containerRect: ClientRect;
37 dragAllowedAxises: DragAllowedAxises;
38 top: number;
39 left: number;
40 scrollTop: number;
41 constructor(instance: LightGallery, $LG: LgQuery);
42 buildTemplates(): void;
43 /**
44 * @desc Enable zoom option only once the image is completely loaded
45 * If zoomFromOrigin is true, Zoom is enabled once the dummy image has been inserted
46 *
47 * Zoom styles are defined under lg-zoomable CSS class.
48 */
49 enableZoom(event: CustomEvent): void;
50 enableZoomOnSlideItemLoad(): void;
51 getDragCords(e: MouseEvent): Coords;
52 getSwipeCords(e: TouchEvent): Coords;
53 getDragAllowedAxises(scale: number, scaleDiff?: number): DragAllowedAxises;
54 setZoomEssentials(): void;
55 /**
56 * @desc Image zoom
57 * Translate the wrap and scale the image to get better user experience
58 *
59 * @param {String} scale - Zoom decrement/increment value
60 */
61 zoomImage(scale: number, scaleDiff: number, reposition: boolean, resetToMax: boolean): void;
62 resetImageTranslate(index: number): void;
63 setZoomImageSize(): void;
64 /**
65 * @desc apply scale3d to image and translate to image wrap
66 * @param {style} X,Y and scale
67 */
68 setZoomStyles(style: {
69 x: number;
70 y: number;
71 scale: number;
72 }): void;
73 /**
74 * @param index - Index of the current slide
75 * @param event - event will be available only if the function is called on clicking/taping the imags
76 */
77 setActualSize(index: number, event?: ZoomTouchEvent): void;
78 getNaturalWidth(index: number): number;
79 getActualSizeScale(naturalWidth: number, width: number): number;
80 getCurrentImageActualSizeScale(): number;
81 getPageCords(event?: ZoomTouchEvent): Coords;
82 setPageCords(event?: ZoomTouchEvent): void;
83 manageActualPixelClassNames(): void;
84 beginZoom(scale: number): boolean;
85 getScale(scale: number): number;
86 init(): void;
87 zoomIn(): void;
88 resetZoom(index?: number): void;
89 getTouchDistance(e: TouchEvent): number;
90 pinchZoom(): void;
91 touchendZoom(startCoords: Coords, endCoords: Coords, allowX: boolean, allowY: boolean, touchDuration: number): void;
92 getZoomSwipeCords(startCoords: Coords, endCoords: Coords, allowX: boolean, allowY: boolean, possibleSwipeCords: PossibleCords): Coords;
93 private isBeyondPossibleLeft;
94 private isBeyondPossibleRight;
95 private isBeyondPossibleTop;
96 private isBeyondPossibleBottom;
97 isImageSlide(index: number): boolean;
98 getPossibleSwipeDragCords(scale?: number): PossibleCords;
99 setZoomSwipeStyles(LGel: lgQuery, distance: {
100 x: number;
101 y: number;
102 }): void;
103 zoomSwipe(): void;
104 zoomDrag(): void;
105 closeGallery(): void;
106 destroy(): void;
107}
108export {};