UNPKG

3.53 kBTypeScriptView Raw
1export interface VirtualMethods {
2 /**
3 * Object with cached slides HTML elements
4 */
5 cache: object;
6
7 /**
8 * Index of first rendered slide
9 */
10 from: number;
11
12 /**
13 * Index of last rendered slide
14 */
15 to: number;
16
17 /**
18 * Array with slide items passed by `virtual.slides` parameter
19 */
20 slides: any[];
21
22 /*
23 * Methods
24 */
25
26 /**
27 * Append slide. `slides` can be a single slide item or array with such slides.
28 *
29 * @note Only for Core version (in React, Svelte, Vue & Angular it should be done by modifying slides array/data/source)
30 */
31 appendSlide(slide: HTMLElement | string | HTMLElement[] | string[]): void;
32
33 /**
34 * Prepend slide. `slides` can be a single slide item or array with such slides.
35 *
36 * @note Only for Core version (in React, Svelte, Vue & Angular it should be done by modifying slides array/data/source)
37 */
38 prependSlide(slide: HTMLElement | string | HTMLElement[] | string[]): void;
39
40 /**
41 * Remove specific slide or slides. `slideIndexes` can be a number with slide index to remove or array with indexes.
42 *
43 * @note Only for Core version (in React, Svelte, Vue & Angular it should be done by modifying slides array/data/source)
44 */
45 removeSlide(slideIndexes: number[]): void;
46
47 /**
48 * Remove all slides
49 *
50 * @note Only for Core version (in React, Svelte, Vue & Angular it should be done by modifying slides array/data/source)
51 */
52 removeAllSlides(): void;
53
54 /**
55 * Update virtual slides state
56 */
57 update(force: boolean): void;
58}
59
60export interface VirtualEvents {}
61
62export interface VirtualData {
63 /**
64 * slides left/top offset in px
65 */
66 offset: number;
67 /**
68 * index of first slide required to be rendered
69 */
70 from: number;
71 /**
72 * index of last slide required to be rendered
73 */
74 to: number;
75 /**
76 * array with slide items to be rendered
77 */
78 slides: any[];
79}
80
81export interface VirtualOptions {
82 enabled?: boolean;
83 /**
84 * Array with slides
85 *
86 * @default []
87 */
88 slides?: any[];
89 /**
90 * Enables DOM cache of rendering slides html elements. Once they are rendered they will be saved to cache and reused from it.
91 *
92 * @default true
93 */
94 cache?: boolean;
95 /**
96 * Increases amount of pre-rendered slides before active slide
97 *
98 * @default 0
99 */
100 addSlidesBefore?: number;
101 /**
102 * Increases amount of pre-rendered slides after active slide
103 *
104 * @default 0
105 */
106 addSlidesAfter?: number;
107 /**
108 * Function to render slide. As an argument it accepts current slide item for `slides` array and index number of the current slide. Function must return an outter HTML of the swiper slide.
109 *
110 * @default null
111 */
112 renderSlide?: (slide: any, index: any) => any | null;
113 /**
114 * Function for external rendering (e.g. using some other library to handle DOM manipulations and state like React.js or Vue.js). As an argument it accepts `data` object with the following properties:
115 *
116 * - `offset` - slides left/top offset in px
117 * - `from` - index of first slide required to be rendered
118 * - `to` - index of last slide required to be rendered
119 * - `slides` - array with slide items to be rendered
120 *
121 * @default null
122 */
123 renderExternal?: (data: VirtualData) => any | null;
124 /**
125 * When enabled (by default) it will update Swiper layout right after renderExternal called. Useful to disable and update swiper manually when used with render libraries that renders asynchronously
126 *
127 * @default true
128 */
129 renderExternalUpdate?: boolean;
130}