@@ -52,6 +52,7 @@ async function getComponents(config: d.Config, compilerCtx: d.CompilerCtx, diagn
5252 . filter ( ( [ _ , member ] ) => isDocsPublic ( member . jsdoc ) ) ;
5353
5454 const readme = await getUserReadmeContent ( compilerCtx , readmePath ) ;
55+ const docsTags = generateDocsTags ( moduleFile . cmpMeta . jsdoc ) ;
5556
5657 return {
5758 dirPath,
@@ -61,15 +62,16 @@ async function getComponents(config: d.Config, compilerCtx: d.CompilerCtx, diagn
6162 usagesDir,
6263 tag : moduleFile . cmpMeta . tagNameMeta ,
6364 readme,
65+ docsTags,
6466 docs : generateDocs ( readme , moduleFile . cmpMeta . jsdoc ) ,
65- docsTags : generateDocsTags ( moduleFile . cmpMeta . jsdoc ) ,
6667 usage : await generateUsages ( config , compilerCtx , usagesDir ) ,
6768 encapsulation : getEncapsulation ( moduleFile . cmpMeta ) ,
6869
6970 props : getProperties ( membersMeta ) ,
7071 methods : getMethods ( membersMeta ) ,
7172 events : getEvents ( moduleFile . cmpMeta ) ,
72- styles : getStyles ( moduleFile . cmpMeta )
73+ styles : getStyles ( moduleFile . cmpMeta ) ,
74+ slots : getSlots ( docsTags )
7375 } ;
7476 } ) ;
7577 return Promise . all ( promises ) ;
@@ -170,6 +172,22 @@ function getStyles(cmpMeta: d.ComponentMeta): d.JsonDocsStyle[] {
170172 } ) ;
171173}
172174
175+ function getSlots ( tags : d . JsonDocsTags [ ] ) : d . JsonDocsSlot [ ] {
176+ return tags
177+ . filter ( tag => tag . name === 'slot' && tag . text )
178+ . map ( ( { text} ) => {
179+ const [ namePart , ...rest ] = ( ' ' + text ) . split ( ' - ' ) ;
180+ return {
181+ name : namePart . trim ( ) ,
182+ docs : rest . join ( ' - ' ) . trim ( )
183+ } ;
184+ } )
185+ . sort ( ( a , b ) => {
186+ if ( a . name . toLowerCase ( ) < b . name . toLowerCase ( ) ) return - 1 ;
187+ if ( a . name . toLowerCase ( ) > b . name . toLowerCase ( ) ) return 1 ;
188+ return 0 ;
189+ } ) ;
190+ }
173191
174192function getAttrName ( memberMeta : d . MemberMeta ) {
175193 if ( memberMeta . attribName ) {
0 commit comments