// Copyright (c) Jupyter Development Team.
// Distributed under the terms of the Modified BSD License.
import {
Widget
} from '@phosphor/widgets';
import {
RenderMime
} from '../rendermime';
import {
RenderedHTML, RenderedMarkdown, RenderedText, RenderedImage,
RenderedJavaScript, RenderedSVG, RenderedPDF, RenderedLatex
} from './widget';
/**
* A renderer for raw html.
*/
export
class HTMLRenderer implements RenderMime.IRenderer {
/**
* The mimeTypes this renderer accepts.
*/
mimeTypes = ['text/html'];
/**
* Whether the renderer can render given the render options.
*/
canRender(options: RenderMime.IRenderOptions): boolean {
return this.mimeTypes.indexOf(options.mimeType) !== -1;
}
/**
* Render the transformed mime bundle.
*/
render(options: RenderMime.IRenderOptions): Widget {
return new RenderedHTML(options);
}
}
/**
* A renderer for `
` data.
*/
export
class ImageRenderer implements RenderMime.IRenderer {
/**
* The mimeTypes this renderer accepts.
*/
mimeTypes = ['image/png', 'image/jpeg', 'image/gif'];
/**
* Whether the renderer can render given the render options.
*/
canRender(options: RenderMime.IRenderOptions): boolean {
return this.mimeTypes.indexOf(options.mimeType) !== -1;
}
/**
* Render the transformed mime bundle.
*/
render(options: RenderMime.IRenderOptions): Widget {
return new RenderedImage(options);
}
}
/**
* A renderer for plain text and Jupyter console text data.
*/
export
class TextRenderer implements RenderMime.IRenderer {
/**
* The mimeTypes this renderer accepts.
*/
mimeTypes = ['text/plain', 'application/vnd.jupyter.stdout',
'application/vnd.jupyter.stderr'];
/**
* Whether the renderer can render given the render options.
*/
canRender(options: RenderMime.IRenderOptions): boolean {
return this.mimeTypes.indexOf(options.mimeType) !== -1;
}
/**
* Render the transformed mime bundle.
*/
render(options: RenderMime.IRenderOptions): Widget {
return new RenderedText(options);
}
}
/**
* A renderer for raw `