1 | import { LgQuery, lgQuery } from '../../lgQuery';
|
2 | import { LightGallery } from '../../lightgallery';
|
3 | interface Coords {
|
4 | x: number;
|
5 | y: number;
|
6 | }
|
7 | interface DragAllowedAxises {
|
8 | allowX: boolean;
|
9 | allowY: boolean;
|
10 | }
|
11 | interface ZoomTouchEvent {
|
12 | pageX: number;
|
13 | targetTouches: {
|
14 | pageY: number;
|
15 | pageX: number;
|
16 | }[];
|
17 | pageY: number;
|
18 | }
|
19 | interface PossibleCords {
|
20 | minX: number;
|
21 | minY: number;
|
22 | maxX: number;
|
23 | maxY: number;
|
24 | }
|
25 | export 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 |
|
70 |
|
71 |
|
72 |
|
73 |
|
74 | zoomImage(scale: number): void;
|
75 | |
76 |
|
77 |
|
78 |
|
79 | setZoomStyles(style: {
|
80 | x: number;
|
81 | y: number;
|
82 | scale: number;
|
83 | }): void;
|
84 | |
85 |
|
86 |
|
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 | }
|
118 | export {};
|