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 | touches: {
|
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 | 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 |
|
66 |
|
67 |
|
68 | setZoomStyles(style: {
|
69 | x: number;
|
70 | y: number;
|
71 | scale: number;
|
72 | }): void;
|
73 | |
74 |
|
75 |
|
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 | }
|
108 | export {};
|