export const VirtualProps = { dataKey: { type: [String, Function], required: true }, dataSources: { type: Array, required: true }, dataComponent: { type: [Object, Function], required: true }, keeps: { type: Number, default: 30 }, extraProps: { type: Object }, estimateSize: { type: Number, default: 50 }, direction: { type: String, default: 'vertical' // the other value is horizontal }, start: { type: Number, default: 0 }, offset: { type: Number, default: 0 }, topThreshold: { type: Number, default: 0 }, bottomThreshold: { type: Number, default: 0 }, pageMode: { type: Boolean, default: false }, rootTag: { type: String, default: 'div' }, wrapTag: { type: String, default: 'div' }, wrapClass: { type: String, default: '' }, wrapStyle: { type: Object }, itemTag: { type: String, default: 'div' }, itemClass: { type: String, default: '' }, itemClassAdd: { type: Function }, itemStyle: { type: Object }, headerTag: { type: String, default: 'div' }, headerClass: { type: String, default: '' }, headerStyle: { type: Object }, footerTag: { type: String, default: 'div' }, footerClass: { type: String, default: '' }, footerStyle: { type: Object }, itemScopedSlots: { type: Object } } export const ItemProps = { index: { type: Number }, event: { type: String }, tag: { type: String }, horizontal: { type: Boolean }, source: { type: Object }, component: { type: [Object, Function] }, uniqueKey: { type: [String, Number] }, extraProps: { type: Object }, scopedSlots: { type: Object } } export const SlotProps = { event: { type: String }, uniqueKey: { type: String }, tag: { type: String }, horizontal: { type: Boolean } }