@@ -12,26 +12,35 @@ export function slotsToHeaderProps (cgridVm, slots) {
12
12
}
13
13
14
14
function getHeaderInstances ( cgridVm , slots ) {
15
- return slots ? getColumnDefines ( cgridVm , slots ) : [ ]
15
+ return slots ? getColumnDefinesFromVNodes ( cgridVm , slots ) : [ ]
16
16
}
17
17
18
- function getColumnDefines ( cgridVm , vnodes ) {
19
- const results = [ ]
20
- vnodes . forEach ( vnode => {
18
+ function getColumnDefinesFromVNodes ( cgridVm , vnodes ) {
19
+ return getColumnDefinesFromInstances ( cgridVm , vnodes . map ( vnode => {
21
20
if ( ! vnode . tag ) {
22
- return
21
+ return null
23
22
}
24
23
if ( ! vnode . componentInstance ) {
24
+ return null
25
+ }
26
+ return vnode . componentInstance
27
+ } ) )
28
+ }
29
+
30
+ function getColumnDefinesFromInstances ( cgridVm , instances ) {
31
+ const results = [ ]
32
+ instances . forEach ( componentInstance => {
33
+ if ( ! componentInstance ) {
25
34
return
26
35
}
27
- if ( typeof vnode . componentInstance . createColumn === 'function' ) {
36
+ if ( typeof componentInstance . createColumn === 'function' ) {
28
37
const defineColumns = cgridVm . $_CGrid_defineColumns
29
- if ( defineColumns . indexOf ( vnode . componentInstance ) >= 0 ) {
30
- results . push ( vnode . componentInstance )
38
+ if ( defineColumns . indexOf ( componentInstance ) >= 0 ) {
39
+ results . push ( componentInstance )
31
40
return
32
41
}
33
42
}
34
- results . push ( ...getColumnDefines ( cgridVm , vnode . componentInstance . $children ) )
43
+ results . push ( ...getColumnDefinesFromInstances ( cgridVm , componentInstance . $children ) )
35
44
} )
36
45
37
46
return results
0 commit comments