UNPKG

3.61 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 /**
83 * Whether the virtual slides are enabled
84 *
85 * @default false
86 */
87 enabled?: boolean;
88 /**
89 * Array with slides
90 *
91 * @default []
92 */
93 slides?: any[];
94 /**
95 * Enables DOM cache of rendering slides html elements. Once they are rendered they will be saved to cache and reused from it.
96 *
97 * @default true
98 */
99 cache?: boolean;
100 /**
101 * Increases amount of pre-rendered slides before active slide
102 *
103 * @default 0
104 */
105 addSlidesBefore?: number;
106 /**
107 * Increases amount of pre-rendered slides after active slide
108 *
109 * @default 0
110 */
111 addSlidesAfter?: number;
112 /**
113 * 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.
114 *
115 * @default null
116 */
117 renderSlide?: (slide: any, index: any) => any | null;
118 /**
119 * 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:
120 *
121 * - `offset` - slides left/top offset in px
122 * - `from` - index of first slide required to be rendered
123 * - `to` - index of last slide required to be rendered
124 * - `slides` - array with slide items to be rendered
125 *
126 * @default null
127 */
128 renderExternal?: (data: VirtualData) => any | null;
129 /**
130 * 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
131 *
132 * @default true
133 */
134 renderExternalUpdate?: boolean;
135}