UNPKG

1.2 kBJavaScriptView Raw
1function getChildren(originalSlots, slidesRef, oldSlidesRef) {
2 if (originalSlots === void 0) {
3 originalSlots = {};
4 }
5
6 const slides = [];
7 const slots = {
8 'container-start': [],
9 'container-end': [],
10 'wrapper-start': [],
11 'wrapper-end': []
12 };
13
14 const getSlidesFromElements = (els, slotName) => {
15 if (!Array.isArray(els)) {
16 return;
17 }
18
19 els.forEach(vnode => {
20 const isFragment = typeof vnode.type === 'symbol';
21 if (slotName === 'default') slotName = 'container-end';
22
23 if (isFragment && vnode.children) {
24 getSlidesFromElements(vnode.children, 'default');
25 } else if (vnode.type && (vnode.type.name === 'SwiperSlide' || vnode.type.name === 'AsyncComponentWrapper')) {
26 slides.push(vnode);
27 } else if (slots[slotName]) {
28 slots[slotName].push(vnode);
29 }
30 });
31 };
32
33 Object.keys(originalSlots).forEach(slotName => {
34 if (typeof originalSlots[slotName] !== 'function') return;
35 const els = originalSlots[slotName]();
36 getSlidesFromElements(els, slotName);
37 });
38 oldSlidesRef.value = slidesRef.value;
39 slidesRef.value = slides;
40 return {
41 slides,
42 slots
43 };
44}
45
46export { getChildren };
\No newline at end of file