@uniformdev/richtext 19.14.1-alpha.11 → 19.14.1-alpha.12
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/dist/index.d.ts +25 -3
- package/dist/index.esm.js +87 -1
- package/dist/index.js +91 -2
- package/dist/index.mjs +87 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -102,9 +102,9 @@ declare function hasChildren<TRichTextNode extends RichTextNode>(node: TRichText
|
|
|
102
102
|
* HTML tag (ie blockquote). For those there is a simple
|
|
103
103
|
* type -> tag Map.
|
|
104
104
|
*/
|
|
105
|
-
declare const resolveDefaultRenderer: ResolveStringRenderer;
|
|
105
|
+
declare const resolveDefaultRenderer$1: ResolveStringRenderer;
|
|
106
106
|
/**
|
|
107
|
-
* Render a node and
|
|
107
|
+
* Render a node and its children to HTML
|
|
108
108
|
*
|
|
109
109
|
* This could be the root node or a nested node
|
|
110
110
|
*/
|
|
@@ -118,6 +118,28 @@ declare function renderToHtml(node: RichTextNode | null | undefined, parentConte
|
|
|
118
118
|
*/
|
|
119
119
|
declare function renderChildrenToHtml(children: RichTextNode[] | undefined, context: StringRenderContext): string;
|
|
120
120
|
|
|
121
|
+
/**
|
|
122
|
+
* When a custom renderer has not been provided we
|
|
123
|
+
* check to see if there is a renderer for the type
|
|
124
|
+
* within the map above. These are for any node types
|
|
125
|
+
* which include extra logic.
|
|
126
|
+
*/
|
|
127
|
+
declare const resolveDefaultRenderer: ResolveStringRenderer;
|
|
128
|
+
/**
|
|
129
|
+
* Render a node and its children to text
|
|
130
|
+
*
|
|
131
|
+
* This could be the root node or a nested node
|
|
132
|
+
*/
|
|
133
|
+
declare function renderToText(node: RichTextNode | null | undefined, parentContext?: Partial<StringRenderContext>): string;
|
|
134
|
+
/**
|
|
135
|
+
* Render an array of RichTextNodes to a string based
|
|
136
|
+
* on a particular context.
|
|
137
|
+
*
|
|
138
|
+
* This will often be called from within a NodeRenderer
|
|
139
|
+
* using the `renderChildren` prop.
|
|
140
|
+
*/
|
|
141
|
+
declare function renderChildrenToText(children: RichTextNode[] | undefined, context: StringRenderContext): string;
|
|
142
|
+
|
|
121
143
|
declare const walkRichTextTree: (node: RichTextNode, callback: (node: RichTextNode, parent: RichTextNode | undefined) => void, parent?: RichTextNode) => void;
|
|
122
144
|
|
|
123
|
-
export { HeadingNode, LinkNode, ListItemNode, ListNode, NodeStringRenderer, NodeStringRendererProps, ParagraphNode, ParameterRichTextValue, ResolveStringRenderer, RichTextNode, RichTextNodeWithChildren, StringRenderContext, TextNode, getRichTextTagsFromTextFormat, hasChildren, headingHtmlRenderer, isArrayWithLength, isPureDirection, isPureTextAlign, isRichTextNode, isRichTextNodeType, linkHtmlRenderer, linkParamValueToHref, listHtmlRenderer, listitemHtmlRenderer, paragraphHtmlRenderer, purifyText, renderChildrenToHtml, renderHtmlElement, renderToHtml, resolveDefaultRenderer, rootHtmlRenderer, textHtmlRenderer, walkRichTextTree };
|
|
145
|
+
export { HeadingNode, LinkNode, ListItemNode, ListNode, NodeStringRenderer, NodeStringRendererProps, ParagraphNode, ParameterRichTextValue, ResolveStringRenderer, RichTextNode, RichTextNodeWithChildren, StringRenderContext, TextNode, getRichTextTagsFromTextFormat, hasChildren, headingHtmlRenderer, isArrayWithLength, isPureDirection, isPureTextAlign, isRichTextNode, isRichTextNodeType, linkHtmlRenderer, linkParamValueToHref, listHtmlRenderer, listitemHtmlRenderer, paragraphHtmlRenderer, purifyText, renderChildrenToHtml, renderChildrenToText, renderHtmlElement, renderToHtml, renderToText, resolveDefaultRenderer$1 as resolveDefaultHtmlRenderer, resolveDefaultRenderer as resolveDefaultTextRenderer, rootHtmlRenderer, textHtmlRenderer, walkRichTextTree };
|
package/dist/index.esm.js
CHANGED
|
@@ -52,6 +52,9 @@ var headingHtmlRenderer = ({ context, renderChildren }) => {
|
|
|
52
52
|
const node = context.currentNode;
|
|
53
53
|
return renderHtmlElement((_a = node.tag) != null ? _a : "h1", null, renderChildren(context.currentNode.children));
|
|
54
54
|
};
|
|
55
|
+
var headingTextRenderer = ({ context, renderChildren }) => {
|
|
56
|
+
return hasChildren(context.currentNode) ? `${renderChildren(context.currentNode.children)} ` : "";
|
|
57
|
+
};
|
|
55
58
|
|
|
56
59
|
// src/nodes/link.ts
|
|
57
60
|
var linkHtmlRenderer = ({ context, renderChildren }) => {
|
|
@@ -96,6 +99,16 @@ var listitemHtmlRenderer = ({ context, renderChildren }) => {
|
|
|
96
99
|
}
|
|
97
100
|
return renderHtmlElement("li", attributes, renderChildren(context.currentNode.children));
|
|
98
101
|
};
|
|
102
|
+
var listitemTextRenderer = ({ context, renderChildren }) => {
|
|
103
|
+
if (!hasChildren(context.currentNode)) {
|
|
104
|
+
return "";
|
|
105
|
+
}
|
|
106
|
+
const childrenRendered = renderChildren(context.currentNode.children);
|
|
107
|
+
if (childrenRendered.endsWith(" ")) {
|
|
108
|
+
return childrenRendered;
|
|
109
|
+
}
|
|
110
|
+
return `${childrenRendered} `;
|
|
111
|
+
};
|
|
99
112
|
|
|
100
113
|
// src/nodes/paragraph.ts
|
|
101
114
|
var paragraphHtmlRenderer = ({ context, renderChildren }) => {
|
|
@@ -113,6 +126,9 @@ var paragraphHtmlRenderer = ({ context, renderChildren }) => {
|
|
|
113
126
|
hasChildren(context.currentNode) ? renderChildren(context.currentNode.children) : "<br>"
|
|
114
127
|
);
|
|
115
128
|
};
|
|
129
|
+
var paragraphTextRenderer = ({ context, renderChildren }) => {
|
|
130
|
+
return hasChildren(context.currentNode) ? `${renderChildren(context.currentNode.children)} ` : "";
|
|
131
|
+
};
|
|
116
132
|
|
|
117
133
|
// src/nodes/root.ts
|
|
118
134
|
var rootHtmlRenderer = ({ context, renderChildren }) => {
|
|
@@ -128,6 +144,10 @@ var textHtmlRenderer = ({ context }) => {
|
|
|
128
144
|
return renderHtmlElement(tag, null, children);
|
|
129
145
|
}, pureText);
|
|
130
146
|
};
|
|
147
|
+
var textTextRenderer = ({ context }) => {
|
|
148
|
+
const node = context.currentNode;
|
|
149
|
+
return node.text;
|
|
150
|
+
};
|
|
131
151
|
function getRichTextTagsFromTextFormat(format) {
|
|
132
152
|
const tags = [];
|
|
133
153
|
if (format & 1 << 0) {
|
|
@@ -158,6 +178,9 @@ function getRichTextTagsFromTextFormat(format) {
|
|
|
158
178
|
var tabHtmlRenderer = () => {
|
|
159
179
|
return " ";
|
|
160
180
|
};
|
|
181
|
+
var tabTextRenderer = () => {
|
|
182
|
+
return " ";
|
|
183
|
+
};
|
|
161
184
|
|
|
162
185
|
// src/renderToHtml.ts
|
|
163
186
|
var rendererTypeMap = /* @__PURE__ */ new Map([
|
|
@@ -221,6 +244,66 @@ function renderChildrenToHtml(children, context) {
|
|
|
221
244
|
return Array.isArray(children) ? children.map((node) => renderToHtml(node, context)).join("") : "";
|
|
222
245
|
}
|
|
223
246
|
|
|
247
|
+
// src/nodes/linebreak.ts
|
|
248
|
+
var linebreakTextRenderer = () => {
|
|
249
|
+
return " ";
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
// src/renderToText.ts
|
|
253
|
+
var rendererTypeMap2 = /* @__PURE__ */ new Map([
|
|
254
|
+
["text", textTextRenderer],
|
|
255
|
+
["tab", tabTextRenderer],
|
|
256
|
+
["linebreak", linebreakTextRenderer],
|
|
257
|
+
["paragraph", paragraphTextRenderer],
|
|
258
|
+
["listitem", listitemTextRenderer],
|
|
259
|
+
["heading", headingTextRenderer]
|
|
260
|
+
]);
|
|
261
|
+
var resolveDefaultRenderer2 = (context) => {
|
|
262
|
+
const renderer = rendererTypeMap2.get(context.currentNode.type);
|
|
263
|
+
if (renderer) {
|
|
264
|
+
return renderer;
|
|
265
|
+
}
|
|
266
|
+
return ({ context: context2, renderChildren }) => {
|
|
267
|
+
return hasChildren(context2.currentNode) ? renderChildren(context2.currentNode.children) : "";
|
|
268
|
+
};
|
|
269
|
+
};
|
|
270
|
+
function initializeRenderContext2(node, parentContext) {
|
|
271
|
+
let ancestorNodes = [];
|
|
272
|
+
if (parentContext == null ? void 0 : parentContext.ancestorNodes) {
|
|
273
|
+
ancestorNodes = ancestorNodes.concat(parentContext.ancestorNodes);
|
|
274
|
+
}
|
|
275
|
+
if (parentContext == null ? void 0 : parentContext.currentNode) {
|
|
276
|
+
ancestorNodes.unshift(parentContext.currentNode);
|
|
277
|
+
}
|
|
278
|
+
return {
|
|
279
|
+
...parentContext != null ? parentContext : {},
|
|
280
|
+
currentNode: node,
|
|
281
|
+
ancestorNodes
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
function renderToText(node, parentContext) {
|
|
285
|
+
var _a;
|
|
286
|
+
if (!isRichTextNode(node))
|
|
287
|
+
return "";
|
|
288
|
+
const context = initializeRenderContext2(node, parentContext);
|
|
289
|
+
let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
|
|
290
|
+
if (typeof renderer === "undefined") {
|
|
291
|
+
renderer = resolveDefaultRenderer2(context);
|
|
292
|
+
} else if (renderer === null) {
|
|
293
|
+
return "";
|
|
294
|
+
}
|
|
295
|
+
const renderChildren = (children) => renderChildrenToText(children, context);
|
|
296
|
+
if (renderer) {
|
|
297
|
+
const rendered = renderer({ context, renderChildren });
|
|
298
|
+
return context.ancestorNodes.length > 0 ? rendered : rendered.trim();
|
|
299
|
+
} else {
|
|
300
|
+
throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
function renderChildrenToText(children, context) {
|
|
304
|
+
return Array.isArray(children) ? children.map((node) => renderToText(node, context)).join("") : "";
|
|
305
|
+
}
|
|
306
|
+
|
|
224
307
|
// src/utils.ts
|
|
225
308
|
var walkRichTextTree = (node, callback, parent) => {
|
|
226
309
|
callback(node, parent);
|
|
@@ -248,9 +331,12 @@ export {
|
|
|
248
331
|
paragraphHtmlRenderer,
|
|
249
332
|
purifyText,
|
|
250
333
|
renderChildrenToHtml,
|
|
334
|
+
renderChildrenToText,
|
|
251
335
|
renderHtmlElement,
|
|
252
336
|
renderToHtml,
|
|
253
|
-
|
|
337
|
+
renderToText,
|
|
338
|
+
resolveDefaultRenderer as resolveDefaultHtmlRenderer,
|
|
339
|
+
resolveDefaultRenderer2 as resolveDefaultTextRenderer,
|
|
254
340
|
rootHtmlRenderer,
|
|
255
341
|
textHtmlRenderer,
|
|
256
342
|
walkRichTextTree
|
package/dist/index.js
CHANGED
|
@@ -35,9 +35,12 @@ __export(src_exports, {
|
|
|
35
35
|
paragraphHtmlRenderer: () => paragraphHtmlRenderer,
|
|
36
36
|
purifyText: () => purifyText,
|
|
37
37
|
renderChildrenToHtml: () => renderChildrenToHtml,
|
|
38
|
+
renderChildrenToText: () => renderChildrenToText,
|
|
38
39
|
renderHtmlElement: () => renderHtmlElement,
|
|
39
40
|
renderToHtml: () => renderToHtml,
|
|
40
|
-
|
|
41
|
+
renderToText: () => renderToText,
|
|
42
|
+
resolveDefaultHtmlRenderer: () => resolveDefaultRenderer,
|
|
43
|
+
resolveDefaultTextRenderer: () => resolveDefaultRenderer2,
|
|
41
44
|
rootHtmlRenderer: () => rootHtmlRenderer,
|
|
42
45
|
textHtmlRenderer: () => textHtmlRenderer,
|
|
43
46
|
walkRichTextTree: () => walkRichTextTree
|
|
@@ -98,6 +101,9 @@ var headingHtmlRenderer = ({ context, renderChildren }) => {
|
|
|
98
101
|
const node = context.currentNode;
|
|
99
102
|
return renderHtmlElement((_a = node.tag) != null ? _a : "h1", null, renderChildren(context.currentNode.children));
|
|
100
103
|
};
|
|
104
|
+
var headingTextRenderer = ({ context, renderChildren }) => {
|
|
105
|
+
return hasChildren(context.currentNode) ? `${renderChildren(context.currentNode.children)} ` : "";
|
|
106
|
+
};
|
|
101
107
|
|
|
102
108
|
// src/nodes/link.ts
|
|
103
109
|
var linkHtmlRenderer = ({ context, renderChildren }) => {
|
|
@@ -142,6 +148,16 @@ var listitemHtmlRenderer = ({ context, renderChildren }) => {
|
|
|
142
148
|
}
|
|
143
149
|
return renderHtmlElement("li", attributes, renderChildren(context.currentNode.children));
|
|
144
150
|
};
|
|
151
|
+
var listitemTextRenderer = ({ context, renderChildren }) => {
|
|
152
|
+
if (!hasChildren(context.currentNode)) {
|
|
153
|
+
return "";
|
|
154
|
+
}
|
|
155
|
+
const childrenRendered = renderChildren(context.currentNode.children);
|
|
156
|
+
if (childrenRendered.endsWith(" ")) {
|
|
157
|
+
return childrenRendered;
|
|
158
|
+
}
|
|
159
|
+
return `${childrenRendered} `;
|
|
160
|
+
};
|
|
145
161
|
|
|
146
162
|
// src/nodes/paragraph.ts
|
|
147
163
|
var paragraphHtmlRenderer = ({ context, renderChildren }) => {
|
|
@@ -159,6 +175,9 @@ var paragraphHtmlRenderer = ({ context, renderChildren }) => {
|
|
|
159
175
|
hasChildren(context.currentNode) ? renderChildren(context.currentNode.children) : "<br>"
|
|
160
176
|
);
|
|
161
177
|
};
|
|
178
|
+
var paragraphTextRenderer = ({ context, renderChildren }) => {
|
|
179
|
+
return hasChildren(context.currentNode) ? `${renderChildren(context.currentNode.children)} ` : "";
|
|
180
|
+
};
|
|
162
181
|
|
|
163
182
|
// src/nodes/root.ts
|
|
164
183
|
var rootHtmlRenderer = ({ context, renderChildren }) => {
|
|
@@ -174,6 +193,10 @@ var textHtmlRenderer = ({ context }) => {
|
|
|
174
193
|
return renderHtmlElement(tag, null, children);
|
|
175
194
|
}, pureText);
|
|
176
195
|
};
|
|
196
|
+
var textTextRenderer = ({ context }) => {
|
|
197
|
+
const node = context.currentNode;
|
|
198
|
+
return node.text;
|
|
199
|
+
};
|
|
177
200
|
function getRichTextTagsFromTextFormat(format) {
|
|
178
201
|
const tags = [];
|
|
179
202
|
if (format & 1 << 0) {
|
|
@@ -204,6 +227,9 @@ function getRichTextTagsFromTextFormat(format) {
|
|
|
204
227
|
var tabHtmlRenderer = () => {
|
|
205
228
|
return " ";
|
|
206
229
|
};
|
|
230
|
+
var tabTextRenderer = () => {
|
|
231
|
+
return " ";
|
|
232
|
+
};
|
|
207
233
|
|
|
208
234
|
// src/renderToHtml.ts
|
|
209
235
|
var rendererTypeMap = /* @__PURE__ */ new Map([
|
|
@@ -267,6 +293,66 @@ function renderChildrenToHtml(children, context) {
|
|
|
267
293
|
return Array.isArray(children) ? children.map((node) => renderToHtml(node, context)).join("") : "";
|
|
268
294
|
}
|
|
269
295
|
|
|
296
|
+
// src/nodes/linebreak.ts
|
|
297
|
+
var linebreakTextRenderer = () => {
|
|
298
|
+
return " ";
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
// src/renderToText.ts
|
|
302
|
+
var rendererTypeMap2 = /* @__PURE__ */ new Map([
|
|
303
|
+
["text", textTextRenderer],
|
|
304
|
+
["tab", tabTextRenderer],
|
|
305
|
+
["linebreak", linebreakTextRenderer],
|
|
306
|
+
["paragraph", paragraphTextRenderer],
|
|
307
|
+
["listitem", listitemTextRenderer],
|
|
308
|
+
["heading", headingTextRenderer]
|
|
309
|
+
]);
|
|
310
|
+
var resolveDefaultRenderer2 = (context) => {
|
|
311
|
+
const renderer = rendererTypeMap2.get(context.currentNode.type);
|
|
312
|
+
if (renderer) {
|
|
313
|
+
return renderer;
|
|
314
|
+
}
|
|
315
|
+
return ({ context: context2, renderChildren }) => {
|
|
316
|
+
return hasChildren(context2.currentNode) ? renderChildren(context2.currentNode.children) : "";
|
|
317
|
+
};
|
|
318
|
+
};
|
|
319
|
+
function initializeRenderContext2(node, parentContext) {
|
|
320
|
+
let ancestorNodes = [];
|
|
321
|
+
if (parentContext == null ? void 0 : parentContext.ancestorNodes) {
|
|
322
|
+
ancestorNodes = ancestorNodes.concat(parentContext.ancestorNodes);
|
|
323
|
+
}
|
|
324
|
+
if (parentContext == null ? void 0 : parentContext.currentNode) {
|
|
325
|
+
ancestorNodes.unshift(parentContext.currentNode);
|
|
326
|
+
}
|
|
327
|
+
return {
|
|
328
|
+
...parentContext != null ? parentContext : {},
|
|
329
|
+
currentNode: node,
|
|
330
|
+
ancestorNodes
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
function renderToText(node, parentContext) {
|
|
334
|
+
var _a;
|
|
335
|
+
if (!isRichTextNode(node))
|
|
336
|
+
return "";
|
|
337
|
+
const context = initializeRenderContext2(node, parentContext);
|
|
338
|
+
let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
|
|
339
|
+
if (typeof renderer === "undefined") {
|
|
340
|
+
renderer = resolveDefaultRenderer2(context);
|
|
341
|
+
} else if (renderer === null) {
|
|
342
|
+
return "";
|
|
343
|
+
}
|
|
344
|
+
const renderChildren = (children) => renderChildrenToText(children, context);
|
|
345
|
+
if (renderer) {
|
|
346
|
+
const rendered = renderer({ context, renderChildren });
|
|
347
|
+
return context.ancestorNodes.length > 0 ? rendered : rendered.trim();
|
|
348
|
+
} else {
|
|
349
|
+
throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
function renderChildrenToText(children, context) {
|
|
353
|
+
return Array.isArray(children) ? children.map((node) => renderToText(node, context)).join("") : "";
|
|
354
|
+
}
|
|
355
|
+
|
|
270
356
|
// src/utils.ts
|
|
271
357
|
var walkRichTextTree = (node, callback, parent) => {
|
|
272
358
|
callback(node, parent);
|
|
@@ -295,9 +381,12 @@ var walkRichTextTree = (node, callback, parent) => {
|
|
|
295
381
|
paragraphHtmlRenderer,
|
|
296
382
|
purifyText,
|
|
297
383
|
renderChildrenToHtml,
|
|
384
|
+
renderChildrenToText,
|
|
298
385
|
renderHtmlElement,
|
|
299
386
|
renderToHtml,
|
|
300
|
-
|
|
387
|
+
renderToText,
|
|
388
|
+
resolveDefaultHtmlRenderer,
|
|
389
|
+
resolveDefaultTextRenderer,
|
|
301
390
|
rootHtmlRenderer,
|
|
302
391
|
textHtmlRenderer,
|
|
303
392
|
walkRichTextTree
|
package/dist/index.mjs
CHANGED
|
@@ -52,6 +52,9 @@ var headingHtmlRenderer = ({ context, renderChildren }) => {
|
|
|
52
52
|
const node = context.currentNode;
|
|
53
53
|
return renderHtmlElement((_a = node.tag) != null ? _a : "h1", null, renderChildren(context.currentNode.children));
|
|
54
54
|
};
|
|
55
|
+
var headingTextRenderer = ({ context, renderChildren }) => {
|
|
56
|
+
return hasChildren(context.currentNode) ? `${renderChildren(context.currentNode.children)} ` : "";
|
|
57
|
+
};
|
|
55
58
|
|
|
56
59
|
// src/nodes/link.ts
|
|
57
60
|
var linkHtmlRenderer = ({ context, renderChildren }) => {
|
|
@@ -96,6 +99,16 @@ var listitemHtmlRenderer = ({ context, renderChildren }) => {
|
|
|
96
99
|
}
|
|
97
100
|
return renderHtmlElement("li", attributes, renderChildren(context.currentNode.children));
|
|
98
101
|
};
|
|
102
|
+
var listitemTextRenderer = ({ context, renderChildren }) => {
|
|
103
|
+
if (!hasChildren(context.currentNode)) {
|
|
104
|
+
return "";
|
|
105
|
+
}
|
|
106
|
+
const childrenRendered = renderChildren(context.currentNode.children);
|
|
107
|
+
if (childrenRendered.endsWith(" ")) {
|
|
108
|
+
return childrenRendered;
|
|
109
|
+
}
|
|
110
|
+
return `${childrenRendered} `;
|
|
111
|
+
};
|
|
99
112
|
|
|
100
113
|
// src/nodes/paragraph.ts
|
|
101
114
|
var paragraphHtmlRenderer = ({ context, renderChildren }) => {
|
|
@@ -113,6 +126,9 @@ var paragraphHtmlRenderer = ({ context, renderChildren }) => {
|
|
|
113
126
|
hasChildren(context.currentNode) ? renderChildren(context.currentNode.children) : "<br>"
|
|
114
127
|
);
|
|
115
128
|
};
|
|
129
|
+
var paragraphTextRenderer = ({ context, renderChildren }) => {
|
|
130
|
+
return hasChildren(context.currentNode) ? `${renderChildren(context.currentNode.children)} ` : "";
|
|
131
|
+
};
|
|
116
132
|
|
|
117
133
|
// src/nodes/root.ts
|
|
118
134
|
var rootHtmlRenderer = ({ context, renderChildren }) => {
|
|
@@ -128,6 +144,10 @@ var textHtmlRenderer = ({ context }) => {
|
|
|
128
144
|
return renderHtmlElement(tag, null, children);
|
|
129
145
|
}, pureText);
|
|
130
146
|
};
|
|
147
|
+
var textTextRenderer = ({ context }) => {
|
|
148
|
+
const node = context.currentNode;
|
|
149
|
+
return node.text;
|
|
150
|
+
};
|
|
131
151
|
function getRichTextTagsFromTextFormat(format) {
|
|
132
152
|
const tags = [];
|
|
133
153
|
if (format & 1 << 0) {
|
|
@@ -158,6 +178,9 @@ function getRichTextTagsFromTextFormat(format) {
|
|
|
158
178
|
var tabHtmlRenderer = () => {
|
|
159
179
|
return " ";
|
|
160
180
|
};
|
|
181
|
+
var tabTextRenderer = () => {
|
|
182
|
+
return " ";
|
|
183
|
+
};
|
|
161
184
|
|
|
162
185
|
// src/renderToHtml.ts
|
|
163
186
|
var rendererTypeMap = /* @__PURE__ */ new Map([
|
|
@@ -221,6 +244,66 @@ function renderChildrenToHtml(children, context) {
|
|
|
221
244
|
return Array.isArray(children) ? children.map((node) => renderToHtml(node, context)).join("") : "";
|
|
222
245
|
}
|
|
223
246
|
|
|
247
|
+
// src/nodes/linebreak.ts
|
|
248
|
+
var linebreakTextRenderer = () => {
|
|
249
|
+
return " ";
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
// src/renderToText.ts
|
|
253
|
+
var rendererTypeMap2 = /* @__PURE__ */ new Map([
|
|
254
|
+
["text", textTextRenderer],
|
|
255
|
+
["tab", tabTextRenderer],
|
|
256
|
+
["linebreak", linebreakTextRenderer],
|
|
257
|
+
["paragraph", paragraphTextRenderer],
|
|
258
|
+
["listitem", listitemTextRenderer],
|
|
259
|
+
["heading", headingTextRenderer]
|
|
260
|
+
]);
|
|
261
|
+
var resolveDefaultRenderer2 = (context) => {
|
|
262
|
+
const renderer = rendererTypeMap2.get(context.currentNode.type);
|
|
263
|
+
if (renderer) {
|
|
264
|
+
return renderer;
|
|
265
|
+
}
|
|
266
|
+
return ({ context: context2, renderChildren }) => {
|
|
267
|
+
return hasChildren(context2.currentNode) ? renderChildren(context2.currentNode.children) : "";
|
|
268
|
+
};
|
|
269
|
+
};
|
|
270
|
+
function initializeRenderContext2(node, parentContext) {
|
|
271
|
+
let ancestorNodes = [];
|
|
272
|
+
if (parentContext == null ? void 0 : parentContext.ancestorNodes) {
|
|
273
|
+
ancestorNodes = ancestorNodes.concat(parentContext.ancestorNodes);
|
|
274
|
+
}
|
|
275
|
+
if (parentContext == null ? void 0 : parentContext.currentNode) {
|
|
276
|
+
ancestorNodes.unshift(parentContext.currentNode);
|
|
277
|
+
}
|
|
278
|
+
return {
|
|
279
|
+
...parentContext != null ? parentContext : {},
|
|
280
|
+
currentNode: node,
|
|
281
|
+
ancestorNodes
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
function renderToText(node, parentContext) {
|
|
285
|
+
var _a;
|
|
286
|
+
if (!isRichTextNode(node))
|
|
287
|
+
return "";
|
|
288
|
+
const context = initializeRenderContext2(node, parentContext);
|
|
289
|
+
let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
|
|
290
|
+
if (typeof renderer === "undefined") {
|
|
291
|
+
renderer = resolveDefaultRenderer2(context);
|
|
292
|
+
} else if (renderer === null) {
|
|
293
|
+
return "";
|
|
294
|
+
}
|
|
295
|
+
const renderChildren = (children) => renderChildrenToText(children, context);
|
|
296
|
+
if (renderer) {
|
|
297
|
+
const rendered = renderer({ context, renderChildren });
|
|
298
|
+
return context.ancestorNodes.length > 0 ? rendered : rendered.trim();
|
|
299
|
+
} else {
|
|
300
|
+
throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
function renderChildrenToText(children, context) {
|
|
304
|
+
return Array.isArray(children) ? children.map((node) => renderToText(node, context)).join("") : "";
|
|
305
|
+
}
|
|
306
|
+
|
|
224
307
|
// src/utils.ts
|
|
225
308
|
var walkRichTextTree = (node, callback, parent) => {
|
|
226
309
|
callback(node, parent);
|
|
@@ -248,9 +331,12 @@ export {
|
|
|
248
331
|
paragraphHtmlRenderer,
|
|
249
332
|
purifyText,
|
|
250
333
|
renderChildrenToHtml,
|
|
334
|
+
renderChildrenToText,
|
|
251
335
|
renderHtmlElement,
|
|
252
336
|
renderToHtml,
|
|
253
|
-
|
|
337
|
+
renderToText,
|
|
338
|
+
resolveDefaultRenderer as resolveDefaultHtmlRenderer,
|
|
339
|
+
resolveDefaultRenderer2 as resolveDefaultTextRenderer,
|
|
254
340
|
rootHtmlRenderer,
|
|
255
341
|
textHtmlRenderer,
|
|
256
342
|
walkRichTextTree
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uniformdev/richtext",
|
|
3
|
-
"version": "19.14.1-alpha.
|
|
3
|
+
"version": "19.14.1-alpha.12+55ed85e4b",
|
|
4
4
|
"description": "Common functionality and types for Uniform Rich Text parameters",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"@lexical/link": "^0.11.0",
|
|
46
46
|
"@lexical/list": "^0.11.0",
|
|
47
47
|
"@lexical/rich-text": "^0.11.0",
|
|
48
|
-
"@uniformdev/canvas": "^19.14.1-alpha.
|
|
48
|
+
"@uniformdev/canvas": "^19.14.1-alpha.12+55ed85e4b",
|
|
49
49
|
"lexical": "^0.11.0"
|
|
50
50
|
},
|
|
51
51
|
"files": [
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"publishConfig": {
|
|
55
55
|
"access": "public"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "55ed85e4b8eb70027597dca9996d1c87985554d3"
|
|
58
58
|
}
|