1export const VirtualProps = {
2    dataKey: {
3        type: [String, Function],
4        required: true
5    },
6    dataSources: {
7        type: Array,
8        required: true
9    },
10    dataComponent: {
11        type: [Object, Function],
12        required: true
13    },
14
15    keeps: {
16        type: Number,
17        default: 30
18    },
19    extraProps: {
20        type: Object
21    },
22    estimateSize: {
23        type: Number,
24        default: 50
25    },
26
27    direction: {
28        type: String,
29        default: 'vertical' // the other value is horizontal
30    },
31    start: {
32        type: Number,
33        default: 0
34    },
35    offset: {
36        type: Number,
37        default: 0
38    },
39    topThreshold: {
40        type: Number,
41        default: 0
42    },
43    bottomThreshold: {
44        type: Number,
45        default: 0
46    },
47    pageMode: {
48        type: Boolean,
49        default: false
50    },
51    rootTag: {
52        type: String,
53        default: 'div'
54    },
55    wrapTag: {
56        type: String,
57        default: 'div'
58    },
59    wrapClass: {
60        type: String,
61        default: ''
62    },
63    wrapStyle: {
64        type: Object
65    },
66    itemTag: {
67        type: String,
68        default: 'div'
69    },
70    itemClass: {
71        type: String,
72        default: ''
73    },
74    itemClassAdd: {
75        type: Function
76    },
77    itemStyle: {
78        type: Object
79    },
80    headerTag: {
81        type: String,
82        default: 'div'
83    },
84    headerClass: {
85        type: String,
86        default: ''
87    },
88    headerStyle: {
89        type: Object
90    },
91    footerTag: {
92        type: String,
93        default: 'div'
94    },
95    footerClass: {
96        type: String,
97        default: ''
98    },
99    footerStyle: {
100        type: Object
101    },
102    itemScopedSlots: {
103        type: Object
104    }
105}
106
107export const ItemProps = {
108    index: {
109        type: Number
110    },
111    event: {
112        type: String
113    },
114    tag: {
115        type: String
116    },
117    horizontal: {
118        type: Boolean
119    },
120    source: {
121        type: Object
122    },
123    component: {
124        type: [Object, Function]
125    },
126    uniqueKey: {
127        type: [String, Number]
128    },
129    extraProps: {
130        type: Object
131    },
132    scopedSlots: {
133        type: Object
134    }
135}
136
137export const SlotProps = {
138    event: {
139        type: String
140    },
141    uniqueKey: {
142        type: String
143    },
144    tag: {
145        type: String
146    },
147    horizontal: {
148        type: Boolean
149    }
150}