mirror of
https://github.com/Redocly/redoc.git
synced 2025-02-16 18:00:33 +03:00
feat: add hideDownloadButton option
This commit is contained in:
parent
0658b8ea67
commit
8dbe938195
|
@ -13,6 +13,7 @@ export interface RedocRawOptions {
|
||||||
pathInMiddlePanel?: boolean | string;
|
pathInMiddlePanel?: boolean | string;
|
||||||
untrustedSpec?: boolean | string;
|
untrustedSpec?: boolean | string;
|
||||||
hideLoading?: boolean | string;
|
hideLoading?: boolean | string;
|
||||||
|
hideDownloadButton?: boolean | string;
|
||||||
}
|
}
|
||||||
|
|
||||||
function argValueToBoolean(val?: string | boolean): boolean {
|
function argValueToBoolean(val?: string | boolean): boolean {
|
||||||
|
@ -89,6 +90,7 @@ export class RedocNormalizedOptions {
|
||||||
nativeScrollbars: boolean;
|
nativeScrollbars: boolean;
|
||||||
pathInMiddlePanel: boolean;
|
pathInMiddlePanel: boolean;
|
||||||
untrustedSpec: boolean;
|
untrustedSpec: boolean;
|
||||||
|
hideDownloadButton: boolean;
|
||||||
|
|
||||||
constructor(raw: RedocRawOptions) {
|
constructor(raw: RedocRawOptions) {
|
||||||
this.theme = mergeObjects({} as any, defaultTheme, raw.theme || {});
|
this.theme = mergeObjects({} as any, defaultTheme, raw.theme || {});
|
||||||
|
@ -100,5 +102,6 @@ export class RedocNormalizedOptions {
|
||||||
this.nativeScrollbars = argValueToBoolean(raw.nativeScrollbars);
|
this.nativeScrollbars = argValueToBoolean(raw.nativeScrollbars);
|
||||||
this.pathInMiddlePanel = argValueToBoolean(raw.pathInMiddlePanel);
|
this.pathInMiddlePanel = argValueToBoolean(raw.pathInMiddlePanel);
|
||||||
this.untrustedSpec = argValueToBoolean(raw.untrustedSpec);
|
this.untrustedSpec = argValueToBoolean(raw.untrustedSpec);
|
||||||
|
this.hideDownloadButton = argValueToBoolean(raw.hideDownloadButton);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ export class SpecStore {
|
||||||
|
|
||||||
@computed
|
@computed
|
||||||
get info(): ApiInfoModel {
|
get info(): ApiInfoModel {
|
||||||
return new ApiInfoModel(this.parser);
|
return new ApiInfoModel(this.parser, this.options);
|
||||||
}
|
}
|
||||||
|
|
||||||
@computed
|
@computed
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { OpenAPIContact, OpenAPIInfo, OpenAPILicense } from '../../types';
|
import { OpenAPIContact, OpenAPIInfo, OpenAPILicense } from '../../types';
|
||||||
import { isBrowser } from '../../utils/';
|
import { isBrowser } from '../../utils/';
|
||||||
import { OpenAPIParser } from '../OpenAPIParser';
|
import { OpenAPIParser } from '../OpenAPIParser';
|
||||||
|
import { RedocNormalizedOptions } from '../RedocNormalizedOptions';
|
||||||
|
|
||||||
export class ApiInfoModel implements OpenAPIInfo {
|
export class ApiInfoModel implements OpenAPIInfo {
|
||||||
title: string;
|
title: string;
|
||||||
|
@ -11,12 +12,18 @@ export class ApiInfoModel implements OpenAPIInfo {
|
||||||
contact?: OpenAPIContact;
|
contact?: OpenAPIContact;
|
||||||
license?: OpenAPILicense;
|
license?: OpenAPILicense;
|
||||||
|
|
||||||
constructor(public parser: OpenAPIParser) {
|
constructor(private parser: OpenAPIParser, private options: RedocNormalizedOptions) {
|
||||||
Object.assign(this, parser.spec.info);
|
Object.assign(this, parser.spec.info);
|
||||||
}
|
}
|
||||||
|
|
||||||
get downloadLink() {
|
get downloadLink() {
|
||||||
if (!this.parser.specUrl && isBrowser && window.Blob && window.URL) {
|
if (this.options.hideDownloadButton) return undefined;
|
||||||
|
|
||||||
|
if (this.parser.specUrl) {
|
||||||
|
return this.parser.specUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isBrowser && window.Blob && window.URL) {
|
||||||
const blob = new Blob([JSON.stringify(this.parser.spec, null, 2)], {
|
const blob = new Blob([JSON.stringify(this.parser.spec, null, 2)], {
|
||||||
type: 'application/json',
|
type: 'application/json',
|
||||||
});
|
});
|
||||||
|
@ -27,7 +34,6 @@ export class ApiInfoModel implements OpenAPIInfo {
|
||||||
new Buffer(JSON.stringify(this.parser.spec, null, 2)).toString('base64')
|
new Buffer(JSON.stringify(this.parser.spec, null, 2)).toString('base64')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return this.parser.specUrl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get downloadFileName(): string | undefined {
|
get downloadFileName(): string | undefined {
|
||||||
|
|
|
@ -53,7 +53,7 @@ const theme = {
|
||||||
backgroundColor: '#fafafa',
|
backgroundColor: '#fafafa',
|
||||||
},
|
},
|
||||||
logo: {
|
logo: {
|
||||||
maxHeight: '120px',
|
maxHeight: '150px',
|
||||||
},
|
},
|
||||||
rightPanel: {
|
rightPanel: {
|
||||||
backgroundColor: '#263238',
|
backgroundColor: '#263238',
|
||||||
|
|
Loading…
Reference in New Issue
Block a user