@uniformdev/richtext 20.75.1-alpha.0 → 20.76.1-alpha.3
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.mts +46 -12
- package/dist/index.d.ts +46 -12
- package/dist/index.esm.js +330 -142
- package/dist/index.js +334 -142
- package/dist/index.mjs +330 -142
- package/package.json +9 -9
package/dist/index.esm.js
CHANGED
|
@@ -182,18 +182,23 @@ var listHtmlRenderer = ({ context, renderChildren }) => {
|
|
|
182
182
|
var _a;
|
|
183
183
|
const node = context.currentNode;
|
|
184
184
|
const attributes = /* @__PURE__ */ new Map();
|
|
185
|
-
|
|
186
|
-
|
|
185
|
+
const start = getRichTextListStart(node.start);
|
|
186
|
+
if (typeof start === "number" && start > 1) {
|
|
187
|
+
attributes.set("start", start.toString());
|
|
187
188
|
}
|
|
188
189
|
return renderHtmlElement((_a = node.tag) != null ? _a : "ul", attributes, renderChildren(context.currentNode.children));
|
|
189
190
|
};
|
|
191
|
+
function getRichTextListStart(start) {
|
|
192
|
+
return start === void 0 ? 1 : start;
|
|
193
|
+
}
|
|
190
194
|
|
|
191
195
|
// src/nodes/listitem.ts
|
|
192
196
|
var listitemHtmlRenderer = ({ context, renderChildren }) => {
|
|
193
197
|
const node = context.currentNode;
|
|
194
198
|
const attributes = /* @__PURE__ */ new Map();
|
|
195
|
-
|
|
196
|
-
|
|
199
|
+
const value = getRichTextListItemValue(node.value);
|
|
200
|
+
if (typeof value === "number" && value > 0) {
|
|
201
|
+
attributes.set("value", value.toString());
|
|
197
202
|
}
|
|
198
203
|
return renderHtmlElement("li", attributes, renderChildren(context.currentNode.children));
|
|
199
204
|
};
|
|
@@ -207,6 +212,9 @@ var listitemTextRenderer = ({ context, renderChildren }) => {
|
|
|
207
212
|
}
|
|
208
213
|
return `${childrenRendered} `;
|
|
209
214
|
};
|
|
215
|
+
function getRichTextListItemValue(value) {
|
|
216
|
+
return value === void 0 ? 1 : value;
|
|
217
|
+
}
|
|
210
218
|
|
|
211
219
|
// src/nodes/paragraph.ts
|
|
212
220
|
var paragraphHtmlRenderer = ({ context, renderChildren }) => {
|
|
@@ -253,7 +261,7 @@ var tablecellTextRenderer = ({ context, renderChildren }) => {
|
|
|
253
261
|
return hasChildren(context.currentNode) ? `${renderChildren(context.currentNode.children)} ` : "";
|
|
254
262
|
};
|
|
255
263
|
function getRichTextTagFromTableCellHeaderState(headerState) {
|
|
256
|
-
if (headerState
|
|
264
|
+
if (!headerState) {
|
|
257
265
|
return "td";
|
|
258
266
|
}
|
|
259
267
|
return "th";
|
|
@@ -282,6 +290,9 @@ var textTextRenderer = ({ context }) => {
|
|
|
282
290
|
};
|
|
283
291
|
function getRichTextTagsFromTextFormat(format) {
|
|
284
292
|
const tags = [];
|
|
293
|
+
if (!format) {
|
|
294
|
+
return tags;
|
|
295
|
+
}
|
|
285
296
|
if (format & 1 << 0) {
|
|
286
297
|
tags.push("strong");
|
|
287
298
|
}
|
|
@@ -306,154 +317,133 @@ function getRichTextTagsFromTextFormat(format) {
|
|
|
306
317
|
return tags;
|
|
307
318
|
}
|
|
308
319
|
|
|
309
|
-
// src/
|
|
310
|
-
var
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
var
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
320
|
+
// src/defaultRichTextNodeProperties.ts
|
|
321
|
+
var OMITTED_RICH_TEXT_NODE_VERSION = 1;
|
|
322
|
+
var NO_DEFAULTS = Object.freeze({});
|
|
323
|
+
var ELEMENT_BASELINE_V1 = Object.freeze({
|
|
324
|
+
format: "",
|
|
325
|
+
indent: 0,
|
|
326
|
+
direction: null,
|
|
327
|
+
version: 1
|
|
328
|
+
});
|
|
329
|
+
var TEXT_BASELINE_V1 = Object.freeze({
|
|
330
|
+
format: 0,
|
|
331
|
+
style: "",
|
|
332
|
+
mode: "normal",
|
|
333
|
+
detail: 0,
|
|
334
|
+
version: 1
|
|
335
|
+
});
|
|
336
|
+
var VERSION_ONLY_V1 = Object.freeze({
|
|
337
|
+
version: 1
|
|
338
|
+
});
|
|
339
|
+
var ELEMENT_PROPERTIES_SAFE_TO_OMIT = Object.freeze([
|
|
340
|
+
"format",
|
|
341
|
+
"indent",
|
|
342
|
+
"direction"
|
|
343
|
+
// 'version', // Retain until SDKs that treat missing `version` as `1` are widely adopted.
|
|
331
344
|
]);
|
|
332
|
-
var
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
}
|
|
345
|
+
var TEXT_PROPERTIES_SAFE_TO_OMIT = Object.freeze([
|
|
346
|
+
// 'format', // Retain until SDKs that treat missing text/tab `format` as `0` are widely adopted.
|
|
347
|
+
"style",
|
|
348
|
+
"mode",
|
|
349
|
+
"detail"
|
|
350
|
+
// 'version', // Retain until SDKs that treat missing `version` as `1` are widely adopted.
|
|
351
|
+
]);
|
|
352
|
+
var NO_PROPERTIES_SAFE_TO_OMIT = Object.freeze([
|
|
353
|
+
// 'version', // Retain until SDKs that treat missing `version` as `1` are widely adopted.
|
|
354
|
+
]);
|
|
355
|
+
var DEFAULT_RICH_TEXT_NODE_PROPERTIES = Object.freeze({
|
|
356
|
+
root: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
|
|
357
|
+
heading: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
|
|
358
|
+
quote: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
|
|
359
|
+
code: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
|
|
360
|
+
table: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
|
|
361
|
+
tablerow: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
|
|
362
|
+
link: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
|
|
363
|
+
paragraph: Object.freeze({
|
|
364
|
+
1: Object.freeze({ ...ELEMENT_BASELINE_V1, textFormat: 0, textStyle: "" })
|
|
365
|
+
}),
|
|
366
|
+
list: Object.freeze({ 1: Object.freeze({ ...ELEMENT_BASELINE_V1, start: 1 }) }),
|
|
367
|
+
listitem: Object.freeze({ 1: Object.freeze({ ...ELEMENT_BASELINE_V1, value: 1 }) }),
|
|
368
|
+
tablecell: Object.freeze({
|
|
369
|
+
1: Object.freeze({
|
|
370
|
+
...ELEMENT_BASELINE_V1,
|
|
371
|
+
colSpan: 1,
|
|
372
|
+
rowSpan: 1,
|
|
373
|
+
backgroundColor: null,
|
|
374
|
+
headerState: 0
|
|
375
|
+
})
|
|
376
|
+
}),
|
|
377
|
+
text: Object.freeze({ 1: TEXT_BASELINE_V1 }),
|
|
378
|
+
tab: Object.freeze({ 1: TEXT_BASELINE_V1 }),
|
|
379
|
+
linebreak: Object.freeze({ 1: VERSION_ONLY_V1 }),
|
|
380
|
+
asset: Object.freeze({ 1: VERSION_ONLY_V1 }),
|
|
381
|
+
// Rich text variable binding still requires an explicit version, so variable nodes stay verbose.
|
|
382
|
+
variable: Object.freeze({ 1: NO_DEFAULTS })
|
|
383
|
+
});
|
|
384
|
+
var RICH_TEXT_NODE_PROPERTIES_SAFE_TO_OMIT = Object.freeze({
|
|
385
|
+
root: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
386
|
+
heading: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
387
|
+
quote: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
388
|
+
code: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
389
|
+
table: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
390
|
+
tablerow: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
391
|
+
link: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
392
|
+
paragraph: Object.freeze([...ELEMENT_PROPERTIES_SAFE_TO_OMIT, "textFormat", "textStyle"]),
|
|
393
|
+
list: Object.freeze([
|
|
394
|
+
...ELEMENT_PROPERTIES_SAFE_TO_OMIT
|
|
395
|
+
// 'start', // Retain until SDKs that treat missing list `start` as `1` are widely adopted.
|
|
396
|
+
]),
|
|
397
|
+
listitem: Object.freeze([
|
|
398
|
+
...ELEMENT_PROPERTIES_SAFE_TO_OMIT
|
|
399
|
+
// 'value', // Retain until SDKs that treat missing list-item `value` as `1` are widely adopted.
|
|
400
|
+
]),
|
|
401
|
+
tablecell: Object.freeze([
|
|
402
|
+
...ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
403
|
+
"colSpan",
|
|
404
|
+
"rowSpan",
|
|
405
|
+
"backgroundColor"
|
|
406
|
+
// 'headerState', // Retain until SDKs that treat missing `headerState` as `0` are widely adopted.
|
|
407
|
+
]),
|
|
408
|
+
text: TEXT_PROPERTIES_SAFE_TO_OMIT,
|
|
409
|
+
tab: TEXT_PROPERTIES_SAFE_TO_OMIT,
|
|
410
|
+
linebreak: NO_PROPERTIES_SAFE_TO_OMIT,
|
|
411
|
+
asset: NO_PROPERTIES_SAFE_TO_OMIT,
|
|
412
|
+
variable: NO_PROPERTIES_SAFE_TO_OMIT
|
|
413
|
+
});
|
|
414
|
+
function getStoredRichTextNodeVersion(node) {
|
|
415
|
+
return typeof node.version === "number" ? node.version : OMITTED_RICH_TEXT_NODE_VERSION;
|
|
364
416
|
}
|
|
365
|
-
function
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
const context = initializeRenderContext(node, parentContext);
|
|
369
|
-
let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
|
|
370
|
-
if (typeof renderer === "undefined") {
|
|
371
|
-
renderer = resolveDefaultRenderer(context);
|
|
372
|
-
} else if (renderer === null) {
|
|
373
|
-
return "";
|
|
417
|
+
function isOmittableRichTextDefault(key, nodeValue, defaultValue) {
|
|
418
|
+
if (!Object.is(nodeValue, defaultValue)) {
|
|
419
|
+
return false;
|
|
374
420
|
}
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
return renderer({ context, renderChildren });
|
|
378
|
-
} else {
|
|
379
|
-
throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
|
|
421
|
+
if (key === "version") {
|
|
422
|
+
return Object.is(nodeValue, OMITTED_RICH_TEXT_NODE_VERSION);
|
|
380
423
|
}
|
|
424
|
+
return true;
|
|
381
425
|
}
|
|
382
|
-
function
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
return " ";
|
|
389
|
-
};
|
|
390
|
-
|
|
391
|
-
// src/renderToText.ts
|
|
392
|
-
var rendererTypeMap2 = /* @__PURE__ */ new Map([
|
|
393
|
-
["text", textTextRenderer],
|
|
394
|
-
["tab", tabTextRenderer],
|
|
395
|
-
["linebreak", linebreakTextRenderer],
|
|
396
|
-
["paragraph", paragraphTextRenderer],
|
|
397
|
-
["listitem", listitemTextRenderer],
|
|
398
|
-
["heading", headingTextRenderer],
|
|
399
|
-
["table", tableTextRenderer],
|
|
400
|
-
["tablecell", tablecellTextRenderer],
|
|
401
|
-
["tablerow", tablerowTextRenderer]
|
|
402
|
-
]);
|
|
403
|
-
var resolveDefaultRenderer2 = (context) => {
|
|
404
|
-
const renderer = rendererTypeMap2.get(context.currentNode.type);
|
|
405
|
-
if (renderer) {
|
|
406
|
-
return renderer;
|
|
407
|
-
}
|
|
408
|
-
return ({ context: context2, renderChildren }) => {
|
|
409
|
-
return hasChildren(context2.currentNode) ? renderChildren(context2.currentNode.children) : "";
|
|
410
|
-
};
|
|
411
|
-
};
|
|
412
|
-
function initializeRenderContext2(node, parentContext) {
|
|
413
|
-
let ancestorNodes = [];
|
|
414
|
-
if (parentContext == null ? void 0 : parentContext.ancestorNodes) {
|
|
415
|
-
ancestorNodes = ancestorNodes.concat(parentContext.ancestorNodes);
|
|
426
|
+
function getDefaultRichTextPropertiesForNode(node) {
|
|
427
|
+
var _a;
|
|
428
|
+
const version = getStoredRichTextNodeVersion(node);
|
|
429
|
+
const defaultsForType = DEFAULT_RICH_TEXT_NODE_PROPERTIES[node.type];
|
|
430
|
+
if (defaultsForType) {
|
|
431
|
+
return (_a = defaultsForType[version]) != null ? _a : NO_DEFAULTS;
|
|
416
432
|
}
|
|
417
|
-
if (
|
|
418
|
-
|
|
433
|
+
if (version !== OMITTED_RICH_TEXT_NODE_VERSION) {
|
|
434
|
+
return NO_DEFAULTS;
|
|
419
435
|
}
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
currentNode: node,
|
|
423
|
-
ancestorNodes
|
|
424
|
-
};
|
|
425
|
-
}
|
|
426
|
-
function renderToText(node, parentContext) {
|
|
427
|
-
var _a;
|
|
428
|
-
if (!isRichTextNode(node)) return "";
|
|
429
|
-
const context = initializeRenderContext2(node, parentContext);
|
|
430
|
-
let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
|
|
431
|
-
if (typeof renderer === "undefined") {
|
|
432
|
-
renderer = resolveDefaultRenderer2(context);
|
|
433
|
-
} else if (renderer === null) {
|
|
434
|
-
return "";
|
|
436
|
+
if ("text" in node) {
|
|
437
|
+
return TEXT_BASELINE_V1;
|
|
435
438
|
}
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
const rendered = renderer({ context, renderChildren });
|
|
439
|
-
return context.ancestorNodes.length > 0 ? rendered : rendered.trim();
|
|
440
|
-
} else {
|
|
441
|
-
throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
|
|
439
|
+
if ("children" in node) {
|
|
440
|
+
return ELEMENT_BASELINE_V1;
|
|
442
441
|
}
|
|
442
|
+
return VERSION_ONLY_V1;
|
|
443
443
|
}
|
|
444
|
-
function
|
|
445
|
-
return Array.isArray(children) ? children.map((node) => renderToText(node, context)).join("") : "";
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
// src/types.ts
|
|
449
|
-
function resolveLinkAttrConfig(entry) {
|
|
444
|
+
function getRichTextPropertiesSafeToOmit(node) {
|
|
450
445
|
var _a;
|
|
451
|
-
return
|
|
452
|
-
key: entry.key,
|
|
453
|
-
options: entry.options,
|
|
454
|
-
label: (_a = entry.label) != null ? _a : entry.key,
|
|
455
|
-
helpText: entry.helpText
|
|
456
|
-
};
|
|
446
|
+
return (_a = RICH_TEXT_NODE_PROPERTIES_SAFE_TO_OMIT[node.type]) != null ? _a : NO_PROPERTIES_SAFE_TO_OMIT;
|
|
457
447
|
}
|
|
458
448
|
|
|
459
449
|
// src/utils.ts
|
|
@@ -606,12 +596,208 @@ var defaultParameterConfiguration = {
|
|
|
606
596
|
}
|
|
607
597
|
}
|
|
608
598
|
};
|
|
599
|
+
|
|
600
|
+
// src/omitDefaultRichTextProperties.ts
|
|
601
|
+
function omitDefaultPropertiesFromNode(node) {
|
|
602
|
+
const defaults = getDefaultRichTextPropertiesForNode(node);
|
|
603
|
+
for (const key of getRichTextPropertiesSafeToOmit(node)) {
|
|
604
|
+
if (!(key in node)) {
|
|
605
|
+
continue;
|
|
606
|
+
}
|
|
607
|
+
const defaultValue = defaults[key];
|
|
608
|
+
if (isOmittableRichTextDefault(key, node[key], defaultValue)) {
|
|
609
|
+
delete node[key];
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
function omitDefaultRichTextProperties(value) {
|
|
614
|
+
if (!isRichTextValue(value)) {
|
|
615
|
+
return value;
|
|
616
|
+
}
|
|
617
|
+
const cloned = structuredClone(value);
|
|
618
|
+
walkRichTextTree(cloned.root, (node) => {
|
|
619
|
+
omitDefaultPropertiesFromNode(node);
|
|
620
|
+
});
|
|
621
|
+
return cloned;
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
// src/rehydrateDefaultRichTextProperties.ts
|
|
625
|
+
function rehydrateDefaultPropertiesOnNode(node) {
|
|
626
|
+
const defaults = getDefaultRichTextPropertiesForNode(node);
|
|
627
|
+
for (const [key, defaultValue] of Object.entries(defaults)) {
|
|
628
|
+
if (!(key in node)) {
|
|
629
|
+
node[key] = defaultValue;
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
function rehydrateDefaultRichTextProperties(value) {
|
|
634
|
+
if (!isRichTextValue(value)) {
|
|
635
|
+
return value;
|
|
636
|
+
}
|
|
637
|
+
const cloned = structuredClone(value);
|
|
638
|
+
walkRichTextTree(cloned.root, (node) => {
|
|
639
|
+
rehydrateDefaultPropertiesOnNode(node);
|
|
640
|
+
});
|
|
641
|
+
return cloned;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
// src/nodes/tab.ts
|
|
645
|
+
var tabHtmlRenderer = () => {
|
|
646
|
+
return " ";
|
|
647
|
+
};
|
|
648
|
+
var tabTextRenderer = () => {
|
|
649
|
+
return " ";
|
|
650
|
+
};
|
|
651
|
+
|
|
652
|
+
// src/renderToHtml.ts
|
|
653
|
+
var rendererTypeMap = /* @__PURE__ */ new Map([
|
|
654
|
+
["heading", headingHtmlRenderer],
|
|
655
|
+
["link", linkHtmlRenderer],
|
|
656
|
+
["list", listHtmlRenderer],
|
|
657
|
+
["listitem", listitemHtmlRenderer],
|
|
658
|
+
["paragraph", paragraphHtmlRenderer],
|
|
659
|
+
["root", rootHtmlRenderer],
|
|
660
|
+
["text", textHtmlRenderer],
|
|
661
|
+
["tab", tabHtmlRenderer],
|
|
662
|
+
["table", tableHtmlRenderer],
|
|
663
|
+
["tablecell", tablecellHtmlRenderer],
|
|
664
|
+
["tablerow", tablerowHtmlRenderer],
|
|
665
|
+
["asset", assetHtmlRenderer]
|
|
666
|
+
]);
|
|
667
|
+
var resolveDefaultRenderer = (context) => {
|
|
668
|
+
const renderer = rendererTypeMap.get(context.currentNode.type);
|
|
669
|
+
if (renderer) {
|
|
670
|
+
return renderer;
|
|
671
|
+
}
|
|
672
|
+
const tags = rendererTypeTagMap.get(context.currentNode.type);
|
|
673
|
+
if (tags) {
|
|
674
|
+
return ({ renderChildren }) => {
|
|
675
|
+
var _a;
|
|
676
|
+
return (_a = tags.reduceRight(
|
|
677
|
+
(children, tag) => {
|
|
678
|
+
return renderHtmlElement(tag, null, children);
|
|
679
|
+
},
|
|
680
|
+
hasChildren(context.currentNode) ? renderChildren(context.currentNode.children) : void 0
|
|
681
|
+
)) != null ? _a : "";
|
|
682
|
+
};
|
|
683
|
+
}
|
|
684
|
+
return () => `<!-- WARNING: No renderer for type ${context.currentNode.type} -->`;
|
|
685
|
+
};
|
|
686
|
+
function initializeRenderContext(node, parentContext) {
|
|
687
|
+
let ancestorNodes = [];
|
|
688
|
+
if (parentContext == null ? void 0 : parentContext.ancestorNodes) {
|
|
689
|
+
ancestorNodes = ancestorNodes.concat(parentContext.ancestorNodes);
|
|
690
|
+
}
|
|
691
|
+
if (parentContext == null ? void 0 : parentContext.currentNode) {
|
|
692
|
+
ancestorNodes.unshift(parentContext.currentNode);
|
|
693
|
+
}
|
|
694
|
+
return {
|
|
695
|
+
...parentContext != null ? parentContext : {},
|
|
696
|
+
currentNode: node,
|
|
697
|
+
ancestorNodes
|
|
698
|
+
};
|
|
699
|
+
}
|
|
700
|
+
function renderToHtml(node, parentContext) {
|
|
701
|
+
var _a;
|
|
702
|
+
if (!isRichTextNode(node)) return "";
|
|
703
|
+
const context = initializeRenderContext(node, parentContext);
|
|
704
|
+
let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
|
|
705
|
+
if (typeof renderer === "undefined") {
|
|
706
|
+
renderer = resolveDefaultRenderer(context);
|
|
707
|
+
} else if (renderer === null) {
|
|
708
|
+
return "";
|
|
709
|
+
}
|
|
710
|
+
const renderChildren = (children) => renderChildrenToHtml(children, context);
|
|
711
|
+
if (renderer) {
|
|
712
|
+
return renderer({ context, renderChildren });
|
|
713
|
+
} else {
|
|
714
|
+
throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
function renderChildrenToHtml(children, context) {
|
|
718
|
+
return Array.isArray(children) ? children.map((node) => renderToHtml(node, context)).join("") : "";
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
// src/nodes/linebreak.ts
|
|
722
|
+
var linebreakTextRenderer = () => {
|
|
723
|
+
return " ";
|
|
724
|
+
};
|
|
725
|
+
|
|
726
|
+
// src/renderToText.ts
|
|
727
|
+
var rendererTypeMap2 = /* @__PURE__ */ new Map([
|
|
728
|
+
["text", textTextRenderer],
|
|
729
|
+
["tab", tabTextRenderer],
|
|
730
|
+
["linebreak", linebreakTextRenderer],
|
|
731
|
+
["paragraph", paragraphTextRenderer],
|
|
732
|
+
["listitem", listitemTextRenderer],
|
|
733
|
+
["heading", headingTextRenderer],
|
|
734
|
+
["table", tableTextRenderer],
|
|
735
|
+
["tablecell", tablecellTextRenderer],
|
|
736
|
+
["tablerow", tablerowTextRenderer]
|
|
737
|
+
]);
|
|
738
|
+
var resolveDefaultRenderer2 = (context) => {
|
|
739
|
+
const renderer = rendererTypeMap2.get(context.currentNode.type);
|
|
740
|
+
if (renderer) {
|
|
741
|
+
return renderer;
|
|
742
|
+
}
|
|
743
|
+
return ({ context: context2, renderChildren }) => {
|
|
744
|
+
return hasChildren(context2.currentNode) ? renderChildren(context2.currentNode.children) : "";
|
|
745
|
+
};
|
|
746
|
+
};
|
|
747
|
+
function initializeRenderContext2(node, parentContext) {
|
|
748
|
+
let ancestorNodes = [];
|
|
749
|
+
if (parentContext == null ? void 0 : parentContext.ancestorNodes) {
|
|
750
|
+
ancestorNodes = ancestorNodes.concat(parentContext.ancestorNodes);
|
|
751
|
+
}
|
|
752
|
+
if (parentContext == null ? void 0 : parentContext.currentNode) {
|
|
753
|
+
ancestorNodes.unshift(parentContext.currentNode);
|
|
754
|
+
}
|
|
755
|
+
return {
|
|
756
|
+
...parentContext != null ? parentContext : {},
|
|
757
|
+
currentNode: node,
|
|
758
|
+
ancestorNodes
|
|
759
|
+
};
|
|
760
|
+
}
|
|
761
|
+
function renderToText(node, parentContext) {
|
|
762
|
+
var _a;
|
|
763
|
+
if (!isRichTextNode(node)) return "";
|
|
764
|
+
const context = initializeRenderContext2(node, parentContext);
|
|
765
|
+
let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
|
|
766
|
+
if (typeof renderer === "undefined") {
|
|
767
|
+
renderer = resolveDefaultRenderer2(context);
|
|
768
|
+
} else if (renderer === null) {
|
|
769
|
+
return "";
|
|
770
|
+
}
|
|
771
|
+
const renderChildren = (children) => renderChildrenToText(children, context);
|
|
772
|
+
if (renderer) {
|
|
773
|
+
const rendered = renderer({ context, renderChildren });
|
|
774
|
+
return context.ancestorNodes.length > 0 ? rendered : rendered.trim();
|
|
775
|
+
} else {
|
|
776
|
+
throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
|
|
777
|
+
}
|
|
778
|
+
}
|
|
779
|
+
function renderChildrenToText(children, context) {
|
|
780
|
+
return Array.isArray(children) ? children.map((node) => renderToText(node, context)).join("") : "";
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
// src/types.ts
|
|
784
|
+
function resolveLinkAttrConfig(entry) {
|
|
785
|
+
var _a;
|
|
786
|
+
return {
|
|
787
|
+
key: entry.key,
|
|
788
|
+
options: entry.options,
|
|
789
|
+
label: (_a = entry.label) != null ? _a : entry.key,
|
|
790
|
+
helpText: entry.helpText
|
|
791
|
+
};
|
|
792
|
+
}
|
|
609
793
|
export {
|
|
610
794
|
assetHtmlRenderer,
|
|
611
795
|
defaultParameterConfiguration,
|
|
612
796
|
emptyRichTextValue,
|
|
613
797
|
getLabelForElement,
|
|
614
798
|
getLabelForFormat,
|
|
799
|
+
getRichTextListItemValue,
|
|
800
|
+
getRichTextListStart,
|
|
615
801
|
getRichTextTagFromTableCellHeaderState,
|
|
616
802
|
getRichTextTagsFromTextFormat,
|
|
617
803
|
hasChildren,
|
|
@@ -630,8 +816,10 @@ export {
|
|
|
630
816
|
linkParamValueToHtmlAttributes,
|
|
631
817
|
listHtmlRenderer,
|
|
632
818
|
listitemHtmlRenderer,
|
|
819
|
+
omitDefaultRichTextProperties,
|
|
633
820
|
paragraphHtmlRenderer,
|
|
634
821
|
purifyText,
|
|
822
|
+
rehydrateDefaultRichTextProperties,
|
|
635
823
|
renderChildrenToHtml,
|
|
636
824
|
renderChildrenToText,
|
|
637
825
|
renderHtmlElement,
|