@jupyterlab/rendermime 0.18.2 → 0.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +34 -0
- package/lib/registry.d.ts +3 -3
- package/lib/registry.js +10 -8
- package/lib/renderers.d.ts +4 -0
- package/lib/renderers.js +13 -5
- package/lib/widgets.js +1 -0
- package/package.json +17 -11
- package/style/index.css +19 -1
- package/lib/attachmentmodel.js.map +0 -1
- package/lib/factories.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/latex.js.map +0 -1
- package/lib/mimemodel.js.map +0 -1
- package/lib/outputmodel.js.map +0 -1
- package/lib/registry.js.map +0 -1
- package/lib/renderers.js.map +0 -1
- package/lib/widgets.js.map +0 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
Copyright (c) 2015 Project Jupyter Contributors
|
|
2
|
+
All rights reserved.
|
|
3
|
+
|
|
4
|
+
Redistribution and use in source and binary forms, with or without
|
|
5
|
+
modification, are permitted provided that the following conditions are met:
|
|
6
|
+
|
|
7
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
8
|
+
list of conditions and the following disclaimer.
|
|
9
|
+
|
|
10
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
11
|
+
this list of conditions and the following disclaimer in the documentation
|
|
12
|
+
and/or other materials provided with the distribution.
|
|
13
|
+
|
|
14
|
+
3. Neither the name of the copyright holder nor the names of its
|
|
15
|
+
contributors may be used to endorse or promote products derived from
|
|
16
|
+
this software without specific prior written permission.
|
|
17
|
+
|
|
18
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
19
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
20
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
21
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
22
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
23
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
24
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
25
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
26
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
27
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
|
+
|
|
29
|
+
Semver File License
|
|
30
|
+
===================
|
|
31
|
+
|
|
32
|
+
The semver.py file is from https://github.com/podhmo/python-semver
|
|
33
|
+
which is licensed under the "MIT" license. See the semver.py file for details.
|
|
34
|
+
|
package/lib/registry.d.ts
CHANGED
|
@@ -208,13 +208,13 @@ export declare namespace RenderMimeRegistry {
|
|
|
208
208
|
*/
|
|
209
209
|
constructor(options: IUrlResolverOptions);
|
|
210
210
|
/**
|
|
211
|
-
* Resolve a relative url to
|
|
211
|
+
* Resolve a relative url to an absolute url path.
|
|
212
212
|
*/
|
|
213
213
|
resolveUrl(url: string): Promise<string>;
|
|
214
214
|
/**
|
|
215
|
-
* Get the download url of a given absolute
|
|
215
|
+
* Get the download url of a given absolute url path.
|
|
216
216
|
*/
|
|
217
|
-
getDownloadUrl(
|
|
217
|
+
getDownloadUrl(url: string): Promise<string>;
|
|
218
218
|
/**
|
|
219
219
|
* Whether the URL should be handled by the resolver
|
|
220
220
|
* or not.
|
package/lib/registry.js
CHANGED
|
@@ -237,23 +237,24 @@ exports.RenderMimeRegistry = RenderMimeRegistry;
|
|
|
237
237
|
this._contents = options.contents;
|
|
238
238
|
}
|
|
239
239
|
/**
|
|
240
|
-
* Resolve a relative url to
|
|
240
|
+
* Resolve a relative url to an absolute url path.
|
|
241
241
|
*/
|
|
242
242
|
resolveUrl(url) {
|
|
243
243
|
if (this.isLocal(url)) {
|
|
244
|
-
|
|
244
|
+
const cwd = encodeURI(coreutils_1.PathExt.dirname(this._session.path));
|
|
245
245
|
url = coreutils_1.PathExt.resolve(cwd, url);
|
|
246
246
|
}
|
|
247
247
|
return Promise.resolve(url);
|
|
248
248
|
}
|
|
249
249
|
/**
|
|
250
|
-
* Get the download url of a given absolute
|
|
250
|
+
* Get the download url of a given absolute url path.
|
|
251
251
|
*/
|
|
252
|
-
getDownloadUrl(
|
|
253
|
-
if (this.isLocal(
|
|
254
|
-
|
|
252
|
+
getDownloadUrl(url) {
|
|
253
|
+
if (this.isLocal(url)) {
|
|
254
|
+
// decode url->path before passing to contents api
|
|
255
|
+
return this._contents.getDownloadUrl(decodeURI(url));
|
|
255
256
|
}
|
|
256
|
-
return Promise.resolve(
|
|
257
|
+
return Promise.resolve(url);
|
|
257
258
|
}
|
|
258
259
|
/**
|
|
259
260
|
* Whether the URL should be handled by the resolver
|
|
@@ -266,7 +267,8 @@ exports.RenderMimeRegistry = RenderMimeRegistry;
|
|
|
266
267
|
* manager.
|
|
267
268
|
*/
|
|
268
269
|
isLocal(url) {
|
|
269
|
-
|
|
270
|
+
const path = decodeURI(url);
|
|
271
|
+
return coreutils_1.URLExt.isLocal(url) || !!this._contents.driveName(path);
|
|
270
272
|
}
|
|
271
273
|
}
|
|
272
274
|
RenderMimeRegistry.UrlResolver = UrlResolver;
|
package/lib/renderers.d.ts
CHANGED
|
@@ -86,6 +86,10 @@ export declare namespace renderImage {
|
|
|
86
86
|
* The optional height for the image.
|
|
87
87
|
*/
|
|
88
88
|
height?: number;
|
|
89
|
+
/**
|
|
90
|
+
* Whether an image requires a background for legibility.
|
|
91
|
+
*/
|
|
92
|
+
needsBackground?: string;
|
|
89
93
|
/**
|
|
90
94
|
* Whether the image should be unconfined.
|
|
91
95
|
*/
|
package/lib/renderers.js
CHANGED
|
@@ -88,7 +88,7 @@ exports.renderHTML = renderHTML;
|
|
|
88
88
|
*/
|
|
89
89
|
function renderImage(options) {
|
|
90
90
|
// Unpack the options.
|
|
91
|
-
let { host, mimeType, source, width, height, unconfined } = options;
|
|
91
|
+
let { host, mimeType, source, width, height, needsBackground, unconfined } = options;
|
|
92
92
|
// Clear the content in the host.
|
|
93
93
|
host.textContent = '';
|
|
94
94
|
// Create the image element.
|
|
@@ -102,6 +102,12 @@ function renderImage(options) {
|
|
|
102
102
|
if (typeof width === 'number') {
|
|
103
103
|
img.width = width;
|
|
104
104
|
}
|
|
105
|
+
if (needsBackground === 'light') {
|
|
106
|
+
img.classList.add('jp-needs-light-background');
|
|
107
|
+
}
|
|
108
|
+
else if (needsBackground === 'dark') {
|
|
109
|
+
img.classList.add('jp-needs-dark-background');
|
|
110
|
+
}
|
|
105
111
|
if (unconfined === true) {
|
|
106
112
|
img.classList.add('jp-mod-unconfined');
|
|
107
113
|
}
|
|
@@ -411,8 +417,8 @@ var Private;
|
|
|
411
417
|
node.setAttribute(name, '');
|
|
412
418
|
return resolver
|
|
413
419
|
.resolveUrl(source)
|
|
414
|
-
.then(
|
|
415
|
-
return resolver.getDownloadUrl(
|
|
420
|
+
.then(urlPath => {
|
|
421
|
+
return resolver.getDownloadUrl(urlPath);
|
|
416
422
|
})
|
|
417
423
|
.then(url => {
|
|
418
424
|
// Check protocol again in case it changed:
|
|
@@ -457,13 +463,15 @@ var Private;
|
|
|
457
463
|
// Get the appropriate file path.
|
|
458
464
|
return resolver
|
|
459
465
|
.resolveUrl(href)
|
|
460
|
-
.then(
|
|
466
|
+
.then(urlPath => {
|
|
467
|
+
// decode encoded url from url to api path
|
|
468
|
+
const path = decodeURI(urlPath);
|
|
461
469
|
// Handle the click override.
|
|
462
470
|
if (linkHandler) {
|
|
463
471
|
linkHandler.handleLink(anchor, path, hash);
|
|
464
472
|
}
|
|
465
473
|
// Get the appropriate file download path.
|
|
466
|
-
return resolver.getDownloadUrl(
|
|
474
|
+
return resolver.getDownloadUrl(urlPath);
|
|
467
475
|
})
|
|
468
476
|
.then(url => {
|
|
469
477
|
// Set the visible anchor.
|
package/lib/widgets.js
CHANGED
|
@@ -166,6 +166,7 @@ class RenderedImage extends RenderedCommon {
|
|
|
166
166
|
source: String(model.data[this.mimeType]),
|
|
167
167
|
width: metadata && metadata.width,
|
|
168
168
|
height: metadata && metadata.height,
|
|
169
|
+
needsBackground: model.metadata['needs_background'],
|
|
169
170
|
unconfined: metadata && metadata.unconfined
|
|
170
171
|
});
|
|
171
172
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupyterlab/rendermime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.1",
|
|
4
4
|
"description": "JupyterLab - RenderMime",
|
|
5
5
|
"homepage": "https://github.com/jupyterlab/jupyterlab",
|
|
6
6
|
"bugs": {
|
|
@@ -24,18 +24,19 @@
|
|
|
24
24
|
"url": "https://github.com/jupyterlab/jupyterlab.git"
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
|
-
"build": "tsc",
|
|
27
|
+
"build": "tsc -b",
|
|
28
28
|
"clean": "rimraf lib",
|
|
29
|
+
"docs": "typedoc --options tdoptions.json --theme ../../typedoc-theme src",
|
|
29
30
|
"prepublishOnly": "npm run build",
|
|
30
|
-
"watch": "tsc -
|
|
31
|
+
"watch": "tsc -b --watch"
|
|
31
32
|
},
|
|
32
33
|
"dependencies": {
|
|
33
|
-
"@jupyterlab/apputils": "^0.
|
|
34
|
-
"@jupyterlab/codemirror": "^0.
|
|
35
|
-
"@jupyterlab/coreutils": "^2.1
|
|
36
|
-
"@jupyterlab/observables": "^2.
|
|
37
|
-
"@jupyterlab/rendermime-interfaces": "^1.1
|
|
38
|
-
"@jupyterlab/services": "^3.1
|
|
34
|
+
"@jupyterlab/apputils": "^0.19.1",
|
|
35
|
+
"@jupyterlab/codemirror": "^0.19.1",
|
|
36
|
+
"@jupyterlab/coreutils": "^2.2.1",
|
|
37
|
+
"@jupyterlab/observables": "^2.1.1",
|
|
38
|
+
"@jupyterlab/rendermime-interfaces": "^1.2.1",
|
|
39
|
+
"@jupyterlab/services": "^3.2.1",
|
|
39
40
|
"@phosphor/algorithm": "^1.1.2",
|
|
40
41
|
"@phosphor/coreutils": "^1.3.0",
|
|
41
42
|
"@phosphor/messaging": "^1.2.2",
|
|
@@ -47,6 +48,11 @@
|
|
|
47
48
|
"devDependencies": {
|
|
48
49
|
"@types/marked": "~0.3.0",
|
|
49
50
|
"rimraf": "~2.6.2",
|
|
50
|
-
"
|
|
51
|
-
|
|
51
|
+
"typedoc": "~0.12.0",
|
|
52
|
+
"typescript": "~3.1.1"
|
|
53
|
+
},
|
|
54
|
+
"publishConfig": {
|
|
55
|
+
"access": "public"
|
|
56
|
+
},
|
|
57
|
+
"gitHead": "7fc900168981e58051253ecc66a18015a052cd2f"
|
|
52
58
|
}
|
package/style/index.css
CHANGED
|
@@ -341,7 +341,6 @@
|
|
|
341
341
|
.jp-RenderedHTMLCommon td,
|
|
342
342
|
.jp-RenderedHTMLCommon th,
|
|
343
343
|
.jp-RenderedHTMLCommon tr {
|
|
344
|
-
text-align: right;
|
|
345
344
|
vertical-align: middle;
|
|
346
345
|
padding: 0.5em 0.5em;
|
|
347
346
|
line-height: normal;
|
|
@@ -355,6 +354,12 @@
|
|
|
355
354
|
max-width: none;
|
|
356
355
|
}
|
|
357
356
|
|
|
357
|
+
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon td,
|
|
358
|
+
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon th,
|
|
359
|
+
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon tr {
|
|
360
|
+
text-align: right;
|
|
361
|
+
}
|
|
362
|
+
|
|
358
363
|
.jp-RenderedHTMLCommon th {
|
|
359
364
|
font-weight: bold;
|
|
360
365
|
}
|
|
@@ -396,6 +401,19 @@
|
|
|
396
401
|
margin-bottom: 1em;
|
|
397
402
|
}
|
|
398
403
|
|
|
404
|
+
/* Change color behind transparent images if they need it... */
|
|
405
|
+
[data-theme-light='false'] .jp-RenderedImage img.jp-needs-light-background {
|
|
406
|
+
background-color: var(--jp-inverse-layout-color1);
|
|
407
|
+
}
|
|
408
|
+
[data-theme-light='true'] .jp-RenderedImage img.jp-needs-dark-background {
|
|
409
|
+
background-color: var(--jp-inverse-layout-color1);
|
|
410
|
+
}
|
|
411
|
+
/* ...or leave it untouched if they don't */
|
|
412
|
+
[data-theme-light='false'] .jp-RenderedImage img.jp-needs-dark-background {
|
|
413
|
+
}
|
|
414
|
+
[data-theme-light='true'] .jp-RenderedImage img.jp-needs-light-background {
|
|
415
|
+
}
|
|
416
|
+
|
|
399
417
|
.jp-RenderedHTMLCommon img,
|
|
400
418
|
.jp-RenderedImage img,
|
|
401
419
|
.jp-RenderedHTMLCommon svg,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attachmentmodel.js","sourceRoot":"","sources":["../../../../rendermime/src/attachmentmodel.ts"],"names":[],"mappings":"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","sourcesContent":["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\nimport { nbformat } from '@jupyterlab/coreutils';\n\nimport { IObservableJSON, ObservableJSON } from '@jupyterlab/observables';\n\nimport { IRenderMime } from '@jupyterlab/rendermime-interfaces';\n\nimport {\n JSONExt,\n JSONObject,\n JSONValue,\n ReadonlyJSONObject\n} from '@phosphor/coreutils';\n\nimport { ISignal, Signal } from '@phosphor/signaling';\n\nimport { MimeModel } from './mimemodel';\n\n/**\n * The interface for an attachment model.\n */\nexport interface IAttachmentModel extends IRenderMime.IMimeModel {\n /**\n * A signal emitted when the attachment model changes.\n */\n readonly changed: ISignal<this, void>;\n\n /**\n * Dispose of the resources used by the attachment model.\n */\n dispose(): void;\n\n /**\n * Serialize the model to JSON.\n */\n toJSON(): nbformat.IMimeBundle;\n}\n\n/**\n * The namespace for IAttachmentModel sub-interfaces.\n */\nexport namespace IAttachmentModel {\n /**\n * The options used to create a notebook attachment model.\n */\n export interface IOptions {\n /**\n * The raw attachment value.\n */\n value: nbformat.IMimeBundle;\n }\n}\n\n/**\n * The default implementation of a notebook attachment model.\n */\nexport class AttachmentModel implements IAttachmentModel {\n /**\n * Construct a new attachment model.\n */\n constructor(options: IAttachmentModel.IOptions) {\n let { data } = Private.getBundleOptions(options);\n this._data = new ObservableJSON({ values: data as JSONObject });\n this._rawData = data;\n // Make a copy of the data.\n let value = options.value;\n for (let key in value) {\n // Ignore data and metadata that were stripped.\n switch (key) {\n case 'data':\n break;\n default:\n this._raw[key] = Private.extract(value, key);\n }\n }\n }\n\n /**\n * A signal emitted when the attachment model changes.\n */\n get changed(): ISignal<this, void> {\n return this._changed;\n }\n\n /**\n * Dispose of the resources used by the attachment model.\n */\n dispose(): void {\n this._data.dispose();\n Signal.clearData(this);\n }\n\n /**\n * The data associated with the model.\n */\n get data(): ReadonlyJSONObject {\n return this._rawData;\n }\n\n /**\n * The metadata associated with the model.\n */\n get metadata(): ReadonlyJSONObject {\n return undefined;\n }\n\n /**\n * Set the data associated with the model.\n *\n * #### Notes\n * Depending on the implementation of the mime model,\n * this call may or may not have deferred effects,\n */\n setData(options: IRenderMime.IMimeModel.ISetDataOptions): void {\n if (options.data) {\n this._updateObservable(this._data, options.data);\n this._rawData = options.data;\n }\n this._changed.emit(void 0);\n }\n\n /**\n * Serialize the model to JSON.\n */\n toJSON(): nbformat.IMimeBundle {\n let attachment: JSONValue = {};\n for (let key in this._raw) {\n attachment[key] = Private.extract(this._raw, key);\n }\n return attachment as nbformat.IMimeBundle;\n }\n\n // All attachments are untrusted\n readonly trusted = false;\n\n /**\n * Update an observable JSON object using a readonly JSON object.\n */\n private _updateObservable(\n observable: IObservableJSON,\n data: ReadonlyJSONObject\n ) {\n let oldKeys = observable.keys();\n let newKeys = Object.keys(data);\n\n // Handle removed keys.\n for (let key of oldKeys) {\n if (newKeys.indexOf(key) === -1) {\n observable.delete(key);\n }\n }\n\n // Handle changed data.\n for (let key of newKeys) {\n let oldValue = observable.get(key);\n let newValue = data[key];\n if (oldValue !== newValue) {\n observable.set(key, newValue as JSONValue);\n }\n }\n }\n\n private _changed = new Signal<this, void>(this);\n private _raw: JSONObject = {};\n private _rawData: ReadonlyJSONObject;\n private _data: IObservableJSON;\n}\n\n/**\n * The namespace for AttachmentModel statics.\n */\nexport namespace AttachmentModel {\n /**\n * Get the data for an attachment.\n *\n * @params bundle - A kernel attachment MIME bundle.\n *\n * @returns - The data for the payload.\n */\n export function getData(bundle: nbformat.IMimeBundle): JSONObject {\n return Private.getData(bundle);\n }\n}\n\n/**\n * The namespace for module private data.\n */\nnamespace Private {\n /**\n * Get the data from a notebook attachment.\n */\n export function getData(bundle: nbformat.IMimeBundle): JSONObject {\n return convertBundle(bundle);\n }\n\n /**\n * Get the bundle options given attachment model options.\n */\n export function getBundleOptions(\n options: IAttachmentModel.IOptions\n ): MimeModel.IOptions {\n let data = getData(options.value);\n return { data };\n }\n\n /**\n * Extract a value from a JSONObject.\n */\n export function extract(value: JSONObject, key: string): JSONValue {\n let item = value[key];\n if (JSONExt.isPrimitive(item)) {\n return item;\n }\n return JSONExt.deepCopy(item);\n }\n\n /**\n * Convert a mime bundle to mime data.\n */\n function convertBundle(bundle: nbformat.IMimeBundle): JSONObject {\n let map: JSONObject = Object.create(null);\n for (let mimeType in bundle) {\n map[mimeType] = extract(bundle, mimeType);\n }\n return map;\n }\n}\n"]}
|
package/lib/factories.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../../rendermime/src/factories.ts"],"names":[],"mappings":";;;;;;;;;AAMA,mDAAqC;AAErC;;GAEG;AACU,QAAA,mBAAmB,GAAiC;IAC/D,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,CAAC,WAAW,CAAC;IACxB,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;CAC7D,CAAC;AAEF;;GAEG;AACU,QAAA,oBAAoB,GAAiC;IAChE,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC;IAChE,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;CAC9D,CAAC;AAEF;;GAEG;AACU,QAAA,oBAAoB,GAAiC;IAChE,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,CAAC,YAAY,CAAC;IACzB,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;CAC9D,CAAC;AAEF;;GAEG;AACU,QAAA,uBAAuB,GAAiC;IACnE,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,CAAC,eAAe,CAAC;IAC5B,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC;CACjE,CAAC;AAEF;;GAEG;AACU,QAAA,kBAAkB,GAAiC;IAC9D,IAAI,EAAE,KAAK;IACX,SAAS,EAAE,CAAC,eAAe,CAAC;IAC5B,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;CAC5D,CAAC;AAEF;;GAEG;AACU,QAAA,mBAAmB,GAAiC;IAC/D,IAAI,EAAE,IAAI;IACV,SAAS,EAAE;QACT,YAAY;QACZ,gCAAgC;QAChC,gCAAgC;KACjC;IACD,WAAW,EAAE,GAAG;IAChB,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;CAC7D,CAAC;AAEF;;GAEG;AACU,QAAA,yBAAyB,GAAiC;IACrE,IAAI,EAAE,KAAK;IACX,SAAS,EAAE,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;IACxD,WAAW,EAAE,GAAG;IAChB,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC;CACnE,CAAC;AAEF;;GAEG;AACU,QAAA,yBAAyB,GAElC;IACF,2BAAmB;IACnB,+BAAuB;IACvB,4BAAoB;IACpB,0BAAkB;IAClB,4BAAoB;IACpB,iCAAyB;IACzB,2BAAmB;CACpB,CAAC","sourcesContent":["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\nimport { IRenderMime } from '@jupyterlab/rendermime-interfaces';\n\nimport * as widgets from './widgets';\n\n/**\n * A mime renderer factory for raw html.\n */\nexport const htmlRendererFactory: IRenderMime.IRendererFactory = {\n safe: true,\n mimeTypes: ['text/html'],\n defaultRank: 50,\n createRenderer: options => new widgets.RenderedHTML(options)\n};\n\n/**\n * A mime renderer factory for images.\n */\nexport const imageRendererFactory: IRenderMime.IRendererFactory = {\n safe: true,\n mimeTypes: ['image/bmp', 'image/png', 'image/jpeg', 'image/gif'],\n defaultRank: 90,\n createRenderer: options => new widgets.RenderedImage(options)\n};\n\n/**\n * A mime renderer factory for LaTeX.\n */\nexport const latexRendererFactory: IRenderMime.IRendererFactory = {\n safe: true,\n mimeTypes: ['text/latex'],\n defaultRank: 70,\n createRenderer: options => new widgets.RenderedLatex(options)\n};\n\n/**\n * A mime renderer factory for Markdown.\n */\nexport const markdownRendererFactory: IRenderMime.IRendererFactory = {\n safe: true,\n mimeTypes: ['text/markdown'],\n defaultRank: 60,\n createRenderer: options => new widgets.RenderedMarkdown(options)\n};\n\n/**\n * A mime renderer factory for svg.\n */\nexport const svgRendererFactory: IRenderMime.IRendererFactory = {\n safe: false,\n mimeTypes: ['image/svg+xml'],\n defaultRank: 80,\n createRenderer: options => new widgets.RenderedSVG(options)\n};\n\n/**\n * A mime renderer factory for plain and jupyter console text data.\n */\nexport const textRendererFactory: IRenderMime.IRendererFactory = {\n safe: true,\n mimeTypes: [\n 'text/plain',\n 'application/vnd.jupyter.stdout',\n 'application/vnd.jupyter.stderr'\n ],\n defaultRank: 120,\n createRenderer: options => new widgets.RenderedText(options)\n};\n\n/**\n * A placeholder factory for deprecated rendered JavaScript.\n */\nexport const javaScriptRendererFactory: IRenderMime.IRendererFactory = {\n safe: false,\n mimeTypes: ['text/javascript', 'application/javascript'],\n defaultRank: 110,\n createRenderer: options => new widgets.RenderedJavaScript(options)\n};\n\n/**\n * The standard factories provided by the rendermime package.\n */\nexport const standardRendererFactories: ReadonlyArray<\n IRenderMime.IRendererFactory\n> = [\n htmlRendererFactory,\n markdownRendererFactory,\n latexRendererFactory,\n svgRendererFactory,\n imageRendererFactory,\n javaScriptRendererFactory,\n textRendererFactory\n];\n"]}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../rendermime/src/index.ts"],"names":[],"mappings":";;;;;AAAA;;;+EAG+E;AAC/E,8BAA4B,CAAC,qBAAqB;AAGlD,uCAAkC;AAClC,iCAA4B;AAC5B,6BAAwB;AACxB,iCAA4B;AAC5B,mCAA8B;AAC9B,gCAA2B;AAC3B,iCAA4B;AAC5B,+BAA0B","sourcesContent":["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\nimport '../style/index.css'; // Why is this first?\n\nexport * from '@jupyterlab/rendermime-interfaces';\nexport * from './attachmentmodel';\nexport * from './factories';\nexport * from './latex';\nexport * from './mimemodel';\nexport * from './outputmodel';\nexport * from './registry';\nexport * from './renderers';\nexport * from './widgets';\n"]}
|
package/lib/latex.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"latex.js","sourceRoot":"","sources":["../../../../rendermime/src/latex.ts"],"names":[],"mappings":"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","sourcesContent":["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n// Some magic for deferring mathematical expressions to MathJax\n// by hiding them from the Markdown parser.\n// Some of the code here is adapted with permission from Davide Cervone\n// under the terms of the Apache2 license governing the MathJax project.\n// Other minor modifications are also due to StackExchange and are used with\n// permission.\n\nconst inline = '$'; // the inline math delimiter\n\n// MATHSPLIT contains the pattern for math delimiters and special symbols\n// needed for searching for math in the text input.\nconst MATHSPLIT = /(\\$\\$?|\\\\(?:begin|end)\\{[a-z]*\\*?\\}|\\\\[{}$]|[{}]|(?:\\n\\s*)+|@@\\d+@@|\\\\\\\\(?:\\(|\\)|\\[|\\]))/i;\n\n/**\n * Break up the text into its component parts and search\n * through them for math delimiters, braces, linebreaks, etc.\n * Math delimiters must match and braces must balance.\n * Don't allow math to pass through a double linebreak\n * (which will be a paragraph).\n */\nexport function removeMath(text: string): { text: string; math: string[] } {\n let math: string[] = []; // stores math strings for later\n let start: number | null = null;\n let end: string | null = null;\n let last: number | null = null;\n let braces: number = 0;\n let deTilde: (text: string) => string;\n\n // Except for extreme edge cases, this should catch precisely those pieces of the markdown\n // source that will later be turned into code spans. While MathJax will not TeXify code spans,\n // we still have to consider them at this point; the following issue has happened several times:\n //\n // `$foo` and `$bar` are variables. --> <code>$foo ` and `$bar</code> are variables.\n let hasCodeSpans = /`/.test(text);\n if (hasCodeSpans) {\n text = text\n .replace(/~/g, '~T')\n .replace(/(^|[^\\\\])(`+)([^\\n]*?[^`\\n])\\2(?!`)/gm, wholematch =>\n wholematch.replace(/\\$/g, '~D')\n );\n deTilde = (text: string) => {\n return text.replace(\n /~([TD])/g,\n (wholematch, character) => (character === 'T' ? '~' : inline)\n );\n };\n } else {\n deTilde = (text: string) => {\n return text;\n };\n }\n\n let blocks = text.replace(/\\r\\n?/g, '\\n').split(MATHSPLIT);\n\n for (let i = 1, m = blocks.length; i < m; i += 2) {\n let block = blocks[i];\n if (block.charAt(0) === '@') {\n //\n // Things that look like our math markers will get\n // stored and then retrieved along with the math.\n //\n blocks[i] = '@@' + math.length + '@@';\n math.push(block);\n } else if (start !== null) {\n //\n // If we are in math, look for the end delimiter,\n // but don't go past double line breaks, and\n // and balance braces within the math.\n //\n if (block === end) {\n if (braces) {\n last = i;\n } else {\n blocks = processMath(start, i, deTilde, math, blocks);\n start = null;\n end = null;\n last = null;\n }\n } else if (block.match(/\\n.*\\n/)) {\n if (last !== null) {\n i = last;\n blocks = processMath(start, i, deTilde, math, blocks);\n }\n start = null;\n end = null;\n last = null;\n braces = 0;\n } else if (block === '{') {\n braces++;\n } else if (block === '}' && braces) {\n braces--;\n }\n } else {\n //\n // Look for math start delimiters and when\n // found, set up the end delimiter.\n //\n if (block === inline || block === '$$') {\n start = i;\n end = block;\n braces = 0;\n } else if (block === '\\\\\\\\(' || block === '\\\\\\\\[') {\n start = i;\n end = block.slice(-1) === '(' ? '\\\\\\\\)' : '\\\\\\\\]';\n braces = 0;\n } else if (block.substr(1, 5) === 'begin') {\n start = i;\n end = '\\\\end' + block.substr(6);\n braces = 0;\n }\n }\n }\n if (start !== null && last !== null) {\n blocks = processMath(start, last, deTilde, math, blocks);\n start = null;\n end = null;\n last = null;\n }\n return { text: deTilde(blocks.join('')), math };\n}\n\n/**\n * Put back the math strings that were saved,\n * and clear the math array (no need to keep it around).\n */\nexport function replaceMath(text: string, math: string[]): string {\n /**\n * Replace a math placeholder with its corresponding group.\n * The math delimiters \"\\\\(\", \"\\\\[\", \"\\\\)\" and \"\\\\]\" are replaced\n * removing one backslash in order to be interpreted correctly by MathJax.\n */\n let process = (match: string, n: number): string => {\n let group = math[n];\n if (\n group.substr(0, 3) === '\\\\\\\\(' &&\n group.substr(group.length - 3) === '\\\\\\\\)'\n ) {\n group = '\\\\(' + group.substring(3, group.length - 3) + '\\\\)';\n } else if (\n group.substr(0, 3) === '\\\\\\\\[' &&\n group.substr(group.length - 3) === '\\\\\\\\]'\n ) {\n group = '\\\\[' + group.substring(3, group.length - 3) + '\\\\]';\n }\n return group;\n };\n // Replace all the math group placeholders in the text\n // with the saved strings.\n return text.replace(/@@(\\d+)@@/g, process);\n}\n\n/**\n * Process math blocks.\n *\n * The math is in blocks i through j, so\n * collect it into one block and clear the others.\n * Replace &, <, and > by named entities.\n * For IE, put <br> at the ends of comments since IE removes \\n.\n * Clear the current math positions and store the index of the\n * math, then push the math string onto the storage array.\n * The preProcess function is called on all blocks if it has been passed in\n */\nfunction processMath(\n i: number,\n j: number,\n preProcess: (input: string) => string,\n math: string[],\n blocks: string[]\n): string[] {\n let block = blocks\n .slice(i, j + 1)\n .join('')\n .replace(/&/g, '&') // use HTML entity for &\n .replace(/</g, '<') // use HTML entity for <\n .replace(/>/g, '>'); // use HTML entity for >\n if (navigator && navigator.appName === 'Microsoft Internet Explorer') {\n block = block.replace(/(%[^\\n]*)\\n/g, '$1<br/>\\n');\n }\n while (j > i) {\n blocks[j] = '';\n j--;\n }\n blocks[i] = '@@' + math.length + '@@'; // replace the current block text with a unique tag to find later\n if (preProcess) {\n block = preProcess(block);\n }\n math.push(block);\n return blocks;\n}\n"]}
|
package/lib/mimemodel.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mimemodel.js","sourceRoot":"","sources":["../../../../rendermime/src/mimemodel.ts"],"names":[],"mappings":";;AAQA;;GAEG;AACH;IACE;;OAEG;IACH,YAAY,UAA8B,EAAE;QAC1C,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IACpD,CAAC;IAOD;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,OAA+C;QACrD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;CAKF;AA9CD,8BA8CC;AAgCD;;GAEG;AACH,IAAU,OAAO,CAOhB;AAPD,WAAU,OAAO;IACf;;OAEG;IACH;QACE,WAAW;IACb,CAAC;IAFe,YAAI,OAEnB,CAAA;AACH,CAAC,EAPS,OAAO,KAAP,OAAO,QAOhB","sourcesContent":["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\nimport { ReadonlyJSONObject } from '@phosphor/coreutils';\n\nimport { IRenderMime } from '@jupyterlab/rendermime-interfaces';\n\n/**\n * The default mime model implementation.\n */\nexport class MimeModel implements IRenderMime.IMimeModel {\n /**\n * Construct a new mime model.\n */\n constructor(options: MimeModel.IOptions = {}) {\n this.trusted = !!options.trusted;\n this._data = options.data || {};\n this._metadata = options.metadata || {};\n this._callback = options.callback || Private.noOp;\n }\n\n /**\n * Whether the model is trusted.\n */\n readonly trusted: boolean;\n\n /**\n * The data associated with the model.\n */\n get data(): ReadonlyJSONObject {\n return this._data;\n }\n\n /**\n * The metadata associated with the model.\n */\n get metadata(): ReadonlyJSONObject {\n return this._metadata;\n }\n\n /**\n * Set the data associated with the model.\n *\n * #### Notes\n * Depending on the implementation of the mime model,\n * this call may or may not have deferred effects,\n */\n setData(options: IRenderMime.IMimeModel.ISetDataOptions): void {\n this._data = options.data || this._data;\n this._metadata = options.metadata || this._metadata;\n this._callback(options);\n }\n\n private _callback: (options: IRenderMime.IMimeModel.ISetDataOptions) => void;\n private _data: ReadonlyJSONObject;\n private _metadata: ReadonlyJSONObject;\n}\n\n/**\n * The namespace for MimeModel class statics.\n */\nexport namespace MimeModel {\n /**\n * The options used to create a mime model.\n */\n export interface IOptions {\n /**\n * Whether the model is trusted. Defaults to `false`.\n */\n trusted?: boolean;\n\n /**\n * A callback function for when the data changes.\n */\n callback?: (options: IRenderMime.IMimeModel.ISetDataOptions) => void;\n\n /**\n * The initial mime data.\n */\n data?: ReadonlyJSONObject;\n\n /**\n * The initial mime metadata.\n */\n metadata?: ReadonlyJSONObject;\n }\n}\n\n/**\n * The namespace for module private data.\n */\nnamespace Private {\n /**\n * A no-op callback function.\n */\n export function noOp() {\n /* no-op */\n }\n}\n"]}
|
package/lib/outputmodel.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"outputmodel.js","sourceRoot":"","sources":["../../../../rendermime/src/outputmodel.ts"],"names":[],"mappings":";;AAAA;;;+EAG+E;AAC/E,mDAK6B;AAE7B,mDAAsD;AAEtD,qDAAiD;AAEjD,yDAA0E;AA6D1E;;GAEG;AACH;IACE;;OAEG;IACH,YAAY,OAA8B;QA6IlC,aAAQ,GAAG,IAAI,kBAAM,CAAa,IAAI,CAAC,CAAC;QACxC,SAAI,GAAe,EAAE,CAAC;QA7I5B,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,GAAG,IAAI,4BAAc,CAAC,EAAE,MAAM,EAAE,IAAkB,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,4BAAc,CAAC,EAAE,MAAM,EAAE,QAAsB,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,2BAA2B;QAC3B,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC1B,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;YACrB,+CAA+C;YAC/C,QAAQ,GAAG,EAAE;gBACX,KAAK,MAAM,CAAC;gBACZ,KAAK,UAAU;oBACb,MAAM;gBACR;oBACE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aAChD;SACF;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;QAC9B,IAAI,oBAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;YACnC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC;SAC7C;aAAM;YACL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;IACH,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAiBD;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACzB,kBAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,OAA+C;QACrD,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;SAC9B;QACD,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;SACtC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,IAAI,MAAM,GAAc,EAAE,CAAC;QAC3B,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC/C;QACD,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,cAAc,CAAC;YACpB,KAAK,gBAAgB,CAAC;YACtB,KAAK,qBAAqB;gBACxB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAkB,CAAC;gBACzC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAsB,CAAC;gBACjD,MAAM;YACR;gBACE,MAAM;SACT;QACD,yBAAyB;QACzB,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3B,OAAO,MAA0B,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,UAA2B,EAC3B,IAAwB;QAExB,IAAI,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhC,uBAAuB;QACvB,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;YACvB,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC/B,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACxB;SACF;QAED,uBAAuB;QACvB,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;YACvB,IAAI,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,QAAQ,KAAK,QAAQ,EAAE;gBACzB,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,QAAqB,CAAC,CAAC;aAC5C;SACF;IACH,CAAC;CAQF;AAvJD,kCAuJC;AAED;;GAEG;AACH,WAAiB,WAAW;IAC1B;;;;;;OAMG;IACH,iBAAwB,MAAwB;QAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAFe,mBAAO,UAEtB,CAAA;IAED;;;;;;OAMG;IACH,qBAA4B,MAAwB;QAClD,OAAO,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAFe,uBAAW,cAE1B,CAAA;AACH,CAAC,EAtBgB,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAsB3B;AAED;;GAEG;AACH,IAAU,OAAO,CAwEhB;AAxED,WAAU,OAAO;IACf;;OAEG;IACH,iBAAwB,MAAwB;QAC9C,IAAI,MAAM,GAAyB,EAAE,CAAC;QACtC,IACE,oBAAQ,CAAC,eAAe,CAAC,MAAM,CAAC;YAChC,oBAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;YAC9B,oBAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,EAChC;YACA,MAAM,GAAI,MAAkC,CAAC,IAAI,CAAC;SACnD;aAAM,IAAI,oBAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACpC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC5B,MAAM,CAAC,gCAAgC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;aACxD;iBAAM;gBACL,MAAM,CAAC,gCAAgC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;aACxD;SACF;aAAM,IAAI,oBAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACnC,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,CAAC,gCAAgC,CAAC;gBACtC,SAAS,IAAI,GAAG,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;SACpD;QACD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IApBe,eAAO,UAoBtB,CAAA;IAED;;OAEG;IACH,qBAA4B,MAAwB;QAClD,IAAI,KAAK,GAAe,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,oBAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,oBAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;YACtE,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE;gBAC/B,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;aAC5C;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IARe,mBAAW,cAQ1B,CAAA;IAED;;OAEG;IACH,0BACE,OAA8B;QAE9B,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IAPe,wBAAgB,mBAO/B,CAAA;IAED;;OAEG;IACH,iBAAwB,KAAiB,EAAE,GAAW;QACpD,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,mBAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;IANe,eAAO,UAMtB,CAAA;IAED;;OAEG;IACH,uBAAuB,MAA4B;QACjD,IAAI,GAAG,GAAe,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1C,KAAK,IAAI,QAAQ,IAAI,MAAM,EAAE;YAC3B,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SAC3C;QACD,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC,EAxES,OAAO,KAAP,OAAO,QAwEhB","sourcesContent":["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\nimport {\n JSONExt,\n JSONObject,\n JSONValue,\n ReadonlyJSONObject\n} from '@phosphor/coreutils';\n\nimport { ISignal, Signal } from '@phosphor/signaling';\n\nimport { nbformat } from '@jupyterlab/coreutils';\n\nimport { IObservableJSON, ObservableJSON } from '@jupyterlab/observables';\n\nimport { IRenderMime } from '@jupyterlab/rendermime-interfaces';\n\nimport { MimeModel } from './mimemodel';\n\n/**\n * The interface for an output model.\n */\nexport interface IOutputModel extends IRenderMime.IMimeModel {\n /**\n * A signal emitted when the output model changes.\n */\n readonly changed: ISignal<this, void>;\n\n /**\n * The output type.\n */\n readonly type: string;\n\n /**\n * The execution count of the model.\n */\n readonly executionCount: nbformat.ExecutionCount;\n\n /**\n * Whether the output is trusted.\n */\n trusted: boolean;\n\n /**\n * Dispose of the resources used by the output model.\n */\n dispose(): void;\n\n /**\n * Serialize the model to JSON.\n */\n toJSON(): nbformat.IOutput;\n}\n\n/**\n * The namespace for IOutputModel sub-interfaces.\n */\nexport namespace IOutputModel {\n /**\n * The options used to create a notebook output model.\n */\n export interface IOptions {\n /**\n * The raw output value.\n */\n value: nbformat.IOutput;\n\n /**\n * Whether the output is trusted. The default is false.\n */\n trusted?: boolean;\n }\n}\n\n/**\n * The default implementation of a notebook output model.\n */\nexport class OutputModel implements IOutputModel {\n /**\n * Construct a new output model.\n */\n constructor(options: IOutputModel.IOptions) {\n let { data, metadata, trusted } = Private.getBundleOptions(options);\n this._data = new ObservableJSON({ values: data as JSONObject });\n this._rawData = data;\n this._metadata = new ObservableJSON({ values: metadata as JSONObject });\n this._rawMetadata = metadata;\n this.trusted = trusted;\n // Make a copy of the data.\n let value = options.value;\n for (let key in value) {\n // Ignore data and metadata that were stripped.\n switch (key) {\n case 'data':\n case 'metadata':\n break;\n default:\n this._raw[key] = Private.extract(value, key);\n }\n }\n this.type = value.output_type;\n if (nbformat.isExecuteResult(value)) {\n this.executionCount = value.execution_count;\n } else {\n this.executionCount = null;\n }\n }\n\n /**\n * A signal emitted when the output model changes.\n */\n get changed(): ISignal<this, void> {\n return this._changed;\n }\n\n /**\n * The output type.\n */\n readonly type: string;\n\n /**\n * The execution count.\n */\n readonly executionCount: nbformat.ExecutionCount;\n\n /**\n * Whether the model is trusted.\n */\n readonly trusted: boolean;\n\n /**\n * Dispose of the resources used by the output model.\n */\n dispose(): void {\n this._data.dispose();\n this._metadata.dispose();\n Signal.clearData(this);\n }\n\n /**\n * The data associated with the model.\n */\n get data(): ReadonlyJSONObject {\n return this._rawData;\n }\n\n /**\n * The metadata associated with the model.\n */\n get metadata(): ReadonlyJSONObject {\n return this._rawMetadata;\n }\n\n /**\n * Set the data associated with the model.\n *\n * #### Notes\n * Depending on the implementation of the mime model,\n * this call may or may not have deferred effects,\n */\n setData(options: IRenderMime.IMimeModel.ISetDataOptions): void {\n if (options.data) {\n this._updateObservable(this._data, options.data);\n this._rawData = options.data;\n }\n if (options.metadata) {\n this._updateObservable(this._metadata, options.metadata);\n this._rawMetadata = options.metadata;\n }\n this._changed.emit(void 0);\n }\n\n /**\n * Serialize the model to JSON.\n */\n toJSON(): nbformat.IOutput {\n let output: JSONValue = {};\n for (let key in this._raw) {\n output[key] = Private.extract(this._raw, key);\n }\n switch (this.type) {\n case 'display_data':\n case 'execute_result':\n case 'update_display_data':\n output['data'] = this.data as JSONObject;\n output['metadata'] = this.metadata as JSONObject;\n break;\n default:\n break;\n }\n // Remove transient data.\n delete output['transient'];\n return output as nbformat.IOutput;\n }\n\n /**\n * Update an observable JSON object using a readonly JSON object.\n */\n private _updateObservable(\n observable: IObservableJSON,\n data: ReadonlyJSONObject\n ) {\n let oldKeys = observable.keys();\n let newKeys = Object.keys(data);\n\n // Handle removed keys.\n for (let key of oldKeys) {\n if (newKeys.indexOf(key) === -1) {\n observable.delete(key);\n }\n }\n\n // Handle changed data.\n for (let key of newKeys) {\n let oldValue = observable.get(key);\n let newValue = data[key];\n if (oldValue !== newValue) {\n observable.set(key, newValue as JSONValue);\n }\n }\n }\n\n private _changed = new Signal<this, void>(this);\n private _raw: JSONObject = {};\n private _rawMetadata: ReadonlyJSONObject;\n private _rawData: ReadonlyJSONObject;\n private _data: IObservableJSON;\n private _metadata: IObservableJSON;\n}\n\n/**\n * The namespace for OutputModel statics.\n */\nexport namespace OutputModel {\n /**\n * Get the data for an output.\n *\n * @params output - A kernel output message payload.\n *\n * @returns - The data for the payload.\n */\n export function getData(output: nbformat.IOutput): JSONObject {\n return Private.getData(output);\n }\n\n /**\n * Get the metadata from an output message.\n *\n * @params output - A kernel output message payload.\n *\n * @returns - The metadata for the payload.\n */\n export function getMetadata(output: nbformat.IOutput): JSONObject {\n return Private.getMetadata(output);\n }\n}\n\n/**\n * The namespace for module private data.\n */\nnamespace Private {\n /**\n * Get the data from a notebook output.\n */\n export function getData(output: nbformat.IOutput): JSONObject {\n let bundle: nbformat.IMimeBundle = {};\n if (\n nbformat.isExecuteResult(output) ||\n nbformat.isDisplayData(output) ||\n nbformat.isDisplayUpdate(output)\n ) {\n bundle = (output as nbformat.IExecuteResult).data;\n } else if (nbformat.isStream(output)) {\n if (output.name === 'stderr') {\n bundle['application/vnd.jupyter.stderr'] = output.text;\n } else {\n bundle['application/vnd.jupyter.stdout'] = output.text;\n }\n } else if (nbformat.isError(output)) {\n let traceback = output.traceback.join('\\n');\n bundle['application/vnd.jupyter.stderr'] =\n traceback || `${output.ename}: ${output.evalue}`;\n }\n return convertBundle(bundle);\n }\n\n /**\n * Get the metadata from an output message.\n */\n export function getMetadata(output: nbformat.IOutput): JSONObject {\n let value: JSONObject = Object.create(null);\n if (nbformat.isExecuteResult(output) || nbformat.isDisplayData(output)) {\n for (let key in output.metadata) {\n value[key] = extract(output.metadata, key);\n }\n }\n return value;\n }\n\n /**\n * Get the bundle options given output model options.\n */\n export function getBundleOptions(\n options: IOutputModel.IOptions\n ): MimeModel.IOptions {\n let data = getData(options.value);\n let metadata = getMetadata(options.value);\n let trusted = !!options.trusted;\n return { data, metadata, trusted };\n }\n\n /**\n * Extract a value from a JSONObject.\n */\n export function extract(value: JSONObject, key: string): JSONValue {\n let item = value[key];\n if (JSONExt.isPrimitive(item)) {\n return item;\n }\n return JSON.parse(JSON.stringify(item));\n }\n\n /**\n * Convert a mime bundle to mime data.\n */\n function convertBundle(bundle: nbformat.IMimeBundle): JSONObject {\n let map: JSONObject = Object.create(null);\n for (let mimeType in bundle) {\n map[mimeType] = extract(bundle, mimeType);\n }\n return map;\n }\n}\n"]}
|
package/lib/registry.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../rendermime/src/registry.ts"],"names":[],"mappings":"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","sourcesContent":["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\nimport { Contents, Session } from '@jupyterlab/services';\n\nimport { IRenderMime } from '@jupyterlab/rendermime-interfaces';\n\nimport { PathExt, URLExt } from '@jupyterlab/coreutils';\n\nimport {\n IClientSession,\n ISanitizer,\n defaultSanitizer\n} from '@jupyterlab/apputils';\n\nimport { ReadonlyJSONObject, Token } from '@phosphor/coreutils';\n\nimport { MimeModel } from './mimemodel';\n\n/* tslint:disable */\n/**\n * The rendermime token.\n */\nexport const IRenderMimeRegistry = new Token<IRenderMimeRegistry>(\n '@jupyterlab/rendermime:IRenderMimeRegistry'\n);\n\nexport interface IRenderMimeRegistry extends RenderMimeRegistry {}\n/* tslint:enable */\n\n/* tslint:disable */\n/**\n * The latex typesetter token.\n */\nexport const ILatexTypesetter = new Token<IRenderMime.ILatexTypesetter>(\n '@jupyterlab/rendermime:ILatexTypesetter'\n);\n\nexport interface ILatexTypesetter extends IRenderMime.ILatexTypesetter {}\n/* tslint:enable */\n\n/**\n * An object which manages mime renderer factories.\n *\n * This object is used to render mime models using registered mime\n * renderers, selecting the preferred mime renderer to render the\n * model into a widget.\n *\n * #### Notes\n * This class is not intended to be subclassed.\n */\nexport class RenderMimeRegistry {\n /**\n * Construct a new rendermime.\n *\n * @param options - The options for initializing the instance.\n */\n constructor(options: RenderMimeRegistry.IOptions = {}) {\n // Parse the options.\n this.resolver = options.resolver || null;\n this.linkHandler = options.linkHandler || null;\n this.latexTypesetter = options.latexTypesetter || null;\n this.sanitizer = options.sanitizer || defaultSanitizer;\n\n // Add the initial factories.\n if (options.initialFactories) {\n for (let factory of options.initialFactories) {\n this.addFactory(factory);\n }\n }\n }\n\n /**\n * The sanitizer used by the rendermime instance.\n */\n readonly sanitizer: ISanitizer;\n\n /**\n * The object used to resolve relative urls for the rendermime instance.\n */\n readonly resolver: IRenderMime.IResolver | null;\n\n /**\n * The object used to handle path opening links.\n */\n readonly linkHandler: IRenderMime.ILinkHandler | null;\n\n /**\n * The LaTeX typesetter for the rendermime.\n */\n readonly latexTypesetter: IRenderMime.ILatexTypesetter | null;\n\n /**\n * The ordered list of mimeTypes.\n */\n get mimeTypes(): ReadonlyArray<string> {\n return this._types || (this._types = Private.sortedTypes(this._ranks));\n }\n\n /**\n * Find the preferred mime type for a mime bundle.\n *\n * @param bundle - The bundle of mime data.\n *\n * @param safe - How to consider safe/unsafe factories. If 'ensure',\n * it will only consider safe factories. If 'any', any factory will be\n * considered. If 'prefer', unsafe factories will be considered, but\n * only after the safe options have been exhausted.\n *\n * @returns The preferred mime type from the available factories,\n * or `undefined` if the mime type cannot be rendered.\n */\n preferredMimeType(\n bundle: ReadonlyJSONObject,\n safe: 'ensure' | 'prefer' | 'any' = 'ensure'\n ): string | undefined {\n // Try to find a safe factory first, if preferred.\n if (safe === 'ensure' || safe === 'prefer') {\n for (let mt of this.mimeTypes) {\n if (mt in bundle && this._factories[mt].safe) {\n return mt;\n }\n }\n }\n\n if (safe !== 'ensure') {\n // Otherwise, search for the best factory among all factories.\n for (let mt of this.mimeTypes) {\n if (mt in bundle) {\n return mt;\n }\n }\n }\n\n // Otherwise, no matching mime type exists.\n return undefined;\n }\n\n /**\n * Create a renderer for a mime type.\n *\n * @param mimeType - The mime type of interest.\n *\n * @returns A new renderer for the given mime type.\n *\n * @throws An error if no factory exists for the mime type.\n */\n createRenderer(mimeType: string): IRenderMime.IRenderer {\n // Throw an error if no factory exists for the mime type.\n if (!(mimeType in this._factories)) {\n throw new Error(`No factory for mime type: '${mimeType}'`);\n }\n\n // Invoke the best factory for the given mime type.\n return this._factories[mimeType].createRenderer({\n mimeType,\n resolver: this.resolver,\n sanitizer: this.sanitizer,\n linkHandler: this.linkHandler,\n latexTypesetter: this.latexTypesetter\n });\n }\n\n /**\n * Create a new mime model. This is a convenience method.\n *\n * @options - The options used to create the model.\n *\n * @returns A new mime model.\n */\n createModel(options: MimeModel.IOptions = {}): MimeModel {\n return new MimeModel(options);\n }\n\n /**\n * Create a clone of this rendermime instance.\n *\n * @param options - The options for configuring the clone.\n *\n * @returns A new independent clone of the rendermime.\n */\n clone(options: RenderMimeRegistry.ICloneOptions = {}): RenderMimeRegistry {\n // Create the clone.\n let clone = new RenderMimeRegistry({\n resolver: options.resolver || this.resolver || undefined,\n sanitizer: options.sanitizer || this.sanitizer || undefined,\n linkHandler: options.linkHandler || this.linkHandler || undefined,\n latexTypesetter: options.latexTypesetter || this.latexTypesetter\n });\n\n // Clone the internal state.\n clone._factories = { ...this._factories };\n clone._ranks = { ...this._ranks };\n clone._id = this._id;\n\n // Return the cloned object.\n return clone;\n }\n\n /**\n * Get the renderer factory registered for a mime type.\n *\n * @param mimeType - The mime type of interest.\n *\n * @returns The factory for the mime type, or `undefined`.\n */\n getFactory(mimeType: string): IRenderMime.IRendererFactory | undefined {\n return this._factories[mimeType];\n }\n\n /**\n * Add a renderer factory to the rendermime.\n *\n * @param factory - The renderer factory of interest.\n *\n * @param rank - The rank of the renderer. A lower rank indicates\n * a higher priority for rendering. If not given, the rank will\n * defer to the `defaultRank` of the factory. If no `defaultRank`\n * is given, it will default to 100.\n *\n * #### Notes\n * The renderer will replace an existing renderer for the given\n * mimeType.\n */\n addFactory(factory: IRenderMime.IRendererFactory, rank?: number): void {\n if (rank === undefined) {\n rank = factory.defaultRank;\n if (rank === undefined) {\n rank = 100;\n }\n }\n for (let mt of factory.mimeTypes) {\n this._factories[mt] = factory;\n this._ranks[mt] = { rank, id: this._id++ };\n }\n this._types = null;\n }\n\n /**\n * Remove a mime type.\n *\n * @param mimeType - The mime type of interest.\n */\n removeMimeType(mimeType: string): void {\n delete this._factories[mimeType];\n delete this._ranks[mimeType];\n this._types = null;\n }\n\n /**\n * Get the rank for a given mime type.\n *\n * @param mimeType - The mime type of interest.\n *\n * @returns The rank of the mime type or undefined.\n */\n getRank(mimeType: string): number | undefined {\n let rank = this._ranks[mimeType];\n return rank && rank.rank;\n }\n\n /**\n * Set the rank of a given mime type.\n *\n * @param mimeType - The mime type of interest.\n *\n * @param rank - The new rank to assign.\n *\n * #### Notes\n * This is a no-op if the mime type is not registered.\n */\n setRank(mimeType: string, rank: number): void {\n if (!this._ranks[mimeType]) {\n return;\n }\n let id = this._id++;\n this._ranks[mimeType] = { rank, id };\n this._types = null;\n }\n\n private _id = 0;\n private _ranks: Private.RankMap = {};\n private _types: string[] | null = null;\n private _factories: Private.FactoryMap = {};\n}\n\n/**\n * The namespace for `RenderMimeRegistry` class statics.\n */\nexport namespace RenderMimeRegistry {\n /**\n * The options used to initialize a rendermime instance.\n */\n export interface IOptions {\n /**\n * Initial factories to add to the rendermime instance.\n */\n initialFactories?: ReadonlyArray<IRenderMime.IRendererFactory>;\n\n /**\n * The sanitizer used to sanitize untrusted html inputs.\n *\n * If not given, a default sanitizer will be used.\n */\n sanitizer?: IRenderMime.ISanitizer;\n\n /**\n * The initial resolver object.\n *\n * The default is `null`.\n */\n resolver?: IRenderMime.IResolver;\n\n /**\n * An optional path handler.\n */\n linkHandler?: IRenderMime.ILinkHandler;\n\n /**\n * An optional LaTeX typesetter.\n */\n latexTypesetter?: IRenderMime.ILatexTypesetter;\n }\n\n /**\n * The options used to clone a rendermime instance.\n */\n export interface ICloneOptions {\n /**\n * The new sanitizer used to sanitize untrusted html inputs.\n */\n sanitizer?: IRenderMime.ISanitizer;\n\n /**\n * The new resolver object.\n */\n resolver?: IRenderMime.IResolver;\n\n /**\n * The new path handler.\n */\n linkHandler?: IRenderMime.ILinkHandler;\n\n /**\n * The new LaTeX typesetter.\n */\n latexTypesetter?: IRenderMime.ILatexTypesetter;\n }\n\n /**\n * A default resolver that uses a session and a contents manager.\n */\n export class UrlResolver implements IRenderMime.IResolver {\n /**\n * Create a new url resolver for a console.\n */\n constructor(options: IUrlResolverOptions) {\n this._session = options.session;\n this._contents = options.contents;\n }\n\n /**\n * Resolve a relative url to a correct server path.\n */\n resolveUrl(url: string): Promise<string> {\n if (this.isLocal(url)) {\n let cwd = PathExt.dirname(this._session.path);\n url = PathExt.resolve(cwd, url);\n }\n return Promise.resolve(url);\n }\n\n /**\n * Get the download url of a given absolute server path.\n */\n getDownloadUrl(path: string): Promise<string> {\n if (this.isLocal(path)) {\n return this._contents.getDownloadUrl(path);\n }\n return Promise.resolve(path);\n }\n\n /**\n * Whether the URL should be handled by the resolver\n * or not.\n *\n * #### Notes\n * This is similar to the `isLocal` check in `URLExt`,\n * but it also checks whether the path points to any\n * of the `IDrive`s that may be registered with the contents\n * manager.\n */\n isLocal(url: string): boolean {\n return URLExt.isLocal(url) || !!this._contents.driveName(url);\n }\n\n private _session: Session.ISession | IClientSession;\n private _contents: Contents.IManager;\n }\n\n /**\n * The options used to create a UrlResolver.\n */\n export interface IUrlResolverOptions {\n /**\n * The session used by the resolver.\n */\n session: Session.ISession | IClientSession;\n\n /**\n * The contents manager used by the resolver.\n */\n contents: Contents.IManager;\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * A type alias for a mime rank and tie-breaking id.\n */\n export type RankPair = { readonly id: number; readonly rank: number };\n\n /**\n * A type alias for a mapping of mime type -> rank pair.\n */\n export type RankMap = { [key: string]: RankPair };\n\n /**\n * A type alias for a mapping of mime type -> ordered factories.\n */\n export type FactoryMap = { [key: string]: IRenderMime.IRendererFactory };\n\n /**\n * Get the mime types in the map, ordered by rank.\n */\n export function sortedTypes(map: RankMap): string[] {\n return Object.keys(map).sort((a, b) => {\n let p1 = map[a];\n let p2 = map[b];\n if (p1.rank !== p2.rank) {\n return p1.rank - p2.rank;\n }\n return p1.id - p2.id;\n });\n }\n}\n"]}
|
package/lib/renderers.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renderers.js","sourceRoot":"","sources":["../../../../rendermime/src/renderers.ts"],"names":[],"mappings":"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","sourcesContent":["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\nimport { default as AnsiUp } from 'ansi_up';\n\nimport marked from 'marked';\n\nimport { ISanitizer } from '@jupyterlab/apputils';\n\nimport { Mode, CodeMirrorEditor } from '@jupyterlab/codemirror';\n\nimport { URLExt } from '@jupyterlab/coreutils';\n\nimport { IRenderMime } from '@jupyterlab/rendermime-interfaces';\n\nimport { toArray } from '@phosphor/algorithm';\n\nimport { removeMath, replaceMath } from './latex';\n\n/**\n * Render HTML into a host node.\n *\n * @params options - The options for rendering.\n *\n * @returns A promise which resolves when rendering is complete.\n */\nexport function renderHTML(options: renderHTML.IOptions): Promise<void> {\n // Unpack the options.\n let {\n host,\n source,\n trusted,\n sanitizer,\n resolver,\n linkHandler,\n shouldTypeset,\n latexTypesetter\n } = options;\n\n let originalSource = source;\n\n // Bail early if the source is empty.\n if (!source) {\n host.textContent = '';\n return Promise.resolve(undefined);\n }\n\n // Sanitize the source if it is not trusted. This removes all\n // `<script>` tags as well as other potentially harmful HTML.\n if (!trusted) {\n originalSource = `${source}`;\n source = sanitizer.sanitize(source);\n }\n\n // Set the inner HTML of the host.\n host.innerHTML = source;\n\n if (host.getElementsByTagName('script').length > 0) {\n // If output it trusted, eval any script tags contained in the HTML.\n // This is not done automatically by the browser when script tags are\n // created by setting `innerHTML`.\n if (trusted) {\n Private.evalInnerHTMLScriptTags(host);\n } else {\n const container = document.createElement('div');\n const warning = document.createElement('pre');\n warning.textContent =\n 'This HTML output contains inline scripts. Are you sure that you want to run arbitrary Javascript within your JupyterLab session?';\n const runButton = document.createElement('button');\n runButton.textContent = 'Run';\n runButton.onclick = event => {\n host.innerHTML = originalSource;\n Private.evalInnerHTMLScriptTags(host);\n host.removeChild(host.firstChild);\n };\n container.appendChild(warning);\n container.appendChild(runButton);\n host.insertBefore(container, host.firstChild);\n }\n }\n\n // Handle default behavior of nodes.\n Private.handleDefaults(host, resolver);\n\n // Patch the urls if a resolver is available.\n let promise: Promise<void>;\n if (resolver) {\n promise = Private.handleUrls(host, resolver, linkHandler);\n } else {\n promise = Promise.resolve(undefined);\n }\n\n // Return the final rendered promise.\n return promise.then(() => {\n if (shouldTypeset && latexTypesetter) {\n latexTypesetter.typeset(host);\n }\n });\n}\n\n/**\n * The namespace for the `renderHTML` function statics.\n */\nexport namespace renderHTML {\n /**\n * The options for the `renderHTML` function.\n */\n export interface IOptions {\n /**\n * The host node for the rendered HTML.\n */\n host: HTMLElement;\n\n /**\n * The HTML source to render.\n */\n source: string;\n\n /**\n * Whether the source is trusted.\n */\n trusted: boolean;\n\n /**\n * The html sanitizer for untrusted source.\n */\n sanitizer: ISanitizer;\n\n /**\n * An optional url resolver.\n */\n resolver: IRenderMime.IResolver | null;\n\n /**\n * An optional link handler.\n */\n linkHandler: IRenderMime.ILinkHandler | null;\n\n /**\n * Whether the node should be typeset.\n */\n shouldTypeset: boolean;\n\n /**\n * The LaTeX typesetter for the application.\n */\n latexTypesetter: IRenderMime.ILatexTypesetter | null;\n }\n}\n\n/**\n * Render an image into a host node.\n *\n * @params options - The options for rendering.\n *\n * @returns A promise which resolves when rendering is complete.\n */\nexport function renderImage(\n options: renderImage.IRenderOptions\n): Promise<void> {\n // Unpack the options.\n let { host, mimeType, source, width, height, unconfined } = options;\n\n // Clear the content in the host.\n host.textContent = '';\n\n // Create the image element.\n let img = document.createElement('img');\n\n // Set the source of the image.\n img.src = `data:${mimeType};base64,${source}`;\n\n // Set the size of the image if provided.\n if (typeof height === 'number') {\n img.height = height;\n }\n if (typeof width === 'number') {\n img.width = width;\n }\n\n if (unconfined === true) {\n img.classList.add('jp-mod-unconfined');\n }\n\n // Add the image to the host.\n host.appendChild(img);\n\n // Return the rendered promise.\n return Promise.resolve(undefined);\n}\n\n/**\n * The namespace for the `renderImage` function statics.\n */\nexport namespace renderImage {\n /**\n * The options for the `renderImage` function.\n */\n export interface IRenderOptions {\n /**\n * The image node to update with the content.\n */\n host: HTMLElement;\n\n /**\n * The mime type for the image.\n */\n mimeType: string;\n\n /**\n * The base64 encoded source for the image.\n */\n source: string;\n\n /**\n * The optional width for the image.\n */\n width?: number;\n\n /**\n * The optional height for the image.\n */\n height?: number;\n\n /**\n * Whether the image should be unconfined.\n */\n unconfined?: boolean;\n }\n}\n\n/**\n * Render LaTeX into a host node.\n *\n * @params options - The options for rendering.\n *\n * @returns A promise which resolves when rendering is complete.\n */\nexport function renderLatex(\n options: renderLatex.IRenderOptions\n): Promise<void> {\n // Unpack the options.\n let { host, source, shouldTypeset, latexTypesetter } = options;\n\n // Set the source on the node.\n host.textContent = source;\n\n // Typeset the node if needed.\n if (shouldTypeset && latexTypesetter) {\n latexTypesetter.typeset(host);\n }\n\n // Return the rendered promise.\n return Promise.resolve(undefined);\n}\n\n/**\n * The namespace for the `renderLatex` function statics.\n */\nexport namespace renderLatex {\n /**\n * The options for the `renderLatex` function.\n */\n export interface IRenderOptions {\n /**\n * The host node for the rendered LaTeX.\n */\n host: HTMLElement;\n\n /**\n * The LaTeX source to render.\n */\n source: string;\n\n /**\n * Whether the node should be typeset.\n */\n shouldTypeset: boolean;\n\n /**\n * The LaTeX typesetter for the application.\n */\n latexTypesetter: IRenderMime.ILatexTypesetter | null;\n }\n}\n\n/**\n * Render Markdown into a host node.\n *\n * @params options - The options for rendering.\n *\n * @returns A promise which resolves when rendering is complete.\n */\nexport function renderMarkdown(\n options: renderMarkdown.IRenderOptions\n): Promise<void> {\n // Unpack the options.\n let {\n host,\n source,\n trusted,\n sanitizer,\n resolver,\n linkHandler,\n latexTypesetter,\n shouldTypeset\n } = options;\n\n // Clear the content if there is no source.\n if (!source) {\n host.textContent = '';\n return Promise.resolve(undefined);\n }\n\n // Separate math from normal markdown text.\n let parts = removeMath(source);\n\n // Render the markdown and handle sanitization.\n return Private.renderMarked(parts['text'])\n .then(content => {\n // Restore the math content in the rendered markdown.\n content = replaceMath(content, parts['math']);\n\n let originalContent = content;\n\n // Sanitize the content it is not trusted.\n if (!trusted) {\n originalContent = `${content}`;\n content = sanitizer.sanitize(content);\n }\n\n // Set the inner HTML of the host.\n host.innerHTML = content;\n\n if (host.getElementsByTagName('script').length > 0) {\n // If output it trusted, eval any script tags contained in the HTML.\n // This is not done automatically by the browser when script tags are\n // created by setting `innerHTML`.\n if (trusted) {\n Private.evalInnerHTMLScriptTags(host);\n } else {\n const container = document.createElement('div');\n const warning = document.createElement('pre');\n warning.textContent =\n 'This HTML output contains inline scripts. Are you sure that you want to run arbitrary Javascript within your JupyterLab session?';\n const runButton = document.createElement('button');\n runButton.textContent = 'Run';\n runButton.onclick = event => {\n host.innerHTML = originalContent;\n Private.evalInnerHTMLScriptTags(host);\n host.removeChild(host.firstChild);\n };\n container.appendChild(warning);\n container.appendChild(runButton);\n host.insertBefore(container, host.firstChild);\n }\n }\n\n // Handle default behavior of nodes.\n Private.handleDefaults(host, resolver);\n\n // Apply ids to the header nodes.\n Private.headerAnchors(host);\n\n // Patch the urls if a resolver is available.\n let promise: Promise<void>;\n if (resolver) {\n promise = Private.handleUrls(host, resolver, linkHandler);\n } else {\n promise = Promise.resolve(undefined);\n }\n\n // Return the rendered promise.\n return promise;\n })\n .then(() => {\n if (shouldTypeset && latexTypesetter) {\n latexTypesetter.typeset(host);\n }\n });\n}\n\n/**\n * The namespace for the `renderMarkdown` function statics.\n */\nexport namespace renderMarkdown {\n /**\n * The options for the `renderMarkdown` function.\n */\n export interface IRenderOptions {\n /**\n * The host node for the rendered Markdown.\n */\n host: HTMLElement;\n\n /**\n * The Markdown source to render.\n */\n source: string;\n\n /**\n * Whether the source is trusted.\n */\n trusted: boolean;\n\n /**\n * The html sanitizer for untrusted source.\n */\n sanitizer: ISanitizer;\n\n /**\n * An optional url resolver.\n */\n resolver: IRenderMime.IResolver | null;\n\n /**\n * An optional link handler.\n */\n linkHandler: IRenderMime.ILinkHandler | null;\n\n /**\n * Whether the node should be typeset.\n */\n shouldTypeset: boolean;\n\n /**\n * The LaTeX typesetter for the application.\n */\n latexTypesetter: IRenderMime.ILatexTypesetter | null;\n }\n}\n\n/**\n * Render SVG into a host node.\n *\n * @params options - The options for rendering.\n *\n * @returns A promise which resolves when rendering is complete.\n */\nexport function renderSVG(options: renderSVG.IRenderOptions): Promise<void> {\n // Unpack the options.\n let { host, source, trusted, unconfined } = options;\n\n // Clear the content if there is no source.\n if (!source) {\n host.textContent = '';\n return Promise.resolve(undefined);\n }\n\n // Display a message if the source is not trusted.\n if (!trusted) {\n host.textContent =\n 'Cannot display an untrusted SVG. Maybe you need to run the cell?';\n return Promise.resolve(undefined);\n }\n\n // Render in img so that user can save it easily\n const img = new Image();\n img.src = `data:image/svg+xml,${encodeURIComponent(source)}`;\n host.appendChild(img);\n\n if (unconfined === true) {\n host.classList.add('jp-mod-unconfined');\n }\n return Promise.resolve();\n}\n\n/**\n * The namespace for the `renderSVG` function statics.\n */\nexport namespace renderSVG {\n /**\n * The options for the `renderSVG` function.\n */\n export interface IRenderOptions {\n /**\n * The host node for the rendered SVG.\n */\n host: HTMLElement;\n\n /**\n * The SVG source.\n */\n source: string;\n\n /**\n * Whether the source is trusted.\n */\n trusted: boolean;\n\n /**\n * Whether the svg should be unconfined.\n */\n unconfined?: boolean;\n }\n}\n\n/**\n * Render text into a host node.\n *\n * @params options - The options for rendering.\n *\n * @returns A promise which resolves when rendering is complete.\n */\nexport function renderText(options: renderText.IRenderOptions): Promise<void> {\n // Unpack the options.\n let { host, source } = options;\n\n const ansiUp = new AnsiUp();\n ansiUp.escape_for_html = true;\n ansiUp.use_classes = true;\n\n // Create the HTML content.\n let content = ansiUp.ansi_to_html(source);\n\n // Set the inner HTML for the host node.\n host.innerHTML = `<pre>${content}</pre>`;\n\n // Return the rendered promise.\n return Promise.resolve(undefined);\n}\n\n/**\n * The namespace for the `renderText` function statics.\n */\nexport namespace renderText {\n /**\n * The options for the `renderText` function.\n */\n export interface IRenderOptions {\n /**\n * The host node for the text content.\n */\n host: HTMLElement;\n\n /**\n * The source text to render.\n */\n source: string;\n }\n}\n\n/**\n * The namespace for module implementation details.\n */\nnamespace Private {\n /**\n * Eval the script tags contained in a host populated by `innerHTML`.\n *\n * When script tags are created via `innerHTML`, the browser does not\n * evaluate them when they are added to the page. This function works\n * around that by creating new equivalent script nodes manually, and\n * replacing the originals.\n */\n export function evalInnerHTMLScriptTags(host: HTMLElement): void {\n // Create a snapshot of the current script nodes.\n let scripts = toArray(host.getElementsByTagName('script'));\n\n // Loop over each script node.\n for (let script of scripts) {\n // Skip any scripts which no longer have a parent.\n if (!script.parentNode) {\n continue;\n }\n\n // Create a new script node which will be clone.\n let clone = document.createElement('script');\n\n // Copy the attributes into the clone.\n let attrs = script.attributes;\n for (let i = 0, n = attrs.length; i < n; ++i) {\n let { name, value } = attrs[i];\n clone.setAttribute(name, value);\n }\n\n // Copy the text content into the clone.\n clone.textContent = script.textContent;\n\n // Replace the old script in the parent.\n script.parentNode.replaceChild(clone, script);\n }\n }\n\n /**\n * Render markdown for the specified content.\n *\n * @param content - The string of markdown to render.\n *\n * @return A promise which resolves with the rendered content.\n */\n export function renderMarked(content: string): Promise<string> {\n initializeMarked();\n return new Promise<string>((resolve, reject) => {\n marked(content, (err: any, content: string) => {\n if (err) {\n reject(err);\n } else {\n resolve(content);\n }\n });\n });\n }\n\n /**\n * Handle the default behavior of nodes.\n */\n export function handleDefaults(\n node: HTMLElement,\n resolver?: IRenderMime.IResolver\n ): void {\n // Handle anchor elements.\n let anchors = node.getElementsByTagName('a');\n for (let i = 0; i < anchors.length; i++) {\n let path = anchors[i].href || '';\n const isLocal =\n resolver && resolver.isLocal\n ? resolver.isLocal(path)\n : URLExt.isLocal(path);\n if (isLocal) {\n anchors[i].target = '_self';\n } else {\n anchors[i].target = '_blank';\n }\n }\n\n // Handle image elements.\n let imgs = node.getElementsByTagName('img');\n for (let i = 0; i < imgs.length; i++) {\n if (!imgs[i].alt) {\n imgs[i].alt = 'Image';\n }\n }\n }\n\n /**\n * Resolve the relative urls in element `src` and `href` attributes.\n *\n * @param node - The head html element.\n *\n * @param resolver - A url resolver.\n *\n * @param linkHandler - An optional link handler for nodes.\n *\n * @returns a promise fulfilled when the relative urls have been resolved.\n */\n export function handleUrls(\n node: HTMLElement,\n resolver: IRenderMime.IResolver,\n linkHandler: IRenderMime.ILinkHandler | null\n ): Promise<void> {\n // Set up an array to collect promises.\n let promises: Promise<void>[] = [];\n\n // Handle HTML Elements with src attributes.\n let nodes = node.querySelectorAll('*[src]');\n for (let i = 0; i < nodes.length; i++) {\n promises.push(handleAttr(nodes[i] as HTMLElement, 'src', resolver));\n }\n\n // Handle anchor elements.\n let anchors = node.getElementsByTagName('a');\n for (let i = 0; i < anchors.length; i++) {\n promises.push(handleAnchor(anchors[i], resolver, linkHandler));\n }\n\n // Handle link elements.\n let links = node.getElementsByTagName('link');\n for (let i = 0; i < links.length; i++) {\n promises.push(handleAttr(links[i], 'href', resolver));\n }\n\n // Wait on all promises.\n return Promise.all(promises).then(() => undefined);\n }\n\n /**\n * Apply ids to headers.\n */\n export function headerAnchors(node: HTMLElement): void {\n let headerNames = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n for (let headerType of headerNames) {\n let headers = node.getElementsByTagName(headerType);\n for (let i = 0; i < headers.length; i++) {\n let header = headers[i];\n header.id = encodeURIComponent(header.innerHTML.replace(/ /g, '-'));\n let anchor = document.createElement('a');\n anchor.target = '_self';\n anchor.textContent = '¶';\n anchor.href = '#' + header.id;\n anchor.classList.add('jp-InternalAnchorLink');\n header.appendChild(anchor);\n }\n }\n }\n\n /**\n * Handle a node with a `src` or `href` attribute.\n */\n function handleAttr(\n node: HTMLElement,\n name: 'src' | 'href',\n resolver: IRenderMime.IResolver\n ): Promise<void> {\n let source = node.getAttribute(name) || '';\n const isLocal = resolver.isLocal\n ? resolver.isLocal(source)\n : URLExt.isLocal(source);\n if (!source || !isLocal) {\n return Promise.resolve(undefined);\n }\n node.setAttribute(name, '');\n return resolver\n .resolveUrl(source)\n .then(path => {\n return resolver.getDownloadUrl(path);\n })\n .then(url => {\n // Check protocol again in case it changed:\n if (URLExt.parse(url).protocol !== 'data:') {\n // Bust caching for local src attrs.\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n url += (/\\?/.test(url) ? '&' : '?') + new Date().getTime();\n }\n node.setAttribute(name, url);\n })\n .catch(err => {\n // If there was an error getting the url,\n // just make it an empty link.\n node.setAttribute(name, '');\n });\n }\n\n /**\n * Handle an anchor node.\n */\n function handleAnchor(\n anchor: HTMLAnchorElement,\n resolver: IRenderMime.IResolver,\n linkHandler: IRenderMime.ILinkHandler | null\n ): Promise<void> {\n // Get the link path without the location prepended.\n // (e.g. \"./foo.md#Header 1\" vs \"http://localhost:8888/foo.md#Header 1\")\n let href = anchor.getAttribute('href') || '';\n const isLocal = resolver.isLocal\n ? resolver.isLocal(href)\n : URLExt.isLocal(href);\n // Bail if it is not a file-like url.\n if (!href || !isLocal) {\n return Promise.resolve(undefined);\n }\n // Remove the hash until we can handle it.\n let hash = anchor.hash;\n if (hash) {\n // Handle internal link in the file.\n if (hash === href) {\n anchor.target = '_self';\n return Promise.resolve(undefined);\n }\n // For external links, remove the hash until we have hash handling.\n href = href.replace(hash, '');\n }\n // Get the appropriate file path.\n return resolver\n .resolveUrl(href)\n .then(path => {\n // Handle the click override.\n if (linkHandler) {\n linkHandler.handleLink(anchor, path, hash);\n }\n // Get the appropriate file download path.\n return resolver.getDownloadUrl(path);\n })\n .then(url => {\n // Set the visible anchor.\n anchor.href = url + hash;\n })\n .catch(err => {\n // If there was an error getting the url,\n // just make it an empty link.\n anchor.href = '';\n });\n }\n\n let markedInitialized = false;\n\n /**\n * Support GitHub flavored Markdown, leave sanitizing to external library.\n */\n function initializeMarked(): void {\n if (markedInitialized) {\n return;\n }\n markedInitialized = true;\n marked.setOptions({\n gfm: true,\n sanitize: false,\n tables: true,\n // breaks: true; We can't use GFM breaks as it causes problems with tables\n langPrefix: `cm-s-${CodeMirrorEditor.defaultConfig.theme} language-`,\n highlight: (code, lang, callback) => {\n let cb = (err: Error | null, code: string) => {\n if (callback) {\n callback(err, code);\n }\n return code;\n };\n if (!lang) {\n // no language, no highlight\n return cb(null, code);\n }\n Mode.ensure(lang)\n .then(spec => {\n let el = document.createElement('div');\n if (!spec) {\n console.log(`No CodeMirror mode: ${lang}`);\n return cb(null, code);\n }\n try {\n Mode.run(code, spec.mime, el);\n return cb(null, el.innerHTML);\n } catch (err) {\n console.log(`Failed to highlight ${lang} code`, err);\n return cb(err, code);\n }\n })\n .catch(err => {\n console.log(`No CodeMirror mode: ${lang}`);\n console.log(`Require CodeMirror mode error: ${err}`);\n return cb(null, code);\n });\n return code;\n }\n });\n }\n}\n"]}
|
package/lib/widgets.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../../../rendermime/src/widgets.ts"],"names":[],"mappings":"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","sourcesContent":["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\nimport { IRenderMime } from '@jupyterlab/rendermime-interfaces';\n\nimport { ReadonlyJSONObject } from '@phosphor/coreutils';\n\nimport { Message } from '@phosphor/messaging';\n\nimport { Widget } from '@phosphor/widgets';\n\nimport * as renderers from './renderers';\n\n/**\n * A common base class for mime renderers.\n */\nexport abstract class RenderedCommon extends Widget\n implements IRenderMime.IRenderer {\n /**\n * Construct a new rendered common widget.\n *\n * @param options - The options for initializing the widget.\n */\n constructor(options: IRenderMime.IRendererOptions) {\n super();\n this.mimeType = options.mimeType;\n this.sanitizer = options.sanitizer;\n this.resolver = options.resolver;\n this.linkHandler = options.linkHandler;\n this.latexTypesetter = options.latexTypesetter;\n this.node.dataset['mimeType'] = this.mimeType;\n }\n\n /**\n * The mimetype being rendered.\n */\n readonly mimeType: string;\n\n /**\n * The sanitizer used to sanitize untrusted html inputs.\n */\n readonly sanitizer: IRenderMime.ISanitizer;\n\n /**\n * The resolver object.\n */\n readonly resolver: IRenderMime.IResolver | null;\n\n /**\n * The link handler.\n */\n readonly linkHandler: IRenderMime.ILinkHandler | null;\n\n /**\n * The latexTypesetter.\n */\n readonly latexTypesetter: IRenderMime.ILatexTypesetter;\n\n /**\n * Render a mime model.\n *\n * @param model - The mime model to render.\n *\n * @returns A promise which resolves when rendering is complete.\n */\n renderModel(model: IRenderMime.IMimeModel): Promise<void> {\n // TODO compare model against old model for early bail?\n\n // Toggle the trusted class on the widget.\n this.toggleClass('jp-mod-trusted', model.trusted);\n\n // Render the actual content.\n return this.render(model);\n }\n\n /**\n * Render the mime model.\n *\n * @param model - The mime model to render.\n *\n * @returns A promise which resolves when rendering is complete.\n */\n abstract render(model: IRenderMime.IMimeModel): Promise<void>;\n}\n\n/**\n * A common base class for HTML mime renderers.\n */\nexport abstract class RenderedHTMLCommon extends RenderedCommon {\n /**\n * Construct a new rendered HTML common widget.\n *\n * @param options - The options for initializing the widget.\n */\n constructor(options: IRenderMime.IRendererOptions) {\n super(options);\n this.addClass('jp-RenderedHTMLCommon');\n }\n}\n\n/**\n * A mime renderer for displaying HTML and math.\n */\nexport class RenderedHTML extends RenderedHTMLCommon {\n /**\n * Construct a new rendered HTML widget.\n *\n * @param options - The options for initializing the widget.\n */\n constructor(options: IRenderMime.IRendererOptions) {\n super(options);\n this.addClass('jp-RenderedHTML');\n }\n\n /**\n * Render a mime model.\n *\n * @param model - The mime model to render.\n *\n * @returns A promise which resolves when rendering is complete.\n */\n render(model: IRenderMime.IMimeModel): Promise<void> {\n return renderers.renderHTML({\n host: this.node,\n source: String(model.data[this.mimeType]),\n trusted: model.trusted,\n resolver: this.resolver,\n sanitizer: this.sanitizer,\n linkHandler: this.linkHandler,\n shouldTypeset: this.isAttached,\n latexTypesetter: this.latexTypesetter\n });\n }\n\n /**\n * A message handler invoked on an `'after-attach'` message.\n */\n onAfterAttach(msg: Message): void {\n if (this.latexTypesetter) {\n this.latexTypesetter.typeset(this.node);\n }\n }\n}\n\n/**\n * A mime renderer for displaying LaTeX output.\n */\nexport class RenderedLatex extends RenderedCommon {\n /**\n * Construct a new rendered LaTeX widget.\n *\n * @param options - The options for initializing the widget.\n */\n constructor(options: IRenderMime.IRendererOptions) {\n super(options);\n this.addClass('jp-RenderedLatex');\n }\n\n /**\n * Render a mime model.\n *\n * @param model - The mime model to render.\n *\n * @returns A promise which resolves when rendering is complete.\n */\n render(model: IRenderMime.IMimeModel): Promise<void> {\n return renderers.renderLatex({\n host: this.node,\n source: String(model.data[this.mimeType]),\n shouldTypeset: this.isAttached,\n latexTypesetter: this.latexTypesetter\n });\n }\n\n /**\n * A message handler invoked on an `'after-attach'` message.\n */\n onAfterAttach(msg: Message): void {\n if (this.latexTypesetter) {\n this.latexTypesetter.typeset(this.node);\n }\n }\n}\n\n/**\n * A mime renderer for displaying images.\n */\nexport class RenderedImage extends RenderedCommon {\n /**\n * Construct a new rendered image widget.\n *\n * @param options - The options for initializing the widget.\n */\n constructor(options: IRenderMime.IRendererOptions) {\n super(options);\n this.addClass('jp-RenderedImage');\n }\n\n /**\n * Render a mime model.\n *\n * @param model - The mime model to render.\n *\n * @returns A promise which resolves when rendering is complete.\n */\n render(model: IRenderMime.IMimeModel): Promise<void> {\n let metadata = model.metadata[this.mimeType] as ReadonlyJSONObject;\n return renderers.renderImage({\n host: this.node,\n mimeType: this.mimeType,\n source: String(model.data[this.mimeType]),\n width: metadata && (metadata.width as number | undefined),\n height: metadata && (metadata.height as number | undefined),\n unconfined: metadata && (metadata.unconfined as boolean | undefined)\n });\n }\n}\n\n/**\n * A mime renderer for displaying Markdown with embedded latex.\n */\nexport class RenderedMarkdown extends RenderedHTMLCommon {\n /**\n * Construct a new rendered markdown widget.\n *\n * @param options - The options for initializing the widget.\n */\n constructor(options: IRenderMime.IRendererOptions) {\n super(options);\n this.addClass('jp-RenderedMarkdown');\n }\n\n /**\n * Render a mime model.\n *\n * @param model - The mime model to render.\n *\n * @returns A promise which resolves when rendering is complete.\n */\n render(model: IRenderMime.IMimeModel): Promise<void> {\n return renderers.renderMarkdown({\n host: this.node,\n source: String(model.data[this.mimeType]),\n trusted: model.trusted,\n resolver: this.resolver,\n sanitizer: this.sanitizer,\n linkHandler: this.linkHandler,\n shouldTypeset: this.isAttached,\n latexTypesetter: this.latexTypesetter\n });\n }\n\n /**\n * A message handler invoked on an `'after-attach'` message.\n */\n onAfterAttach(msg: Message): void {\n if (this.latexTypesetter) {\n this.latexTypesetter.typeset(this.node);\n }\n }\n}\n\n/**\n * A widget for displaying SVG content.\n */\nexport class RenderedSVG extends RenderedCommon {\n /**\n * Construct a new rendered SVG widget.\n *\n * @param options - The options for initializing the widget.\n */\n constructor(options: IRenderMime.IRendererOptions) {\n super(options);\n this.addClass('jp-RenderedSVG');\n }\n\n /**\n * Render a mime model.\n *\n * @param model - The mime model to render.\n *\n * @returns A promise which resolves when rendering is complete.\n */\n render(model: IRenderMime.IMimeModel): Promise<void> {\n let metadata = model.metadata[this.mimeType] as ReadonlyJSONObject;\n return renderers.renderSVG({\n host: this.node,\n source: String(model.data[this.mimeType]),\n trusted: model.trusted,\n unconfined: metadata && (metadata.unconfined as boolean | undefined)\n });\n }\n\n /**\n * A message handler invoked on an `'after-attach'` message.\n */\n onAfterAttach(msg: Message): void {\n if (this.latexTypesetter) {\n this.latexTypesetter.typeset(this.node);\n }\n }\n}\n\n/**\n * A widget for displaying plain text and console text.\n */\nexport class RenderedText extends RenderedCommon {\n /**\n * Construct a new rendered text widget.\n *\n * @param options - The options for initializing the widget.\n */\n constructor(options: IRenderMime.IRendererOptions) {\n super(options);\n this.addClass('jp-RenderedText');\n }\n\n /**\n * Render a mime model.\n *\n * @param model - The mime model to render.\n *\n * @returns A promise which resolves when rendering is complete.\n */\n render(model: IRenderMime.IMimeModel): Promise<void> {\n return renderers.renderText({\n host: this.node,\n source: String(model.data[this.mimeType])\n });\n }\n}\n\n/**\n * A widget for displaying deprecated JavaScript output.\n */\nexport class RenderedJavaScript extends RenderedCommon {\n /**\n * Construct a new rendered text widget.\n *\n * @param options - The options for initializing the widget.\n */\n constructor(options: IRenderMime.IRendererOptions) {\n super(options);\n this.addClass('jp-RenderedJavaScript');\n }\n\n /**\n * Render a mime model.\n *\n * @param model - The mime model to render.\n *\n * @returns A promise which resolves when rendering is complete.\n */\n render(model: IRenderMime.IMimeModel): Promise<void> {\n return renderers.renderText({\n host: this.node,\n source: 'JavaScript output is disabled in JupyterLab'\n });\n }\n}\n"]}
|