@difizen/libro-rendermime 0.0.0-snapshot-20241017072317
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 +21 -0
- package/README.md +43 -0
- package/es/components/html-render.d.ts +6 -0
- package/es/components/html-render.d.ts.map +1 -0
- package/es/components/html-render.js +38 -0
- package/es/components/image-render.d.ts +6 -0
- package/es/components/image-render.d.ts.map +1 -0
- package/es/components/image-render.js +35 -0
- package/es/components/index.d.ts +7 -0
- package/es/components/index.d.ts.map +1 -0
- package/es/components/index.js +6 -0
- package/es/components/latex-render.d.ts +6 -0
- package/es/components/latex-render.d.ts.map +1 -0
- package/es/components/latex-render.js +22 -0
- package/es/components/markdown-render.d.ts +6 -0
- package/es/components/markdown-render.d.ts.map +1 -0
- package/es/components/markdown-render.js +37 -0
- package/es/components/svg-render.d.ts +6 -0
- package/es/components/svg-render.d.ts.map +1 -0
- package/es/components/svg-render.js +32 -0
- package/es/components/text-render.d.ts +9 -0
- package/es/components/text-render.d.ts.map +1 -0
- package/es/components/text-render.js +43 -0
- package/es/index.d.ts +7 -0
- package/es/index.d.ts.map +1 -0
- package/es/index.js +6 -0
- package/es/renderers.d.ts +42 -0
- package/es/renderers.d.ts.map +1 -0
- package/es/renderers.js +327 -0
- package/es/rendermime-factory.d.ts +30 -0
- package/es/rendermime-factory.d.ts.map +1 -0
- package/es/rendermime-factory.js +73 -0
- package/es/rendermime-module.d.ts +3 -0
- package/es/rendermime-module.d.ts.map +1 -0
- package/es/rendermime-module.js +11 -0
- package/es/rendermime-protocol.d.ts +404 -0
- package/es/rendermime-protocol.d.ts.map +1 -0
- package/es/rendermime-protocol.js +60 -0
- package/es/rendermime-registry.d.ts +132 -0
- package/es/rendermime-registry.d.ts.map +1 -0
- package/es/rendermime-registry.js +392 -0
- package/es/rendermime-utils.d.ts +87 -0
- package/es/rendermime-utils.d.ts.map +1 -0
- package/es/rendermime-utils.js +601 -0
- package/package.json +61 -0
- package/src/components/html-render.tsx +42 -0
- package/src/components/image-render.tsx +46 -0
- package/src/components/index.ts +6 -0
- package/src/components/latex-render.tsx +30 -0
- package/src/components/markdown-render.tsx +42 -0
- package/src/components/svg-render.tsx +38 -0
- package/src/components/text-render.tsx +51 -0
- package/src/index.spec.ts +11 -0
- package/src/index.ts +6 -0
- package/src/renderers.ts +325 -0
- package/src/rendermime-factory.ts +92 -0
- package/src/rendermime-module.ts +19 -0
- package/src/rendermime-protocol.ts +517 -0
- package/src/rendermime-registry.ts +300 -0
- package/src/rendermime-utils.ts +665 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023-present Difizen Team
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# libro-rendermime
|
|
2
|
+
|
|
3
|
+
该包提供了 `LibroRenderMimeModule` 模块用于识别不同数据格式的内容并且正确解析渲染。通过定义多个 MIME 类型和优先级,可以在不同的环境中提供灵活的输出展示选项,以适应各种类型的数据和前端环境的要求。内置了文本、图片、Markdown、HTML、SVG 等 MIME 渲染器,同时提供 MIME 渲染器扩展,支持扩展更多自定义的 MIME 类型渲染。
|
|
4
|
+
|
|
5
|
+
## Token/API
|
|
6
|
+
|
|
7
|
+
### RenderMimeRegistry
|
|
8
|
+
|
|
9
|
+
RenderMimeRegistry 管理 MIME,提供获取当前输出最合适的 MIME 类型,基于输出和类型创建对应的渲染器,MIME 渲染监听等能力。
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
// 组件内引入
|
|
13
|
+
const renderMimeRegistry = useInject(RenderMimeRegistry);
|
|
14
|
+
|
|
15
|
+
// 属性引入
|
|
16
|
+
@inject(RenderMimeRegistry) renderMimeRegistry:RenderMimeRegistry;
|
|
17
|
+
|
|
18
|
+
// 事件监听
|
|
19
|
+
renderMimeRegistry.onMimeRender();
|
|
20
|
+
|
|
21
|
+
//获取当前输出最合适的 MIME 类型
|
|
22
|
+
const preferredMimeType = renderMimeRegistry.preferredMimeType(model)
|
|
23
|
+
|
|
24
|
+
//基于输出和类型创建对应的渲染器
|
|
25
|
+
const OutputRender = defaultRenderMime.createRenderer(
|
|
26
|
+
preferredMimeType,
|
|
27
|
+
model,
|
|
28
|
+
);
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 扩展点
|
|
32
|
+
|
|
33
|
+
### MIME 渲染器扩展
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
export interface RenderMimeContribution {
|
|
37
|
+
canHandle: (model: BaseOutputView) => number;
|
|
38
|
+
safe: boolean;
|
|
39
|
+
renderType: string;
|
|
40
|
+
mimeTypes: string[];
|
|
41
|
+
render: React.FC<{ model: BaseOutputView; options?: Record<string, any> }>;
|
|
42
|
+
}
|
|
43
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-render.d.ts","sourceRoot":"","sources":["../../src/components/html-render.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAA4B,MAAM,OAAO,CAAC;AAMjD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,CAgC1D,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { concatMultilineString } from '@difizen/libro-common';
|
|
2
|
+
import { useInject } from '@difizen/mana-app';
|
|
3
|
+
import React, { useEffect, useRef } from 'react';
|
|
4
|
+
import { renderHTML } from "../renderers.js";
|
|
5
|
+
import { RenderMimeRegistry } from "../rendermime-registry.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export var HTMLRender = function HTMLRender(props) {
|
|
8
|
+
var model = props.model;
|
|
9
|
+
var renderHTMLRef = useRef(null);
|
|
10
|
+
var defaultRenderMime = useInject(RenderMimeRegistry);
|
|
11
|
+
var mimeType = defaultRenderMime.defaultPreferredMimeType(model
|
|
12
|
+
// model.trusted ? 'any' : 'ensure'
|
|
13
|
+
);
|
|
14
|
+
useEffect(function () {
|
|
15
|
+
if (mimeType) {
|
|
16
|
+
renderHTML({
|
|
17
|
+
host: renderHTMLRef.current,
|
|
18
|
+
source: concatMultilineString(JSON.parse(JSON.stringify(model.data[mimeType]))),
|
|
19
|
+
trusted: model.trusted,
|
|
20
|
+
resolver: defaultRenderMime.resolver,
|
|
21
|
+
sanitizer: defaultRenderMime.sanitizer,
|
|
22
|
+
linkHandler: defaultRenderMime.linkHandler,
|
|
23
|
+
shouldTypeset: false
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
27
|
+
}, []);
|
|
28
|
+
return /*#__PURE__*/_jsx("div", {
|
|
29
|
+
className: "libro-html-render-container",
|
|
30
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
31
|
+
className: "libro-html-common-render",
|
|
32
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
33
|
+
className: "libro-html-render",
|
|
34
|
+
ref: renderHTMLRef
|
|
35
|
+
})
|
|
36
|
+
})
|
|
37
|
+
});
|
|
38
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-render.d.ts","sourceRoot":"","sources":["../../src/components/image-render.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAA4B,MAAM,OAAO,CAAC;AAMjD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,CAmC3D,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { concatMultilineString } from '@difizen/libro-common';
|
|
2
|
+
import { useInject } from '@difizen/mana-app';
|
|
3
|
+
import React, { useEffect, useRef } from 'react';
|
|
4
|
+
import { renderImage } from "../renderers.js";
|
|
5
|
+
import { RenderMimeRegistry } from "../rendermime-registry.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export var ImageRender = function ImageRender(props) {
|
|
8
|
+
var model = props.model;
|
|
9
|
+
var renderImageRef = useRef(null);
|
|
10
|
+
var defaultRenderMime = useInject(RenderMimeRegistry);
|
|
11
|
+
var mimeType = defaultRenderMime.defaultPreferredMimeType(model
|
|
12
|
+
// model.trusted ? 'any' : 'ensure'
|
|
13
|
+
);
|
|
14
|
+
useEffect(function () {
|
|
15
|
+
if (mimeType) {
|
|
16
|
+
var _model$metadata$mimeT, _model$metadata$mimeT2;
|
|
17
|
+
renderImage({
|
|
18
|
+
host: renderImageRef.current,
|
|
19
|
+
source: concatMultilineString(JSON.parse(JSON.stringify(model.data[mimeType]))),
|
|
20
|
+
width: model.metadata['width'] || ((_model$metadata$mimeT = model.metadata[mimeType]) === null || _model$metadata$mimeT === void 0 ? void 0 : _model$metadata$mimeT['width']),
|
|
21
|
+
height: model.metadata['height'] || ((_model$metadata$mimeT2 = model.metadata[mimeType]) === null || _model$metadata$mimeT2 === void 0 ? void 0 : _model$metadata$mimeT2['height']),
|
|
22
|
+
needsBackground: model.metadata['needs_background'],
|
|
23
|
+
unconfined: model.metadata && model.metadata['unconfined'],
|
|
24
|
+
mimeType: mimeType
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}, [mimeType, model.data, model.metadata, renderImageRef]);
|
|
28
|
+
return /*#__PURE__*/_jsx("div", {
|
|
29
|
+
className: "libro-image-render-container",
|
|
30
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
31
|
+
className: "libro-image-render",
|
|
32
|
+
ref: renderImageRef
|
|
33
|
+
})
|
|
34
|
+
});
|
|
35
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"latex-render.d.ts","sourceRoot":"","sources":["../../src/components/latex-render.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,CAqB3D,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { concatMultilineString } from '@difizen/libro-common';
|
|
2
|
+
import { useInject } from '@difizen/mana-app';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { RenderMimeRegistry } from "../rendermime-registry.js";
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
export var LatexRender = function LatexRender(props) {
|
|
7
|
+
var model = props.model;
|
|
8
|
+
var defaultRenderMime = useInject(RenderMimeRegistry);
|
|
9
|
+
var mimeType = defaultRenderMime.defaultPreferredMimeType(model
|
|
10
|
+
// model.trusted ? 'any' : 'ensure'
|
|
11
|
+
);
|
|
12
|
+
if (!mimeType) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
return /*#__PURE__*/_jsx("div", {
|
|
16
|
+
className: "libro-latex-render-container",
|
|
17
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
18
|
+
className: "libro-latex-render",
|
|
19
|
+
children: concatMultilineString(JSON.parse(JSON.stringify(model.data[mimeType])))
|
|
20
|
+
})
|
|
21
|
+
});
|
|
22
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-render.d.ts","sourceRoot":"","sources":["../../src/components/markdown-render.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAA4B,MAAM,OAAO,CAAC;AAMjD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,CAgC9D,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { concatMultilineString } from '@difizen/libro-common';
|
|
2
|
+
import { useInject } from '@difizen/mana-app';
|
|
3
|
+
import React, { useEffect, useRef } from 'react';
|
|
4
|
+
import { renderMarkdown } from "../renderers.js";
|
|
5
|
+
import { RenderMimeRegistry } from "../rendermime-registry.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export var MarkdownRender = function MarkdownRender(props) {
|
|
8
|
+
var model = props.model;
|
|
9
|
+
var renderMarkdownRef = useRef(null);
|
|
10
|
+
var defaultRenderMime = useInject(RenderMimeRegistry);
|
|
11
|
+
var mimeType = defaultRenderMime.defaultPreferredMimeType(model
|
|
12
|
+
// model.trusted ? 'any' : 'ensure'
|
|
13
|
+
);
|
|
14
|
+
useEffect(function () {
|
|
15
|
+
if (mimeType) {
|
|
16
|
+
renderMarkdown({
|
|
17
|
+
host: renderMarkdownRef.current,
|
|
18
|
+
source: concatMultilineString(JSON.parse(JSON.stringify(model.data[mimeType]))),
|
|
19
|
+
trusted: model.trusted,
|
|
20
|
+
resolver: defaultRenderMime.resolver,
|
|
21
|
+
sanitizer: defaultRenderMime.sanitizer,
|
|
22
|
+
linkHandler: defaultRenderMime.linkHandler,
|
|
23
|
+
// shouldTypeset: options.isAttached,
|
|
24
|
+
markdownParser: defaultRenderMime.markdownParser,
|
|
25
|
+
cellId: model.cell.model.id
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
29
|
+
}, []);
|
|
30
|
+
return /*#__PURE__*/_jsx("div", {
|
|
31
|
+
className: "libro-markdown-render-container",
|
|
32
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
33
|
+
className: "libro-markdown-render",
|
|
34
|
+
ref: renderMarkdownRef
|
|
35
|
+
})
|
|
36
|
+
});
|
|
37
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg-render.d.ts","sourceRoot":"","sources":["../../src/components/svg-render.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAA4B,MAAM,OAAO,CAAC;AAMjD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,CA4BzD,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { concatMultilineString } from '@difizen/libro-common';
|
|
2
|
+
import { useInject } from '@difizen/mana-app';
|
|
3
|
+
import React, { useEffect, useRef } from 'react';
|
|
4
|
+
import { renderSVG } from "../renderers.js";
|
|
5
|
+
import { RenderMimeRegistry } from "../rendermime-registry.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export var SVGRender = function SVGRender(props) {
|
|
8
|
+
var model = props.model;
|
|
9
|
+
var renderSVGRef = useRef(null);
|
|
10
|
+
var defaultRenderMime = useInject(RenderMimeRegistry);
|
|
11
|
+
var mimeType = defaultRenderMime.defaultPreferredMimeType(model
|
|
12
|
+
// model.trusted ? 'any' : 'ensure'
|
|
13
|
+
);
|
|
14
|
+
useEffect(function () {
|
|
15
|
+
if (mimeType) {
|
|
16
|
+
renderSVG({
|
|
17
|
+
host: renderSVGRef.current,
|
|
18
|
+
source: concatMultilineString(JSON.parse(JSON.stringify(model.data[mimeType]))),
|
|
19
|
+
trusted: model.trusted,
|
|
20
|
+
unconfined: model.metadata && model.metadata['unconfined']
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
24
|
+
}, []);
|
|
25
|
+
return /*#__PURE__*/_jsx("div", {
|
|
26
|
+
className: "libro-svg-render-container",
|
|
27
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
28
|
+
className: "libro-svg-render",
|
|
29
|
+
ref: renderSVGRef
|
|
30
|
+
})
|
|
31
|
+
});
|
|
32
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BaseOutputView } from '@difizen/libro-core';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export declare const RawTextRender: React.FC<{
|
|
4
|
+
model: BaseOutputView;
|
|
5
|
+
}>;
|
|
6
|
+
export declare const TextRender: React.NamedExoticComponent<{
|
|
7
|
+
model: BaseOutputView;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=text-render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-render.d.ts","sourceRoot":"","sources":["../../src/components/text-render.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAA4B,MAAM,OAAO,CAAC;AAMjD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,CAsC7D,CAAC;AAEF,eAAO,MAAM,UAAU;WAxCuB,cAAc;EAwCT,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { concatMultilineString } from '@difizen/libro-common';
|
|
2
|
+
import { useInject } from '@difizen/mana-app';
|
|
3
|
+
import React, { useEffect, useRef } from 'react';
|
|
4
|
+
import { renderText } from "../renderers.js";
|
|
5
|
+
import { RenderMimeRegistry } from "../rendermime-registry.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export var RawTextRender = function RawTextRender(props) {
|
|
8
|
+
var model = props.model;
|
|
9
|
+
var renderTextRef = useRef(null);
|
|
10
|
+
var renderTextContainerRef = useRef(null);
|
|
11
|
+
var defaultRenderMime = useInject(RenderMimeRegistry);
|
|
12
|
+
var mimeType = defaultRenderMime.defaultPreferredMimeType(model
|
|
13
|
+
// model.trusted ? 'any' : 'ensure'
|
|
14
|
+
);
|
|
15
|
+
var dataContent = null;
|
|
16
|
+
if (mimeType) {
|
|
17
|
+
dataContent = model.data[mimeType];
|
|
18
|
+
}
|
|
19
|
+
useEffect(function () {
|
|
20
|
+
if (dataContent && mimeType) {
|
|
21
|
+
renderText({
|
|
22
|
+
host: renderTextRef.current,
|
|
23
|
+
source: concatMultilineString(JSON.parse(JSON.stringify(dataContent))),
|
|
24
|
+
sanitizer: defaultRenderMime.sanitizer,
|
|
25
|
+
mimeType: mimeType
|
|
26
|
+
});
|
|
27
|
+
if (mimeType === 'application/vnd.jupyter.stderr') {
|
|
28
|
+
var _renderTextContainerR;
|
|
29
|
+
(_renderTextContainerR = renderTextContainerRef.current) === null || _renderTextContainerR === void 0 || _renderTextContainerR.setAttribute('data-mime-type', 'application/vnd.jupyter.stderr');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
33
|
+
}, [mimeType, dataContent]);
|
|
34
|
+
return /*#__PURE__*/_jsx("div", {
|
|
35
|
+
className: "libro-text-render-container",
|
|
36
|
+
ref: renderTextContainerRef,
|
|
37
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
38
|
+
className: "libro-text-render",
|
|
39
|
+
ref: renderTextRef
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
export var TextRender = /*#__PURE__*/React.memo(RawTextRender);
|
package/es/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './rendermime-utils.js';
|
|
2
|
+
export * from './renderers.js';
|
|
3
|
+
export * from './rendermime-registry.js';
|
|
4
|
+
export * from './rendermime-protocol.js';
|
|
5
|
+
export * from './rendermime-factory.js';
|
|
6
|
+
export * from './rendermime-module.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC"}
|
package/es/index.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { IRenderHTMLOptions, IRenderImageOptions, IRenderMarkdownOptions, IRenderSVGOptions, IRenderTextOptions } from './rendermime-protocol.js';
|
|
2
|
+
/**
|
|
3
|
+
* Render text into a host node.
|
|
4
|
+
*
|
|
5
|
+
* @param options - The options for rendering.
|
|
6
|
+
*
|
|
7
|
+
* @returns A promise which resolves when rendering is complete.
|
|
8
|
+
*/
|
|
9
|
+
export declare function renderText(options: IRenderTextOptions): Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Render an image into a host node.
|
|
12
|
+
*
|
|
13
|
+
* @param options - The options for rendering.
|
|
14
|
+
*
|
|
15
|
+
* @returns A promise which resolves when rendering is complete.
|
|
16
|
+
*/
|
|
17
|
+
export declare function renderImage(options: IRenderImageOptions): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Render HTML into a host node.
|
|
20
|
+
*
|
|
21
|
+
* @param options - The options for rendering.
|
|
22
|
+
*
|
|
23
|
+
* @returns A promise which resolves when rendering is complete.
|
|
24
|
+
*/
|
|
25
|
+
export declare function renderHTML(options: IRenderHTMLOptions): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Render SVG into a host node.
|
|
28
|
+
*
|
|
29
|
+
* @param options - The options for rendering.
|
|
30
|
+
*
|
|
31
|
+
* @returns A promise which resolves when rendering is complete.
|
|
32
|
+
*/
|
|
33
|
+
export declare function renderSVG(options: IRenderSVGOptions): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Render Markdown into a host node.
|
|
36
|
+
*
|
|
37
|
+
* @param options - The options for rendering.
|
|
38
|
+
*
|
|
39
|
+
* @returns A promise which resolves when rendering is complete.
|
|
40
|
+
*/
|
|
41
|
+
export declare function renderMarkdown(options: IRenderMarkdownOptions): Promise<void>;
|
|
42
|
+
//# sourceMappingURL=renderers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../src/renderers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAUlC;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmGrE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCvE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuErE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BnE;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBnF"}
|