1 | import { LightGalleryAllSettings, LightGallerySettings } from './lg-settings';
|
2 | import { GalleryItem, ImageSize } from './lg-utils';
|
3 | import { lgQuery } from './lgQuery';
|
4 | import { Coords, MediaContainerPosition, SlideDirection } from './types';
|
5 | export declare class LightGallery {
|
6 | settings: LightGalleryAllSettings;
|
7 | galleryItems: GalleryItem[];
|
8 | lgId: number;
|
9 | el: HTMLElement;
|
10 | LGel: lgQuery;
|
11 | lgOpened: boolean;
|
12 | index: number;
|
13 | plugins: any[];
|
14 | lGalleryOn: boolean;
|
15 | lgBusy: boolean;
|
16 | touchAction?: 'swipe' | 'zoomSwipe' | 'pinch';
|
17 | swipeDirection?: 'horizontal' | 'vertical';
|
18 | hideBarTimeout: any;
|
19 | currentItemsInDom: string[];
|
20 | outer: lgQuery;
|
21 | items: any;
|
22 | $backdrop: lgQuery;
|
23 | $lgComponents: lgQuery;
|
24 | $container: lgQuery;
|
25 | $inner: lgQuery;
|
26 | $content: lgQuery;
|
27 | $toolbar: lgQuery;
|
28 | prevScrollTop: number;
|
29 | bodyPaddingRight: number;
|
30 | private zoomFromOrigin;
|
31 | private currentImageSize?;
|
32 | private isDummyImageRemoved;
|
33 | private dragOrSwipeEnabled;
|
34 | mediaContainerPosition: {
|
35 | top: number;
|
36 | bottom: number;
|
37 | };
|
38 | constructor(element: HTMLElement, options?: LightGallerySettings);
|
39 | private generateSettings;
|
40 | private normalizeSettings;
|
41 | init(): void;
|
42 | openGalleryOnItemClick(): void;
|
43 | /**
|
44 | * Module constructor
|
45 | * Modules are build incrementally.
|
46 | * Gallery should be opened only once all the modules are initialized.
|
47 | * use moduleBuildTimeout to make sure this
|
48 | */
|
49 | buildModules(): void;
|
50 | validateLicense(): void;
|
51 | getSlideItem(index: number): lgQuery;
|
52 | getSlideItemId(index: number): string;
|
53 | getIdName(id: string): string;
|
54 | getElementById(id: string): lgQuery;
|
55 | manageSingleSlideClassName(): void;
|
56 | buildStructure(): void;
|
57 | refreshOnResize(): void;
|
58 | resizeVideoSlide(index: number, imageSize?: ImageSize): void;
|
59 | /**
|
60 | * Update slides dynamically.
|
61 | * Add, edit or delete slides dynamically when lightGallery is opened.
|
62 | * Modify the current gallery items and pass it via updateSlides method
|
63 | * @note
|
64 | * - Do not mutate existing lightGallery items directly.
|
65 | * - Always pass new list of gallery items
|
66 | * - You need to take care of thumbnails outside the gallery if any
|
67 | * - user this method only if you want to update slides when the gallery is opened. Otherwise, use `refresh()` method.
|
68 | * @param items Gallery items
|
69 | * @param index After the update operation, which slide gallery should navigate to
|
70 | * @category lGPublicMethods
|
71 | * @example
|
72 | * const plugin = lightGallery();
|
73 | *
|
74 | * // Adding slides dynamically
|
75 | * let galleryItems = [
|
76 | * // Access existing lightGallery items
|
77 | * // galleryItems are automatically generated internally from the gallery HTML markup
|
78 | * // or directly from galleryItems when dynamic gallery is used
|
79 | * ...plugin.galleryItems,
|
80 | * ...[
|
81 | * {
|
82 | * src: 'img/img-1.png',
|
83 | * thumb: 'img/thumb1.png',
|
84 | * },
|
85 | * ],
|
86 | * ];
|
87 | * plugin.updateSlides(
|
88 | * galleryItems,
|
89 | * plugin.index,
|
90 | * );
|
91 | *
|
92 | *
|
93 | * // Remove slides dynamically
|
94 | * galleryItems = JSON.parse(
|
95 | * JSON.stringify(updateSlideInstance.galleryItems),
|
96 | * );
|
97 | * galleryItems.shift();
|
98 | * updateSlideInstance.updateSlides(galleryItems, 1);
|
99 | * @see <a href="/demos/update-slides/">Demo</a>
|
100 | */
|
101 | updateSlides(items: GalleryItem[], index: number): void;
|
102 | getItems(): GalleryItem[];
|
103 | shouldHideScrollbar(): boolean;
|
104 | hideScrollbar(): void;
|
105 | resetScrollBar(): void;
|
106 | /**
|
107 | * Open lightGallery.
|
108 | * Open gallery with specific slide by passing index of the slide as parameter.
|
109 | * @category lGPublicMethods
|
110 | * @param {Number} index - index of the slide
|
111 | * @param {HTMLElement} element - Which image lightGallery should zoom from
|
112 | *
|
113 | * @example
|
114 | * const $dynamicGallery = document.getElementById('dynamic-gallery-demo');
|
115 | * const dynamicGallery = lightGallery($dynamicGallery, {
|
116 | * dynamic: true,
|
117 | * dynamicEl: [
|
118 | * {
|
119 | * src: 'img/1.jpg',
|
120 | * thumb: 'img/thumb-1.jpg',
|
121 | * subHtml: '<h4>Image 1 title</h4><p>Image 1 descriptions.</p>',
|
122 | * },
|
123 | * ...
|
124 | * ],
|
125 | * });
|
126 | * $dynamicGallery.addEventListener('click', function () {
|
127 | *
|
128 | *
|
129 | *
|
130 | * dynamicGallery.openGallery(2);
|
131 | * });
|
132 | *
|
133 | */
|
134 | openGallery(index?: number, element?: HTMLElement): void;
|
135 | |
136 |
|
137 |
|
138 |
|
139 |
|
140 |
|
141 | getMediaContainerPosition(): MediaContainerPosition;
|
142 | private setMediaContainerPosition;
|
143 | hideBars(): void;
|
144 | initPictureFill($img: lgQuery): void;
|
145 | |
146 |
|
147 |
|
148 |
|
149 | counter(): void;
|
150 | |
151 |
|
152 |
|
153 |
|
154 | addHtml(index: number): void;
|
155 | |
156 |
|
157 |
|
158 |
|
159 |
|
160 | preload(index: number): void;
|
161 | getDummyImgStyles(imageSize?: ImageSize): string;
|
162 | getVideoContStyle(imageSize?: ImageSize): string;
|
163 | getDummyImageContent($currentSlide: lgQuery, index: number, alt: string): string;
|
164 | setImgMarkup(src: string, $currentSlide: lgQuery, index: number): void;
|
165 | onSlideObjectLoad($slide: lgQuery, isHTML5VideoWithoutPoster: boolean, onLoad: () => void, onError: () => void): void;
|
166 | |
167 |
|
168 |
|
169 |
|
170 |
|
171 |
|
172 |
|
173 |
|
174 | onLgObjectLoad(currentSlide: lgQuery, index: number, delay: number, speed: number, isFirstSlide: boolean, isHTML5VideoWithoutPoster: boolean): void;
|
175 | triggerSlideItemLoad($currentSlide: lgQuery, index: number, delay: number, speed: number, isFirstSlide: boolean): void;
|
176 | isFirstSlideWithZoomAnimation(): boolean;
|
177 | addSlideVideoInfo(items: GalleryItem[]): void;
|
178 | |
179 |
|
180 |
|
181 |
|
182 |
|
183 |
|
184 | loadContent(index: number, rec: boolean): void;
|
185 | |
186 |
|
187 |
|
188 |
|
189 |
|
190 |
|
191 |
|
192 | loadContentOnFirstSlideLoad(index: number, $currentSlide: lgQuery, speed: number): void;
|
193 | getItemsToBeInsertedToDom(index: number, prevIndex: number, numberOfItems?: number): string[];
|
194 | organizeSlideItems(index: number, prevIndex: number): string[];
|
195 | |
196 |
|
197 |
|
198 | getPreviousSlideIndex(): number;
|
199 | setDownloadValue(index: number): void;
|
200 | makeSlideAnimation(direction: 'next' | 'prev', currentSlideItem: lgQuery, previousSlideItem: lgQuery): void;
|
201 | |
202 |
|
203 |
|
204 |
|
205 |
|
206 |
|
207 |
|
208 |
|
209 |
|
210 |
|
211 |
|
212 |
|
213 |
|
214 | slide(index: number, fromTouch?: boolean, fromThumb?: boolean, direction?: SlideDirection | false): void;
|
215 | updateCurrentCounter(index: number): void;
|
216 | updateCounterTotal(): void;
|
217 | getSlideType(item: GalleryItem): 'video' | 'iframe' | 'image';
|
218 | touchMove(startCoords: Coords, endCoords: Coords, e?: TouchEvent): void;
|
219 | touchEnd(endCoords: Coords, startCoords: Coords, event: TouchEvent): void;
|
220 | enableSwipe(): void;
|
221 | enableDrag(): void;
|
222 | triggerPosterClick(): void;
|
223 | manageSwipeClass(): void;
|
224 | |
225 |
|
226 |
|
227 |
|
228 |
|
229 |
|
230 |
|
231 |
|
232 |
|
233 | goToNextSlide(fromTouch?: boolean): void;
|
234 | |
235 |
|
236 |
|
237 |
|
238 |
|
239 |
|
240 |
|
241 |
|
242 |
|
243 |
|
244 | goToPrevSlide(fromTouch?: boolean): void;
|
245 | keyPress(): void;
|
246 | arrow(): void;
|
247 | arrowDisable(index: number): void;
|
248 | setTranslate($el: lgQuery, xValue: number, yValue: number, scaleX?: number, scaleY?: number): void;
|
249 | mousewheel(): void;
|
250 | isSlideElement(target: lgQuery): boolean;
|
251 | isPosterElement(target: lgQuery): boolean;
|
252 | |
253 |
|
254 |
|
255 |
|
256 | toggleMaximize(): void;
|
257 | invalidateItems(): void;
|
258 | trapFocus(): void;
|
259 | manageCloseGallery(): void;
|
260 | |
261 |
|
262 |
|
263 |
|
264 |
|
265 |
|
266 |
|
267 |
|
268 |
|
269 |
|
270 |
|
271 | closeGallery(force?: boolean): number;
|
272 | initModules(): void;
|
273 | destroyModules(destroy?: true): void;
|
274 | |
275 |
|
276 |
|
277 |
|
278 |
|
279 |
|
280 |
|
281 |
|
282 |
|
283 |
|
284 |
|
285 |
|
286 |
|
287 |
|
288 | refresh(galleryItems?: GalleryItem[]): void;
|
289 | updateControls(): void;
|
290 | |
291 |
|
292 |
|
293 |
|
294 |
|
295 |
|
296 |
|
297 |
|
298 |
|
299 |
|
300 |
|
301 |
|
302 |
|
303 | destroy(): number;
|
304 | }
|