@uniformdev/canvas-next-rsc 19.208.0 → 19.209.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/{UniformComposition-B8budr-b.d.mts → UniformComposition-IWWzoI_H.d.mts} +15 -0
- package/dist/{UniformComposition-B8budr-b.d.ts → UniformComposition-IWWzoI_H.d.ts} +15 -0
- package/dist/component.d.mts +1 -1
- package/dist/component.d.ts +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.esm.js +35 -7
- package/dist/index.js +34 -7
- package/dist/index.mjs +35 -7
- package/package.json +11 -11
|
@@ -28,11 +28,22 @@ type UniformCompositionProps = PageParameters & {
|
|
|
28
28
|
* Function to map composition components to React components.
|
|
29
29
|
*/
|
|
30
30
|
resolveComponent: ResolveComponentFunction;
|
|
31
|
+
/**
|
|
32
|
+
* Function to map empty placeholders to React components.
|
|
33
|
+
*/
|
|
34
|
+
resolveEmptyPlaceholder?: ResolveEmptyPlaceholderFunction;
|
|
31
35
|
} & (UniformStaticCompositionProps | UniformServerCompositionProps);
|
|
32
36
|
declare const UniformComposition: React.FC<UniformCompositionProps>;
|
|
33
37
|
type ResolveComponentFunction = (options: {
|
|
34
38
|
component: ComponentInstance;
|
|
35
39
|
}) => ResolveComponentResult;
|
|
40
|
+
type ResolveEmptyPlaceholderFunction = (options: ResolveEmptyPlaceholderOptions) => ResolveEmptyPlaceholderResult;
|
|
41
|
+
type ResolveEmptyPlaceholderOptions = {
|
|
42
|
+
parentComponent: ComponentInstance | undefined;
|
|
43
|
+
component: ComponentInstance;
|
|
44
|
+
slotName: string;
|
|
45
|
+
slotIndex: number;
|
|
46
|
+
};
|
|
36
47
|
type ResolveComponentResult = {
|
|
37
48
|
component: ComponentType<ComponentProps<any, any>> | null;
|
|
38
49
|
includeContext?: boolean;
|
|
@@ -40,6 +51,9 @@ type ResolveComponentResult = {
|
|
|
40
51
|
fallback: ComponentType<any> | undefined;
|
|
41
52
|
};
|
|
42
53
|
};
|
|
54
|
+
type ResolveEmptyPlaceholderResult = {
|
|
55
|
+
component: ComponentType<ComponentProps<any, any>> | null;
|
|
56
|
+
};
|
|
43
57
|
declare const resolveComposition: (props: Omit<ResolveComponentsOptions, "slotName" | "slotIndex" | "target"> & {
|
|
44
58
|
composition: ComponentInstance;
|
|
45
59
|
compositionContext: CompositionContext;
|
|
@@ -60,6 +74,7 @@ type ResolveComponentsOptions = {
|
|
|
60
74
|
slotName: string | undefined;
|
|
61
75
|
slotIndex: number | undefined;
|
|
62
76
|
resolveComponent: ResolveComponentFunction;
|
|
77
|
+
resolveEmptyPlaceholder: ResolveEmptyPlaceholderFunction | undefined;
|
|
63
78
|
compositionContext: CompositionContext;
|
|
64
79
|
mode: UniformCompositionProps['mode'];
|
|
65
80
|
};
|
|
@@ -28,11 +28,22 @@ type UniformCompositionProps = PageParameters & {
|
|
|
28
28
|
* Function to map composition components to React components.
|
|
29
29
|
*/
|
|
30
30
|
resolveComponent: ResolveComponentFunction;
|
|
31
|
+
/**
|
|
32
|
+
* Function to map empty placeholders to React components.
|
|
33
|
+
*/
|
|
34
|
+
resolveEmptyPlaceholder?: ResolveEmptyPlaceholderFunction;
|
|
31
35
|
} & (UniformStaticCompositionProps | UniformServerCompositionProps);
|
|
32
36
|
declare const UniformComposition: React.FC<UniformCompositionProps>;
|
|
33
37
|
type ResolveComponentFunction = (options: {
|
|
34
38
|
component: ComponentInstance;
|
|
35
39
|
}) => ResolveComponentResult;
|
|
40
|
+
type ResolveEmptyPlaceholderFunction = (options: ResolveEmptyPlaceholderOptions) => ResolveEmptyPlaceholderResult;
|
|
41
|
+
type ResolveEmptyPlaceholderOptions = {
|
|
42
|
+
parentComponent: ComponentInstance | undefined;
|
|
43
|
+
component: ComponentInstance;
|
|
44
|
+
slotName: string;
|
|
45
|
+
slotIndex: number;
|
|
46
|
+
};
|
|
36
47
|
type ResolveComponentResult = {
|
|
37
48
|
component: ComponentType<ComponentProps<any, any>> | null;
|
|
38
49
|
includeContext?: boolean;
|
|
@@ -40,6 +51,9 @@ type ResolveComponentResult = {
|
|
|
40
51
|
fallback: ComponentType<any> | undefined;
|
|
41
52
|
};
|
|
42
53
|
};
|
|
54
|
+
type ResolveEmptyPlaceholderResult = {
|
|
55
|
+
component: ComponentType<ComponentProps<any, any>> | null;
|
|
56
|
+
};
|
|
43
57
|
declare const resolveComposition: (props: Omit<ResolveComponentsOptions, "slotName" | "slotIndex" | "target"> & {
|
|
44
58
|
composition: ComponentInstance;
|
|
45
59
|
compositionContext: CompositionContext;
|
|
@@ -60,6 +74,7 @@ type ResolveComponentsOptions = {
|
|
|
60
74
|
slotName: string | undefined;
|
|
61
75
|
slotIndex: number | undefined;
|
|
62
76
|
resolveComponent: ResolveComponentFunction;
|
|
77
|
+
resolveEmptyPlaceholder: ResolveEmptyPlaceholderFunction | undefined;
|
|
63
78
|
compositionContext: CompositionContext;
|
|
64
79
|
mode: UniformCompositionProps['mode'];
|
|
65
80
|
};
|
package/dist/component.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComponentProps, CompositionContext, SlotDefinition } from '@uniformdev/canvas-next-rsc-shared';
|
|
2
2
|
export { ComponentProps, CompositionContext } from '@uniformdev/canvas-next-rsc-shared';
|
|
3
3
|
import React__default, { PropsWithChildren, ReactNode, Key } from 'react';
|
|
4
|
-
export { R as ResolveComponentFunction, a as ResolveComponentResult } from './UniformComposition-
|
|
4
|
+
export { R as ResolveComponentFunction, a as ResolveComponentResult } from './UniformComposition-IWWzoI_H.mjs';
|
|
5
5
|
import { ComponentInstance } from '@uniformdev/canvas';
|
|
6
6
|
import { RichTextNode } from '@uniformdev/richtext';
|
|
7
7
|
import { PureUniformTextProps } from '@uniformdev/canvas-react/core';
|
package/dist/component.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComponentProps, CompositionContext, SlotDefinition } from '@uniformdev/canvas-next-rsc-shared';
|
|
2
2
|
export { ComponentProps, CompositionContext } from '@uniformdev/canvas-next-rsc-shared';
|
|
3
3
|
import React__default, { PropsWithChildren, ReactNode, Key } from 'react';
|
|
4
|
-
export { R as ResolveComponentFunction, a as ResolveComponentResult } from './UniformComposition-
|
|
4
|
+
export { R as ResolveComponentFunction, a as ResolveComponentResult } from './UniformComposition-IWWzoI_H.js';
|
|
5
5
|
import { ComponentInstance } from '@uniformdev/canvas';
|
|
6
6
|
import { RichTextNode } from '@uniformdev/richtext';
|
|
7
7
|
import { PureUniformTextProps } from '@uniformdev/canvas-react/core';
|
package/dist/index.d.mts
CHANGED
|
@@ -5,8 +5,8 @@ import { ManifestClient } from '@uniformdev/context/api';
|
|
|
5
5
|
import { ProjectMapClient, ProjectMapNode } from '@uniformdev/project-map';
|
|
6
6
|
import { ContextState, ContextOptions } from '@uniformdev/context';
|
|
7
7
|
import React__default, { PropsWithChildren } from 'react';
|
|
8
|
-
import { U as UniformCompositionProps } from './UniformComposition-
|
|
9
|
-
export { b as UniformComposition, r as resolveComposition } from './UniformComposition-
|
|
8
|
+
import { U as UniformCompositionProps } from './UniformComposition-IWWzoI_H.mjs';
|
|
9
|
+
export { b as UniformComposition, r as resolveComposition } from './UniformComposition-IWWzoI_H.mjs';
|
|
10
10
|
import { ClientContextComponent } from '@uniformdev/canvas-next-rsc-client';
|
|
11
11
|
|
|
12
12
|
type GetCanvasClientOptions = {
|
package/dist/index.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ import { ManifestClient } from '@uniformdev/context/api';
|
|
|
5
5
|
import { ProjectMapClient, ProjectMapNode } from '@uniformdev/project-map';
|
|
6
6
|
import { ContextState, ContextOptions } from '@uniformdev/context';
|
|
7
7
|
import React__default, { PropsWithChildren } from 'react';
|
|
8
|
-
import { U as UniformCompositionProps } from './UniformComposition-
|
|
9
|
-
export { b as UniformComposition, r as resolveComposition } from './UniformComposition-
|
|
8
|
+
import { U as UniformCompositionProps } from './UniformComposition-IWWzoI_H.js';
|
|
9
|
+
export { b as UniformComposition, r as resolveComposition } from './UniformComposition-IWWzoI_H.js';
|
|
10
10
|
import { ClientContextComponent } from '@uniformdev/canvas-next-rsc-client';
|
|
11
11
|
|
|
12
12
|
type GetCanvasClientOptions = {
|
package/dist/index.esm.js
CHANGED
|
@@ -419,6 +419,7 @@ async function generateStaticParams() {
|
|
|
419
419
|
|
|
420
420
|
// src/components/UniformComposition.ts
|
|
421
421
|
import {
|
|
422
|
+
CANVAS_CONTEXTUAL_EDITING_PARAM,
|
|
422
423
|
CANVAS_DRAFT_STATE as CANVAS_DRAFT_STATE2,
|
|
423
424
|
CANVAS_EDITOR_STATE as CANVAS_EDITOR_STATE2,
|
|
424
425
|
CANVAS_ENRICHMENT_TAG_PARAM,
|
|
@@ -753,6 +754,7 @@ var VisibilityRulesWrapper = (props) => {
|
|
|
753
754
|
// src/components/UniformComposition.ts
|
|
754
755
|
var UniformComposition = async ({
|
|
755
756
|
resolveComponent,
|
|
757
|
+
resolveEmptyPlaceholder,
|
|
756
758
|
route,
|
|
757
759
|
...props
|
|
758
760
|
}) => {
|
|
@@ -777,13 +779,16 @@ var UniformComposition = async ({
|
|
|
777
779
|
const state = route.compositionApiResponse.state;
|
|
778
780
|
if (state === CANVAS_DRAFT_STATE2 || state === CANVAS_EDITOR_STATE2) {
|
|
779
781
|
walkNodeTree(route.compositionApiResponse.composition, (node) => {
|
|
782
|
+
var _a, _b;
|
|
780
783
|
if (node.type === "component" && node.node.parameters) {
|
|
784
|
+
const contextualEditing = node.node.parameters[CANVAS_CONTEXTUAL_EDITING_PARAM];
|
|
785
|
+
const editableFields = (_b = (_a = contextualEditing == null ? void 0 : contextualEditing.value) == null ? void 0 : _a.editableParameters) != null ? _b : [];
|
|
781
786
|
Object.keys(node.node.parameters).forEach((key) => {
|
|
782
787
|
const parameter = node.node.parameters[key];
|
|
783
788
|
if (parameter.type === "text") {
|
|
784
789
|
const contextualParameter = parameter;
|
|
785
790
|
contextualParameter._contextualEditing = {
|
|
786
|
-
isEditable:
|
|
791
|
+
isEditable: editableFields.includes(key)
|
|
787
792
|
};
|
|
788
793
|
}
|
|
789
794
|
});
|
|
@@ -807,7 +812,8 @@ var UniformComposition = async ({
|
|
|
807
812
|
resolveComponent,
|
|
808
813
|
serverContext,
|
|
809
814
|
compositionContext,
|
|
810
|
-
mode: props.mode
|
|
815
|
+
mode: props.mode,
|
|
816
|
+
resolveEmptyPlaceholder
|
|
811
817
|
});
|
|
812
818
|
let transfer = null;
|
|
813
819
|
if (props.mode === "server") {
|
|
@@ -880,6 +886,7 @@ var resolveSlots = ({
|
|
|
880
886
|
component,
|
|
881
887
|
root,
|
|
882
888
|
resolveComponent,
|
|
889
|
+
resolveEmptyPlaceholder,
|
|
883
890
|
serverContext,
|
|
884
891
|
compositionContext,
|
|
885
892
|
mode
|
|
@@ -899,7 +906,8 @@ var resolveSlots = ({
|
|
|
899
906
|
resolveComponent,
|
|
900
907
|
serverContext,
|
|
901
908
|
compositionContext,
|
|
902
|
-
mode
|
|
909
|
+
mode,
|
|
910
|
+
resolveEmptyPlaceholder
|
|
903
911
|
});
|
|
904
912
|
if (resolved) {
|
|
905
913
|
slots[slotName] = {
|
|
@@ -930,6 +938,7 @@ var resolveComponents = ({
|
|
|
930
938
|
slotName,
|
|
931
939
|
slotIndex,
|
|
932
940
|
resolveComponent,
|
|
941
|
+
resolveEmptyPlaceholder,
|
|
933
942
|
compositionContext,
|
|
934
943
|
mode
|
|
935
944
|
}) => {
|
|
@@ -955,11 +964,29 @@ var resolveComponents = ({
|
|
|
955
964
|
component,
|
|
956
965
|
server: isServer
|
|
957
966
|
});
|
|
967
|
+
const isPlaceholder = isComponentPlaceholderId(component == null ? void 0 : component._id);
|
|
968
|
+
let resolveResult = null;
|
|
969
|
+
if (isPlaceholder && resolveEmptyPlaceholder) {
|
|
970
|
+
const resolvedPlaceholder = resolveEmptyPlaceholder({
|
|
971
|
+
parentComponent: parent,
|
|
972
|
+
component,
|
|
973
|
+
slotName,
|
|
974
|
+
slotIndex: componentIndex
|
|
975
|
+
});
|
|
976
|
+
if (resolvedPlaceholder) {
|
|
977
|
+
resolveResult = {
|
|
978
|
+
component: resolvedPlaceholder.component
|
|
979
|
+
};
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
if (!resolveResult) {
|
|
983
|
+
resolveResult = resolveComponent({ component });
|
|
984
|
+
}
|
|
958
985
|
const {
|
|
959
986
|
component: regularComponent,
|
|
960
987
|
includeContext,
|
|
961
988
|
suspense: componentSuspense
|
|
962
|
-
} =
|
|
989
|
+
} = resolveResult || {
|
|
963
990
|
component: null
|
|
964
991
|
};
|
|
965
992
|
if (!systemComponent && !regularComponent) {
|
|
@@ -971,6 +998,7 @@ var resolveComponents = ({
|
|
|
971
998
|
resolveComponent,
|
|
972
999
|
serverContext,
|
|
973
1000
|
compositionContext,
|
|
1001
|
+
resolveEmptyPlaceholder,
|
|
974
1002
|
mode
|
|
975
1003
|
});
|
|
976
1004
|
const resolvedComponent = systemComponent || regularComponent;
|
|
@@ -1020,13 +1048,13 @@ var resolveComponents = ({
|
|
|
1020
1048
|
if (tagElement) {
|
|
1021
1049
|
elements.push(tagElement);
|
|
1022
1050
|
}
|
|
1023
|
-
const
|
|
1024
|
-
if (!
|
|
1051
|
+
const isPlaceholder2 = isComponentPlaceholderId(component == null ? void 0 : component._id);
|
|
1052
|
+
if (!isPlaceholder2 || compositionContext.previewMode === "editor") {
|
|
1025
1053
|
childNode = createElement3(
|
|
1026
1054
|
PureContextualEditingComponentWrapper,
|
|
1027
1055
|
{
|
|
1028
1056
|
key: `${slotName}-${componentIndex}-wrapper`,
|
|
1029
|
-
isPlaceholder,
|
|
1057
|
+
isPlaceholder: isPlaceholder2,
|
|
1030
1058
|
parentComponent: parent,
|
|
1031
1059
|
component,
|
|
1032
1060
|
slotName,
|
package/dist/index.js
CHANGED
|
@@ -780,6 +780,7 @@ var VisibilityRulesWrapper = (props) => {
|
|
|
780
780
|
// src/components/UniformComposition.ts
|
|
781
781
|
var UniformComposition = async ({
|
|
782
782
|
resolveComponent,
|
|
783
|
+
resolveEmptyPlaceholder,
|
|
783
784
|
route,
|
|
784
785
|
...props
|
|
785
786
|
}) => {
|
|
@@ -804,13 +805,16 @@ var UniformComposition = async ({
|
|
|
804
805
|
const state = route.compositionApiResponse.state;
|
|
805
806
|
if (state === import_canvas8.CANVAS_DRAFT_STATE || state === import_canvas8.CANVAS_EDITOR_STATE) {
|
|
806
807
|
(0, import_canvas8.walkNodeTree)(route.compositionApiResponse.composition, (node) => {
|
|
808
|
+
var _a, _b;
|
|
807
809
|
if (node.type === "component" && node.node.parameters) {
|
|
810
|
+
const contextualEditing = node.node.parameters[import_canvas8.CANVAS_CONTEXTUAL_EDITING_PARAM];
|
|
811
|
+
const editableFields = (_b = (_a = contextualEditing == null ? void 0 : contextualEditing.value) == null ? void 0 : _a.editableParameters) != null ? _b : [];
|
|
808
812
|
Object.keys(node.node.parameters).forEach((key) => {
|
|
809
813
|
const parameter = node.node.parameters[key];
|
|
810
814
|
if (parameter.type === "text") {
|
|
811
815
|
const contextualParameter = parameter;
|
|
812
816
|
contextualParameter._contextualEditing = {
|
|
813
|
-
isEditable:
|
|
817
|
+
isEditable: editableFields.includes(key)
|
|
814
818
|
};
|
|
815
819
|
}
|
|
816
820
|
});
|
|
@@ -834,7 +838,8 @@ var UniformComposition = async ({
|
|
|
834
838
|
resolveComponent,
|
|
835
839
|
serverContext,
|
|
836
840
|
compositionContext,
|
|
837
|
-
mode: props.mode
|
|
841
|
+
mode: props.mode,
|
|
842
|
+
resolveEmptyPlaceholder
|
|
838
843
|
});
|
|
839
844
|
let transfer = null;
|
|
840
845
|
if (props.mode === "server") {
|
|
@@ -907,6 +912,7 @@ var resolveSlots = ({
|
|
|
907
912
|
component,
|
|
908
913
|
root,
|
|
909
914
|
resolveComponent,
|
|
915
|
+
resolveEmptyPlaceholder,
|
|
910
916
|
serverContext,
|
|
911
917
|
compositionContext,
|
|
912
918
|
mode
|
|
@@ -926,7 +932,8 @@ var resolveSlots = ({
|
|
|
926
932
|
resolveComponent,
|
|
927
933
|
serverContext,
|
|
928
934
|
compositionContext,
|
|
929
|
-
mode
|
|
935
|
+
mode,
|
|
936
|
+
resolveEmptyPlaceholder
|
|
930
937
|
});
|
|
931
938
|
if (resolved) {
|
|
932
939
|
slots[slotName] = {
|
|
@@ -957,6 +964,7 @@ var resolveComponents = ({
|
|
|
957
964
|
slotName,
|
|
958
965
|
slotIndex,
|
|
959
966
|
resolveComponent,
|
|
967
|
+
resolveEmptyPlaceholder,
|
|
960
968
|
compositionContext,
|
|
961
969
|
mode
|
|
962
970
|
}) => {
|
|
@@ -982,11 +990,29 @@ var resolveComponents = ({
|
|
|
982
990
|
component,
|
|
983
991
|
server: isServer
|
|
984
992
|
});
|
|
993
|
+
const isPlaceholder = (0, import_canvas8.isComponentPlaceholderId)(component == null ? void 0 : component._id);
|
|
994
|
+
let resolveResult = null;
|
|
995
|
+
if (isPlaceholder && resolveEmptyPlaceholder) {
|
|
996
|
+
const resolvedPlaceholder = resolveEmptyPlaceholder({
|
|
997
|
+
parentComponent: parent,
|
|
998
|
+
component,
|
|
999
|
+
slotName,
|
|
1000
|
+
slotIndex: componentIndex
|
|
1001
|
+
});
|
|
1002
|
+
if (resolvedPlaceholder) {
|
|
1003
|
+
resolveResult = {
|
|
1004
|
+
component: resolvedPlaceholder.component
|
|
1005
|
+
};
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
if (!resolveResult) {
|
|
1009
|
+
resolveResult = resolveComponent({ component });
|
|
1010
|
+
}
|
|
985
1011
|
const {
|
|
986
1012
|
component: regularComponent,
|
|
987
1013
|
includeContext,
|
|
988
1014
|
suspense: componentSuspense
|
|
989
|
-
} =
|
|
1015
|
+
} = resolveResult || {
|
|
990
1016
|
component: null
|
|
991
1017
|
};
|
|
992
1018
|
if (!systemComponent && !regularComponent) {
|
|
@@ -998,6 +1024,7 @@ var resolveComponents = ({
|
|
|
998
1024
|
resolveComponent,
|
|
999
1025
|
serverContext,
|
|
1000
1026
|
compositionContext,
|
|
1027
|
+
resolveEmptyPlaceholder,
|
|
1001
1028
|
mode
|
|
1002
1029
|
});
|
|
1003
1030
|
const resolvedComponent = systemComponent || regularComponent;
|
|
@@ -1047,13 +1074,13 @@ var resolveComponents = ({
|
|
|
1047
1074
|
if (tagElement) {
|
|
1048
1075
|
elements.push(tagElement);
|
|
1049
1076
|
}
|
|
1050
|
-
const
|
|
1051
|
-
if (!
|
|
1077
|
+
const isPlaceholder2 = (0, import_canvas8.isComponentPlaceholderId)(component == null ? void 0 : component._id);
|
|
1078
|
+
if (!isPlaceholder2 || compositionContext.previewMode === "editor") {
|
|
1052
1079
|
childNode = (0, import_react10.createElement)(
|
|
1053
1080
|
import_core.PureContextualEditingComponentWrapper,
|
|
1054
1081
|
{
|
|
1055
1082
|
key: `${slotName}-${componentIndex}-wrapper`,
|
|
1056
|
-
isPlaceholder,
|
|
1083
|
+
isPlaceholder: isPlaceholder2,
|
|
1057
1084
|
parentComponent: parent,
|
|
1058
1085
|
component,
|
|
1059
1086
|
slotName,
|
package/dist/index.mjs
CHANGED
|
@@ -419,6 +419,7 @@ async function generateStaticParams() {
|
|
|
419
419
|
|
|
420
420
|
// src/components/UniformComposition.ts
|
|
421
421
|
import {
|
|
422
|
+
CANVAS_CONTEXTUAL_EDITING_PARAM,
|
|
422
423
|
CANVAS_DRAFT_STATE as CANVAS_DRAFT_STATE2,
|
|
423
424
|
CANVAS_EDITOR_STATE as CANVAS_EDITOR_STATE2,
|
|
424
425
|
CANVAS_ENRICHMENT_TAG_PARAM,
|
|
@@ -753,6 +754,7 @@ var VisibilityRulesWrapper = (props) => {
|
|
|
753
754
|
// src/components/UniformComposition.ts
|
|
754
755
|
var UniformComposition = async ({
|
|
755
756
|
resolveComponent,
|
|
757
|
+
resolveEmptyPlaceholder,
|
|
756
758
|
route,
|
|
757
759
|
...props
|
|
758
760
|
}) => {
|
|
@@ -777,13 +779,16 @@ var UniformComposition = async ({
|
|
|
777
779
|
const state = route.compositionApiResponse.state;
|
|
778
780
|
if (state === CANVAS_DRAFT_STATE2 || state === CANVAS_EDITOR_STATE2) {
|
|
779
781
|
walkNodeTree(route.compositionApiResponse.composition, (node) => {
|
|
782
|
+
var _a, _b;
|
|
780
783
|
if (node.type === "component" && node.node.parameters) {
|
|
784
|
+
const contextualEditing = node.node.parameters[CANVAS_CONTEXTUAL_EDITING_PARAM];
|
|
785
|
+
const editableFields = (_b = (_a = contextualEditing == null ? void 0 : contextualEditing.value) == null ? void 0 : _a.editableParameters) != null ? _b : [];
|
|
781
786
|
Object.keys(node.node.parameters).forEach((key) => {
|
|
782
787
|
const parameter = node.node.parameters[key];
|
|
783
788
|
if (parameter.type === "text") {
|
|
784
789
|
const contextualParameter = parameter;
|
|
785
790
|
contextualParameter._contextualEditing = {
|
|
786
|
-
isEditable:
|
|
791
|
+
isEditable: editableFields.includes(key)
|
|
787
792
|
};
|
|
788
793
|
}
|
|
789
794
|
});
|
|
@@ -807,7 +812,8 @@ var UniformComposition = async ({
|
|
|
807
812
|
resolveComponent,
|
|
808
813
|
serverContext,
|
|
809
814
|
compositionContext,
|
|
810
|
-
mode: props.mode
|
|
815
|
+
mode: props.mode,
|
|
816
|
+
resolveEmptyPlaceholder
|
|
811
817
|
});
|
|
812
818
|
let transfer = null;
|
|
813
819
|
if (props.mode === "server") {
|
|
@@ -880,6 +886,7 @@ var resolveSlots = ({
|
|
|
880
886
|
component,
|
|
881
887
|
root,
|
|
882
888
|
resolveComponent,
|
|
889
|
+
resolveEmptyPlaceholder,
|
|
883
890
|
serverContext,
|
|
884
891
|
compositionContext,
|
|
885
892
|
mode
|
|
@@ -899,7 +906,8 @@ var resolveSlots = ({
|
|
|
899
906
|
resolveComponent,
|
|
900
907
|
serverContext,
|
|
901
908
|
compositionContext,
|
|
902
|
-
mode
|
|
909
|
+
mode,
|
|
910
|
+
resolveEmptyPlaceholder
|
|
903
911
|
});
|
|
904
912
|
if (resolved) {
|
|
905
913
|
slots[slotName] = {
|
|
@@ -930,6 +938,7 @@ var resolveComponents = ({
|
|
|
930
938
|
slotName,
|
|
931
939
|
slotIndex,
|
|
932
940
|
resolveComponent,
|
|
941
|
+
resolveEmptyPlaceholder,
|
|
933
942
|
compositionContext,
|
|
934
943
|
mode
|
|
935
944
|
}) => {
|
|
@@ -955,11 +964,29 @@ var resolveComponents = ({
|
|
|
955
964
|
component,
|
|
956
965
|
server: isServer
|
|
957
966
|
});
|
|
967
|
+
const isPlaceholder = isComponentPlaceholderId(component == null ? void 0 : component._id);
|
|
968
|
+
let resolveResult = null;
|
|
969
|
+
if (isPlaceholder && resolveEmptyPlaceholder) {
|
|
970
|
+
const resolvedPlaceholder = resolveEmptyPlaceholder({
|
|
971
|
+
parentComponent: parent,
|
|
972
|
+
component,
|
|
973
|
+
slotName,
|
|
974
|
+
slotIndex: componentIndex
|
|
975
|
+
});
|
|
976
|
+
if (resolvedPlaceholder) {
|
|
977
|
+
resolveResult = {
|
|
978
|
+
component: resolvedPlaceholder.component
|
|
979
|
+
};
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
if (!resolveResult) {
|
|
983
|
+
resolveResult = resolveComponent({ component });
|
|
984
|
+
}
|
|
958
985
|
const {
|
|
959
986
|
component: regularComponent,
|
|
960
987
|
includeContext,
|
|
961
988
|
suspense: componentSuspense
|
|
962
|
-
} =
|
|
989
|
+
} = resolveResult || {
|
|
963
990
|
component: null
|
|
964
991
|
};
|
|
965
992
|
if (!systemComponent && !regularComponent) {
|
|
@@ -971,6 +998,7 @@ var resolveComponents = ({
|
|
|
971
998
|
resolveComponent,
|
|
972
999
|
serverContext,
|
|
973
1000
|
compositionContext,
|
|
1001
|
+
resolveEmptyPlaceholder,
|
|
974
1002
|
mode
|
|
975
1003
|
});
|
|
976
1004
|
const resolvedComponent = systemComponent || regularComponent;
|
|
@@ -1020,13 +1048,13 @@ var resolveComponents = ({
|
|
|
1020
1048
|
if (tagElement) {
|
|
1021
1049
|
elements.push(tagElement);
|
|
1022
1050
|
}
|
|
1023
|
-
const
|
|
1024
|
-
if (!
|
|
1051
|
+
const isPlaceholder2 = isComponentPlaceholderId(component == null ? void 0 : component._id);
|
|
1052
|
+
if (!isPlaceholder2 || compositionContext.previewMode === "editor") {
|
|
1025
1053
|
childNode = createElement3(
|
|
1026
1054
|
PureContextualEditingComponentWrapper,
|
|
1027
1055
|
{
|
|
1028
1056
|
key: `${slotName}-${componentIndex}-wrapper`,
|
|
1029
|
-
isPlaceholder,
|
|
1057
|
+
isPlaceholder: isPlaceholder2,
|
|
1030
1058
|
parentComponent: parent,
|
|
1031
1059
|
component,
|
|
1032
1060
|
slotName,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uniformdev/canvas-next-rsc",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.209.1",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsup",
|
|
@@ -61,15 +61,15 @@
|
|
|
61
61
|
"react-dom": "18.3.1"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@uniformdev/canvas": "19.
|
|
65
|
-
"@uniformdev/canvas-next-rsc-client": "^19.
|
|
66
|
-
"@uniformdev/canvas-next-rsc-shared": "^19.
|
|
67
|
-
"@uniformdev/canvas-react": "19.
|
|
68
|
-
"@uniformdev/context": "19.
|
|
69
|
-
"@uniformdev/project-map": "19.
|
|
70
|
-
"@uniformdev/redirect": "19.
|
|
71
|
-
"@uniformdev/richtext": "19.
|
|
72
|
-
"@uniformdev/webhooks": "19.
|
|
64
|
+
"@uniformdev/canvas": "19.209.1",
|
|
65
|
+
"@uniformdev/canvas-next-rsc-client": "^19.209.1",
|
|
66
|
+
"@uniformdev/canvas-next-rsc-shared": "^19.209.1",
|
|
67
|
+
"@uniformdev/canvas-react": "19.209.1",
|
|
68
|
+
"@uniformdev/context": "19.209.1",
|
|
69
|
+
"@uniformdev/project-map": "19.209.1",
|
|
70
|
+
"@uniformdev/redirect": "19.209.1",
|
|
71
|
+
"@uniformdev/richtext": "19.209.1",
|
|
72
|
+
"@uniformdev/webhooks": "19.209.1",
|
|
73
73
|
"@vercel/edge-config": "^0.4.0",
|
|
74
74
|
"encoding": "^0.1.13",
|
|
75
75
|
"server-only": "^0.0.1",
|
|
@@ -86,5 +86,5 @@
|
|
|
86
86
|
"publishConfig": {
|
|
87
87
|
"access": "public"
|
|
88
88
|
},
|
|
89
|
-
"gitHead": "
|
|
89
|
+
"gitHead": "4dd40ad208d31d9c446a01434e804a0d47a562a9"
|
|
90
90
|
}
|