35 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| module.exports = function computeApiBreadCrumbs(API_DOC_TYPES_TO_RENDER) {
 | |
|   return {
 | |
|     $runAfter: ['paths-computed'],
 | |
|     $runBefore: ['rendering-docs'],
 | |
|     $process(docs) {
 | |
|       // Compute the breadcrumb for each doc by processing its containers
 | |
|       docs.forEach(doc => {
 | |
|         if (API_DOC_TYPES_TO_RENDER.indexOf(doc.docType) !== -1) {
 | |
|           doc.breadCrumbs = [];
 | |
|           doc.breadCrumbs.push({ text: 'API', path: '/api' });
 | |
|           if (isSecondaryEntryPoint(doc)) {
 | |
|             doc.breadCrumbs.push(createPackageBreadcrumb(doc));
 | |
|           }
 | |
|           if (doc.moduleDoc) {
 | |
|             if (isSecondaryEntryPoint(doc.moduleDoc)) {
 | |
|               doc.breadCrumbs.push(createPackageBreadcrumb(doc.moduleDoc));
 | |
|             }
 | |
|             doc.breadCrumbs.push({ text: '@angular/' + doc.moduleDoc.id, path: doc.moduleDoc.path });
 | |
|           }
 | |
|           doc.breadCrumbs.push({ text: doc.name, path: doc.path });
 | |
|         }
 | |
| 
 | |
|       });
 | |
|     }
 | |
|   };
 | |
| };
 | |
| 
 | |
| function isSecondaryEntryPoint(doc) {
 | |
|   return doc.docType === 'package' && !doc.isPrimaryPackage;
 | |
| }
 | |
| 
 | |
| function createPackageBreadcrumb(doc) {
 | |
|   return { text: doc.packageInfo.primary.name, path: doc.packageInfo.primary.path };
 | |
| }
 |