redoc/lib/components/ApiInfo/api-info.ts

45 lines
1.4 KiB
TypeScript
Raw Normal View History

'use strict';
2016-12-29 20:20:29 +03:00
import { Component, ChangeDetectionStrategy, OnInit, ElementRef } from '@angular/core';
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
2016-08-22 12:12:13 +03:00
import { SpecManager, BaseComponent } from '../base';
2016-12-29 20:20:29 +03:00
import { OptionsService, Marker } from '../../services/index';
2016-08-22 12:12:13 +03:00
@Component({
selector: 'api-info',
styleUrls: ['./api-info.css'],
2016-08-22 12:12:13 +03:00
templateUrl: './api-info.html',
changeDetection: ChangeDetectionStrategy.OnPush
})
2016-08-28 21:46:10 +03:00
export class ApiInfo extends BaseComponent implements OnInit {
info: any = {};
specUrl: String | SafeResourceUrl;
downloadFilename = '';
2016-12-29 20:20:29 +03:00
constructor(specMgr: SpecManager,
private optionsService: OptionsService,
elRef: ElementRef,
marker: Marker,
private sanitizer: DomSanitizer
2016-12-29 20:20:29 +03:00
) {
super(specMgr);
2016-12-29 20:20:29 +03:00
marker.addElement(elRef.nativeElement);
}
2016-06-13 20:54:24 +03:00
init() {
this.info = this.componentSchema.info;
this.specUrl = this.specMgr.specUrl;
if (!this.specUrl && window.Blob && window.URL) {
const blob = new Blob([JSON.stringify(this.specMgr.rawSpec, null, 2)], {type : 'application/json'});
this.specUrl = this.sanitizer.bypassSecurityTrustResourceUrl(window.URL.createObjectURL(blob));
this.downloadFilename = 'swagger.json';
}
if (!isNaN(parseInt(this.info.version.toString().substring(0, 1)))) {
this.info.version = 'v' + this.info.version;
2016-07-01 18:09:42 +03:00
}
}
2016-08-28 21:46:10 +03:00
ngOnInit() {
this.preinit();
}
}