// 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 `