@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.js
CHANGED
|
@@ -25,6 +25,8 @@ __export(index_exports, {
|
|
|
25
25
|
emptyRichTextValue: () => emptyRichTextValue,
|
|
26
26
|
getLabelForElement: () => getLabelForElement,
|
|
27
27
|
getLabelForFormat: () => getLabelForFormat,
|
|
28
|
+
getRichTextListItemValue: () => getRichTextListItemValue,
|
|
29
|
+
getRichTextListStart: () => getRichTextListStart,
|
|
28
30
|
getRichTextTagFromTableCellHeaderState: () => getRichTextTagFromTableCellHeaderState,
|
|
29
31
|
getRichTextTagsFromTextFormat: () => getRichTextTagsFromTextFormat,
|
|
30
32
|
hasChildren: () => hasChildren,
|
|
@@ -43,8 +45,10 @@ __export(index_exports, {
|
|
|
43
45
|
linkParamValueToHtmlAttributes: () => linkParamValueToHtmlAttributes,
|
|
44
46
|
listHtmlRenderer: () => listHtmlRenderer,
|
|
45
47
|
listitemHtmlRenderer: () => listitemHtmlRenderer,
|
|
48
|
+
omitDefaultRichTextProperties: () => omitDefaultRichTextProperties,
|
|
46
49
|
paragraphHtmlRenderer: () => paragraphHtmlRenderer,
|
|
47
50
|
purifyText: () => purifyText,
|
|
51
|
+
rehydrateDefaultRichTextProperties: () => rehydrateDefaultRichTextProperties,
|
|
48
52
|
renderChildrenToHtml: () => renderChildrenToHtml,
|
|
49
53
|
renderChildrenToText: () => renderChildrenToText,
|
|
50
54
|
renderHtmlElement: () => renderHtmlElement,
|
|
@@ -248,18 +252,23 @@ var listHtmlRenderer = ({ context, renderChildren }) => {
|
|
|
248
252
|
var _a;
|
|
249
253
|
const node = context.currentNode;
|
|
250
254
|
const attributes = /* @__PURE__ */ new Map();
|
|
251
|
-
|
|
252
|
-
|
|
255
|
+
const start = getRichTextListStart(node.start);
|
|
256
|
+
if (typeof start === "number" && start > 1) {
|
|
257
|
+
attributes.set("start", start.toString());
|
|
253
258
|
}
|
|
254
259
|
return renderHtmlElement((_a = node.tag) != null ? _a : "ul", attributes, renderChildren(context.currentNode.children));
|
|
255
260
|
};
|
|
261
|
+
function getRichTextListStart(start) {
|
|
262
|
+
return start === void 0 ? 1 : start;
|
|
263
|
+
}
|
|
256
264
|
|
|
257
265
|
// src/nodes/listitem.ts
|
|
258
266
|
var listitemHtmlRenderer = ({ context, renderChildren }) => {
|
|
259
267
|
const node = context.currentNode;
|
|
260
268
|
const attributes = /* @__PURE__ */ new Map();
|
|
261
|
-
|
|
262
|
-
|
|
269
|
+
const value = getRichTextListItemValue(node.value);
|
|
270
|
+
if (typeof value === "number" && value > 0) {
|
|
271
|
+
attributes.set("value", value.toString());
|
|
263
272
|
}
|
|
264
273
|
return renderHtmlElement("li", attributes, renderChildren(context.currentNode.children));
|
|
265
274
|
};
|
|
@@ -273,6 +282,9 @@ var listitemTextRenderer = ({ context, renderChildren }) => {
|
|
|
273
282
|
}
|
|
274
283
|
return `${childrenRendered} `;
|
|
275
284
|
};
|
|
285
|
+
function getRichTextListItemValue(value) {
|
|
286
|
+
return value === void 0 ? 1 : value;
|
|
287
|
+
}
|
|
276
288
|
|
|
277
289
|
// src/nodes/paragraph.ts
|
|
278
290
|
var paragraphHtmlRenderer = ({ context, renderChildren }) => {
|
|
@@ -319,7 +331,7 @@ var tablecellTextRenderer = ({ context, renderChildren }) => {
|
|
|
319
331
|
return hasChildren(context.currentNode) ? `${renderChildren(context.currentNode.children)} ` : "";
|
|
320
332
|
};
|
|
321
333
|
function getRichTextTagFromTableCellHeaderState(headerState) {
|
|
322
|
-
if (headerState
|
|
334
|
+
if (!headerState) {
|
|
323
335
|
return "td";
|
|
324
336
|
}
|
|
325
337
|
return "th";
|
|
@@ -348,6 +360,9 @@ var textTextRenderer = ({ context }) => {
|
|
|
348
360
|
};
|
|
349
361
|
function getRichTextTagsFromTextFormat(format) {
|
|
350
362
|
const tags = [];
|
|
363
|
+
if (!format) {
|
|
364
|
+
return tags;
|
|
365
|
+
}
|
|
351
366
|
if (format & 1 << 0) {
|
|
352
367
|
tags.push("strong");
|
|
353
368
|
}
|
|
@@ -372,154 +387,133 @@ function getRichTextTagsFromTextFormat(format) {
|
|
|
372
387
|
return tags;
|
|
373
388
|
}
|
|
374
389
|
|
|
375
|
-
// src/
|
|
376
|
-
var
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
var
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
390
|
+
// src/defaultRichTextNodeProperties.ts
|
|
391
|
+
var OMITTED_RICH_TEXT_NODE_VERSION = 1;
|
|
392
|
+
var NO_DEFAULTS = Object.freeze({});
|
|
393
|
+
var ELEMENT_BASELINE_V1 = Object.freeze({
|
|
394
|
+
format: "",
|
|
395
|
+
indent: 0,
|
|
396
|
+
direction: null,
|
|
397
|
+
version: 1
|
|
398
|
+
});
|
|
399
|
+
var TEXT_BASELINE_V1 = Object.freeze({
|
|
400
|
+
format: 0,
|
|
401
|
+
style: "",
|
|
402
|
+
mode: "normal",
|
|
403
|
+
detail: 0,
|
|
404
|
+
version: 1
|
|
405
|
+
});
|
|
406
|
+
var VERSION_ONLY_V1 = Object.freeze({
|
|
407
|
+
version: 1
|
|
408
|
+
});
|
|
409
|
+
var ELEMENT_PROPERTIES_SAFE_TO_OMIT = Object.freeze([
|
|
410
|
+
"format",
|
|
411
|
+
"indent",
|
|
412
|
+
"direction"
|
|
413
|
+
// 'version', // Retain until SDKs that treat missing `version` as `1` are widely adopted.
|
|
397
414
|
]);
|
|
398
|
-
var
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
}
|
|
415
|
+
var TEXT_PROPERTIES_SAFE_TO_OMIT = Object.freeze([
|
|
416
|
+
// 'format', // Retain until SDKs that treat missing text/tab `format` as `0` are widely adopted.
|
|
417
|
+
"style",
|
|
418
|
+
"mode",
|
|
419
|
+
"detail"
|
|
420
|
+
// 'version', // Retain until SDKs that treat missing `version` as `1` are widely adopted.
|
|
421
|
+
]);
|
|
422
|
+
var NO_PROPERTIES_SAFE_TO_OMIT = Object.freeze([
|
|
423
|
+
// 'version', // Retain until SDKs that treat missing `version` as `1` are widely adopted.
|
|
424
|
+
]);
|
|
425
|
+
var DEFAULT_RICH_TEXT_NODE_PROPERTIES = Object.freeze({
|
|
426
|
+
root: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
|
|
427
|
+
heading: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
|
|
428
|
+
quote: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
|
|
429
|
+
code: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
|
|
430
|
+
table: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
|
|
431
|
+
tablerow: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
|
|
432
|
+
link: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
|
|
433
|
+
paragraph: Object.freeze({
|
|
434
|
+
1: Object.freeze({ ...ELEMENT_BASELINE_V1, textFormat: 0, textStyle: "" })
|
|
435
|
+
}),
|
|
436
|
+
list: Object.freeze({ 1: Object.freeze({ ...ELEMENT_BASELINE_V1, start: 1 }) }),
|
|
437
|
+
listitem: Object.freeze({ 1: Object.freeze({ ...ELEMENT_BASELINE_V1, value: 1 }) }),
|
|
438
|
+
tablecell: Object.freeze({
|
|
439
|
+
1: Object.freeze({
|
|
440
|
+
...ELEMENT_BASELINE_V1,
|
|
441
|
+
colSpan: 1,
|
|
442
|
+
rowSpan: 1,
|
|
443
|
+
backgroundColor: null,
|
|
444
|
+
headerState: 0
|
|
445
|
+
})
|
|
446
|
+
}),
|
|
447
|
+
text: Object.freeze({ 1: TEXT_BASELINE_V1 }),
|
|
448
|
+
tab: Object.freeze({ 1: TEXT_BASELINE_V1 }),
|
|
449
|
+
linebreak: Object.freeze({ 1: VERSION_ONLY_V1 }),
|
|
450
|
+
asset: Object.freeze({ 1: VERSION_ONLY_V1 }),
|
|
451
|
+
// Rich text variable binding still requires an explicit version, so variable nodes stay verbose.
|
|
452
|
+
variable: Object.freeze({ 1: NO_DEFAULTS })
|
|
453
|
+
});
|
|
454
|
+
var RICH_TEXT_NODE_PROPERTIES_SAFE_TO_OMIT = Object.freeze({
|
|
455
|
+
root: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
456
|
+
heading: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
457
|
+
quote: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
458
|
+
code: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
459
|
+
table: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
460
|
+
tablerow: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
461
|
+
link: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
462
|
+
paragraph: Object.freeze([...ELEMENT_PROPERTIES_SAFE_TO_OMIT, "textFormat", "textStyle"]),
|
|
463
|
+
list: Object.freeze([
|
|
464
|
+
...ELEMENT_PROPERTIES_SAFE_TO_OMIT
|
|
465
|
+
// 'start', // Retain until SDKs that treat missing list `start` as `1` are widely adopted.
|
|
466
|
+
]),
|
|
467
|
+
listitem: Object.freeze([
|
|
468
|
+
...ELEMENT_PROPERTIES_SAFE_TO_OMIT
|
|
469
|
+
// 'value', // Retain until SDKs that treat missing list-item `value` as `1` are widely adopted.
|
|
470
|
+
]),
|
|
471
|
+
tablecell: Object.freeze([
|
|
472
|
+
...ELEMENT_PROPERTIES_SAFE_TO_OMIT,
|
|
473
|
+
"colSpan",
|
|
474
|
+
"rowSpan",
|
|
475
|
+
"backgroundColor"
|
|
476
|
+
// 'headerState', // Retain until SDKs that treat missing `headerState` as `0` are widely adopted.
|
|
477
|
+
]),
|
|
478
|
+
text: TEXT_PROPERTIES_SAFE_TO_OMIT,
|
|
479
|
+
tab: TEXT_PROPERTIES_SAFE_TO_OMIT,
|
|
480
|
+
linebreak: NO_PROPERTIES_SAFE_TO_OMIT,
|
|
481
|
+
asset: NO_PROPERTIES_SAFE_TO_OMIT,
|
|
482
|
+
variable: NO_PROPERTIES_SAFE_TO_OMIT
|
|
483
|
+
});
|
|
484
|
+
function getStoredRichTextNodeVersion(node) {
|
|
485
|
+
return typeof node.version === "number" ? node.version : OMITTED_RICH_TEXT_NODE_VERSION;
|
|
430
486
|
}
|
|
431
|
-
function
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
const context = initializeRenderContext(node, parentContext);
|
|
435
|
-
let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
|
|
436
|
-
if (typeof renderer === "undefined") {
|
|
437
|
-
renderer = resolveDefaultRenderer(context);
|
|
438
|
-
} else if (renderer === null) {
|
|
439
|
-
return "";
|
|
487
|
+
function isOmittableRichTextDefault(key, nodeValue, defaultValue) {
|
|
488
|
+
if (!Object.is(nodeValue, defaultValue)) {
|
|
489
|
+
return false;
|
|
440
490
|
}
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
return renderer({ context, renderChildren });
|
|
444
|
-
} else {
|
|
445
|
-
throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
|
|
491
|
+
if (key === "version") {
|
|
492
|
+
return Object.is(nodeValue, OMITTED_RICH_TEXT_NODE_VERSION);
|
|
446
493
|
}
|
|
494
|
+
return true;
|
|
447
495
|
}
|
|
448
|
-
function
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
return " ";
|
|
455
|
-
};
|
|
456
|
-
|
|
457
|
-
// src/renderToText.ts
|
|
458
|
-
var rendererTypeMap2 = /* @__PURE__ */ new Map([
|
|
459
|
-
["text", textTextRenderer],
|
|
460
|
-
["tab", tabTextRenderer],
|
|
461
|
-
["linebreak", linebreakTextRenderer],
|
|
462
|
-
["paragraph", paragraphTextRenderer],
|
|
463
|
-
["listitem", listitemTextRenderer],
|
|
464
|
-
["heading", headingTextRenderer],
|
|
465
|
-
["table", tableTextRenderer],
|
|
466
|
-
["tablecell", tablecellTextRenderer],
|
|
467
|
-
["tablerow", tablerowTextRenderer]
|
|
468
|
-
]);
|
|
469
|
-
var resolveDefaultRenderer2 = (context) => {
|
|
470
|
-
const renderer = rendererTypeMap2.get(context.currentNode.type);
|
|
471
|
-
if (renderer) {
|
|
472
|
-
return renderer;
|
|
473
|
-
}
|
|
474
|
-
return ({ context: context2, renderChildren }) => {
|
|
475
|
-
return hasChildren(context2.currentNode) ? renderChildren(context2.currentNode.children) : "";
|
|
476
|
-
};
|
|
477
|
-
};
|
|
478
|
-
function initializeRenderContext2(node, parentContext) {
|
|
479
|
-
let ancestorNodes = [];
|
|
480
|
-
if (parentContext == null ? void 0 : parentContext.ancestorNodes) {
|
|
481
|
-
ancestorNodes = ancestorNodes.concat(parentContext.ancestorNodes);
|
|
496
|
+
function getDefaultRichTextPropertiesForNode(node) {
|
|
497
|
+
var _a;
|
|
498
|
+
const version = getStoredRichTextNodeVersion(node);
|
|
499
|
+
const defaultsForType = DEFAULT_RICH_TEXT_NODE_PROPERTIES[node.type];
|
|
500
|
+
if (defaultsForType) {
|
|
501
|
+
return (_a = defaultsForType[version]) != null ? _a : NO_DEFAULTS;
|
|
482
502
|
}
|
|
483
|
-
if (
|
|
484
|
-
|
|
503
|
+
if (version !== OMITTED_RICH_TEXT_NODE_VERSION) {
|
|
504
|
+
return NO_DEFAULTS;
|
|
485
505
|
}
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
currentNode: node,
|
|
489
|
-
ancestorNodes
|
|
490
|
-
};
|
|
491
|
-
}
|
|
492
|
-
function renderToText(node, parentContext) {
|
|
493
|
-
var _a;
|
|
494
|
-
if (!isRichTextNode(node)) return "";
|
|
495
|
-
const context = initializeRenderContext2(node, parentContext);
|
|
496
|
-
let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
|
|
497
|
-
if (typeof renderer === "undefined") {
|
|
498
|
-
renderer = resolveDefaultRenderer2(context);
|
|
499
|
-
} else if (renderer === null) {
|
|
500
|
-
return "";
|
|
506
|
+
if ("text" in node) {
|
|
507
|
+
return TEXT_BASELINE_V1;
|
|
501
508
|
}
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
const rendered = renderer({ context, renderChildren });
|
|
505
|
-
return context.ancestorNodes.length > 0 ? rendered : rendered.trim();
|
|
506
|
-
} else {
|
|
507
|
-
throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
|
|
509
|
+
if ("children" in node) {
|
|
510
|
+
return ELEMENT_BASELINE_V1;
|
|
508
511
|
}
|
|
512
|
+
return VERSION_ONLY_V1;
|
|
509
513
|
}
|
|
510
|
-
function
|
|
511
|
-
return Array.isArray(children) ? children.map((node) => renderToText(node, context)).join("") : "";
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
// src/types.ts
|
|
515
|
-
function resolveLinkAttrConfig(entry) {
|
|
514
|
+
function getRichTextPropertiesSafeToOmit(node) {
|
|
516
515
|
var _a;
|
|
517
|
-
return
|
|
518
|
-
key: entry.key,
|
|
519
|
-
options: entry.options,
|
|
520
|
-
label: (_a = entry.label) != null ? _a : entry.key,
|
|
521
|
-
helpText: entry.helpText
|
|
522
|
-
};
|
|
516
|
+
return (_a = RICH_TEXT_NODE_PROPERTIES_SAFE_TO_OMIT[node.type]) != null ? _a : NO_PROPERTIES_SAFE_TO_OMIT;
|
|
523
517
|
}
|
|
524
518
|
|
|
525
519
|
// src/utils.ts
|
|
@@ -672,6 +666,200 @@ var defaultParameterConfiguration = {
|
|
|
672
666
|
}
|
|
673
667
|
}
|
|
674
668
|
};
|
|
669
|
+
|
|
670
|
+
// src/omitDefaultRichTextProperties.ts
|
|
671
|
+
function omitDefaultPropertiesFromNode(node) {
|
|
672
|
+
const defaults = getDefaultRichTextPropertiesForNode(node);
|
|
673
|
+
for (const key of getRichTextPropertiesSafeToOmit(node)) {
|
|
674
|
+
if (!(key in node)) {
|
|
675
|
+
continue;
|
|
676
|
+
}
|
|
677
|
+
const defaultValue = defaults[key];
|
|
678
|
+
if (isOmittableRichTextDefault(key, node[key], defaultValue)) {
|
|
679
|
+
delete node[key];
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
function omitDefaultRichTextProperties(value) {
|
|
684
|
+
if (!isRichTextValue(value)) {
|
|
685
|
+
return value;
|
|
686
|
+
}
|
|
687
|
+
const cloned = structuredClone(value);
|
|
688
|
+
walkRichTextTree(cloned.root, (node) => {
|
|
689
|
+
omitDefaultPropertiesFromNode(node);
|
|
690
|
+
});
|
|
691
|
+
return cloned;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
// src/rehydrateDefaultRichTextProperties.ts
|
|
695
|
+
function rehydrateDefaultPropertiesOnNode(node) {
|
|
696
|
+
const defaults = getDefaultRichTextPropertiesForNode(node);
|
|
697
|
+
for (const [key, defaultValue] of Object.entries(defaults)) {
|
|
698
|
+
if (!(key in node)) {
|
|
699
|
+
node[key] = defaultValue;
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
function rehydrateDefaultRichTextProperties(value) {
|
|
704
|
+
if (!isRichTextValue(value)) {
|
|
705
|
+
return value;
|
|
706
|
+
}
|
|
707
|
+
const cloned = structuredClone(value);
|
|
708
|
+
walkRichTextTree(cloned.root, (node) => {
|
|
709
|
+
rehydrateDefaultPropertiesOnNode(node);
|
|
710
|
+
});
|
|
711
|
+
return cloned;
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
// src/nodes/tab.ts
|
|
715
|
+
var tabHtmlRenderer = () => {
|
|
716
|
+
return " ";
|
|
717
|
+
};
|
|
718
|
+
var tabTextRenderer = () => {
|
|
719
|
+
return " ";
|
|
720
|
+
};
|
|
721
|
+
|
|
722
|
+
// src/renderToHtml.ts
|
|
723
|
+
var rendererTypeMap = /* @__PURE__ */ new Map([
|
|
724
|
+
["heading", headingHtmlRenderer],
|
|
725
|
+
["link", linkHtmlRenderer],
|
|
726
|
+
["list", listHtmlRenderer],
|
|
727
|
+
["listitem", listitemHtmlRenderer],
|
|
728
|
+
["paragraph", paragraphHtmlRenderer],
|
|
729
|
+
["root", rootHtmlRenderer],
|
|
730
|
+
["text", textHtmlRenderer],
|
|
731
|
+
["tab", tabHtmlRenderer],
|
|
732
|
+
["table", tableHtmlRenderer],
|
|
733
|
+
["tablecell", tablecellHtmlRenderer],
|
|
734
|
+
["tablerow", tablerowHtmlRenderer],
|
|
735
|
+
["asset", assetHtmlRenderer]
|
|
736
|
+
]);
|
|
737
|
+
var resolveDefaultRenderer = (context) => {
|
|
738
|
+
const renderer = rendererTypeMap.get(context.currentNode.type);
|
|
739
|
+
if (renderer) {
|
|
740
|
+
return renderer;
|
|
741
|
+
}
|
|
742
|
+
const tags = rendererTypeTagMap.get(context.currentNode.type);
|
|
743
|
+
if (tags) {
|
|
744
|
+
return ({ renderChildren }) => {
|
|
745
|
+
var _a;
|
|
746
|
+
return (_a = tags.reduceRight(
|
|
747
|
+
(children, tag) => {
|
|
748
|
+
return renderHtmlElement(tag, null, children);
|
|
749
|
+
},
|
|
750
|
+
hasChildren(context.currentNode) ? renderChildren(context.currentNode.children) : void 0
|
|
751
|
+
)) != null ? _a : "";
|
|
752
|
+
};
|
|
753
|
+
}
|
|
754
|
+
return () => `<!-- WARNING: No renderer for type ${context.currentNode.type} -->`;
|
|
755
|
+
};
|
|
756
|
+
function initializeRenderContext(node, parentContext) {
|
|
757
|
+
let ancestorNodes = [];
|
|
758
|
+
if (parentContext == null ? void 0 : parentContext.ancestorNodes) {
|
|
759
|
+
ancestorNodes = ancestorNodes.concat(parentContext.ancestorNodes);
|
|
760
|
+
}
|
|
761
|
+
if (parentContext == null ? void 0 : parentContext.currentNode) {
|
|
762
|
+
ancestorNodes.unshift(parentContext.currentNode);
|
|
763
|
+
}
|
|
764
|
+
return {
|
|
765
|
+
...parentContext != null ? parentContext : {},
|
|
766
|
+
currentNode: node,
|
|
767
|
+
ancestorNodes
|
|
768
|
+
};
|
|
769
|
+
}
|
|
770
|
+
function renderToHtml(node, parentContext) {
|
|
771
|
+
var _a;
|
|
772
|
+
if (!isRichTextNode(node)) return "";
|
|
773
|
+
const context = initializeRenderContext(node, parentContext);
|
|
774
|
+
let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
|
|
775
|
+
if (typeof renderer === "undefined") {
|
|
776
|
+
renderer = resolveDefaultRenderer(context);
|
|
777
|
+
} else if (renderer === null) {
|
|
778
|
+
return "";
|
|
779
|
+
}
|
|
780
|
+
const renderChildren = (children) => renderChildrenToHtml(children, context);
|
|
781
|
+
if (renderer) {
|
|
782
|
+
return renderer({ context, renderChildren });
|
|
783
|
+
} else {
|
|
784
|
+
throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
function renderChildrenToHtml(children, context) {
|
|
788
|
+
return Array.isArray(children) ? children.map((node) => renderToHtml(node, context)).join("") : "";
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
// src/nodes/linebreak.ts
|
|
792
|
+
var linebreakTextRenderer = () => {
|
|
793
|
+
return " ";
|
|
794
|
+
};
|
|
795
|
+
|
|
796
|
+
// src/renderToText.ts
|
|
797
|
+
var rendererTypeMap2 = /* @__PURE__ */ new Map([
|
|
798
|
+
["text", textTextRenderer],
|
|
799
|
+
["tab", tabTextRenderer],
|
|
800
|
+
["linebreak", linebreakTextRenderer],
|
|
801
|
+
["paragraph", paragraphTextRenderer],
|
|
802
|
+
["listitem", listitemTextRenderer],
|
|
803
|
+
["heading", headingTextRenderer],
|
|
804
|
+
["table", tableTextRenderer],
|
|
805
|
+
["tablecell", tablecellTextRenderer],
|
|
806
|
+
["tablerow", tablerowTextRenderer]
|
|
807
|
+
]);
|
|
808
|
+
var resolveDefaultRenderer2 = (context) => {
|
|
809
|
+
const renderer = rendererTypeMap2.get(context.currentNode.type);
|
|
810
|
+
if (renderer) {
|
|
811
|
+
return renderer;
|
|
812
|
+
}
|
|
813
|
+
return ({ context: context2, renderChildren }) => {
|
|
814
|
+
return hasChildren(context2.currentNode) ? renderChildren(context2.currentNode.children) : "";
|
|
815
|
+
};
|
|
816
|
+
};
|
|
817
|
+
function initializeRenderContext2(node, parentContext) {
|
|
818
|
+
let ancestorNodes = [];
|
|
819
|
+
if (parentContext == null ? void 0 : parentContext.ancestorNodes) {
|
|
820
|
+
ancestorNodes = ancestorNodes.concat(parentContext.ancestorNodes);
|
|
821
|
+
}
|
|
822
|
+
if (parentContext == null ? void 0 : parentContext.currentNode) {
|
|
823
|
+
ancestorNodes.unshift(parentContext.currentNode);
|
|
824
|
+
}
|
|
825
|
+
return {
|
|
826
|
+
...parentContext != null ? parentContext : {},
|
|
827
|
+
currentNode: node,
|
|
828
|
+
ancestorNodes
|
|
829
|
+
};
|
|
830
|
+
}
|
|
831
|
+
function renderToText(node, parentContext) {
|
|
832
|
+
var _a;
|
|
833
|
+
if (!isRichTextNode(node)) return "";
|
|
834
|
+
const context = initializeRenderContext2(node, parentContext);
|
|
835
|
+
let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
|
|
836
|
+
if (typeof renderer === "undefined") {
|
|
837
|
+
renderer = resolveDefaultRenderer2(context);
|
|
838
|
+
} else if (renderer === null) {
|
|
839
|
+
return "";
|
|
840
|
+
}
|
|
841
|
+
const renderChildren = (children) => renderChildrenToText(children, context);
|
|
842
|
+
if (renderer) {
|
|
843
|
+
const rendered = renderer({ context, renderChildren });
|
|
844
|
+
return context.ancestorNodes.length > 0 ? rendered : rendered.trim();
|
|
845
|
+
} else {
|
|
846
|
+
throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
function renderChildrenToText(children, context) {
|
|
850
|
+
return Array.isArray(children) ? children.map((node) => renderToText(node, context)).join("") : "";
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
// src/types.ts
|
|
854
|
+
function resolveLinkAttrConfig(entry) {
|
|
855
|
+
var _a;
|
|
856
|
+
return {
|
|
857
|
+
key: entry.key,
|
|
858
|
+
options: entry.options,
|
|
859
|
+
label: (_a = entry.label) != null ? _a : entry.key,
|
|
860
|
+
helpText: entry.helpText
|
|
861
|
+
};
|
|
862
|
+
}
|
|
675
863
|
// Annotate the CommonJS export names for ESM import in node:
|
|
676
864
|
0 && (module.exports = {
|
|
677
865
|
assetHtmlRenderer,
|
|
@@ -679,6 +867,8 @@ var defaultParameterConfiguration = {
|
|
|
679
867
|
emptyRichTextValue,
|
|
680
868
|
getLabelForElement,
|
|
681
869
|
getLabelForFormat,
|
|
870
|
+
getRichTextListItemValue,
|
|
871
|
+
getRichTextListStart,
|
|
682
872
|
getRichTextTagFromTableCellHeaderState,
|
|
683
873
|
getRichTextTagsFromTextFormat,
|
|
684
874
|
hasChildren,
|
|
@@ -697,8 +887,10 @@ var defaultParameterConfiguration = {
|
|
|
697
887
|
linkParamValueToHtmlAttributes,
|
|
698
888
|
listHtmlRenderer,
|
|
699
889
|
listitemHtmlRenderer,
|
|
890
|
+
omitDefaultRichTextProperties,
|
|
700
891
|
paragraphHtmlRenderer,
|
|
701
892
|
purifyText,
|
|
893
|
+
rehydrateDefaultRichTextProperties,
|
|
702
894
|
renderChildrenToHtml,
|
|
703
895
|
renderChildrenToText,
|
|
704
896
|
renderHtmlElement,
|