press-ui
Version:
简单、易用的跨端组件库,兼容 Vue2 和 Vue3,同时支持 uni-app和普通 Vue 项目
96 lines (93 loc) • 1.88 kB
JavaScript
export function deepCloneVNodes(vnodes, createElement) {
function cloneVNode(vnode) {
const clonedChildren = vnode.children?.map(cloneVNode);
const cloned = createElement(vnode.tag, vnode.data, clonedChildren);
cloned.text = vnode.text;
cloned.isComment = vnode.isComment;
cloned.componentOptions = vnode.componentOptions;
cloned.elm = vnode.elm;
cloned.context = vnode.context;
cloned.ns = vnode.ns;
cloned.isStatic = vnode.isStatic;
cloned.key = vnode.key;
return cloned;
}
if (typeof vnodes.map === 'function') {
return vnodes.map(cloneVNode);
}
return vnodes;
}
export const SWIPER_PROPS = {
indicatorDots: {
type: [Boolean, String],
default: false,
},
vertical: {
type: [Boolean, String],
default: false,
},
autoplay: {
type: [Boolean, String],
default: false,
},
circular: {
type: [Boolean, String],
default: false,
},
interval: {
type: [Number, String],
default: 5e3,
},
duration: {
type: [Number, String],
default: 500,
},
current: {
type: [Number, String],
default: 0,
},
indicatorColor: {
type: String,
default: '',
},
indicatorActiveColor: {
type: String,
default: '',
},
previousMargin: {
type: String,
default: '',
},
nextMargin: {
type: String,
default: '',
},
currentItemId: {
type: String,
default: '',
},
skipHiddenItemLayout: {
type: [Boolean, String],
default: false,
},
displayMultipleItems: {
type: [Number, String],
default: 1,
},
disableTouch: {
type: [Boolean, String],
default: false,
},
navigation: {
type: [Boolean, String],
default: false,
},
navigationColor: {
type: String,
default: '#fff',
},
navigationActiveColor: {
type: String,
default: 'rgba(53, 53, 53, 0.6)',
},
};