mirror of
				https://github.com/Redocly/redoc.git
				synced 2025-11-04 09:47:31 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
import {RedocComponent, BaseComponent} from '../base';
 | 
						|
import Method from '../Method/method';
 | 
						|
 | 
						|
@RedocComponent({
 | 
						|
  selector: 'methods-list',
 | 
						|
  templateUrl: './lib/components/MethodsList/methods-list.html',
 | 
						|
  styleUrls: ['./lib/components/MethodsList/methods-list.css'],
 | 
						|
  directives: [Method]
 | 
						|
})
 | 
						|
export default class MethodsList extends BaseComponent {
 | 
						|
 | 
						|
  constructor(schemaMgr) {
 | 
						|
    super(schemaMgr);
 | 
						|
  }
 | 
						|
 | 
						|
  prepareModel() {
 | 
						|
    this.data = {};
 | 
						|
    // follow SwaggerUI behavior for cases when one method has more than one tag:
 | 
						|
    // duplicate methods
 | 
						|
 | 
						|
    let menuStructure = this.schemaMgr.buildMenuTree();
 | 
						|
    let tags = Array.from(menuStructure.entries())
 | 
						|
      .map((entry) => {
 | 
						|
        let [tag, {description, methods}] = entry;
 | 
						|
        // inject tag name into method info
 | 
						|
        methods = methods || [];
 | 
						|
        methods.forEach(method => {
 | 
						|
          method.tag = tag;
 | 
						|
        });
 | 
						|
        return {
 | 
						|
          name: tag,
 | 
						|
          description: description,
 | 
						|
          methods: methods
 | 
						|
        };
 | 
						|
      });
 | 
						|
    this.data.tags = tags;
 | 
						|
    // TODO: check $ref field
 | 
						|
  }
 | 
						|
}
 |