'use strict'; import { forwardRef } from '@angular/core'; import { RedocComponent, BaseComponent } from '../base'; import { Method } from '../Method/method'; import { EncodeURIComponentPipe } from '../../utils/pipes'; @RedocComponent({ selector: 'methods-list', templateUrl: './lib/components/MethodsList/methods-list.html', styleUrls: ['./lib/components/MethodsList/methods-list.css'], directives: [ forwardRef(() => Method) ], pipes: [ EncodeURIComponentPipe ], detect: true }) export 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 } }