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