@uniformdev/canvas-vue 19.14.0 → 19.14.1-alpha.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/dist/index.d.ts +80 -1
- package/dist/index.esm.js +211 -9
- package/dist/index.js +223 -11
- package/dist/index.mjs +211 -9
- package/package.json +7 -5
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { PropType, ConcreteComponent, Ref, ComputedRef } from 'vue-demi';
|
|
|
3
3
|
import * as _uniformdev_canvas from '@uniformdev/canvas';
|
|
4
4
|
import { ComponentInstance, ComponentParameter, RootComponentInstance, UpdateCompositionMessage, SubscribeToCompositionOptions } from '@uniformdev/canvas';
|
|
5
5
|
export { createUniformApiEnhancer } from '@uniformdev/canvas';
|
|
6
|
+
import { RichTextNode } from '@uniformdev/richtext';
|
|
6
7
|
|
|
7
8
|
type DefaultNotImplementedComponentProps = {
|
|
8
9
|
component: ComponentInstance;
|
|
@@ -1446,6 +1447,84 @@ declare const UniformComposition: vue_demi.DefineComponent<{
|
|
|
1446
1447
|
behaviorTracking: "onLoad" | "onView" | undefined;
|
|
1447
1448
|
}>;
|
|
1448
1449
|
|
|
1450
|
+
type RichTextComponentProps<TNode extends RichTextNode = RichTextNode> = {
|
|
1451
|
+
node: TNode;
|
|
1452
|
+
};
|
|
1453
|
+
type RichTextRendererComponent<TNode extends RichTextNode = RichTextNode> = ConcreteComponent<RichTextComponentProps<TNode>>;
|
|
1454
|
+
/**
|
|
1455
|
+
* Function that maps a Rich Text node instance to its React component to render it.
|
|
1456
|
+
* The resolver would commonly inspect the `type` of the component to decide.
|
|
1457
|
+
*/
|
|
1458
|
+
type RenderRichTextComponentResolver = (node: RichTextNode) => ConcreteComponent<RichTextComponentProps<RichTextNode>> | null | undefined;
|
|
1459
|
+
|
|
1460
|
+
declare const HeadingRichTextNode: RichTextRendererComponent;
|
|
1461
|
+
|
|
1462
|
+
declare const LinkRichTextNode: RichTextRendererComponent;
|
|
1463
|
+
|
|
1464
|
+
declare const ListItemRichTextNode: RichTextRendererComponent;
|
|
1465
|
+
|
|
1466
|
+
declare const ListRichTextNode: RichTextRendererComponent;
|
|
1467
|
+
|
|
1468
|
+
declare const ParagraphRichTextNode: RichTextRendererComponent;
|
|
1469
|
+
|
|
1470
|
+
declare const QuoteRichTextNode: RichTextRendererComponent;
|
|
1471
|
+
|
|
1472
|
+
declare const RootRichTextNode: RichTextRendererComponent;
|
|
1473
|
+
|
|
1474
|
+
declare const TextRichTextNode: RichTextRendererComponent;
|
|
1475
|
+
|
|
1476
|
+
type UniformRichTextProps = {
|
|
1477
|
+
parameterId: string;
|
|
1478
|
+
resolveRichTextRenderer?: RenderRichTextComponentResolver;
|
|
1479
|
+
};
|
|
1480
|
+
declare const UniformRichText: vue_demi.DefineComponent<{
|
|
1481
|
+
parameterId: {
|
|
1482
|
+
type: StringConstructor;
|
|
1483
|
+
required: true;
|
|
1484
|
+
};
|
|
1485
|
+
resolveRichTextRenderer: {
|
|
1486
|
+
type: PropType<RenderRichTextComponentResolver | undefined>;
|
|
1487
|
+
required: false;
|
|
1488
|
+
};
|
|
1489
|
+
}, (() => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
|
|
1490
|
+
[key: string]: any;
|
|
1491
|
+
}>) | (() => null), unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
|
|
1492
|
+
parameterId: {
|
|
1493
|
+
type: StringConstructor;
|
|
1494
|
+
required: true;
|
|
1495
|
+
};
|
|
1496
|
+
resolveRichTextRenderer: {
|
|
1497
|
+
type: PropType<RenderRichTextComponentResolver | undefined>;
|
|
1498
|
+
required: false;
|
|
1499
|
+
};
|
|
1500
|
+
}>>, {}>;
|
|
1501
|
+
|
|
1502
|
+
type UniformRichTextNodeProps = {
|
|
1503
|
+
node: RichTextNode;
|
|
1504
|
+
resolveRichTextRenderer?: RenderRichTextComponentResolver;
|
|
1505
|
+
};
|
|
1506
|
+
declare const UniformRichTextNode: vue_demi.DefineComponent<{
|
|
1507
|
+
node: {
|
|
1508
|
+
type: PropType<RichTextNode>;
|
|
1509
|
+
required: true;
|
|
1510
|
+
};
|
|
1511
|
+
resolveRichTextRenderer: {
|
|
1512
|
+
type: PropType<RenderRichTextComponentResolver | undefined>;
|
|
1513
|
+
required: false;
|
|
1514
|
+
};
|
|
1515
|
+
}, (() => null) | (() => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
|
|
1516
|
+
[key: string]: any;
|
|
1517
|
+
}>), unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
|
|
1518
|
+
node: {
|
|
1519
|
+
type: PropType<RichTextNode>;
|
|
1520
|
+
required: true;
|
|
1521
|
+
};
|
|
1522
|
+
resolveRichTextRenderer: {
|
|
1523
|
+
type: PropType<RenderRichTextComponentResolver | undefined>;
|
|
1524
|
+
required: false;
|
|
1525
|
+
};
|
|
1526
|
+
}>>, {}>;
|
|
1527
|
+
|
|
1449
1528
|
type UniformSlotProps = {
|
|
1450
1529
|
/** Name of the slot to render */
|
|
1451
1530
|
name?: string;
|
|
@@ -1494,4 +1573,4 @@ declare const globalCompositionEnhancerInjectionKey = "uniformGlobalCompositionE
|
|
|
1494
1573
|
*/
|
|
1495
1574
|
declare function convertComponentToProps<T = unknown>(component: ComponentInstance): ComponentProps<T>;
|
|
1496
1575
|
|
|
1497
|
-
export { ComponentProps, DefaultNotImplementedComponent, DefaultNotImplementedComponentProps, PersonalizeComponent, ResolveRenderer, TestComponent, UniformComponent, UniformComponentProps, UniformComposition, UniformCompositionProps, UniformSlot, UniformSlotProps, UseCompositionEventEffectOptions, UseUniformContextualEditingProps, convertComponentToProps, globalCompositionEnhancerInjectionKey, useCompositionEventEffect, useUniformContextualEditing, useUniformCurrentComponent, useUniformCurrentComposition };
|
|
1576
|
+
export { ComponentProps, DefaultNotImplementedComponent, DefaultNotImplementedComponentProps, HeadingRichTextNode, LinkRichTextNode, ListItemRichTextNode, ListRichTextNode, ParagraphRichTextNode, PersonalizeComponent, QuoteRichTextNode, RenderRichTextComponentResolver, ResolveRenderer, RichTextComponentProps, RichTextRendererComponent, RootRichTextNode, TestComponent, TextRichTextNode, UniformComponent, UniformComponentProps, UniformComposition, UniformCompositionProps, UniformRichText, UniformRichTextNode, UniformRichTextNodeProps, UniformRichTextProps, UniformSlot, UniformSlotProps, UseCompositionEventEffectOptions, UseUniformContextualEditingProps, convertComponentToProps, globalCompositionEnhancerInjectionKey, useCompositionEventEffect, useUniformContextualEditing, useUniformCurrentComponent, useUniformCurrentComposition };
|
package/dist/index.esm.js
CHANGED
|
@@ -381,6 +381,198 @@ var UniformComposition = defineComponent4({
|
|
|
381
381
|
}
|
|
382
382
|
});
|
|
383
383
|
|
|
384
|
+
// src/components/UniformRichText/nodes/HeadingRichTextNode.ts
|
|
385
|
+
import { h as h5 } from "vue-demi";
|
|
386
|
+
var HeadingRichTextNode = (props, context) => {
|
|
387
|
+
const { tag } = props.node;
|
|
388
|
+
return h5(tag != null ? tag : "h1", {}, context.slots);
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
// src/components/UniformRichText/nodes/LinkRichTextNode.ts
|
|
392
|
+
import { linkParamValueToHref } from "@uniformdev/richtext";
|
|
393
|
+
import { h as h6 } from "vue-demi";
|
|
394
|
+
var LinkRichTextNode = (props, context) => {
|
|
395
|
+
const { link } = props.node;
|
|
396
|
+
return h6(
|
|
397
|
+
"a",
|
|
398
|
+
{
|
|
399
|
+
href: linkParamValueToHref(link)
|
|
400
|
+
},
|
|
401
|
+
context.slots
|
|
402
|
+
);
|
|
403
|
+
};
|
|
404
|
+
|
|
405
|
+
// src/components/UniformRichText/nodes/ListItemRichTextNode.ts
|
|
406
|
+
import { h as h7 } from "vue-demi";
|
|
407
|
+
var ListItemRichTextNode = (props, context) => {
|
|
408
|
+
const { value } = props.node;
|
|
409
|
+
return h7(
|
|
410
|
+
"li",
|
|
411
|
+
{
|
|
412
|
+
value: Number.isFinite(value) && value > 0 ? value + 1 : void 0
|
|
413
|
+
},
|
|
414
|
+
context.slots
|
|
415
|
+
);
|
|
416
|
+
};
|
|
417
|
+
|
|
418
|
+
// src/components/UniformRichText/nodes/ListRichTextNode.ts
|
|
419
|
+
import { h as h8 } from "vue-demi";
|
|
420
|
+
var ListRichTextNode = (props, context) => {
|
|
421
|
+
const { tag } = props.node;
|
|
422
|
+
return h8(tag != null ? tag : "h1", {}, context.slots);
|
|
423
|
+
};
|
|
424
|
+
|
|
425
|
+
// src/components/UniformRichText/nodes/ParagraphRichTextNode.ts
|
|
426
|
+
import { isPureDirection, isPureTextAlign } from "@uniformdev/richtext";
|
|
427
|
+
import { h as h9 } from "vue-demi";
|
|
428
|
+
var ParagraphRichTextNode = (props, context) => {
|
|
429
|
+
const { format, direction } = props.node;
|
|
430
|
+
return h9(
|
|
431
|
+
"p",
|
|
432
|
+
{
|
|
433
|
+
dir: isPureDirection(direction) ? direction : void 0,
|
|
434
|
+
style: isPureTextAlign(format) ? { textAlign: format } : void 0
|
|
435
|
+
},
|
|
436
|
+
context.slots
|
|
437
|
+
);
|
|
438
|
+
};
|
|
439
|
+
|
|
440
|
+
// src/components/UniformRichText/nodes/QuoteRichTextNode.ts
|
|
441
|
+
import { h as h10 } from "vue-demi";
|
|
442
|
+
var QuoteRichTextNode = (props, context) => {
|
|
443
|
+
return h10("blockquote", {}, context.slots);
|
|
444
|
+
};
|
|
445
|
+
|
|
446
|
+
// src/components/UniformRichText/nodes/RootRichTextNode.ts
|
|
447
|
+
import { h as h11 } from "vue-demi";
|
|
448
|
+
var RootRichTextNode = (props, c) => {
|
|
449
|
+
return h11(() => c.slots.default ? c.slots.default() : null);
|
|
450
|
+
};
|
|
451
|
+
|
|
452
|
+
// src/components/UniformRichText/nodes/TextRichTextNode.ts
|
|
453
|
+
import { getRichTextTagsFromTextFormat } from "@uniformdev/richtext";
|
|
454
|
+
import { h as h12 } from "vue-demi";
|
|
455
|
+
var TextRichTextNode = (props) => {
|
|
456
|
+
const { format, text } = props.node;
|
|
457
|
+
const tags = getRichTextTagsFromTextFormat(format);
|
|
458
|
+
return tags.length > 0 ? tags.reduceRight(
|
|
459
|
+
(children, tag) => {
|
|
460
|
+
return h12(tag, null, children);
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
default: () => text
|
|
464
|
+
}
|
|
465
|
+
) : h12(() => text);
|
|
466
|
+
};
|
|
467
|
+
|
|
468
|
+
// src/components/UniformRichText/UniformRichText.ts
|
|
469
|
+
import { isRichTextNode as isRichTextNode2 } from "@uniformdev/richtext";
|
|
470
|
+
import { computed as computed4, defineComponent as defineComponent6, h as h16 } from "vue-demi";
|
|
471
|
+
|
|
472
|
+
// src/components/UniformRichText/UniformRichTextNode.ts
|
|
473
|
+
import { isRichTextNode } from "@uniformdev/richtext";
|
|
474
|
+
import { defineComponent as defineComponent5, h as h15 } from "vue-demi";
|
|
475
|
+
|
|
476
|
+
// src/components/UniformRichText/nodes/LinebreakRichTextNode.ts
|
|
477
|
+
import { h as h13 } from "vue-demi";
|
|
478
|
+
var LinebreakRichTextNode = () => {
|
|
479
|
+
return h13("br", {});
|
|
480
|
+
};
|
|
481
|
+
|
|
482
|
+
// src/components/UniformRichText/nodes/TabRichTextNode.ts
|
|
483
|
+
import { h as h14 } from "vue-demi";
|
|
484
|
+
var TabRichTextNode = () => {
|
|
485
|
+
return h14("", {}, " ");
|
|
486
|
+
};
|
|
487
|
+
|
|
488
|
+
// src/components/UniformRichText/UniformRichTextNode.ts
|
|
489
|
+
var UniformRichTextNode = defineComponent5({
|
|
490
|
+
name: "UniformRichTextNode",
|
|
491
|
+
props: {
|
|
492
|
+
node: {
|
|
493
|
+
type: Object,
|
|
494
|
+
required: true
|
|
495
|
+
},
|
|
496
|
+
resolveRichTextRenderer: {
|
|
497
|
+
type: Function,
|
|
498
|
+
required: false
|
|
499
|
+
}
|
|
500
|
+
},
|
|
501
|
+
setup(props, context) {
|
|
502
|
+
var _a;
|
|
503
|
+
const node = props.node;
|
|
504
|
+
if (!isRichTextNode(node))
|
|
505
|
+
return () => null;
|
|
506
|
+
let NodeRenderer = node.type in context.slots ? context.slots[node.type] : (_a = props.resolveRichTextRenderer) == null ? void 0 : _a.call(props, node);
|
|
507
|
+
if (typeof NodeRenderer === "undefined") {
|
|
508
|
+
NodeRenderer = resolveRichTextDefaultRenderer(node);
|
|
509
|
+
}
|
|
510
|
+
if (!NodeRenderer) {
|
|
511
|
+
return () => null;
|
|
512
|
+
}
|
|
513
|
+
const children = node.children ? node.children.map(
|
|
514
|
+
(childNode) => h15(
|
|
515
|
+
UniformRichTextNode,
|
|
516
|
+
{ node: childNode, resolveRichTextRenderer: props.resolveRichTextRenderer },
|
|
517
|
+
context.slots
|
|
518
|
+
)
|
|
519
|
+
) : [];
|
|
520
|
+
return () => h15(NodeRenderer, { node, children: h15(() => children) }, () => children);
|
|
521
|
+
}
|
|
522
|
+
});
|
|
523
|
+
var rendererMap = /* @__PURE__ */ new Map([
|
|
524
|
+
["heading", HeadingRichTextNode],
|
|
525
|
+
["linebreak", LinebreakRichTextNode],
|
|
526
|
+
["link", LinkRichTextNode],
|
|
527
|
+
["list", ListRichTextNode],
|
|
528
|
+
["listitem", ListItemRichTextNode],
|
|
529
|
+
["paragraph", ParagraphRichTextNode],
|
|
530
|
+
["quote", QuoteRichTextNode],
|
|
531
|
+
["root", RootRichTextNode],
|
|
532
|
+
["text", TextRichTextNode],
|
|
533
|
+
["tab", TabRichTextNode]
|
|
534
|
+
]);
|
|
535
|
+
var resolveRichTextDefaultRenderer = (node) => {
|
|
536
|
+
return rendererMap.get(node.type);
|
|
537
|
+
};
|
|
538
|
+
|
|
539
|
+
// src/components/UniformRichText/UniformRichText.ts
|
|
540
|
+
var UniformRichText = defineComponent6({
|
|
541
|
+
name: "UniformRichText",
|
|
542
|
+
props: {
|
|
543
|
+
parameterId: {
|
|
544
|
+
type: String,
|
|
545
|
+
required: true
|
|
546
|
+
},
|
|
547
|
+
resolveRichTextRenderer: {
|
|
548
|
+
type: Function,
|
|
549
|
+
required: false
|
|
550
|
+
}
|
|
551
|
+
},
|
|
552
|
+
setup(props, context) {
|
|
553
|
+
var _a;
|
|
554
|
+
const { data: componentData } = useUniformCurrentComponent();
|
|
555
|
+
const value = computed4(() => {
|
|
556
|
+
var _a2;
|
|
557
|
+
const parameter = (_a2 = componentData == null ? void 0 : componentData.parameters) == null ? void 0 : _a2[props.parameterId];
|
|
558
|
+
return parameter == null ? void 0 : parameter.value;
|
|
559
|
+
});
|
|
560
|
+
const root = (_a = value.value) == null ? void 0 : _a.root;
|
|
561
|
+
if (isRichTextNode2(root)) {
|
|
562
|
+
return () => h16(
|
|
563
|
+
UniformRichTextNode,
|
|
564
|
+
{
|
|
565
|
+
node: root,
|
|
566
|
+
resolveRichTextRenderer: props.resolveRichTextRenderer
|
|
567
|
+
},
|
|
568
|
+
context.slots
|
|
569
|
+
);
|
|
570
|
+
} else {
|
|
571
|
+
return () => null;
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
});
|
|
575
|
+
|
|
384
576
|
// src/components/UniformSlot.ts
|
|
385
577
|
import {
|
|
386
578
|
CANVAS_PERSONALIZE_SLOT,
|
|
@@ -391,7 +583,7 @@ import {
|
|
|
391
583
|
mapSlotToTestVariations
|
|
392
584
|
} from "@uniformdev/canvas";
|
|
393
585
|
import { Personalize, Test } from "@uniformdev/context-vue";
|
|
394
|
-
import { computed as
|
|
586
|
+
import { computed as computed5, defineComponent as defineComponent7, h as h17 } from "vue-demi";
|
|
395
587
|
|
|
396
588
|
// src/utils/convertComponentToProps.ts
|
|
397
589
|
function convertComponentToProps(component) {
|
|
@@ -416,7 +608,7 @@ function normalizePropName(name) {
|
|
|
416
608
|
}
|
|
417
609
|
|
|
418
610
|
// src/components/UniformSlot.ts
|
|
419
|
-
var UniformSlot =
|
|
611
|
+
var UniformSlot = defineComponent7({
|
|
420
612
|
name: "UniformSlot",
|
|
421
613
|
inheritAttrs: false,
|
|
422
614
|
props: {
|
|
@@ -435,7 +627,7 @@ var UniformSlot = defineComponent5({
|
|
|
435
627
|
if (!parentData || !resolveRenderer) {
|
|
436
628
|
throw new Error("<UniformSlot /> can only be used inside a <UniformComposition />");
|
|
437
629
|
}
|
|
438
|
-
const slotItems =
|
|
630
|
+
const slotItems = computed5(() => {
|
|
439
631
|
var _a2, _b, _c;
|
|
440
632
|
if (props.name) {
|
|
441
633
|
return (_b = (_a2 = parentData.slots) == null ? void 0 : _a2[props.name]) != null ? _b : [];
|
|
@@ -462,7 +654,7 @@ function renderPersonalizeComponent(component, resolveRenderer) {
|
|
|
462
654
|
const parameters = component == null ? void 0 : component.parameters;
|
|
463
655
|
const processedVariants = mapSlotToPersonalizedVariations((_a = component.slots) == null ? void 0 : _a.pz);
|
|
464
656
|
const name = (_d = (_c = (_b = component.parameters) == null ? void 0 : _b.trackingEventName) == null ? void 0 : _c.value) != null ? _d : "Untitled Personalization";
|
|
465
|
-
return
|
|
657
|
+
return h17(Personalize, {
|
|
466
658
|
name,
|
|
467
659
|
// TODO: Fix the `as unknown`
|
|
468
660
|
component: (variant) => resolveRenderer(variant),
|
|
@@ -475,7 +667,7 @@ function renderTestComponent(component, resolveRenderer) {
|
|
|
475
667
|
const variants = (_b = (_a = component == null ? void 0 : component.slots) == null ? void 0 : _a.test) != null ? _b : [];
|
|
476
668
|
const testName = (_e = (_d = (_c = component == null ? void 0 : component.parameters) == null ? void 0 : _c.test) == null ? void 0 : _d.value) != null ? _e : "Untitled Test";
|
|
477
669
|
const finalVariants = mapSlotToTestVariations(variants);
|
|
478
|
-
return
|
|
670
|
+
return h17(Test, {
|
|
479
671
|
variations: finalVariants,
|
|
480
672
|
name: testName,
|
|
481
673
|
component: (variant) => resolveRenderer(variant)
|
|
@@ -529,13 +721,13 @@ function renderComponent({
|
|
|
529
721
|
const resolvedComponent = resolveRenderer == null ? void 0 : resolveRenderer(component);
|
|
530
722
|
if (resolvedComponent) {
|
|
531
723
|
const props = convertComponentToProps(component);
|
|
532
|
-
return
|
|
724
|
+
return h17(
|
|
533
725
|
UniformComponent,
|
|
534
726
|
{ data: component, resolveRenderer },
|
|
535
|
-
() =>
|
|
727
|
+
() => h17(
|
|
536
728
|
ContextualEditingComponentWrapper,
|
|
537
729
|
{ component, parentComponent, slotName, indexInSlot, slotChildrenCount },
|
|
538
|
-
{ default: () =>
|
|
730
|
+
{ default: () => h17(resolvedComponent, props), emptyPlaceholder }
|
|
539
731
|
)
|
|
540
732
|
);
|
|
541
733
|
}
|
|
@@ -543,7 +735,7 @@ function renderComponent({
|
|
|
543
735
|
`[canvas] found component of type '${component.type}' which the 'resolveRenderer' prop returned no component for. Nothing will be rendered. The resolveRenderer function may need to be extended to handle the new type.`,
|
|
544
736
|
component
|
|
545
737
|
);
|
|
546
|
-
return
|
|
738
|
+
return h17("");
|
|
547
739
|
}
|
|
548
740
|
|
|
549
741
|
// src/composables/useCompositionEventEffect.ts
|
|
@@ -584,8 +776,18 @@ async function useCompositionEventEffect({
|
|
|
584
776
|
}
|
|
585
777
|
export {
|
|
586
778
|
DefaultNotImplementedComponent,
|
|
779
|
+
HeadingRichTextNode,
|
|
780
|
+
LinkRichTextNode,
|
|
781
|
+
ListItemRichTextNode,
|
|
782
|
+
ListRichTextNode,
|
|
783
|
+
ParagraphRichTextNode,
|
|
784
|
+
QuoteRichTextNode,
|
|
785
|
+
RootRichTextNode,
|
|
786
|
+
TextRichTextNode,
|
|
587
787
|
UniformComponent,
|
|
588
788
|
UniformComposition,
|
|
789
|
+
UniformRichText,
|
|
790
|
+
UniformRichTextNode,
|
|
589
791
|
UniformSlot,
|
|
590
792
|
convertComponentToProps,
|
|
591
793
|
createUniformApiEnhancer,
|
package/dist/index.js
CHANGED
|
@@ -21,8 +21,18 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var src_exports = {};
|
|
22
22
|
__export(src_exports, {
|
|
23
23
|
DefaultNotImplementedComponent: () => DefaultNotImplementedComponent,
|
|
24
|
+
HeadingRichTextNode: () => HeadingRichTextNode,
|
|
25
|
+
LinkRichTextNode: () => LinkRichTextNode,
|
|
26
|
+
ListItemRichTextNode: () => ListItemRichTextNode,
|
|
27
|
+
ListRichTextNode: () => ListRichTextNode,
|
|
28
|
+
ParagraphRichTextNode: () => ParagraphRichTextNode,
|
|
29
|
+
QuoteRichTextNode: () => QuoteRichTextNode,
|
|
30
|
+
RootRichTextNode: () => RootRichTextNode,
|
|
31
|
+
TextRichTextNode: () => TextRichTextNode,
|
|
24
32
|
UniformComponent: () => UniformComponent,
|
|
25
33
|
UniformComposition: () => UniformComposition,
|
|
34
|
+
UniformRichText: () => UniformRichText,
|
|
35
|
+
UniformRichTextNode: () => UniformRichTextNode,
|
|
26
36
|
UniformSlot: () => UniformSlot,
|
|
27
37
|
convertComponentToProps: () => convertComponentToProps,
|
|
28
38
|
createUniformApiEnhancer: () => import_canvas3.createUniformApiEnhancer,
|
|
@@ -389,10 +399,202 @@ var UniformComposition = (0, import_vue_demi5.defineComponent)({
|
|
|
389
399
|
}
|
|
390
400
|
});
|
|
391
401
|
|
|
402
|
+
// src/components/UniformRichText/nodes/HeadingRichTextNode.ts
|
|
403
|
+
var import_vue_demi6 = require("vue-demi");
|
|
404
|
+
var HeadingRichTextNode = (props, context) => {
|
|
405
|
+
const { tag } = props.node;
|
|
406
|
+
return (0, import_vue_demi6.h)(tag != null ? tag : "h1", {}, context.slots);
|
|
407
|
+
};
|
|
408
|
+
|
|
409
|
+
// src/components/UniformRichText/nodes/LinkRichTextNode.ts
|
|
410
|
+
var import_richtext = require("@uniformdev/richtext");
|
|
411
|
+
var import_vue_demi7 = require("vue-demi");
|
|
412
|
+
var LinkRichTextNode = (props, context) => {
|
|
413
|
+
const { link } = props.node;
|
|
414
|
+
return (0, import_vue_demi7.h)(
|
|
415
|
+
"a",
|
|
416
|
+
{
|
|
417
|
+
href: (0, import_richtext.linkParamValueToHref)(link)
|
|
418
|
+
},
|
|
419
|
+
context.slots
|
|
420
|
+
);
|
|
421
|
+
};
|
|
422
|
+
|
|
423
|
+
// src/components/UniformRichText/nodes/ListItemRichTextNode.ts
|
|
424
|
+
var import_vue_demi8 = require("vue-demi");
|
|
425
|
+
var ListItemRichTextNode = (props, context) => {
|
|
426
|
+
const { value } = props.node;
|
|
427
|
+
return (0, import_vue_demi8.h)(
|
|
428
|
+
"li",
|
|
429
|
+
{
|
|
430
|
+
value: Number.isFinite(value) && value > 0 ? value + 1 : void 0
|
|
431
|
+
},
|
|
432
|
+
context.slots
|
|
433
|
+
);
|
|
434
|
+
};
|
|
435
|
+
|
|
436
|
+
// src/components/UniformRichText/nodes/ListRichTextNode.ts
|
|
437
|
+
var import_vue_demi9 = require("vue-demi");
|
|
438
|
+
var ListRichTextNode = (props, context) => {
|
|
439
|
+
const { tag } = props.node;
|
|
440
|
+
return (0, import_vue_demi9.h)(tag != null ? tag : "h1", {}, context.slots);
|
|
441
|
+
};
|
|
442
|
+
|
|
443
|
+
// src/components/UniformRichText/nodes/ParagraphRichTextNode.ts
|
|
444
|
+
var import_richtext2 = require("@uniformdev/richtext");
|
|
445
|
+
var import_vue_demi10 = require("vue-demi");
|
|
446
|
+
var ParagraphRichTextNode = (props, context) => {
|
|
447
|
+
const { format, direction } = props.node;
|
|
448
|
+
return (0, import_vue_demi10.h)(
|
|
449
|
+
"p",
|
|
450
|
+
{
|
|
451
|
+
dir: (0, import_richtext2.isPureDirection)(direction) ? direction : void 0,
|
|
452
|
+
style: (0, import_richtext2.isPureTextAlign)(format) ? { textAlign: format } : void 0
|
|
453
|
+
},
|
|
454
|
+
context.slots
|
|
455
|
+
);
|
|
456
|
+
};
|
|
457
|
+
|
|
458
|
+
// src/components/UniformRichText/nodes/QuoteRichTextNode.ts
|
|
459
|
+
var import_vue_demi11 = require("vue-demi");
|
|
460
|
+
var QuoteRichTextNode = (props, context) => {
|
|
461
|
+
return (0, import_vue_demi11.h)("blockquote", {}, context.slots);
|
|
462
|
+
};
|
|
463
|
+
|
|
464
|
+
// src/components/UniformRichText/nodes/RootRichTextNode.ts
|
|
465
|
+
var import_vue_demi12 = require("vue-demi");
|
|
466
|
+
var RootRichTextNode = (props, c) => {
|
|
467
|
+
return (0, import_vue_demi12.h)(() => c.slots.default ? c.slots.default() : null);
|
|
468
|
+
};
|
|
469
|
+
|
|
470
|
+
// src/components/UniformRichText/nodes/TextRichTextNode.ts
|
|
471
|
+
var import_richtext3 = require("@uniformdev/richtext");
|
|
472
|
+
var import_vue_demi13 = require("vue-demi");
|
|
473
|
+
var TextRichTextNode = (props) => {
|
|
474
|
+
const { format, text } = props.node;
|
|
475
|
+
const tags = (0, import_richtext3.getRichTextTagsFromTextFormat)(format);
|
|
476
|
+
return tags.length > 0 ? tags.reduceRight(
|
|
477
|
+
(children, tag) => {
|
|
478
|
+
return (0, import_vue_demi13.h)(tag, null, children);
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
default: () => text
|
|
482
|
+
}
|
|
483
|
+
) : (0, import_vue_demi13.h)(() => text);
|
|
484
|
+
};
|
|
485
|
+
|
|
486
|
+
// src/components/UniformRichText/UniformRichText.ts
|
|
487
|
+
var import_richtext5 = require("@uniformdev/richtext");
|
|
488
|
+
var import_vue_demi17 = require("vue-demi");
|
|
489
|
+
|
|
490
|
+
// src/components/UniformRichText/UniformRichTextNode.ts
|
|
491
|
+
var import_richtext4 = require("@uniformdev/richtext");
|
|
492
|
+
var import_vue_demi16 = require("vue-demi");
|
|
493
|
+
|
|
494
|
+
// src/components/UniformRichText/nodes/LinebreakRichTextNode.ts
|
|
495
|
+
var import_vue_demi14 = require("vue-demi");
|
|
496
|
+
var LinebreakRichTextNode = () => {
|
|
497
|
+
return (0, import_vue_demi14.h)("br", {});
|
|
498
|
+
};
|
|
499
|
+
|
|
500
|
+
// src/components/UniformRichText/nodes/TabRichTextNode.ts
|
|
501
|
+
var import_vue_demi15 = require("vue-demi");
|
|
502
|
+
var TabRichTextNode = () => {
|
|
503
|
+
return (0, import_vue_demi15.h)("", {}, " ");
|
|
504
|
+
};
|
|
505
|
+
|
|
506
|
+
// src/components/UniformRichText/UniformRichTextNode.ts
|
|
507
|
+
var UniformRichTextNode = (0, import_vue_demi16.defineComponent)({
|
|
508
|
+
name: "UniformRichTextNode",
|
|
509
|
+
props: {
|
|
510
|
+
node: {
|
|
511
|
+
type: Object,
|
|
512
|
+
required: true
|
|
513
|
+
},
|
|
514
|
+
resolveRichTextRenderer: {
|
|
515
|
+
type: Function,
|
|
516
|
+
required: false
|
|
517
|
+
}
|
|
518
|
+
},
|
|
519
|
+
setup(props, context) {
|
|
520
|
+
var _a;
|
|
521
|
+
const node = props.node;
|
|
522
|
+
if (!(0, import_richtext4.isRichTextNode)(node))
|
|
523
|
+
return () => null;
|
|
524
|
+
let NodeRenderer = node.type in context.slots ? context.slots[node.type] : (_a = props.resolveRichTextRenderer) == null ? void 0 : _a.call(props, node);
|
|
525
|
+
if (typeof NodeRenderer === "undefined") {
|
|
526
|
+
NodeRenderer = resolveRichTextDefaultRenderer(node);
|
|
527
|
+
}
|
|
528
|
+
if (!NodeRenderer) {
|
|
529
|
+
return () => null;
|
|
530
|
+
}
|
|
531
|
+
const children = node.children ? node.children.map(
|
|
532
|
+
(childNode) => (0, import_vue_demi16.h)(
|
|
533
|
+
UniformRichTextNode,
|
|
534
|
+
{ node: childNode, resolveRichTextRenderer: props.resolveRichTextRenderer },
|
|
535
|
+
context.slots
|
|
536
|
+
)
|
|
537
|
+
) : [];
|
|
538
|
+
return () => (0, import_vue_demi16.h)(NodeRenderer, { node, children: (0, import_vue_demi16.h)(() => children) }, () => children);
|
|
539
|
+
}
|
|
540
|
+
});
|
|
541
|
+
var rendererMap = /* @__PURE__ */ new Map([
|
|
542
|
+
["heading", HeadingRichTextNode],
|
|
543
|
+
["linebreak", LinebreakRichTextNode],
|
|
544
|
+
["link", LinkRichTextNode],
|
|
545
|
+
["list", ListRichTextNode],
|
|
546
|
+
["listitem", ListItemRichTextNode],
|
|
547
|
+
["paragraph", ParagraphRichTextNode],
|
|
548
|
+
["quote", QuoteRichTextNode],
|
|
549
|
+
["root", RootRichTextNode],
|
|
550
|
+
["text", TextRichTextNode],
|
|
551
|
+
["tab", TabRichTextNode]
|
|
552
|
+
]);
|
|
553
|
+
var resolveRichTextDefaultRenderer = (node) => {
|
|
554
|
+
return rendererMap.get(node.type);
|
|
555
|
+
};
|
|
556
|
+
|
|
557
|
+
// src/components/UniformRichText/UniformRichText.ts
|
|
558
|
+
var UniformRichText = (0, import_vue_demi17.defineComponent)({
|
|
559
|
+
name: "UniformRichText",
|
|
560
|
+
props: {
|
|
561
|
+
parameterId: {
|
|
562
|
+
type: String,
|
|
563
|
+
required: true
|
|
564
|
+
},
|
|
565
|
+
resolveRichTextRenderer: {
|
|
566
|
+
type: Function,
|
|
567
|
+
required: false
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
setup(props, context) {
|
|
571
|
+
var _a;
|
|
572
|
+
const { data: componentData } = useUniformCurrentComponent();
|
|
573
|
+
const value = (0, import_vue_demi17.computed)(() => {
|
|
574
|
+
var _a2;
|
|
575
|
+
const parameter = (_a2 = componentData == null ? void 0 : componentData.parameters) == null ? void 0 : _a2[props.parameterId];
|
|
576
|
+
return parameter == null ? void 0 : parameter.value;
|
|
577
|
+
});
|
|
578
|
+
const root = (_a = value.value) == null ? void 0 : _a.root;
|
|
579
|
+
if ((0, import_richtext5.isRichTextNode)(root)) {
|
|
580
|
+
return () => (0, import_vue_demi17.h)(
|
|
581
|
+
UniformRichTextNode,
|
|
582
|
+
{
|
|
583
|
+
node: root,
|
|
584
|
+
resolveRichTextRenderer: props.resolveRichTextRenderer
|
|
585
|
+
},
|
|
586
|
+
context.slots
|
|
587
|
+
);
|
|
588
|
+
} else {
|
|
589
|
+
return () => null;
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
});
|
|
593
|
+
|
|
392
594
|
// src/components/UniformSlot.ts
|
|
393
595
|
var import_canvas5 = require("@uniformdev/canvas");
|
|
394
596
|
var import_context_vue2 = require("@uniformdev/context-vue");
|
|
395
|
-
var
|
|
597
|
+
var import_vue_demi18 = require("vue-demi");
|
|
396
598
|
|
|
397
599
|
// src/utils/convertComponentToProps.ts
|
|
398
600
|
function convertComponentToProps(component) {
|
|
@@ -417,7 +619,7 @@ function normalizePropName(name) {
|
|
|
417
619
|
}
|
|
418
620
|
|
|
419
621
|
// src/components/UniformSlot.ts
|
|
420
|
-
var UniformSlot = (0,
|
|
622
|
+
var UniformSlot = (0, import_vue_demi18.defineComponent)({
|
|
421
623
|
name: "UniformSlot",
|
|
422
624
|
inheritAttrs: false,
|
|
423
625
|
props: {
|
|
@@ -436,7 +638,7 @@ var UniformSlot = (0, import_vue_demi6.defineComponent)({
|
|
|
436
638
|
if (!parentData || !resolveRenderer) {
|
|
437
639
|
throw new Error("<UniformSlot /> can only be used inside a <UniformComposition />");
|
|
438
640
|
}
|
|
439
|
-
const slotItems = (0,
|
|
641
|
+
const slotItems = (0, import_vue_demi18.computed)(() => {
|
|
440
642
|
var _a2, _b, _c;
|
|
441
643
|
if (props.name) {
|
|
442
644
|
return (_b = (_a2 = parentData.slots) == null ? void 0 : _a2[props.name]) != null ? _b : [];
|
|
@@ -463,7 +665,7 @@ function renderPersonalizeComponent(component, resolveRenderer) {
|
|
|
463
665
|
const parameters = component == null ? void 0 : component.parameters;
|
|
464
666
|
const processedVariants = (0, import_canvas5.mapSlotToPersonalizedVariations)((_a = component.slots) == null ? void 0 : _a.pz);
|
|
465
667
|
const name = (_d = (_c = (_b = component.parameters) == null ? void 0 : _b.trackingEventName) == null ? void 0 : _c.value) != null ? _d : "Untitled Personalization";
|
|
466
|
-
return (0,
|
|
668
|
+
return (0, import_vue_demi18.h)(import_context_vue2.Personalize, {
|
|
467
669
|
name,
|
|
468
670
|
// TODO: Fix the `as unknown`
|
|
469
671
|
component: (variant) => resolveRenderer(variant),
|
|
@@ -476,7 +678,7 @@ function renderTestComponent(component, resolveRenderer) {
|
|
|
476
678
|
const variants = (_b = (_a = component == null ? void 0 : component.slots) == null ? void 0 : _a.test) != null ? _b : [];
|
|
477
679
|
const testName = (_e = (_d = (_c = component == null ? void 0 : component.parameters) == null ? void 0 : _c.test) == null ? void 0 : _d.value) != null ? _e : "Untitled Test";
|
|
478
680
|
const finalVariants = (0, import_canvas5.mapSlotToTestVariations)(variants);
|
|
479
|
-
return (0,
|
|
681
|
+
return (0, import_vue_demi18.h)(import_context_vue2.Test, {
|
|
480
682
|
variations: finalVariants,
|
|
481
683
|
name: testName,
|
|
482
684
|
component: (variant) => resolveRenderer(variant)
|
|
@@ -530,13 +732,13 @@ function renderComponent({
|
|
|
530
732
|
const resolvedComponent = resolveRenderer == null ? void 0 : resolveRenderer(component);
|
|
531
733
|
if (resolvedComponent) {
|
|
532
734
|
const props = convertComponentToProps(component);
|
|
533
|
-
return (0,
|
|
735
|
+
return (0, import_vue_demi18.h)(
|
|
534
736
|
UniformComponent,
|
|
535
737
|
{ data: component, resolveRenderer },
|
|
536
|
-
() => (0,
|
|
738
|
+
() => (0, import_vue_demi18.h)(
|
|
537
739
|
ContextualEditingComponentWrapper,
|
|
538
740
|
{ component, parentComponent, slotName, indexInSlot, slotChildrenCount },
|
|
539
|
-
{ default: () => (0,
|
|
741
|
+
{ default: () => (0, import_vue_demi18.h)(resolvedComponent, props), emptyPlaceholder }
|
|
540
742
|
)
|
|
541
743
|
);
|
|
542
744
|
}
|
|
@@ -544,12 +746,12 @@ function renderComponent({
|
|
|
544
746
|
`[canvas] found component of type '${component.type}' which the 'resolveRenderer' prop returned no component for. Nothing will be rendered. The resolveRenderer function may need to be extended to handle the new type.`,
|
|
545
747
|
component
|
|
546
748
|
);
|
|
547
|
-
return (0,
|
|
749
|
+
return (0, import_vue_demi18.h)("");
|
|
548
750
|
}
|
|
549
751
|
|
|
550
752
|
// src/composables/useCompositionEventEffect.ts
|
|
551
753
|
var import_canvas6 = require("@uniformdev/canvas");
|
|
552
|
-
var
|
|
754
|
+
var import_vue_demi19 = require("vue-demi");
|
|
553
755
|
async function useCompositionEventEffect({
|
|
554
756
|
enabled,
|
|
555
757
|
projectId,
|
|
@@ -557,7 +759,7 @@ async function useCompositionEventEffect({
|
|
|
557
759
|
effect
|
|
558
760
|
}) {
|
|
559
761
|
let unsubscribe;
|
|
560
|
-
(0,
|
|
762
|
+
(0, import_vue_demi19.watch)(
|
|
561
763
|
[() => enabled, () => compositionIdRef.value, () => projectId],
|
|
562
764
|
async () => {
|
|
563
765
|
unsubscribe == null ? void 0 : unsubscribe();
|
|
@@ -582,8 +784,18 @@ async function useCompositionEventEffect({
|
|
|
582
784
|
// Annotate the CommonJS export names for ESM import in node:
|
|
583
785
|
0 && (module.exports = {
|
|
584
786
|
DefaultNotImplementedComponent,
|
|
787
|
+
HeadingRichTextNode,
|
|
788
|
+
LinkRichTextNode,
|
|
789
|
+
ListItemRichTextNode,
|
|
790
|
+
ListRichTextNode,
|
|
791
|
+
ParagraphRichTextNode,
|
|
792
|
+
QuoteRichTextNode,
|
|
793
|
+
RootRichTextNode,
|
|
794
|
+
TextRichTextNode,
|
|
585
795
|
UniformComponent,
|
|
586
796
|
UniformComposition,
|
|
797
|
+
UniformRichText,
|
|
798
|
+
UniformRichTextNode,
|
|
587
799
|
UniformSlot,
|
|
588
800
|
convertComponentToProps,
|
|
589
801
|
createUniformApiEnhancer,
|
package/dist/index.mjs
CHANGED
|
@@ -381,6 +381,198 @@ var UniformComposition = defineComponent4({
|
|
|
381
381
|
}
|
|
382
382
|
});
|
|
383
383
|
|
|
384
|
+
// src/components/UniformRichText/nodes/HeadingRichTextNode.ts
|
|
385
|
+
import { h as h5 } from "vue-demi";
|
|
386
|
+
var HeadingRichTextNode = (props, context) => {
|
|
387
|
+
const { tag } = props.node;
|
|
388
|
+
return h5(tag != null ? tag : "h1", {}, context.slots);
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
// src/components/UniformRichText/nodes/LinkRichTextNode.ts
|
|
392
|
+
import { linkParamValueToHref } from "@uniformdev/richtext";
|
|
393
|
+
import { h as h6 } from "vue-demi";
|
|
394
|
+
var LinkRichTextNode = (props, context) => {
|
|
395
|
+
const { link } = props.node;
|
|
396
|
+
return h6(
|
|
397
|
+
"a",
|
|
398
|
+
{
|
|
399
|
+
href: linkParamValueToHref(link)
|
|
400
|
+
},
|
|
401
|
+
context.slots
|
|
402
|
+
);
|
|
403
|
+
};
|
|
404
|
+
|
|
405
|
+
// src/components/UniformRichText/nodes/ListItemRichTextNode.ts
|
|
406
|
+
import { h as h7 } from "vue-demi";
|
|
407
|
+
var ListItemRichTextNode = (props, context) => {
|
|
408
|
+
const { value } = props.node;
|
|
409
|
+
return h7(
|
|
410
|
+
"li",
|
|
411
|
+
{
|
|
412
|
+
value: Number.isFinite(value) && value > 0 ? value + 1 : void 0
|
|
413
|
+
},
|
|
414
|
+
context.slots
|
|
415
|
+
);
|
|
416
|
+
};
|
|
417
|
+
|
|
418
|
+
// src/components/UniformRichText/nodes/ListRichTextNode.ts
|
|
419
|
+
import { h as h8 } from "vue-demi";
|
|
420
|
+
var ListRichTextNode = (props, context) => {
|
|
421
|
+
const { tag } = props.node;
|
|
422
|
+
return h8(tag != null ? tag : "h1", {}, context.slots);
|
|
423
|
+
};
|
|
424
|
+
|
|
425
|
+
// src/components/UniformRichText/nodes/ParagraphRichTextNode.ts
|
|
426
|
+
import { isPureDirection, isPureTextAlign } from "@uniformdev/richtext";
|
|
427
|
+
import { h as h9 } from "vue-demi";
|
|
428
|
+
var ParagraphRichTextNode = (props, context) => {
|
|
429
|
+
const { format, direction } = props.node;
|
|
430
|
+
return h9(
|
|
431
|
+
"p",
|
|
432
|
+
{
|
|
433
|
+
dir: isPureDirection(direction) ? direction : void 0,
|
|
434
|
+
style: isPureTextAlign(format) ? { textAlign: format } : void 0
|
|
435
|
+
},
|
|
436
|
+
context.slots
|
|
437
|
+
);
|
|
438
|
+
};
|
|
439
|
+
|
|
440
|
+
// src/components/UniformRichText/nodes/QuoteRichTextNode.ts
|
|
441
|
+
import { h as h10 } from "vue-demi";
|
|
442
|
+
var QuoteRichTextNode = (props, context) => {
|
|
443
|
+
return h10("blockquote", {}, context.slots);
|
|
444
|
+
};
|
|
445
|
+
|
|
446
|
+
// src/components/UniformRichText/nodes/RootRichTextNode.ts
|
|
447
|
+
import { h as h11 } from "vue-demi";
|
|
448
|
+
var RootRichTextNode = (props, c) => {
|
|
449
|
+
return h11(() => c.slots.default ? c.slots.default() : null);
|
|
450
|
+
};
|
|
451
|
+
|
|
452
|
+
// src/components/UniformRichText/nodes/TextRichTextNode.ts
|
|
453
|
+
import { getRichTextTagsFromTextFormat } from "@uniformdev/richtext";
|
|
454
|
+
import { h as h12 } from "vue-demi";
|
|
455
|
+
var TextRichTextNode = (props) => {
|
|
456
|
+
const { format, text } = props.node;
|
|
457
|
+
const tags = getRichTextTagsFromTextFormat(format);
|
|
458
|
+
return tags.length > 0 ? tags.reduceRight(
|
|
459
|
+
(children, tag) => {
|
|
460
|
+
return h12(tag, null, children);
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
default: () => text
|
|
464
|
+
}
|
|
465
|
+
) : h12(() => text);
|
|
466
|
+
};
|
|
467
|
+
|
|
468
|
+
// src/components/UniformRichText/UniformRichText.ts
|
|
469
|
+
import { isRichTextNode as isRichTextNode2 } from "@uniformdev/richtext";
|
|
470
|
+
import { computed as computed4, defineComponent as defineComponent6, h as h16 } from "vue-demi";
|
|
471
|
+
|
|
472
|
+
// src/components/UniformRichText/UniformRichTextNode.ts
|
|
473
|
+
import { isRichTextNode } from "@uniformdev/richtext";
|
|
474
|
+
import { defineComponent as defineComponent5, h as h15 } from "vue-demi";
|
|
475
|
+
|
|
476
|
+
// src/components/UniformRichText/nodes/LinebreakRichTextNode.ts
|
|
477
|
+
import { h as h13 } from "vue-demi";
|
|
478
|
+
var LinebreakRichTextNode = () => {
|
|
479
|
+
return h13("br", {});
|
|
480
|
+
};
|
|
481
|
+
|
|
482
|
+
// src/components/UniformRichText/nodes/TabRichTextNode.ts
|
|
483
|
+
import { h as h14 } from "vue-demi";
|
|
484
|
+
var TabRichTextNode = () => {
|
|
485
|
+
return h14("", {}, " ");
|
|
486
|
+
};
|
|
487
|
+
|
|
488
|
+
// src/components/UniformRichText/UniformRichTextNode.ts
|
|
489
|
+
var UniformRichTextNode = defineComponent5({
|
|
490
|
+
name: "UniformRichTextNode",
|
|
491
|
+
props: {
|
|
492
|
+
node: {
|
|
493
|
+
type: Object,
|
|
494
|
+
required: true
|
|
495
|
+
},
|
|
496
|
+
resolveRichTextRenderer: {
|
|
497
|
+
type: Function,
|
|
498
|
+
required: false
|
|
499
|
+
}
|
|
500
|
+
},
|
|
501
|
+
setup(props, context) {
|
|
502
|
+
var _a;
|
|
503
|
+
const node = props.node;
|
|
504
|
+
if (!isRichTextNode(node))
|
|
505
|
+
return () => null;
|
|
506
|
+
let NodeRenderer = node.type in context.slots ? context.slots[node.type] : (_a = props.resolveRichTextRenderer) == null ? void 0 : _a.call(props, node);
|
|
507
|
+
if (typeof NodeRenderer === "undefined") {
|
|
508
|
+
NodeRenderer = resolveRichTextDefaultRenderer(node);
|
|
509
|
+
}
|
|
510
|
+
if (!NodeRenderer) {
|
|
511
|
+
return () => null;
|
|
512
|
+
}
|
|
513
|
+
const children = node.children ? node.children.map(
|
|
514
|
+
(childNode) => h15(
|
|
515
|
+
UniformRichTextNode,
|
|
516
|
+
{ node: childNode, resolveRichTextRenderer: props.resolveRichTextRenderer },
|
|
517
|
+
context.slots
|
|
518
|
+
)
|
|
519
|
+
) : [];
|
|
520
|
+
return () => h15(NodeRenderer, { node, children: h15(() => children) }, () => children);
|
|
521
|
+
}
|
|
522
|
+
});
|
|
523
|
+
var rendererMap = /* @__PURE__ */ new Map([
|
|
524
|
+
["heading", HeadingRichTextNode],
|
|
525
|
+
["linebreak", LinebreakRichTextNode],
|
|
526
|
+
["link", LinkRichTextNode],
|
|
527
|
+
["list", ListRichTextNode],
|
|
528
|
+
["listitem", ListItemRichTextNode],
|
|
529
|
+
["paragraph", ParagraphRichTextNode],
|
|
530
|
+
["quote", QuoteRichTextNode],
|
|
531
|
+
["root", RootRichTextNode],
|
|
532
|
+
["text", TextRichTextNode],
|
|
533
|
+
["tab", TabRichTextNode]
|
|
534
|
+
]);
|
|
535
|
+
var resolveRichTextDefaultRenderer = (node) => {
|
|
536
|
+
return rendererMap.get(node.type);
|
|
537
|
+
};
|
|
538
|
+
|
|
539
|
+
// src/components/UniformRichText/UniformRichText.ts
|
|
540
|
+
var UniformRichText = defineComponent6({
|
|
541
|
+
name: "UniformRichText",
|
|
542
|
+
props: {
|
|
543
|
+
parameterId: {
|
|
544
|
+
type: String,
|
|
545
|
+
required: true
|
|
546
|
+
},
|
|
547
|
+
resolveRichTextRenderer: {
|
|
548
|
+
type: Function,
|
|
549
|
+
required: false
|
|
550
|
+
}
|
|
551
|
+
},
|
|
552
|
+
setup(props, context) {
|
|
553
|
+
var _a;
|
|
554
|
+
const { data: componentData } = useUniformCurrentComponent();
|
|
555
|
+
const value = computed4(() => {
|
|
556
|
+
var _a2;
|
|
557
|
+
const parameter = (_a2 = componentData == null ? void 0 : componentData.parameters) == null ? void 0 : _a2[props.parameterId];
|
|
558
|
+
return parameter == null ? void 0 : parameter.value;
|
|
559
|
+
});
|
|
560
|
+
const root = (_a = value.value) == null ? void 0 : _a.root;
|
|
561
|
+
if (isRichTextNode2(root)) {
|
|
562
|
+
return () => h16(
|
|
563
|
+
UniformRichTextNode,
|
|
564
|
+
{
|
|
565
|
+
node: root,
|
|
566
|
+
resolveRichTextRenderer: props.resolveRichTextRenderer
|
|
567
|
+
},
|
|
568
|
+
context.slots
|
|
569
|
+
);
|
|
570
|
+
} else {
|
|
571
|
+
return () => null;
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
});
|
|
575
|
+
|
|
384
576
|
// src/components/UniformSlot.ts
|
|
385
577
|
import {
|
|
386
578
|
CANVAS_PERSONALIZE_SLOT,
|
|
@@ -391,7 +583,7 @@ import {
|
|
|
391
583
|
mapSlotToTestVariations
|
|
392
584
|
} from "@uniformdev/canvas";
|
|
393
585
|
import { Personalize, Test } from "@uniformdev/context-vue";
|
|
394
|
-
import { computed as
|
|
586
|
+
import { computed as computed5, defineComponent as defineComponent7, h as h17 } from "vue-demi";
|
|
395
587
|
|
|
396
588
|
// src/utils/convertComponentToProps.ts
|
|
397
589
|
function convertComponentToProps(component) {
|
|
@@ -416,7 +608,7 @@ function normalizePropName(name) {
|
|
|
416
608
|
}
|
|
417
609
|
|
|
418
610
|
// src/components/UniformSlot.ts
|
|
419
|
-
var UniformSlot =
|
|
611
|
+
var UniformSlot = defineComponent7({
|
|
420
612
|
name: "UniformSlot",
|
|
421
613
|
inheritAttrs: false,
|
|
422
614
|
props: {
|
|
@@ -435,7 +627,7 @@ var UniformSlot = defineComponent5({
|
|
|
435
627
|
if (!parentData || !resolveRenderer) {
|
|
436
628
|
throw new Error("<UniformSlot /> can only be used inside a <UniformComposition />");
|
|
437
629
|
}
|
|
438
|
-
const slotItems =
|
|
630
|
+
const slotItems = computed5(() => {
|
|
439
631
|
var _a2, _b, _c;
|
|
440
632
|
if (props.name) {
|
|
441
633
|
return (_b = (_a2 = parentData.slots) == null ? void 0 : _a2[props.name]) != null ? _b : [];
|
|
@@ -462,7 +654,7 @@ function renderPersonalizeComponent(component, resolveRenderer) {
|
|
|
462
654
|
const parameters = component == null ? void 0 : component.parameters;
|
|
463
655
|
const processedVariants = mapSlotToPersonalizedVariations((_a = component.slots) == null ? void 0 : _a.pz);
|
|
464
656
|
const name = (_d = (_c = (_b = component.parameters) == null ? void 0 : _b.trackingEventName) == null ? void 0 : _c.value) != null ? _d : "Untitled Personalization";
|
|
465
|
-
return
|
|
657
|
+
return h17(Personalize, {
|
|
466
658
|
name,
|
|
467
659
|
// TODO: Fix the `as unknown`
|
|
468
660
|
component: (variant) => resolveRenderer(variant),
|
|
@@ -475,7 +667,7 @@ function renderTestComponent(component, resolveRenderer) {
|
|
|
475
667
|
const variants = (_b = (_a = component == null ? void 0 : component.slots) == null ? void 0 : _a.test) != null ? _b : [];
|
|
476
668
|
const testName = (_e = (_d = (_c = component == null ? void 0 : component.parameters) == null ? void 0 : _c.test) == null ? void 0 : _d.value) != null ? _e : "Untitled Test";
|
|
477
669
|
const finalVariants = mapSlotToTestVariations(variants);
|
|
478
|
-
return
|
|
670
|
+
return h17(Test, {
|
|
479
671
|
variations: finalVariants,
|
|
480
672
|
name: testName,
|
|
481
673
|
component: (variant) => resolveRenderer(variant)
|
|
@@ -529,13 +721,13 @@ function renderComponent({
|
|
|
529
721
|
const resolvedComponent = resolveRenderer == null ? void 0 : resolveRenderer(component);
|
|
530
722
|
if (resolvedComponent) {
|
|
531
723
|
const props = convertComponentToProps(component);
|
|
532
|
-
return
|
|
724
|
+
return h17(
|
|
533
725
|
UniformComponent,
|
|
534
726
|
{ data: component, resolveRenderer },
|
|
535
|
-
() =>
|
|
727
|
+
() => h17(
|
|
536
728
|
ContextualEditingComponentWrapper,
|
|
537
729
|
{ component, parentComponent, slotName, indexInSlot, slotChildrenCount },
|
|
538
|
-
{ default: () =>
|
|
730
|
+
{ default: () => h17(resolvedComponent, props), emptyPlaceholder }
|
|
539
731
|
)
|
|
540
732
|
);
|
|
541
733
|
}
|
|
@@ -543,7 +735,7 @@ function renderComponent({
|
|
|
543
735
|
`[canvas] found component of type '${component.type}' which the 'resolveRenderer' prop returned no component for. Nothing will be rendered. The resolveRenderer function may need to be extended to handle the new type.`,
|
|
544
736
|
component
|
|
545
737
|
);
|
|
546
|
-
return
|
|
738
|
+
return h17("");
|
|
547
739
|
}
|
|
548
740
|
|
|
549
741
|
// src/composables/useCompositionEventEffect.ts
|
|
@@ -584,8 +776,18 @@ async function useCompositionEventEffect({
|
|
|
584
776
|
}
|
|
585
777
|
export {
|
|
586
778
|
DefaultNotImplementedComponent,
|
|
779
|
+
HeadingRichTextNode,
|
|
780
|
+
LinkRichTextNode,
|
|
781
|
+
ListItemRichTextNode,
|
|
782
|
+
ListRichTextNode,
|
|
783
|
+
ParagraphRichTextNode,
|
|
784
|
+
QuoteRichTextNode,
|
|
785
|
+
RootRichTextNode,
|
|
786
|
+
TextRichTextNode,
|
|
587
787
|
UniformComponent,
|
|
588
788
|
UniformComposition,
|
|
789
|
+
UniformRichText,
|
|
790
|
+
UniformRichTextNode,
|
|
589
791
|
UniformSlot,
|
|
590
792
|
convertComponentToProps,
|
|
591
793
|
createUniformApiEnhancer,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uniformdev/canvas-vue",
|
|
3
|
-
"version": "19.14.
|
|
3
|
+
"version": "19.14.1-alpha.1+597b21eaa",
|
|
4
4
|
"description": "Vue SDK for Uniform Canvas",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
"document": "api-extractor run --local"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@uniformdev/canvas": "19.14.
|
|
27
|
-
"@uniformdev/context-vue": "19.14.
|
|
28
|
-
"@
|
|
26
|
+
"@uniformdev/canvas": "19.14.1-alpha.1+597b21eaa",
|
|
27
|
+
"@uniformdev/context-vue": "19.14.1-alpha.1+597b21eaa",
|
|
28
|
+
"@uniformdev/richtext": "19.14.1-alpha.1+597b21eaa",
|
|
29
29
|
"vue-demi": "^0.14.0"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
@@ -41,6 +41,8 @@
|
|
|
41
41
|
"@testing-library/vue": "7.0.0",
|
|
42
42
|
"@types/uuid": "9.0.1",
|
|
43
43
|
"@vue/server-test-utils": "1.3.0",
|
|
44
|
+
"@vue/test-utils": "2.3.2",
|
|
45
|
+
"@vue/vue3-jest": "^29.2.4",
|
|
44
46
|
"vue": "3.2.45",
|
|
45
47
|
"vue-server-renderer": "2.7.14",
|
|
46
48
|
"vue-template-compiler": "2.7.14"
|
|
@@ -62,5 +64,5 @@
|
|
|
62
64
|
"last 2 versions",
|
|
63
65
|
"not dead"
|
|
64
66
|
],
|
|
65
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "597b21eaa0a61271b8951de1d443019868f7699c"
|
|
66
68
|
}
|