UNPKG

jupyterlab-emrys

Version:

A computational environment for Jupyter. Powered by Emrys

90 lines (89 loc) 2.95 kB
// Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. "use strict"; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var phosphor_panel_1 = require('phosphor-panel'); var phosphor_widget_1 = require('phosphor-widget'); var docregistry_1 = require('../docregistry'); /** * The class name added to a Jupyter MarkdownWidget */ var MD_CLASS = 'jp-MarkdownWidget'; /** * A widget for rendered markdown. */ var MarkdownWidget = (function (_super) { __extends(MarkdownWidget, _super); /** * Construct a new markdown widget. */ function MarkdownWidget(context, rendermime) { var _this = this; _super.call(this); this._rendermime = null; this._context = null; this.addClass(MD_CLASS); this.layout = new phosphor_panel_1.PanelLayout(); this.title.text = context.path.split('/').pop(); this._rendermime = rendermime; rendermime.resolver = context; this._context = context; context.pathChanged.connect(function (c, path) { _this.title.text = path.split('/').pop(); }); context.model.contentChanged.connect(function () { _this.update(); }); } /** * Handle an `after-attach` message to the widget. */ MarkdownWidget.prototype.onAfterAttach = function (msg) { this.update(); }; /** * Handle an `update-request` message to the widget. */ MarkdownWidget.prototype.onUpdateRequest = function (msg) { var context = this._context; var model = context.model; var layout = this.layout; var widget = this._rendermime.render({ 'text/markdown': model.toString(), }); if (layout.childCount()) { layout.childAt(0).dispose(); } layout.addChild(widget); }; return MarkdownWidget; }(phosphor_widget_1.Widget)); exports.MarkdownWidget = MarkdownWidget; /** * A widget factory for Markdown. */ var MarkdownWidgetFactory = (function (_super) { __extends(MarkdownWidgetFactory, _super); /** * Construct a new markdown widget factory. */ function MarkdownWidgetFactory(rendermime) { _super.call(this); this._rendermime = null; this._rendermime = rendermime; } /** * Create a new widget given a context. */ MarkdownWidgetFactory.prototype.createNew = function (context, kernel) { var widget = new MarkdownWidget(context, this._rendermime.clone()); this.widgetCreated.emit(widget); return widget; }; return MarkdownWidgetFactory; }(docregistry_1.ABCWidgetFactory)); exports.MarkdownWidgetFactory = MarkdownWidgetFactory;