UNPKG

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