@fragmentsx/render-react 1.3.0 → 1.4.0
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/hooks/fragment/useFragment.d.ts.map +1 -1
- package/dist/hooks/fragment/useFragmentManager.d.ts +1 -1
- package/dist/hooks/fragment/useFragmentManager.d.ts.map +1 -1
- package/dist/hooks/layer/index.d.ts +2 -0
- package/dist/hooks/layer/index.d.ts.map +1 -1
- package/dist/hooks/layer/useReadVariable.d.ts +1 -0
- package/dist/hooks/layer/useReadVariable.d.ts.map +1 -1
- package/dist/hooks/layer/useResolvedLayer.d.ts +14 -0
- package/dist/hooks/layer/useResolvedLayer.d.ts.map +1 -0
- package/dist/hooks/layer/useResolvedLayerVariables.d.ts +7 -0
- package/dist/hooks/layer/useResolvedLayerVariables.d.ts.map +1 -0
- package/dist/hooks/layer-styles/useLayerPaint.d.ts +8 -0
- package/dist/hooks/layer-styles/useLayerPaint.d.ts.map +1 -1
- package/dist/hooks/layer-styles/useLayerStyles/index.d.ts +1 -1
- package/dist/hooks/layer-styles/useLayerStyles/index.d.ts.map +1 -1
- package/dist/hooks/layer-styles/useLayerStyles/useImagePaint.d.ts +6 -0
- package/dist/hooks/layer-styles/useLayerStyles/useImagePaint.d.ts.map +1 -1
- package/dist/hooks/layer-styles/useLayerStyles/useLayerBackground.d.ts +4 -2
- package/dist/hooks/layer-styles/useLayerStyles/useLayerBackground.d.ts.map +1 -1
- package/dist/hooks/layer-styles/useLayerStyles/useLayerBorder.d.ts +16 -0
- package/dist/hooks/layer-styles/useLayerStyles/useLayerBorder.d.ts.map +1 -1
- package/dist/hooks/layer-styles/useLayerStyles/useLayerDisplay.d.ts +2 -0
- package/dist/hooks/layer-styles/useLayerStyles/useLayerDisplay.d.ts.map +1 -1
- package/dist/hooks/layer-styles/useLayerStyles/useLayerFlex.d.ts +4 -0
- package/dist/hooks/layer-styles/useLayerStyles/useLayerFlex.d.ts.map +1 -1
- package/dist/hooks/layer-styles/useLayerStyles/useLayerLayout.d.ts +10 -0
- package/dist/hooks/layer-styles/useLayerStyles/useLayerLayout.d.ts.map +1 -1
- package/dist/hooks/layer-styles/useLayerStyles/useLayerPosition.d.ts +36 -0
- package/dist/hooks/layer-styles/useLayerStyles/useLayerPosition.d.ts.map +1 -1
- package/dist/hooks/layer-styles/useLayerStyles/useLayerSize.d.ts +7 -0
- package/dist/hooks/layer-styles/useLayerStyles/useLayerSize.d.ts.map +1 -1
- package/dist/hooks/layer-styles/useLayerStyles/useLayerSizeValue.d.ts +9 -0
- package/dist/hooks/layer-styles/useLayerStyles/useLayerSizeValue.d.ts.map +1 -1
- package/dist/hooks/layer-styles/useLayerStyles/useLayerTextStyles.d.ts +4 -0
- package/dist/hooks/layer-styles/useLayerStyles/useLayerTextStyles.d.ts.map +1 -1
- package/dist/hooks/layer-styles/useLayerStyles/useOptionalSize.d.ts +2 -0
- package/dist/hooks/layer-styles/useLayerStyles/useOptionalSize.d.ts.map +1 -1
- package/dist/hooks/utils/useExtractProps.d.ts +16 -0
- package/dist/hooks/utils/useExtractProps.d.ts.map +1 -0
- package/dist/hooks/utils/useLayerInteractions.d.ts.map +1 -1
- package/dist/index.cjs.js +1363 -708
- package/dist/index.es.js +1366 -711
- package/dist/nodes/Area/Area.d.ts.map +1 -1
- package/dist/nodes/Collection/hooks/useCollection.d.ts +1 -1
- package/dist/nodes/Collection/hooks/useCollection.d.ts.map +1 -1
- package/dist/nodes/CollectionItem/CollectionItem.d.ts.map +1 -1
- package/dist/nodes/CollectionItem/hooks/useCollection.d.ts +1 -1
- package/dist/nodes/CssChunk/hooks/useCssChunk.d.ts.map +1 -1
- package/dist/nodes/Fragment/Fragment.d.ts.map +1 -1
- package/dist/nodes/Frame/hooks/useFrame.d.ts +1 -1
- package/dist/nodes/Instance/Instance.d.ts.map +1 -1
- package/dist/nodes/Instance/hooks/useInstance.d.ts +1 -1
- package/dist/nodes/Instance/hooks/useInstanceProps.d.ts.map +1 -1
- package/dist/nodes/Instance/test/array-linking.browser.test.d.ts +2 -0
- package/dist/nodes/Instance/test/array-linking.browser.test.d.ts.map +1 -0
- package/dist/nodes/Instance/test/cardDocuments.d.ts +39 -0
- package/dist/nodes/Instance/test/cardDocuments.d.ts.map +1 -0
- package/dist/nodes/Instance/test/collection-props.browser.test.d.ts +2 -0
- package/dist/nodes/Instance/test/collection-props.browser.test.d.ts.map +1 -0
- package/dist/nodes/Instance/test/collection-schema.browser.test.d.ts +2 -0
- package/dist/nodes/Instance/test/collection-schema.browser.test.d.ts.map +1 -0
- package/dist/nodes/Instance/test/props-basic.browser.test.d.ts +2 -0
- package/dist/nodes/Instance/test/props-basic.browser.test.d.ts.map +1 -0
- package/dist/nodes/Instance/test/props-drilling.browser.test.d.ts +2 -0
- package/dist/nodes/Instance/test/props-drilling.browser.test.d.ts.map +1 -0
- package/dist/nodes/Instance/test/props-dynamic.browser.test.d.ts +2 -0
- package/dist/nodes/Instance/test/props-dynamic.browser.test.d.ts.map +1 -0
- package/dist/nodes/Text/hooks/useTextAttributes.d.ts +1 -1
- package/dist/providers/AreaManager.d.ts +3 -0
- package/dist/providers/AreaManager.d.ts.map +1 -0
- package/dist/providers/Scope/index.d.ts.map +1 -1
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/utils/common/index.d.ts +0 -1
- package/dist/utils/common/index.d.ts.map +1 -1
- package/dist/utils/css/buildCssBlock.d.ts +6 -0
- package/dist/utils/css/buildCssBlock.d.ts.map +1 -0
- package/dist/utils/css/buildCssBlock.test.d.ts +2 -0
- package/dist/utils/css/buildCssBlock.test.d.ts.map +1 -0
- package/dist/utils/css/compareRules.d.ts +3 -0
- package/dist/utils/css/compareRules.d.ts.map +1 -0
- package/dist/utils/css/compareRules.test.d.ts +2 -0
- package/dist/utils/css/compareRules.test.d.ts.map +1 -0
- package/dist/utils/css/extractStyleSheet.d.ts +6 -0
- package/dist/utils/css/extractStyleSheet.d.ts.map +1 -0
- package/dist/utils/css/findGroups.d.ts +11 -0
- package/dist/utils/css/findGroups.d.ts.map +1 -0
- package/dist/utils/css/getAllChildren.d.ts +4 -0
- package/dist/utils/css/getAllChildren.d.ts.map +1 -0
- package/dist/utils/css/getAllChildren.test.d.ts +2 -0
- package/dist/utils/css/getAllChildren.test.d.ts.map +1 -0
- package/dist/utils/css/index.d.ts +12 -0
- package/dist/utils/css/index.d.ts.map +1 -0
- package/dist/utils/css/makeCss.d.ts +5 -0
- package/dist/utils/css/makeCss.d.ts.map +1 -0
- package/dist/utils/css/toCSS.d.ts +3 -0
- package/dist/utils/css/toCSS.d.ts.map +1 -0
- package/dist/utils/css/toCSS.test.d.ts +2 -0
- package/dist/utils/css/toCSS.test.d.ts.map +1 -0
- package/dist/utils/css/types.d.ts +5 -0
- package/dist/utils/css/types.d.ts.map +1 -0
- package/dist/utils/layer/cloneLayer.d.ts.map +1 -1
- package/dist/utils/variables/index.d.ts +0 -1
- package/dist/utils/variables/index.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/hooks/utils/useExpandedObjectProps.d.ts +0 -12
- package/dist/hooks/utils/useExpandedObjectProps.d.ts.map +0 -1
- package/dist/utils/common/loadFragmentManager.d.ts +0 -3
- package/dist/utils/common/loadFragmentManager.d.ts.map +0 -1
- package/dist/utils/variables/expandObjectProps.d.ts +0 -9
- package/dist/utils/variables/expandObjectProps.d.ts.map +0 -1
- package/dist/utils/variables/expandObjectProps.test.d.ts +0 -2
- package/dist/utils/variables/expandObjectProps.test.d.ts.map +0 -1
package/dist/index.es.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { createContext, useContext, useReducer, useRef, useEffect, useCallback,
|
|
2
|
-
import { definition, getNormalizeLayer as getNormalizeLayer$1, isVariableLink as isVariableLink$1, parseLayerField } from "@fragmentsx/definition";
|
|
1
|
+
import { createContext, useContext, useMemo, useReducer, useRef, useEffect, useCallback, useState, memo, Suspense } from "react";
|
|
2
|
+
import { definition, getNormalizeLayer as getNormalizeLayer$1, isVariableLink as isVariableLink$1, parseLayerField, isLink as isLink$1 } from "@fragmentsx/definition";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { cleanGraph, generateId, getKey as getKey$1, isValue, isObject, pick, toPx, setKey as setKey$1, toKebabCase, set, isPrimitive, get, omit, noop, isFiniteNumber, hashGenerator as hashGenerator$1, isBrowser as isBrowser$1 } from "@fragmentsx/utils";
|
|
5
|
+
import { keyOfEntity, isPartialKey, entityOfKey, isLinkKey } from "@graph-state/core";
|
|
4
6
|
import { useGraph, useGraphStack } from "@graph-state/react";
|
|
5
|
-
import {
|
|
6
|
-
import { entityOfKey, keyOfEntity, isPartialKey, isLinkKey } from "@graph-state/core";
|
|
7
|
+
import { createAreaManager } from "@fragmentsx/client-core";
|
|
7
8
|
const GlobalManagerContext = createContext(null);
|
|
8
9
|
const GlobalManagerProvider = GlobalManagerContext.Provider;
|
|
9
10
|
const FragmentContext = createContext({
|
|
@@ -22,35 +23,9 @@ const RenderTargetContext = createContext(
|
|
|
22
23
|
definition.renderTarget.document
|
|
23
24
|
);
|
|
24
25
|
const RenderTargetProvider = RenderTargetContext.Provider;
|
|
26
|
+
const AreaManagerContext = createContext(null);
|
|
27
|
+
const AreaManagerProvider = AreaManagerContext.Provider;
|
|
25
28
|
const ScopeContext = createContext([]);
|
|
26
|
-
const useGlobalManager = (globalManager) => {
|
|
27
|
-
var _a, _b;
|
|
28
|
-
const currentGlobalManager = useContext(GlobalManagerContext);
|
|
29
|
-
const resultManager = globalManager ?? currentGlobalManager;
|
|
30
|
-
const [fragmentsGraph] = useGraph(
|
|
31
|
-
resultManager,
|
|
32
|
-
(_a = resultManager == null ? void 0 : resultManager.$fragments) == null ? void 0 : _a.key
|
|
33
|
-
);
|
|
34
|
-
const queryFragmentManager = (id) => {
|
|
35
|
-
var _a2, _b2;
|
|
36
|
-
return (_b2 = (_a2 = resultManager == null ? void 0 : resultManager.$load) == null ? void 0 : _a2.loadFragment) == null ? void 0 : _b2.call(_a2, id);
|
|
37
|
-
};
|
|
38
|
-
const queryArea = (id) => {
|
|
39
|
-
var _a2, _b2;
|
|
40
|
-
return (_b2 = (_a2 = resultManager == null ? void 0 : resultManager.$load) == null ? void 0 : _a2.loadArea) == null ? void 0 : _b2.call(_a2, id);
|
|
41
|
-
};
|
|
42
|
-
const setRenderTarget = (value) => {
|
|
43
|
-
resultManager == null ? void 0 : resultManager.setRenderTarget(value);
|
|
44
|
-
};
|
|
45
|
-
return {
|
|
46
|
-
fragmentsGraph,
|
|
47
|
-
manager: resultManager,
|
|
48
|
-
queryFragmentManager,
|
|
49
|
-
queryArea,
|
|
50
|
-
getFragmentManager: ((_b = resultManager == null ? void 0 : resultManager.$fragments) == null ? void 0 : _b.getManager) ?? noop,
|
|
51
|
-
setRenderTarget
|
|
52
|
-
};
|
|
53
|
-
};
|
|
54
29
|
const Scope = ({
|
|
55
30
|
value,
|
|
56
31
|
children,
|
|
@@ -58,9 +33,11 @@ const Scope = ({
|
|
|
58
33
|
layerKey
|
|
59
34
|
}) => {
|
|
60
35
|
var _a, _b;
|
|
61
|
-
const { manager: globalManager } = useGlobalManager();
|
|
62
36
|
const currentScope = useContext(ScopeContext) ?? [];
|
|
63
|
-
const nextScope =
|
|
37
|
+
const nextScope = useMemo(
|
|
38
|
+
() => [...currentScope, value],
|
|
39
|
+
[currentScope, value]
|
|
40
|
+
);
|
|
64
41
|
(_b = (_a = fragmentManager == null ? void 0 : fragmentManager.$scopes) == null ? void 0 : _a.registerScope) == null ? void 0 : _b.call(_a, layerKey, value);
|
|
65
42
|
return /* @__PURE__ */ jsx(ScopeContext.Provider, { value: nextScope, children });
|
|
66
43
|
};
|
|
@@ -71,191 +48,6 @@ const getOverrider = (manager, layerEntity) => {
|
|
|
71
48
|
const layer = manager.resolve(layerEntity);
|
|
72
49
|
return manager.resolve(getKey(layer == null ? void 0 : layer.overrideFrom) ?? layerEntity);
|
|
73
50
|
};
|
|
74
|
-
const getLayer = (manager, layer, options) => {
|
|
75
|
-
if (!manager || !layer) return null;
|
|
76
|
-
const layerKey = manager.keyOfEntity(layer);
|
|
77
|
-
const layerData = manager.resolve(layerKey);
|
|
78
|
-
const overrider = getOverrider(manager, layerKey);
|
|
79
|
-
return getNormalizeLayer$1(layerData, overrider, options == null ? void 0 : options.withFallback);
|
|
80
|
-
};
|
|
81
|
-
const getNormalizeLayer = (layerKey, manager, options) => {
|
|
82
|
-
const layer = manager == null ? void 0 : manager.resolve(layerKey);
|
|
83
|
-
const parsedLayer = getLayer(manager, layerKey, options);
|
|
84
|
-
return {
|
|
85
|
-
layerKey,
|
|
86
|
-
rawLayer: layer,
|
|
87
|
-
layer: parsedLayer
|
|
88
|
-
};
|
|
89
|
-
};
|
|
90
|
-
const useNormalizeLayer = (layerKey, manager, options) => {
|
|
91
|
-
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
92
|
-
const resultManager = manager ?? fragmentManager;
|
|
93
|
-
if (!resultManager) {
|
|
94
|
-
return {
|
|
95
|
-
layerKey,
|
|
96
|
-
rawLayer: null,
|
|
97
|
-
layer: null
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
return getNormalizeLayer(layerKey, resultManager, options);
|
|
101
|
-
};
|
|
102
|
-
const useNormalizeLayers = (layerKeys, manager, options) => {
|
|
103
|
-
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
104
|
-
const resultManager = manager ?? fragmentManager;
|
|
105
|
-
return layerKeys.map(
|
|
106
|
-
(layerKey) => getNormalizeLayer(layerKey, resultManager, options)
|
|
107
|
-
);
|
|
108
|
-
};
|
|
109
|
-
function useForceUpdate() {
|
|
110
|
-
return useReducer(() => ({}), {});
|
|
111
|
-
}
|
|
112
|
-
const extractVariableValue = (input, variableId) => {
|
|
113
|
-
if (isObject(input)) {
|
|
114
|
-
if (variableId in input) {
|
|
115
|
-
return input[variableId];
|
|
116
|
-
}
|
|
117
|
-
for (let key in input) {
|
|
118
|
-
if (input.hasOwnProperty(key)) {
|
|
119
|
-
const result = extractVariableValue(input[key], variableId);
|
|
120
|
-
if (result !== void 0) {
|
|
121
|
-
return result;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
return void 0;
|
|
127
|
-
};
|
|
128
|
-
function deepMerge(a, b) {
|
|
129
|
-
if (!isObject(a) || !isObject(b)) return a;
|
|
130
|
-
const result = { ...b };
|
|
131
|
-
for (const [key, value] of Object.entries(a)) {
|
|
132
|
-
if (key in result && typeof result[key] === "object" && typeof value === "object") {
|
|
133
|
-
result[key] = deepMerge(value, result[key]);
|
|
134
|
-
} else {
|
|
135
|
-
result[key] = value;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return result;
|
|
139
|
-
}
|
|
140
|
-
const useReadVariable = (variableKey, customScopes) => {
|
|
141
|
-
const contextScopes = useContext(ScopeContext);
|
|
142
|
-
const scopes = customScopes ?? contextScopes;
|
|
143
|
-
const unmountAbortController = useRef(new AbortController());
|
|
144
|
-
const [dep, forceUpdate] = useForceUpdate();
|
|
145
|
-
useEffect(
|
|
146
|
-
() => () => {
|
|
147
|
-
var _a;
|
|
148
|
-
(_a = unmountAbortController.current) == null ? void 0 : _a.abort("unmount");
|
|
149
|
-
},
|
|
150
|
-
[]
|
|
151
|
-
);
|
|
152
|
-
const extractVariableDefaultValue = (manager, variableEntity) => {
|
|
153
|
-
const variableLayer = manager.resolve(variableEntity);
|
|
154
|
-
if ((variableLayer == null ? void 0 : variableLayer.type) !== definition.variableType.Object)
|
|
155
|
-
return variableLayer == null ? void 0 : variableLayer.defaultValue;
|
|
156
|
-
return Object.values((variableLayer == null ? void 0 : variableLayer.fields) ?? {}).reduce(
|
|
157
|
-
(acc, fieldLink) => {
|
|
158
|
-
var _a;
|
|
159
|
-
if (!!fieldLink && isVariableLink$1(fieldLink)) {
|
|
160
|
-
const _id = (_a = entityOfKey(fieldLink)) == null ? void 0 : _a._id;
|
|
161
|
-
if (_id) {
|
|
162
|
-
acc[_id] = extractVariableDefaultValue(manager, fieldLink);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
return acc;
|
|
166
|
-
},
|
|
167
|
-
{}
|
|
168
|
-
);
|
|
169
|
-
};
|
|
170
|
-
const resolveVariableLayer = (manager, variableLink, customProps) => {
|
|
171
|
-
var _a, _b;
|
|
172
|
-
const variableLayer = (_a = getNormalizeLayer(variableLink, manager)) == null ? void 0 : _a.layer;
|
|
173
|
-
if (!variableLayer) return null;
|
|
174
|
-
if ((variableLayer == null ? void 0 : variableLayer.type) === definition.variableType.Array) {
|
|
175
|
-
const definitionLayer = manager.resolve(variableLayer == null ? void 0 : variableLayer.definition);
|
|
176
|
-
if (!((_b = variableLayer == null ? void 0 : variableLayer.defaultValue) == null ? void 0 : _b.length) || (definitionLayer == null ? void 0 : definitionLayer.type) !== definition.variableType.Object)
|
|
177
|
-
return variableLayer;
|
|
178
|
-
const definitionDefaultValue = extractVariableDefaultValue(
|
|
179
|
-
manager,
|
|
180
|
-
definitionLayer
|
|
181
|
-
);
|
|
182
|
-
const customValue = customProps == null ? void 0 : customProps[variableLayer == null ? void 0 : variableLayer._id];
|
|
183
|
-
return {
|
|
184
|
-
...variableLayer,
|
|
185
|
-
defaultValue: (variableLayer == null ? void 0 : variableLayer.defaultValue).map((item, index) => {
|
|
186
|
-
const customItemValue = Array.isArray(customValue) ? customValue.at(index) : null;
|
|
187
|
-
return deepMerge(
|
|
188
|
-
customItemValue ? { ...item, ...customItemValue } : item,
|
|
189
|
-
definitionDefaultValue
|
|
190
|
-
);
|
|
191
|
-
})
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
return variableLayer;
|
|
195
|
-
};
|
|
196
|
-
const readVariable = (variableKey2) => {
|
|
197
|
-
var _a, _b, _c, _d, _e;
|
|
198
|
-
const variableId = (_a = entityOfKey(variableKey2)) == null ? void 0 : _a._id;
|
|
199
|
-
if (!isVariableLink$1(variableKey2)) {
|
|
200
|
-
return {
|
|
201
|
-
value: null,
|
|
202
|
-
layer: null
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
let instanceScope = scopes.findLast(
|
|
206
|
-
(scope) => {
|
|
207
|
-
var _a2;
|
|
208
|
-
return (scope == null ? void 0 : scope.type) === definition.scopeTypes.InstanceScope && !!((_a2 = scope.documentManager) == null ? void 0 : _a2.resolve(variableKey2));
|
|
209
|
-
}
|
|
210
|
-
);
|
|
211
|
-
if (!instanceScope) {
|
|
212
|
-
instanceScope = scopes.find(
|
|
213
|
-
(scope) => (scope == null ? void 0 : scope.type) === definition.scopeTypes.InstanceScope
|
|
214
|
-
);
|
|
215
|
-
}
|
|
216
|
-
const variableLayer = resolveVariableLayer(
|
|
217
|
-
instanceScope == null ? void 0 : instanceScope.documentManager,
|
|
218
|
-
variableKey2
|
|
219
|
-
);
|
|
220
|
-
(_c = instanceScope == null ? void 0 : instanceScope.documentManager) == null ? void 0 : _c.subscribe(variableKey2, forceUpdate, {
|
|
221
|
-
signal: (_b = unmountAbortController.current) == null ? void 0 : _b.signal
|
|
222
|
-
});
|
|
223
|
-
let instanceProp = (_d = instanceScope == null ? void 0 : instanceScope.props) == null ? void 0 : _d[variableId];
|
|
224
|
-
if (Array.isArray(instanceProp)) {
|
|
225
|
-
instanceProp = instanceProp.map(
|
|
226
|
-
(rawProp, index) => {
|
|
227
|
-
var _a2;
|
|
228
|
-
return deepMerge(rawProp, (_a2 = variableLayer == null ? void 0 : variableLayer.defaultValue) == null ? void 0 : _a2.at(index));
|
|
229
|
-
}
|
|
230
|
-
);
|
|
231
|
-
}
|
|
232
|
-
const lastCollectionItem = scopes.findLast(
|
|
233
|
-
(scope) => (scope == null ? void 0 : scope.type) === definition.scopeTypes.CollectionItemScope
|
|
234
|
-
);
|
|
235
|
-
resolveVariableLayer(
|
|
236
|
-
lastCollectionItem == null ? void 0 : lastCollectionItem.manager,
|
|
237
|
-
lastCollectionItem == null ? void 0 : lastCollectionItem.sourceDefinition,
|
|
238
|
-
lastCollectionItem == null ? void 0 : lastCollectionItem.value
|
|
239
|
-
);
|
|
240
|
-
const collectionItemProp = isPrimitive(lastCollectionItem == null ? void 0 : lastCollectionItem.value) && ((_e = entityOfKey(lastCollectionItem == null ? void 0 : lastCollectionItem.sourceDefinition)) == null ? void 0 : _e._id) === variableId ? lastCollectionItem == null ? void 0 : lastCollectionItem.value : extractVariableValue(lastCollectionItem == null ? void 0 : lastCollectionItem.value, variableId);
|
|
241
|
-
const currentValue = variableKey2 === instanceProp ? null : collectionItemProp ?? instanceProp ?? null;
|
|
242
|
-
const required = (variableLayer == null ? void 0 : variableLayer.required) ?? false;
|
|
243
|
-
const defaultValue = (variableLayer == null ? void 0 : variableLayer.defaultValue) ?? null;
|
|
244
|
-
const resultValue = required ? currentValue : currentValue ?? collectionItemProp ?? defaultValue;
|
|
245
|
-
if (isVariableLink$1(resultValue)) {
|
|
246
|
-
return readVariable(resultValue);
|
|
247
|
-
}
|
|
248
|
-
return {
|
|
249
|
-
value: resultValue,
|
|
250
|
-
layer: variableLayer
|
|
251
|
-
};
|
|
252
|
-
};
|
|
253
|
-
const result = readVariable(variableKey);
|
|
254
|
-
return {
|
|
255
|
-
...result,
|
|
256
|
-
readVariable
|
|
257
|
-
};
|
|
258
|
-
};
|
|
259
51
|
const getParent = (manager, layerKey) => {
|
|
260
52
|
const layer = manager.resolve(layerKey);
|
|
261
53
|
return manager.resolve(getKey(layer == null ? void 0 : layer.parent) ?? null);
|
|
@@ -431,6 +223,9 @@ const cloneLayer = (manager, layer, externalProps = {}) => {
|
|
|
431
223
|
layerGraph,
|
|
432
224
|
(key, value, history) => {
|
|
433
225
|
const isRoot = history.length <= 2;
|
|
226
|
+
if ((value == null ? void 0 : value._type) === definition.nodes.Instance && key === "props") {
|
|
227
|
+
return cleanGraph(value);
|
|
228
|
+
}
|
|
434
229
|
if (!!value && n(value) && !IGNORE_TYPES.includes(value._type)) {
|
|
435
230
|
const nextId = generateId();
|
|
436
231
|
const parentFromValue = getKey$1(value.parent);
|
|
@@ -667,6 +462,41 @@ const moveChildren = (manager, targetKey, to, index) => {
|
|
|
667
462
|
spliceChildren(manager, targetParent, targetKey);
|
|
668
463
|
}
|
|
669
464
|
};
|
|
465
|
+
const getLayer = (manager, layer, options) => {
|
|
466
|
+
if (!manager || !layer) return null;
|
|
467
|
+
const layerKey = manager.keyOfEntity(layer);
|
|
468
|
+
const layerData = manager.resolve(layerKey);
|
|
469
|
+
const overrider = getOverrider(manager, layerKey);
|
|
470
|
+
return getNormalizeLayer$1(layerData, overrider, options == null ? void 0 : options.withFallback);
|
|
471
|
+
};
|
|
472
|
+
const getNormalizeLayer = (layerKey, manager, options) => {
|
|
473
|
+
const layer = manager == null ? void 0 : manager.resolve(layerKey);
|
|
474
|
+
const parsedLayer = getLayer(manager, layerKey, options);
|
|
475
|
+
return {
|
|
476
|
+
layerKey,
|
|
477
|
+
rawLayer: layer,
|
|
478
|
+
layer: parsedLayer
|
|
479
|
+
};
|
|
480
|
+
};
|
|
481
|
+
const useNormalizeLayer = (layerKey, manager, options) => {
|
|
482
|
+
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
483
|
+
const resultManager = manager ?? fragmentManager;
|
|
484
|
+
if (!resultManager) {
|
|
485
|
+
return {
|
|
486
|
+
layerKey,
|
|
487
|
+
rawLayer: null,
|
|
488
|
+
layer: null
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
return getNormalizeLayer(layerKey, resultManager, options);
|
|
492
|
+
};
|
|
493
|
+
const useNormalizeLayers = (layerKeys, manager, options) => {
|
|
494
|
+
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
495
|
+
const resultManager = manager ?? fragmentManager;
|
|
496
|
+
return layerKeys.map(
|
|
497
|
+
(layerKey) => getNormalizeLayer(layerKey, resultManager, options)
|
|
498
|
+
);
|
|
499
|
+
};
|
|
670
500
|
const calcBackground = (manager, layerKey) => {
|
|
671
501
|
manager.resolve(layerKey);
|
|
672
502
|
const { layer } = getNormalizeLayer(layerKey, manager);
|
|
@@ -802,111 +632,15 @@ const toCssCustomProperties = (props) => {
|
|
|
802
632
|
{}
|
|
803
633
|
);
|
|
804
634
|
};
|
|
805
|
-
const
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
635
|
+
const declareFragmentProperty = (manager, property, fragmentLink = manager.$fragment.root) => {
|
|
636
|
+
const propertyLayer = createLayer(property);
|
|
637
|
+
if (propertyLayer && "type" in propertyLayer) {
|
|
638
|
+
manager.mutate(manager.keyOfEntity(fragmentLink), {
|
|
639
|
+
properties: [propertyLayer]
|
|
640
|
+
});
|
|
641
|
+
return manager.keyOfEntity(propertyLayer);
|
|
811
642
|
}
|
|
812
|
-
return
|
|
813
|
-
};
|
|
814
|
-
const toVariableLink = (field) => {
|
|
815
|
-
if (isVariableLink$1(field)) {
|
|
816
|
-
return field;
|
|
817
|
-
}
|
|
818
|
-
if (isObject(field) && (field == null ? void 0 : field._type) && (field == null ? void 0 : field._id)) {
|
|
819
|
-
return keyOfEntity(field);
|
|
820
|
-
}
|
|
821
|
-
return void 0;
|
|
822
|
-
};
|
|
823
|
-
const expandConcreteValue = (objectVar, valueObj, childManager, result) => {
|
|
824
|
-
const fields = cleanGraph(objectVar.fields);
|
|
825
|
-
for (const [fieldName, childField] of Object.entries(fields)) {
|
|
826
|
-
if (!(fieldName in valueObj)) continue;
|
|
827
|
-
const childFieldVar = resolveFieldVar(childField, childManager);
|
|
828
|
-
if (!(childFieldVar == null ? void 0 : childFieldVar._id)) continue;
|
|
829
|
-
const fieldValue = valueObj[fieldName];
|
|
830
|
-
if (childFieldVar.type === definition.variableType.Object && childFieldVar.fields && isObject(fieldValue)) {
|
|
831
|
-
expandConcreteValue(
|
|
832
|
-
childFieldVar,
|
|
833
|
-
fieldValue,
|
|
834
|
-
childManager,
|
|
835
|
-
result
|
|
836
|
-
);
|
|
837
|
-
continue;
|
|
838
|
-
}
|
|
839
|
-
result[childFieldVar._id] = fieldValue;
|
|
840
|
-
}
|
|
841
|
-
};
|
|
842
|
-
const expandVariableValue = (childObjectVar, parentObjectVar, childManager, resolveManager, result) => {
|
|
843
|
-
const childFields = cleanGraph(childObjectVar.fields);
|
|
844
|
-
const parentFields = cleanGraph(parentObjectVar.fields);
|
|
845
|
-
for (const [fieldName, childField] of Object.entries(childFields)) {
|
|
846
|
-
const parentField = parentFields[fieldName];
|
|
847
|
-
if (!parentField) continue;
|
|
848
|
-
const childFieldVar = resolveFieldVar(childField, childManager);
|
|
849
|
-
if (!(childFieldVar == null ? void 0 : childFieldVar._id)) continue;
|
|
850
|
-
const parentFieldVar = resolveFieldVar(parentField, resolveManager);
|
|
851
|
-
if (childFieldVar.type === definition.variableType.Object && childFieldVar.fields && (parentFieldVar == null ? void 0 : parentFieldVar.type) === definition.variableType.Object && (parentFieldVar == null ? void 0 : parentFieldVar.fields)) {
|
|
852
|
-
expandVariableValue(
|
|
853
|
-
childFieldVar,
|
|
854
|
-
parentFieldVar,
|
|
855
|
-
childManager,
|
|
856
|
-
resolveManager,
|
|
857
|
-
result
|
|
858
|
-
);
|
|
859
|
-
continue;
|
|
860
|
-
}
|
|
861
|
-
const parentFieldLink = toVariableLink(parentField);
|
|
862
|
-
if (parentFieldLink) {
|
|
863
|
-
result[childFieldVar._id] = parentFieldLink;
|
|
864
|
-
}
|
|
865
|
-
}
|
|
866
|
-
};
|
|
867
|
-
const expandObjectProps = (props, childManager, parentManager) => {
|
|
868
|
-
if (!childManager) return props;
|
|
869
|
-
const resolveManager = parentManager ?? childManager;
|
|
870
|
-
const result = {};
|
|
871
|
-
for (const [propKey, propValue] of Object.entries(props)) {
|
|
872
|
-
const childVarKey = `Variable:${propKey}`;
|
|
873
|
-
const childVar = childManager.resolve(childVarKey);
|
|
874
|
-
if ((childVar == null ? void 0 : childVar.type) === definition.variableType.Object && (childVar == null ? void 0 : childVar.fields)) {
|
|
875
|
-
if (isVariableLink$1(propValue)) {
|
|
876
|
-
const parentVar = resolveManager.resolve(propValue);
|
|
877
|
-
if ((parentVar == null ? void 0 : parentVar.type) === definition.variableType.Object && (parentVar == null ? void 0 : parentVar.fields)) {
|
|
878
|
-
expandVariableValue(
|
|
879
|
-
childVar,
|
|
880
|
-
parentVar,
|
|
881
|
-
childManager,
|
|
882
|
-
resolveManager,
|
|
883
|
-
result
|
|
884
|
-
);
|
|
885
|
-
continue;
|
|
886
|
-
}
|
|
887
|
-
} else if (isObject(propValue)) {
|
|
888
|
-
expandConcreteValue(
|
|
889
|
-
childVar,
|
|
890
|
-
propValue,
|
|
891
|
-
childManager,
|
|
892
|
-
result
|
|
893
|
-
);
|
|
894
|
-
continue;
|
|
895
|
-
}
|
|
896
|
-
}
|
|
897
|
-
result[propKey] = propValue;
|
|
898
|
-
}
|
|
899
|
-
return result;
|
|
900
|
-
};
|
|
901
|
-
const declareFragmentProperty = (manager, property, fragmentLink = manager.$fragment.root) => {
|
|
902
|
-
const propertyLayer = createLayer(property);
|
|
903
|
-
if (propertyLayer && "type" in propertyLayer) {
|
|
904
|
-
manager.mutate(manager.keyOfEntity(fragmentLink), {
|
|
905
|
-
properties: [propertyLayer]
|
|
906
|
-
});
|
|
907
|
-
return manager.keyOfEntity(propertyLayer);
|
|
908
|
-
}
|
|
909
|
-
return null;
|
|
643
|
+
return null;
|
|
910
644
|
};
|
|
911
645
|
const getStylesheetKey = (fragmentKey) => {
|
|
912
646
|
const isLink2 = isLinkKey(fragmentKey);
|
|
@@ -949,22 +683,6 @@ function getHydratedData(id) {
|
|
|
949
683
|
return null;
|
|
950
684
|
}
|
|
951
685
|
}
|
|
952
|
-
const loadFragmentManager = async (globalManager, fragmentId) => {
|
|
953
|
-
var _a, _b;
|
|
954
|
-
const { document: document2, linkedFragments } = await ((_b = (_a = globalManager == null ? void 0 : globalManager.$fetch) == null ? void 0 : _a.queryFragment) == null ? void 0 : _b.call(_a, fragmentId));
|
|
955
|
-
if (fragmentId && document2) {
|
|
956
|
-
if (linkedFragments) {
|
|
957
|
-
linkedFragments.forEach(({ id, document: document22 }) => {
|
|
958
|
-
globalManager == null ? void 0 : globalManager.$fragments.createFragmentManager(id, document22);
|
|
959
|
-
});
|
|
960
|
-
}
|
|
961
|
-
return globalManager == null ? void 0 : globalManager.$fragments.createFragmentManager(
|
|
962
|
-
fragmentId,
|
|
963
|
-
document2
|
|
964
|
-
);
|
|
965
|
-
}
|
|
966
|
-
return null;
|
|
967
|
-
};
|
|
968
686
|
const createSuspenseResource = (key, valueOrPromise, cache) => {
|
|
969
687
|
if (cache.has(key)) return cache.get(key);
|
|
970
688
|
if (!(valueOrPromise instanceof Promise)) {
|
|
@@ -1120,95 +838,216 @@ const layerFieldSetter = (manager, layerKey, fieldKey, currentValue) => (value,
|
|
|
1120
838
|
);
|
|
1121
839
|
}
|
|
1122
840
|
};
|
|
1123
|
-
const
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
841
|
+
const EMPTY_RESOLVED$1 = {
|
|
842
|
+
layerKey: null,
|
|
843
|
+
rawLayer: null,
|
|
844
|
+
layer: null,
|
|
845
|
+
isOverride: false
|
|
846
|
+
};
|
|
847
|
+
const useResolvedLayer = (layerKey, options) => {
|
|
848
|
+
const { manager } = useContext(FragmentContext);
|
|
849
|
+
const resultManager = (options == null ? void 0 : options.manager) ?? manager;
|
|
1130
850
|
const key = keyOfEntity(layerKey);
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
const
|
|
1136
|
-
const
|
|
1137
|
-
const
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
resultManager.mutate(
|
|
1144
|
-
key,
|
|
1145
|
-
(prev) => {
|
|
1146
|
-
const r = omit(prev, fieldKey);
|
|
1147
|
-
return r;
|
|
1148
|
-
},
|
|
1149
|
-
{ replace: true }
|
|
1150
|
-
);
|
|
1151
|
-
}, [updateLayerData]);
|
|
1152
|
-
const restore = useCallback(
|
|
1153
|
-
(fallbackValue) => {
|
|
1154
|
-
var _a2, _b, _c;
|
|
1155
|
-
const tempValue = ((_c = (_b = resultManager.resolve((_a2 = resultManager == null ? void 0 : resultManager.$fragment) == null ? void 0 : _a2.temp)) == null ? void 0 : _b[key]) == null ? void 0 : _c[fieldKey]) ?? fallbackValue;
|
|
1156
|
-
updateLayerData({ [fieldKey]: tempValue });
|
|
1157
|
-
return tempValue;
|
|
1158
|
-
},
|
|
1159
|
-
[updateLayerData, resultManager]
|
|
1160
|
-
);
|
|
1161
|
-
const updateValue = useCallback(
|
|
1162
|
-
(value, options2) => {
|
|
1163
|
-
setter(value, options2);
|
|
1164
|
-
},
|
|
1165
|
-
[setter]
|
|
1166
|
-
);
|
|
1167
|
-
const isVariable = isVariableLink$1(rawValue ?? layerValue);
|
|
1168
|
-
const variableId = isVariable ? (_a = entityOfKey(layerValue)) == null ? void 0 : _a._id : null;
|
|
1169
|
-
return [
|
|
1170
|
-
currentValue,
|
|
1171
|
-
updateValue,
|
|
1172
|
-
{
|
|
1173
|
-
isOverride,
|
|
1174
|
-
resetOverride,
|
|
1175
|
-
isVariable,
|
|
1176
|
-
cssVariableValue: isVariable ? `var(--${variableId}, ${transformCssValue(currentValue)})` : transformCssValue(currentValue),
|
|
1177
|
-
rawValue,
|
|
1178
|
-
restore,
|
|
1179
|
-
...resultManager.entityOfKey(key)
|
|
1180
|
-
}
|
|
1181
|
-
];
|
|
851
|
+
useGraph(resultManager, key);
|
|
852
|
+
if (!resultManager || !key) {
|
|
853
|
+
return EMPTY_RESOLVED$1;
|
|
854
|
+
}
|
|
855
|
+
const rawLayer = resultManager.resolve(key);
|
|
856
|
+
const overrider = getOverrider(resultManager, key);
|
|
857
|
+
const layer = getNormalizeLayer$1(rawLayer, overrider, options == null ? void 0 : options.withFallback);
|
|
858
|
+
let isOverride = false;
|
|
859
|
+
if (!(options == null ? void 0 : options.skipOverrideCheck)) {
|
|
860
|
+
isOverride = !isPartOfPrimary(resultManager, key);
|
|
861
|
+
}
|
|
862
|
+
return { layerKey: key, rawLayer, layer, isOverride };
|
|
1182
863
|
};
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
864
|
+
function useForceUpdate() {
|
|
865
|
+
return useReducer(() => ({}), {});
|
|
866
|
+
}
|
|
867
|
+
const EMPTY_RESOLVED = {
|
|
868
|
+
values: {},
|
|
869
|
+
cssVariableValues: {},
|
|
870
|
+
rawValues: {}
|
|
1188
871
|
};
|
|
1189
|
-
const
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
872
|
+
const extractVariableValue$1 = (input, variableId) => {
|
|
873
|
+
if (isObject(input)) {
|
|
874
|
+
if (variableId in input) return input[variableId];
|
|
875
|
+
for (const key in input) {
|
|
876
|
+
if (input.hasOwnProperty(key)) {
|
|
877
|
+
const result = extractVariableValue$1(input[key], variableId);
|
|
878
|
+
if (result !== void 0) return result;
|
|
879
|
+
}
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
return void 0;
|
|
1197
883
|
};
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
const
|
|
1201
|
-
const
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
884
|
+
function deepMerge$1(a, b) {
|
|
885
|
+
if (!isObject(a) || !isObject(b)) return a;
|
|
886
|
+
const result = { ...b };
|
|
887
|
+
for (const [key, value] of Object.entries(a)) {
|
|
888
|
+
if (key in result && typeof result[key] === "object" && typeof value === "object") {
|
|
889
|
+
result[key] = deepMerge$1(value, result[key]);
|
|
890
|
+
} else {
|
|
891
|
+
result[key] = value;
|
|
892
|
+
}
|
|
893
|
+
}
|
|
894
|
+
return result;
|
|
895
|
+
}
|
|
896
|
+
const useResolvedLayerVariables = (layer, rawLayer, customScopes) => {
|
|
897
|
+
var _a;
|
|
898
|
+
const contextScopes = useContext(ScopeContext);
|
|
899
|
+
const scopes = customScopes ?? contextScopes;
|
|
900
|
+
const subscriptions = useRef([]);
|
|
901
|
+
const [dep, forceUpdate] = useForceUpdate();
|
|
902
|
+
useEffect(() => {
|
|
903
|
+
const controller = new AbortController();
|
|
904
|
+
let ready = false;
|
|
905
|
+
const update = () => {
|
|
906
|
+
if (!ready) return;
|
|
907
|
+
forceUpdate();
|
|
908
|
+
};
|
|
909
|
+
for (const { manager, key } of subscriptions.current) {
|
|
910
|
+
manager.subscribe(key, update, { signal: controller.signal });
|
|
911
|
+
}
|
|
912
|
+
ready = true;
|
|
913
|
+
return () => controller.abort();
|
|
914
|
+
});
|
|
915
|
+
if (!layer) {
|
|
916
|
+
subscriptions.current = [];
|
|
917
|
+
return EMPTY_RESOLVED;
|
|
918
|
+
}
|
|
919
|
+
const values = {};
|
|
920
|
+
const cssVariableValues = {};
|
|
921
|
+
const rawValues = {};
|
|
922
|
+
const readVariable = (variableKey) => {
|
|
923
|
+
var _a2, _b, _c;
|
|
924
|
+
const variableId = (_a2 = entityOfKey(variableKey)) == null ? void 0 : _a2._id;
|
|
925
|
+
if (!isVariableLink$1(variableKey)) {
|
|
926
|
+
return { value: null, layer: null };
|
|
927
|
+
}
|
|
928
|
+
let instanceScope = scopes.findLast(
|
|
929
|
+
(scope) => {
|
|
930
|
+
var _a3;
|
|
931
|
+
return (scope == null ? void 0 : scope.type) === definition.scopeTypes.InstanceScope && !!((_a3 = scope.documentManager) == null ? void 0 : _a3.resolve(variableKey));
|
|
932
|
+
}
|
|
933
|
+
);
|
|
934
|
+
if (!instanceScope) {
|
|
935
|
+
instanceScope = scopes.find(
|
|
936
|
+
(scope) => (scope == null ? void 0 : scope.type) === definition.scopeTypes.InstanceScope
|
|
937
|
+
);
|
|
938
|
+
}
|
|
939
|
+
const resolveVariableLayer = (manager, variableLink, customProps) => {
|
|
940
|
+
var _a3, _b2;
|
|
941
|
+
const variableLayer2 = (_a3 = getNormalizeLayer(variableLink, manager)) == null ? void 0 : _a3.layer;
|
|
942
|
+
if (!variableLayer2) return null;
|
|
943
|
+
if ((variableLayer2 == null ? void 0 : variableLayer2.type) === definition.variableType.Array) {
|
|
944
|
+
const definitionLayer = manager.resolve(variableLayer2 == null ? void 0 : variableLayer2.definition);
|
|
945
|
+
if (!((_b2 = variableLayer2 == null ? void 0 : variableLayer2.defaultValue) == null ? void 0 : _b2.length) || (definitionLayer == null ? void 0 : definitionLayer.type) !== definition.variableType.Object)
|
|
946
|
+
return variableLayer2;
|
|
947
|
+
const extractVariableDefaultValue = (mgr, varEntity) => {
|
|
948
|
+
const varLayer = mgr.resolve(varEntity);
|
|
949
|
+
if ((varLayer == null ? void 0 : varLayer.type) !== definition.variableType.Object)
|
|
950
|
+
return varLayer == null ? void 0 : varLayer.defaultValue;
|
|
951
|
+
return Object.values((varLayer == null ? void 0 : varLayer.fields) ?? {}).reduce(
|
|
952
|
+
(acc, fieldLink) => {
|
|
953
|
+
var _a4;
|
|
954
|
+
if (!!fieldLink && isVariableLink$1(fieldLink)) {
|
|
955
|
+
const _id = (_a4 = entityOfKey(fieldLink)) == null ? void 0 : _a4._id;
|
|
956
|
+
if (_id) acc[_id] = extractVariableDefaultValue(mgr, fieldLink);
|
|
957
|
+
}
|
|
958
|
+
return acc;
|
|
959
|
+
},
|
|
960
|
+
{}
|
|
961
|
+
);
|
|
962
|
+
};
|
|
963
|
+
const definitionDefaultValue = extractVariableDefaultValue(
|
|
964
|
+
manager,
|
|
965
|
+
definitionLayer
|
|
966
|
+
);
|
|
967
|
+
const customValue = customProps == null ? void 0 : customProps[variableLayer2 == null ? void 0 : variableLayer2._id];
|
|
968
|
+
return {
|
|
969
|
+
...variableLayer2,
|
|
970
|
+
defaultValue: variableLayer2.defaultValue.map(
|
|
971
|
+
(item, index) => {
|
|
972
|
+
const customItemValue = Array.isArray(customValue) ? customValue.at(index) : null;
|
|
973
|
+
return deepMerge$1(
|
|
974
|
+
customItemValue ? { ...item, ...customItemValue } : item,
|
|
975
|
+
definitionDefaultValue
|
|
976
|
+
);
|
|
977
|
+
}
|
|
978
|
+
)
|
|
979
|
+
};
|
|
980
|
+
}
|
|
981
|
+
return variableLayer2;
|
|
982
|
+
};
|
|
983
|
+
const variableLayer = resolveVariableLayer(
|
|
984
|
+
instanceScope == null ? void 0 : instanceScope.documentManager,
|
|
985
|
+
variableKey
|
|
986
|
+
);
|
|
987
|
+
if ((instanceScope == null ? void 0 : instanceScope.documentManager) && variableKey) {
|
|
988
|
+
subscriptions.current.push({
|
|
989
|
+
manager: instanceScope.documentManager,
|
|
990
|
+
key: variableKey
|
|
991
|
+
});
|
|
992
|
+
}
|
|
993
|
+
let instanceProp = variableId ? (_b = instanceScope == null ? void 0 : instanceScope.props) == null ? void 0 : _b[variableId] : void 0;
|
|
994
|
+
if (Array.isArray(instanceProp)) {
|
|
995
|
+
instanceProp = instanceProp.map(
|
|
996
|
+
(rawProp, index) => {
|
|
997
|
+
var _a3;
|
|
998
|
+
return deepMerge$1(rawProp, (_a3 = variableLayer == null ? void 0 : variableLayer.defaultValue) == null ? void 0 : _a3.at(index));
|
|
999
|
+
}
|
|
1000
|
+
);
|
|
1001
|
+
}
|
|
1002
|
+
const lastCollectionItem = scopes.findLast(
|
|
1003
|
+
(scope) => (scope == null ? void 0 : scope.type) === definition.scopeTypes.CollectionItemScope
|
|
1004
|
+
);
|
|
1005
|
+
resolveVariableLayer(
|
|
1006
|
+
lastCollectionItem == null ? void 0 : lastCollectionItem.manager,
|
|
1007
|
+
lastCollectionItem == null ? void 0 : lastCollectionItem.sourceDefinition,
|
|
1008
|
+
lastCollectionItem == null ? void 0 : lastCollectionItem.value
|
|
1009
|
+
);
|
|
1010
|
+
const collectionItemProp = isPrimitive(lastCollectionItem == null ? void 0 : lastCollectionItem.value) && ((_c = entityOfKey(lastCollectionItem == null ? void 0 : lastCollectionItem.sourceDefinition)) == null ? void 0 : _c._id) === variableId ? lastCollectionItem == null ? void 0 : lastCollectionItem.value : extractVariableValue$1(lastCollectionItem == null ? void 0 : lastCollectionItem.value, variableId);
|
|
1011
|
+
const currentValue = variableKey === instanceProp ? null : collectionItemProp ?? instanceProp ?? null;
|
|
1012
|
+
const required = (variableLayer == null ? void 0 : variableLayer.required) ?? false;
|
|
1013
|
+
const defaultValue = (variableLayer == null ? void 0 : variableLayer.defaultValue) ?? null;
|
|
1014
|
+
const resultValue = required ? currentValue : currentValue ?? collectionItemProp ?? defaultValue;
|
|
1015
|
+
if (isVariableLink$1(resultValue)) {
|
|
1016
|
+
return readVariable(resultValue);
|
|
1017
|
+
}
|
|
1018
|
+
return { value: resultValue, layer: variableLayer };
|
|
1019
|
+
};
|
|
1020
|
+
const resolveField = (fieldPath, value, raw) => {
|
|
1021
|
+
var _a2;
|
|
1022
|
+
rawValues[fieldPath] = raw;
|
|
1023
|
+
if (isVariableLink$1(value)) {
|
|
1024
|
+
const resolved = readVariable(value);
|
|
1025
|
+
values[fieldPath] = resolved.value ?? value;
|
|
1026
|
+
const variableId = (_a2 = entityOfKey(value)) == null ? void 0 : _a2._id;
|
|
1027
|
+
cssVariableValues[fieldPath] = `var(--${variableId}, ${transformCssValue(
|
|
1028
|
+
resolved.value ?? value
|
|
1029
|
+
)})`;
|
|
1030
|
+
} else {
|
|
1031
|
+
values[fieldPath] = value;
|
|
1032
|
+
cssVariableValues[fieldPath] = transformCssValue(value);
|
|
1033
|
+
}
|
|
1211
1034
|
};
|
|
1035
|
+
subscriptions.current = [];
|
|
1036
|
+
for (const [field, value] of Object.entries(layer)) {
|
|
1037
|
+
resolveField(field, value, rawLayer == null ? void 0 : rawLayer[field]);
|
|
1038
|
+
if (isObject(value) && !isVariableLink$1(value)) {
|
|
1039
|
+
for (const [nestedField, nestedValue] of Object.entries(
|
|
1040
|
+
value
|
|
1041
|
+
)) {
|
|
1042
|
+
resolveField(
|
|
1043
|
+
`${field}.${nestedField}`,
|
|
1044
|
+
nestedValue,
|
|
1045
|
+
(_a = rawLayer == null ? void 0 : rawLayer[field]) == null ? void 0 : _a[nestedField]
|
|
1046
|
+
);
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
}
|
|
1050
|
+
return { values, cssVariableValues, rawValues };
|
|
1212
1051
|
};
|
|
1213
1052
|
const useRenderTarget = () => {
|
|
1214
1053
|
const renderTarget = useContext(RenderTargetContext);
|
|
@@ -1218,131 +1057,17 @@ const useRenderTarget = () => {
|
|
|
1218
1057
|
isDocument: renderTarget === definition.renderTarget.document
|
|
1219
1058
|
};
|
|
1220
1059
|
};
|
|
1221
|
-
const
|
|
1222
|
-
const
|
|
1060
|
+
const useReadVariables = (variableKeys) => {
|
|
1061
|
+
const filterKeys = variableKeys.filter(isVariableLink$1);
|
|
1223
1062
|
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1224
|
-
const { layerKey
|
|
1225
|
-
const
|
|
1226
|
-
const
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
);
|
|
1233
|
-
const layerNode = fragmentManager.resolve(layerKey);
|
|
1234
|
-
const [instanceType] = useLayerValue(
|
|
1235
|
-
instanceLayerKey,
|
|
1236
|
-
`${sizeType}Type`,
|
|
1237
|
-
fragmentManager
|
|
1238
|
-
);
|
|
1239
|
-
const [valueType] = useLayerValue(
|
|
1240
|
-
layerKey,
|
|
1241
|
-
`${sizeType}Type`,
|
|
1242
|
-
fragmentManager
|
|
1243
|
-
);
|
|
1244
|
-
const growType = sizeType === "width" ? "horizontalGrow" : "verticalGrow";
|
|
1245
|
-
return useCallback(
|
|
1246
|
-
(value) => {
|
|
1247
|
-
if (isTop && isDocument && (normalizeParentLayer == null ? void 0 : normalizeParentLayer[growType]) === definition.fragmentGrowingMode.fill) {
|
|
1248
|
-
return "100%";
|
|
1249
|
-
}
|
|
1250
|
-
if (isTop && isPartOfInstance && !autoSizes.includes(instanceType)) {
|
|
1251
|
-
return "100%";
|
|
1252
|
-
}
|
|
1253
|
-
if (autoSizes.includes(valueType)) {
|
|
1254
|
-
return layerNode._type === definition.nodes.Instance ? "auto" : "fit-content";
|
|
1255
|
-
}
|
|
1256
|
-
if (valueType === definition.sizing.Relative) {
|
|
1257
|
-
return `${value}%`;
|
|
1258
|
-
}
|
|
1259
|
-
if (valueType === definition.sizing.Fill) {
|
|
1260
|
-
return `100%`;
|
|
1261
|
-
}
|
|
1262
|
-
return toPx(value);
|
|
1263
|
-
},
|
|
1264
|
-
[
|
|
1265
|
-
isTop,
|
|
1266
|
-
layerParent,
|
|
1267
|
-
isDocument,
|
|
1268
|
-
growType,
|
|
1269
|
-
isPartOfInstance,
|
|
1270
|
-
instanceType,
|
|
1271
|
-
valueType,
|
|
1272
|
-
layerNode
|
|
1273
|
-
]
|
|
1274
|
-
);
|
|
1275
|
-
};
|
|
1276
|
-
const useLayerPosition = (layerKey) => {
|
|
1277
|
-
const { layerKey: instanceLayerKey } = useContext(InstanceContext$1);
|
|
1278
|
-
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1279
|
-
const isTop = isTopLevel(fragmentManager, layerKey);
|
|
1280
|
-
const { isDocument } = useRenderTarget();
|
|
1281
|
-
const [width] = useLayerValue(layerKey, "width");
|
|
1282
|
-
const [height] = useLayerValue(layerKey, "height");
|
|
1283
|
-
const widthCalc = useLayerSizeValue(layerKey, "width")(width);
|
|
1284
|
-
const heightCalc = useLayerSizeValue(layerKey, "height")(height);
|
|
1285
|
-
const [position] = useLayerValue(layerKey, "position");
|
|
1286
|
-
const [centerAnchorX] = useLayerValue(layerKey, "centerAnchorX");
|
|
1287
|
-
const [centerAnchorY] = useLayerValue(layerKey, "centerAnchorY");
|
|
1288
|
-
const [top] = useLayerValue(layerKey, "top");
|
|
1289
|
-
const [left] = useLayerValue(layerKey, "left");
|
|
1290
|
-
const [right] = useLayerValue(layerKey, "right");
|
|
1291
|
-
const [bottom] = useLayerValue(layerKey, "bottom");
|
|
1292
|
-
const skipPosition = isTop && isDocument || !!instanceLayerKey && isTop;
|
|
1293
|
-
if (isTop && !skipPosition) {
|
|
1294
|
-
return {
|
|
1295
|
-
position: definition.positionType.absolute,
|
|
1296
|
-
top: toPx(top),
|
|
1297
|
-
left: toPx(left),
|
|
1298
|
-
width,
|
|
1299
|
-
height
|
|
1300
|
-
};
|
|
1301
|
-
}
|
|
1302
|
-
if (position === definition.positionType.relative || skipPosition) {
|
|
1303
|
-
return {
|
|
1304
|
-
position: definition.positionType.relative,
|
|
1305
|
-
width: widthCalc,
|
|
1306
|
-
height: heightCalc
|
|
1307
|
-
};
|
|
1308
|
-
}
|
|
1309
|
-
const hasConstrainX = isFiniteNumber(left) && isFiniteNumber(right);
|
|
1310
|
-
const hasConstrainY = isFiniteNumber(top) && isFiniteNumber(bottom);
|
|
1311
|
-
const hasAnyConstrainX = isFiniteNumber(left) || isFiniteNumber(right);
|
|
1312
|
-
const hasAnyConstrainY = isFiniteNumber(top) || isFiniteNumber(bottom);
|
|
1313
|
-
return {
|
|
1314
|
-
position,
|
|
1315
|
-
left: isFiniteNumber(left) ? toPx(left) : !isFiniteNumber(right) ? `${centerAnchorX * 100}%` : null,
|
|
1316
|
-
top: isFiniteNumber(top) ? toPx(top) : !isFiniteNumber(bottom) ? `${centerAnchorY * 100}%` : null,
|
|
1317
|
-
right: isFiniteNumber(right) ? toPx(right) : null,
|
|
1318
|
-
bottom: isFiniteNumber(bottom) ? toPx(bottom) : null,
|
|
1319
|
-
width: hasConstrainX ? null : widthCalc,
|
|
1320
|
-
height: hasConstrainY ? null : heightCalc,
|
|
1321
|
-
transform: !hasAnyConstrainX || !hasAnyConstrainY ? `translate3d(${!hasAnyConstrainX ? "-50%" : 0}, ${!hasAnyConstrainY ? "-50%" : 0}, 0px)` : null
|
|
1322
|
-
};
|
|
1323
|
-
};
|
|
1324
|
-
const useImagePaint = (imageLinkKey) => {
|
|
1325
|
-
var _a;
|
|
1326
|
-
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1327
|
-
const [, , srcInfo] = useLayerValue(imageLinkKey, "src", fragmentManager);
|
|
1328
|
-
const [scale] = useLayerValue(imageLinkKey, "scale", fragmentManager);
|
|
1329
|
-
return {
|
|
1330
|
-
background: srcInfo.cssVariableValue,
|
|
1331
|
-
backgroundRepeat: "no-repeat",
|
|
1332
|
-
backgroundSize: (_a = scale == null ? void 0 : scale.toLowerCase) == null ? void 0 : _a.call(scale)
|
|
1333
|
-
};
|
|
1334
|
-
};
|
|
1335
|
-
const useReadVariables = (variableKeys) => {
|
|
1336
|
-
const filterKeys = variableKeys.filter(isVariableLink$1);
|
|
1337
|
-
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1338
|
-
const { props, innerManager, layerKey } = useContext(InstanceContext);
|
|
1339
|
-
const resultManager = innerManager ?? fragmentManager;
|
|
1340
|
-
const variableLayers = useGraphStack(
|
|
1341
|
-
!!filterKeys.length ? resultManager : null,
|
|
1342
|
-
filterKeys,
|
|
1343
|
-
{
|
|
1344
|
-
selector: (graph) => graph ? pick(graph, "defaultValue", "required") : graph
|
|
1345
|
-
}
|
|
1063
|
+
const { props, innerManager, layerKey } = useContext(InstanceContext);
|
|
1064
|
+
const resultManager = innerManager ?? fragmentManager;
|
|
1065
|
+
const variableLayers = useGraphStack(
|
|
1066
|
+
!!filterKeys.length ? resultManager : null,
|
|
1067
|
+
filterKeys,
|
|
1068
|
+
{
|
|
1069
|
+
selector: (graph) => graph ? pick(graph, "defaultValue", "required") : graph
|
|
1070
|
+
}
|
|
1346
1071
|
);
|
|
1347
1072
|
return variableLayers.map((layer) => {
|
|
1348
1073
|
const { _id: propertyId } = layer ?? {};
|
|
@@ -1356,6 +1081,164 @@ const useReadVariables = (variableKeys) => {
|
|
|
1356
1081
|
};
|
|
1357
1082
|
});
|
|
1358
1083
|
};
|
|
1084
|
+
const extractVariableValue = (input, variableId) => {
|
|
1085
|
+
if (isObject(input)) {
|
|
1086
|
+
if (variableId in input) {
|
|
1087
|
+
return input[variableId];
|
|
1088
|
+
}
|
|
1089
|
+
for (let key in input) {
|
|
1090
|
+
if (input.hasOwnProperty(key)) {
|
|
1091
|
+
const result = extractVariableValue(input[key], variableId);
|
|
1092
|
+
if (result !== void 0) {
|
|
1093
|
+
return result;
|
|
1094
|
+
}
|
|
1095
|
+
}
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
return void 0;
|
|
1099
|
+
};
|
|
1100
|
+
function deepMerge(a, b) {
|
|
1101
|
+
if (!isObject(a) || !isObject(b)) return a;
|
|
1102
|
+
const result = { ...b };
|
|
1103
|
+
for (const [key, value] of Object.entries(a)) {
|
|
1104
|
+
if (key in result && typeof result[key] === "object" && typeof value === "object") {
|
|
1105
|
+
result[key] = deepMerge(value, result[key]);
|
|
1106
|
+
} else {
|
|
1107
|
+
result[key] = value;
|
|
1108
|
+
}
|
|
1109
|
+
}
|
|
1110
|
+
return result;
|
|
1111
|
+
}
|
|
1112
|
+
const useReadVariable = (variableKey, customScopes) => {
|
|
1113
|
+
const contextScopes = useContext(ScopeContext);
|
|
1114
|
+
const scopes = customScopes ?? contextScopes;
|
|
1115
|
+
const subscriptions = useRef([]);
|
|
1116
|
+
const [dep, forceUpdate] = useForceUpdate();
|
|
1117
|
+
useEffect(() => {
|
|
1118
|
+
const controller = new AbortController();
|
|
1119
|
+
let ready = false;
|
|
1120
|
+
const update = () => {
|
|
1121
|
+
if (!ready) return;
|
|
1122
|
+
forceUpdate();
|
|
1123
|
+
};
|
|
1124
|
+
for (const { manager, key } of subscriptions.current) {
|
|
1125
|
+
manager.subscribe(key, update, { signal: controller.signal });
|
|
1126
|
+
}
|
|
1127
|
+
ready = true;
|
|
1128
|
+
return () => controller.abort();
|
|
1129
|
+
});
|
|
1130
|
+
const extractVariableDefaultValue = (manager, variableEntity) => {
|
|
1131
|
+
const variableLayer = manager.resolve(variableEntity);
|
|
1132
|
+
if ((variableLayer == null ? void 0 : variableLayer.type) !== definition.variableType.Object)
|
|
1133
|
+
return variableLayer == null ? void 0 : variableLayer.defaultValue;
|
|
1134
|
+
return Object.values((variableLayer == null ? void 0 : variableLayer.fields) ?? {}).reduce(
|
|
1135
|
+
(acc, fieldLink) => {
|
|
1136
|
+
var _a;
|
|
1137
|
+
if (!!fieldLink && isVariableLink$1(fieldLink)) {
|
|
1138
|
+
const _id = (_a = entityOfKey(fieldLink)) == null ? void 0 : _a._id;
|
|
1139
|
+
if (_id) {
|
|
1140
|
+
acc[_id] = extractVariableDefaultValue(manager, fieldLink);
|
|
1141
|
+
}
|
|
1142
|
+
}
|
|
1143
|
+
return acc;
|
|
1144
|
+
},
|
|
1145
|
+
{}
|
|
1146
|
+
);
|
|
1147
|
+
};
|
|
1148
|
+
const resolveVariableLayer = (manager, variableLink, customProps) => {
|
|
1149
|
+
var _a, _b;
|
|
1150
|
+
const variableLayer = (_a = getNormalizeLayer(variableLink, manager)) == null ? void 0 : _a.layer;
|
|
1151
|
+
if (!variableLayer) return null;
|
|
1152
|
+
if ((variableLayer == null ? void 0 : variableLayer.type) === definition.variableType.Array) {
|
|
1153
|
+
const definitionLayer = manager.resolve(variableLayer == null ? void 0 : variableLayer.definition);
|
|
1154
|
+
if (!((_b = variableLayer == null ? void 0 : variableLayer.defaultValue) == null ? void 0 : _b.length) || (definitionLayer == null ? void 0 : definitionLayer.type) !== definition.variableType.Object)
|
|
1155
|
+
return variableLayer;
|
|
1156
|
+
const definitionDefaultValue = extractVariableDefaultValue(
|
|
1157
|
+
manager,
|
|
1158
|
+
definitionLayer
|
|
1159
|
+
);
|
|
1160
|
+
const customValue = customProps == null ? void 0 : customProps[variableLayer == null ? void 0 : variableLayer._id];
|
|
1161
|
+
return {
|
|
1162
|
+
...variableLayer,
|
|
1163
|
+
defaultValue: (variableLayer == null ? void 0 : variableLayer.defaultValue).map((item, index) => {
|
|
1164
|
+
const customItemValue = Array.isArray(customValue) ? customValue.at(index) : null;
|
|
1165
|
+
return deepMerge(
|
|
1166
|
+
customItemValue ? { ...item, ...customItemValue } : item,
|
|
1167
|
+
definitionDefaultValue
|
|
1168
|
+
);
|
|
1169
|
+
})
|
|
1170
|
+
};
|
|
1171
|
+
}
|
|
1172
|
+
return variableLayer;
|
|
1173
|
+
};
|
|
1174
|
+
const readVariable = (variableKey2) => {
|
|
1175
|
+
var _a, _b, _c;
|
|
1176
|
+
const variableId = (_a = entityOfKey(variableKey2)) == null ? void 0 : _a._id;
|
|
1177
|
+
if (!isVariableLink$1(variableKey2)) {
|
|
1178
|
+
return {
|
|
1179
|
+
value: null,
|
|
1180
|
+
layer: null
|
|
1181
|
+
};
|
|
1182
|
+
}
|
|
1183
|
+
let instanceScope = scopes.findLast(
|
|
1184
|
+
(scope) => {
|
|
1185
|
+
var _a2;
|
|
1186
|
+
return (scope == null ? void 0 : scope.type) === definition.scopeTypes.InstanceScope && !!((_a2 = scope.documentManager) == null ? void 0 : _a2.resolve(variableKey2));
|
|
1187
|
+
}
|
|
1188
|
+
);
|
|
1189
|
+
if (!instanceScope) {
|
|
1190
|
+
instanceScope = scopes.find(
|
|
1191
|
+
(scope) => (scope == null ? void 0 : scope.type) === definition.scopeTypes.InstanceScope
|
|
1192
|
+
);
|
|
1193
|
+
}
|
|
1194
|
+
const variableLayer = resolveVariableLayer(
|
|
1195
|
+
instanceScope == null ? void 0 : instanceScope.documentManager,
|
|
1196
|
+
variableKey2
|
|
1197
|
+
);
|
|
1198
|
+
if ((instanceScope == null ? void 0 : instanceScope.documentManager) && variableKey2) {
|
|
1199
|
+
subscriptions.current.push({
|
|
1200
|
+
manager: instanceScope.documentManager,
|
|
1201
|
+
key: variableKey2
|
|
1202
|
+
});
|
|
1203
|
+
}
|
|
1204
|
+
let instanceProp = (_b = instanceScope == null ? void 0 : instanceScope.props) == null ? void 0 : _b[variableId];
|
|
1205
|
+
if (Array.isArray(instanceProp)) {
|
|
1206
|
+
instanceProp = instanceProp.map(
|
|
1207
|
+
(rawProp, index) => {
|
|
1208
|
+
var _a2;
|
|
1209
|
+
return deepMerge(rawProp, (_a2 = variableLayer == null ? void 0 : variableLayer.defaultValue) == null ? void 0 : _a2.at(index));
|
|
1210
|
+
}
|
|
1211
|
+
);
|
|
1212
|
+
}
|
|
1213
|
+
const lastCollectionItem = scopes.findLast(
|
|
1214
|
+
(scope) => (scope == null ? void 0 : scope.type) === definition.scopeTypes.CollectionItemScope
|
|
1215
|
+
);
|
|
1216
|
+
resolveVariableLayer(
|
|
1217
|
+
lastCollectionItem == null ? void 0 : lastCollectionItem.manager,
|
|
1218
|
+
lastCollectionItem == null ? void 0 : lastCollectionItem.sourceDefinition,
|
|
1219
|
+
lastCollectionItem == null ? void 0 : lastCollectionItem.value
|
|
1220
|
+
);
|
|
1221
|
+
const collectionItemProp = isPrimitive(lastCollectionItem == null ? void 0 : lastCollectionItem.value) && ((_c = entityOfKey(lastCollectionItem == null ? void 0 : lastCollectionItem.sourceDefinition)) == null ? void 0 : _c._id) === variableId ? lastCollectionItem == null ? void 0 : lastCollectionItem.value : extractVariableValue(lastCollectionItem == null ? void 0 : lastCollectionItem.value, variableId);
|
|
1222
|
+
const currentValue = variableKey2 === instanceProp ? null : collectionItemProp ?? instanceProp ?? null;
|
|
1223
|
+
const required = (variableLayer == null ? void 0 : variableLayer.required) ?? false;
|
|
1224
|
+
const defaultValue = (variableLayer == null ? void 0 : variableLayer.defaultValue) ?? null;
|
|
1225
|
+
const resultValue = required ? currentValue : currentValue ?? collectionItemProp ?? defaultValue;
|
|
1226
|
+
if (isVariableLink$1(resultValue)) {
|
|
1227
|
+
return readVariable(resultValue);
|
|
1228
|
+
}
|
|
1229
|
+
return {
|
|
1230
|
+
value: resultValue,
|
|
1231
|
+
layer: variableLayer
|
|
1232
|
+
};
|
|
1233
|
+
};
|
|
1234
|
+
subscriptions.current = [];
|
|
1235
|
+
const result = readVariable(variableKey);
|
|
1236
|
+
return {
|
|
1237
|
+
...result,
|
|
1238
|
+
readVariable,
|
|
1239
|
+
_dep: dep
|
|
1240
|
+
};
|
|
1241
|
+
};
|
|
1359
1242
|
const useLayersValue = (layerKeys, fieldKey, options) => {
|
|
1360
1243
|
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1361
1244
|
const resultManager = (options == null ? void 0 : options.manager) ?? fragmentManager;
|
|
@@ -1421,6 +1304,66 @@ const useLayersValue = (layerKeys, fieldKey, options) => {
|
|
|
1421
1304
|
];
|
|
1422
1305
|
});
|
|
1423
1306
|
};
|
|
1307
|
+
const useLayerValue = (layerKey, fieldKey, options) => {
|
|
1308
|
+
var _a;
|
|
1309
|
+
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1310
|
+
const resultManager = (options == null ? void 0 : options.manager) ?? fragmentManager;
|
|
1311
|
+
if (!resultManager) {
|
|
1312
|
+
return [null, noop, {}];
|
|
1313
|
+
}
|
|
1314
|
+
const key = keyOfEntity(layerKey);
|
|
1315
|
+
const [, updateLayerData] = useGraph(resultManager, key, {
|
|
1316
|
+
// selector: (data) => (data ? pick(data, fieldKey) : data),
|
|
1317
|
+
});
|
|
1318
|
+
const { layer, rawLayer } = useNormalizeLayer(key, resultManager, options);
|
|
1319
|
+
const rawValue = get(rawLayer, fieldKey);
|
|
1320
|
+
const layerValue = get(layer, fieldKey);
|
|
1321
|
+
const { value: variableValue } = useReadVariable(layerValue, options == null ? void 0 : options.scopes);
|
|
1322
|
+
const currentValue = variableValue ?? layerValue;
|
|
1323
|
+
const isInherit = isInheritField(resultManager, key, fieldKey);
|
|
1324
|
+
const isOverride = !isInherit && !isPartOfPrimary(resultManager, key);
|
|
1325
|
+
const setter = layerFieldSetter(resultManager, key, fieldKey, currentValue);
|
|
1326
|
+
const resetOverride = useCallback(() => {
|
|
1327
|
+
resultManager.mutate(
|
|
1328
|
+
key,
|
|
1329
|
+
(prev) => {
|
|
1330
|
+
const r = omit(prev, fieldKey);
|
|
1331
|
+
return r;
|
|
1332
|
+
},
|
|
1333
|
+
{ replace: true }
|
|
1334
|
+
);
|
|
1335
|
+
}, [updateLayerData]);
|
|
1336
|
+
const restore = useCallback(
|
|
1337
|
+
(fallbackValue) => {
|
|
1338
|
+
var _a2, _b, _c;
|
|
1339
|
+
const tempValue = ((_c = (_b = resultManager.resolve((_a2 = resultManager == null ? void 0 : resultManager.$fragment) == null ? void 0 : _a2.temp)) == null ? void 0 : _b[key]) == null ? void 0 : _c[fieldKey]) ?? fallbackValue;
|
|
1340
|
+
updateLayerData({ [fieldKey]: tempValue });
|
|
1341
|
+
return tempValue;
|
|
1342
|
+
},
|
|
1343
|
+
[updateLayerData, resultManager]
|
|
1344
|
+
);
|
|
1345
|
+
const updateValue = useCallback(
|
|
1346
|
+
(value, options2) => {
|
|
1347
|
+
setter(value, options2);
|
|
1348
|
+
},
|
|
1349
|
+
[setter]
|
|
1350
|
+
);
|
|
1351
|
+
const isVariable = isVariableLink$1(rawValue ?? layerValue);
|
|
1352
|
+
const variableId = isVariable ? (_a = entityOfKey(layerValue)) == null ? void 0 : _a._id : null;
|
|
1353
|
+
return [
|
|
1354
|
+
currentValue,
|
|
1355
|
+
updateValue,
|
|
1356
|
+
{
|
|
1357
|
+
isOverride,
|
|
1358
|
+
resetOverride,
|
|
1359
|
+
isVariable,
|
|
1360
|
+
cssVariableValue: isVariable ? `var(--${variableId}, ${transformCssValue(currentValue)})` : transformCssValue(currentValue),
|
|
1361
|
+
rawValue,
|
|
1362
|
+
restore,
|
|
1363
|
+
...resultManager.entityOfKey(key)
|
|
1364
|
+
}
|
|
1365
|
+
];
|
|
1366
|
+
};
|
|
1424
1367
|
const useLayerChildren = (layerKey, customManager) => {
|
|
1425
1368
|
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1426
1369
|
const [layerData] = useGraph(customManager ?? fragmentManager, layerKey, {
|
|
@@ -1511,6 +1454,272 @@ const useLayerLinearGradient = (linearGradientLink) => {
|
|
|
1511
1454
|
[angle, stopValues]
|
|
1512
1455
|
);
|
|
1513
1456
|
};
|
|
1457
|
+
const processOptionalSize = (value, type) => {
|
|
1458
|
+
if (value === -1) return "";
|
|
1459
|
+
if (type === definition.sizing.Fixed) return toPx(value);
|
|
1460
|
+
if (type === definition.sizing.Relative) return `${value}%`;
|
|
1461
|
+
return "";
|
|
1462
|
+
};
|
|
1463
|
+
const calcOptionalSize = (type, vars) => {
|
|
1464
|
+
const value = vars.values[type];
|
|
1465
|
+
const valueType = vars.values[`${type}Type`];
|
|
1466
|
+
return processOptionalSize(value, valueType);
|
|
1467
|
+
};
|
|
1468
|
+
const useOptionalSize = (type, layerKey) => {
|
|
1469
|
+
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1470
|
+
const [value] = useLayerValue(layerKey, type, fragmentManager);
|
|
1471
|
+
const [valueType] = useLayerValue(layerKey, `${type}Type`, fragmentManager);
|
|
1472
|
+
return useMemo(
|
|
1473
|
+
() => processOptionalSize(value, valueType),
|
|
1474
|
+
[valueType, value]
|
|
1475
|
+
);
|
|
1476
|
+
};
|
|
1477
|
+
const calcLayerSize = (vars) => {
|
|
1478
|
+
return {
|
|
1479
|
+
minWidth: calcOptionalSize("minWidth", vars),
|
|
1480
|
+
minHeight: calcOptionalSize("minHeight", vars),
|
|
1481
|
+
maxWidth: calcOptionalSize("maxWidth", vars),
|
|
1482
|
+
maxHeight: calcOptionalSize("maxHeight", vars)
|
|
1483
|
+
};
|
|
1484
|
+
};
|
|
1485
|
+
const useLayerSize = (layerKey) => {
|
|
1486
|
+
const { manager } = useContext(FragmentContext);
|
|
1487
|
+
const minWidth = useOptionalSize("minWidth", layerKey);
|
|
1488
|
+
const minHeight = useOptionalSize("minHeight", layerKey);
|
|
1489
|
+
const maxWidth = useOptionalSize("maxWidth", layerKey);
|
|
1490
|
+
const maxHeight = useOptionalSize("maxHeight", layerKey);
|
|
1491
|
+
return {
|
|
1492
|
+
// width: widthCalc(widthValue),
|
|
1493
|
+
// height: heightCalc(heightValue),
|
|
1494
|
+
minWidth,
|
|
1495
|
+
minHeight,
|
|
1496
|
+
maxWidth,
|
|
1497
|
+
maxHeight
|
|
1498
|
+
};
|
|
1499
|
+
};
|
|
1500
|
+
const autoSizes = [definition.sizing.Hug];
|
|
1501
|
+
const calcLayerSizeValue = (resolved, vars, sizeType, parentResolved, instanceVars, context) => {
|
|
1502
|
+
const { isDocument, isTopLevel: isTop, instanceLayerKey } = context;
|
|
1503
|
+
const isPartOfInstance = !!instanceLayerKey;
|
|
1504
|
+
const layerNode = resolved.rawLayer;
|
|
1505
|
+
const instanceType = instanceVars.values[`${sizeType}Type`];
|
|
1506
|
+
const valueType = vars.values[`${sizeType}Type`];
|
|
1507
|
+
const growType = sizeType === "width" ? "horizontalGrow" : "verticalGrow";
|
|
1508
|
+
return (value) => {
|
|
1509
|
+
var _a;
|
|
1510
|
+
if (isTop && isDocument && ((_a = parentResolved.layer) == null ? void 0 : _a[growType]) === definition.fragmentGrowingMode.fill) {
|
|
1511
|
+
return "100%";
|
|
1512
|
+
}
|
|
1513
|
+
if (isTop && isPartOfInstance && !autoSizes.includes(instanceType)) {
|
|
1514
|
+
return "100%";
|
|
1515
|
+
}
|
|
1516
|
+
if (autoSizes.includes(valueType)) {
|
|
1517
|
+
return (layerNode == null ? void 0 : layerNode._type) === definition.nodes.Instance ? "auto" : "fit-content";
|
|
1518
|
+
}
|
|
1519
|
+
if (valueType === definition.sizing.Relative) return `${value}%`;
|
|
1520
|
+
if (valueType === definition.sizing.Fill) return `100%`;
|
|
1521
|
+
return toPx(value);
|
|
1522
|
+
};
|
|
1523
|
+
};
|
|
1524
|
+
const useLayerSizeValue = (layerKey, sizeType) => {
|
|
1525
|
+
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1526
|
+
const { layerKey: instanceLayerKey } = useContext(InstanceContext$1);
|
|
1527
|
+
const { isDocument } = useRenderTarget();
|
|
1528
|
+
const isTop = isTopLevel(fragmentManager, layerKey);
|
|
1529
|
+
const isPartOfInstance = !!instanceLayerKey;
|
|
1530
|
+
const layerParent = getParent(fragmentManager, layerKey);
|
|
1531
|
+
const { layer: normalizeParentLayer } = useNormalizeLayer(
|
|
1532
|
+
layerParent,
|
|
1533
|
+
fragmentManager
|
|
1534
|
+
);
|
|
1535
|
+
const layerNode = fragmentManager.resolve(layerKey);
|
|
1536
|
+
const [instanceType] = useLayerValue(
|
|
1537
|
+
instanceLayerKey,
|
|
1538
|
+
`${sizeType}Type`,
|
|
1539
|
+
fragmentManager
|
|
1540
|
+
);
|
|
1541
|
+
const [valueType] = useLayerValue(
|
|
1542
|
+
layerKey,
|
|
1543
|
+
`${sizeType}Type`,
|
|
1544
|
+
fragmentManager
|
|
1545
|
+
);
|
|
1546
|
+
const growType = sizeType === "width" ? "horizontalGrow" : "verticalGrow";
|
|
1547
|
+
return useCallback(
|
|
1548
|
+
(value) => {
|
|
1549
|
+
if (isTop && isDocument && (normalizeParentLayer == null ? void 0 : normalizeParentLayer[growType]) === definition.fragmentGrowingMode.fill) {
|
|
1550
|
+
return "100%";
|
|
1551
|
+
}
|
|
1552
|
+
if (isTop && isPartOfInstance && !autoSizes.includes(instanceType)) {
|
|
1553
|
+
return "100%";
|
|
1554
|
+
}
|
|
1555
|
+
if (autoSizes.includes(valueType)) {
|
|
1556
|
+
return layerNode._type === definition.nodes.Instance ? "auto" : "fit-content";
|
|
1557
|
+
}
|
|
1558
|
+
if (valueType === definition.sizing.Relative) {
|
|
1559
|
+
return `${value}%`;
|
|
1560
|
+
}
|
|
1561
|
+
if (valueType === definition.sizing.Fill) {
|
|
1562
|
+
return `100%`;
|
|
1563
|
+
}
|
|
1564
|
+
return toPx(value);
|
|
1565
|
+
},
|
|
1566
|
+
[
|
|
1567
|
+
isTop,
|
|
1568
|
+
layerParent,
|
|
1569
|
+
isDocument,
|
|
1570
|
+
growType,
|
|
1571
|
+
isPartOfInstance,
|
|
1572
|
+
instanceType,
|
|
1573
|
+
valueType,
|
|
1574
|
+
layerNode
|
|
1575
|
+
]
|
|
1576
|
+
);
|
|
1577
|
+
};
|
|
1578
|
+
const calcLayerPosition = (resolved, vars, parentResolved, instanceResolved, instanceVars, context) => {
|
|
1579
|
+
const { isDocument, isTopLevel: isTop, instanceLayerKey } = context;
|
|
1580
|
+
const width = vars.values.width;
|
|
1581
|
+
const height = vars.values.height;
|
|
1582
|
+
const widthCalc = calcLayerSizeValue(
|
|
1583
|
+
resolved,
|
|
1584
|
+
vars,
|
|
1585
|
+
"width",
|
|
1586
|
+
parentResolved,
|
|
1587
|
+
instanceVars,
|
|
1588
|
+
context
|
|
1589
|
+
);
|
|
1590
|
+
const heightCalc = calcLayerSizeValue(
|
|
1591
|
+
resolved,
|
|
1592
|
+
vars,
|
|
1593
|
+
"height",
|
|
1594
|
+
parentResolved,
|
|
1595
|
+
instanceVars,
|
|
1596
|
+
context
|
|
1597
|
+
);
|
|
1598
|
+
const position = vars.values.position;
|
|
1599
|
+
const centerAnchorX = vars.values.centerAnchorX;
|
|
1600
|
+
const centerAnchorY = vars.values.centerAnchorY;
|
|
1601
|
+
const top = vars.values.top;
|
|
1602
|
+
const left = vars.values.left;
|
|
1603
|
+
const right = vars.values.right;
|
|
1604
|
+
const bottom = vars.values.bottom;
|
|
1605
|
+
const skipPosition = isTop && isDocument || !!instanceLayerKey && isTop;
|
|
1606
|
+
if (isTop && !skipPosition) {
|
|
1607
|
+
return {
|
|
1608
|
+
position: definition.positionType.absolute,
|
|
1609
|
+
top: toPx(top),
|
|
1610
|
+
left: toPx(left),
|
|
1611
|
+
width,
|
|
1612
|
+
height
|
|
1613
|
+
};
|
|
1614
|
+
}
|
|
1615
|
+
if (position === definition.positionType.relative || skipPosition) {
|
|
1616
|
+
return {
|
|
1617
|
+
position: definition.positionType.relative,
|
|
1618
|
+
width: widthCalc(width),
|
|
1619
|
+
height: heightCalc(height)
|
|
1620
|
+
};
|
|
1621
|
+
}
|
|
1622
|
+
const hasConstrainX = isFiniteNumber(left) && isFiniteNumber(right);
|
|
1623
|
+
const hasConstrainY = isFiniteNumber(top) && isFiniteNumber(bottom);
|
|
1624
|
+
const hasAnyConstrainX = isFiniteNumber(left) || isFiniteNumber(right);
|
|
1625
|
+
const hasAnyConstrainY = isFiniteNumber(top) || isFiniteNumber(bottom);
|
|
1626
|
+
return {
|
|
1627
|
+
position,
|
|
1628
|
+
left: isFiniteNumber(left) ? toPx(left) : !isFiniteNumber(right) ? `${centerAnchorX * 100}%` : null,
|
|
1629
|
+
top: isFiniteNumber(top) ? toPx(top) : !isFiniteNumber(bottom) ? `${centerAnchorY * 100}%` : null,
|
|
1630
|
+
right: isFiniteNumber(right) ? toPx(right) : null,
|
|
1631
|
+
bottom: isFiniteNumber(bottom) ? toPx(bottom) : null,
|
|
1632
|
+
width: hasConstrainX ? null : widthCalc(width),
|
|
1633
|
+
height: hasConstrainY ? null : heightCalc(height),
|
|
1634
|
+
transform: !hasAnyConstrainX || !hasAnyConstrainY ? `translate3d(${!hasAnyConstrainX ? "-50%" : 0}, ${!hasAnyConstrainY ? "-50%" : 0}, 0px)` : null
|
|
1635
|
+
};
|
|
1636
|
+
};
|
|
1637
|
+
const useLayerPosition = (layerKey) => {
|
|
1638
|
+
const { layerKey: instanceLayerKey } = useContext(InstanceContext$1);
|
|
1639
|
+
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1640
|
+
const isTop = isTopLevel(fragmentManager, layerKey);
|
|
1641
|
+
const { isDocument } = useRenderTarget();
|
|
1642
|
+
const [width] = useLayerValue(layerKey, "width");
|
|
1643
|
+
const [height] = useLayerValue(layerKey, "height");
|
|
1644
|
+
const widthCalc = useLayerSizeValue(layerKey, "width")(width);
|
|
1645
|
+
const heightCalc = useLayerSizeValue(layerKey, "height")(height);
|
|
1646
|
+
const [position] = useLayerValue(layerKey, "position");
|
|
1647
|
+
const [centerAnchorX] = useLayerValue(layerKey, "centerAnchorX");
|
|
1648
|
+
const [centerAnchorY] = useLayerValue(layerKey, "centerAnchorY");
|
|
1649
|
+
const [top] = useLayerValue(layerKey, "top");
|
|
1650
|
+
const [left] = useLayerValue(layerKey, "left");
|
|
1651
|
+
const [right] = useLayerValue(layerKey, "right");
|
|
1652
|
+
const [bottom] = useLayerValue(layerKey, "bottom");
|
|
1653
|
+
const skipPosition = isTop && isDocument || !!instanceLayerKey && isTop;
|
|
1654
|
+
if (isTop && !skipPosition) {
|
|
1655
|
+
return {
|
|
1656
|
+
position: definition.positionType.absolute,
|
|
1657
|
+
top: toPx(top),
|
|
1658
|
+
left: toPx(left),
|
|
1659
|
+
width,
|
|
1660
|
+
height
|
|
1661
|
+
};
|
|
1662
|
+
}
|
|
1663
|
+
if (position === definition.positionType.relative || skipPosition) {
|
|
1664
|
+
return {
|
|
1665
|
+
position: definition.positionType.relative,
|
|
1666
|
+
width: widthCalc,
|
|
1667
|
+
height: heightCalc
|
|
1668
|
+
};
|
|
1669
|
+
}
|
|
1670
|
+
const hasConstrainX = isFiniteNumber(left) && isFiniteNumber(right);
|
|
1671
|
+
const hasConstrainY = isFiniteNumber(top) && isFiniteNumber(bottom);
|
|
1672
|
+
const hasAnyConstrainX = isFiniteNumber(left) || isFiniteNumber(right);
|
|
1673
|
+
const hasAnyConstrainY = isFiniteNumber(top) || isFiniteNumber(bottom);
|
|
1674
|
+
return {
|
|
1675
|
+
position,
|
|
1676
|
+
left: isFiniteNumber(left) ? toPx(left) : !isFiniteNumber(right) ? `${centerAnchorX * 100}%` : null,
|
|
1677
|
+
top: isFiniteNumber(top) ? toPx(top) : !isFiniteNumber(bottom) ? `${centerAnchorY * 100}%` : null,
|
|
1678
|
+
right: isFiniteNumber(right) ? toPx(right) : null,
|
|
1679
|
+
bottom: isFiniteNumber(bottom) ? toPx(bottom) : null,
|
|
1680
|
+
width: hasConstrainX ? null : widthCalc,
|
|
1681
|
+
height: hasConstrainY ? null : heightCalc,
|
|
1682
|
+
transform: !hasAnyConstrainX || !hasAnyConstrainY ? `translate3d(${!hasAnyConstrainX ? "-50%" : 0}, ${!hasAnyConstrainY ? "-50%" : 0}, 0px)` : null
|
|
1683
|
+
};
|
|
1684
|
+
};
|
|
1685
|
+
const calcImagePaint = (imageVars) => {
|
|
1686
|
+
var _a, _b;
|
|
1687
|
+
return {
|
|
1688
|
+
background: imageVars.cssVariableValues.src,
|
|
1689
|
+
backgroundRepeat: "no-repeat",
|
|
1690
|
+
backgroundSize: (_b = (_a = imageVars.values.scale) == null ? void 0 : _a.toLowerCase) == null ? void 0 : _b.call(_a)
|
|
1691
|
+
};
|
|
1692
|
+
};
|
|
1693
|
+
const useImagePaint = (imageLinkKey) => {
|
|
1694
|
+
var _a;
|
|
1695
|
+
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1696
|
+
const [, , srcInfo] = useLayerValue(imageLinkKey, "src", fragmentManager);
|
|
1697
|
+
const [scale] = useLayerValue(imageLinkKey, "scale", fragmentManager);
|
|
1698
|
+
return {
|
|
1699
|
+
background: srcInfo.cssVariableValue,
|
|
1700
|
+
backgroundRepeat: "no-repeat",
|
|
1701
|
+
backgroundSize: (_a = scale == null ? void 0 : scale.toLowerCase) == null ? void 0 : _a.call(scale)
|
|
1702
|
+
};
|
|
1703
|
+
};
|
|
1704
|
+
const calcLayerBackground = (paintVars, imageVars, imageSizeVars, linearGradient) => {
|
|
1705
|
+
const fillType = paintVars.values.type;
|
|
1706
|
+
const cssSolidFill = paintVars.cssVariableValues.solid;
|
|
1707
|
+
const cssImageSize = imageSizeVars.cssVariableValues.imageSize;
|
|
1708
|
+
if (fillType === definition.paintMode.Solid) {
|
|
1709
|
+
return { background: cssSolidFill };
|
|
1710
|
+
}
|
|
1711
|
+
if (fillType === definition.paintMode.Image) {
|
|
1712
|
+
const image = calcImagePaint(imageVars);
|
|
1713
|
+
return {
|
|
1714
|
+
...image,
|
|
1715
|
+
backgroundSize: cssImageSize ?? image.backgroundSize
|
|
1716
|
+
};
|
|
1717
|
+
}
|
|
1718
|
+
if (fillType === definition.paintMode.LinearGradient) {
|
|
1719
|
+
return linearGradient;
|
|
1720
|
+
}
|
|
1721
|
+
return { background: null };
|
|
1722
|
+
};
|
|
1514
1723
|
const useLayerBackground = (layerKey) => {
|
|
1515
1724
|
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1516
1725
|
const [paintLinkKey] = useLayerValue(layerKey, "paint", fragmentManager);
|
|
@@ -1556,6 +1765,12 @@ const useLayerBackground = (layerKey) => {
|
|
|
1556
1765
|
linearGradient
|
|
1557
1766
|
]);
|
|
1558
1767
|
};
|
|
1768
|
+
const calcLayerDisplay = (vars) => {
|
|
1769
|
+
const layerModeValue = vars.values.layerMode;
|
|
1770
|
+
const visible = vars.values.visible;
|
|
1771
|
+
if (!visible) return "none";
|
|
1772
|
+
return layerModeValue === definition.layerMode.flex ? "flex" : null;
|
|
1773
|
+
};
|
|
1559
1774
|
const useLayerDisplay = (layerKey) => {
|
|
1560
1775
|
const { manager } = useContext(FragmentContext);
|
|
1561
1776
|
const [layerModeValue] = useLayerValue(layerKey, "layerMode", manager);
|
|
@@ -1567,6 +1782,15 @@ const useLayerDisplay = (layerKey) => {
|
|
|
1567
1782
|
return layerModeValue === definition.layerMode.flex ? "flex" : null;
|
|
1568
1783
|
}, [layerModeValue, visible]);
|
|
1569
1784
|
};
|
|
1785
|
+
const calcLayerPaint = (paintVars) => {
|
|
1786
|
+
return {
|
|
1787
|
+
type: paintVars.values.type,
|
|
1788
|
+
solid: paintVars.values.solid,
|
|
1789
|
+
solidCssValue: paintVars.cssVariableValues.solid,
|
|
1790
|
+
image: paintVars.values.image,
|
|
1791
|
+
linearGradientLink: paintVars.values.linearGradient
|
|
1792
|
+
};
|
|
1793
|
+
};
|
|
1570
1794
|
const useLayerPaint = (paintLinkKey) => {
|
|
1571
1795
|
const [type] = useLayerValue(paintLinkKey, "type");
|
|
1572
1796
|
const [solid, , solidInfo] = useLayerValue(paintLinkKey, "solid");
|
|
@@ -1580,6 +1804,36 @@ const useLayerPaint = (paintLinkKey) => {
|
|
|
1580
1804
|
linearGradientLink
|
|
1581
1805
|
};
|
|
1582
1806
|
};
|
|
1807
|
+
const calcLayerBorder = (borderVars, borderPaintVars, borderLinearGradient, paintVars, linearGradient) => {
|
|
1808
|
+
const type = borderVars.values.type;
|
|
1809
|
+
const width = borderVars.values.width;
|
|
1810
|
+
const borderPaint = calcLayerPaint(borderPaintVars);
|
|
1811
|
+
const paint = calcLayerPaint(paintVars);
|
|
1812
|
+
if (type === definition.borderType.None) {
|
|
1813
|
+
return { border: null };
|
|
1814
|
+
}
|
|
1815
|
+
if (borderPaint.type === definition.paintMode.LinearGradient) {
|
|
1816
|
+
let background = `linear-gradient(${paint.solid}, ${paint.solid}) padding-box, ${borderLinearGradient == null ? void 0 : borderLinearGradient["background-image"]} border-box`;
|
|
1817
|
+
if (paint.type === definition.paintMode.LinearGradient) {
|
|
1818
|
+
background = `${linearGradient == null ? void 0 : linearGradient["background-image"]} padding-box, ${borderLinearGradient == null ? void 0 : borderLinearGradient["background-image"]} border-box`;
|
|
1819
|
+
}
|
|
1820
|
+
if (paint.type === definition.paintMode.None) {
|
|
1821
|
+
background = `linear-gradient(transparent, transparent) padding-box, ${borderLinearGradient == null ? void 0 : borderLinearGradient["background-image"]} border-box`;
|
|
1822
|
+
}
|
|
1823
|
+
return {
|
|
1824
|
+
...calcBorderSides(
|
|
1825
|
+
type,
|
|
1826
|
+
width,
|
|
1827
|
+
borderPaint.type === definition.paintMode.Solid ? borderPaint.solid : "transparent"
|
|
1828
|
+
),
|
|
1829
|
+
background
|
|
1830
|
+
};
|
|
1831
|
+
}
|
|
1832
|
+
if (borderPaint.type === definition.paintMode.Solid) {
|
|
1833
|
+
return calcBorderSides(type, width, borderPaint.solidCssValue);
|
|
1834
|
+
}
|
|
1835
|
+
return { border: null };
|
|
1836
|
+
};
|
|
1583
1837
|
const useLayerBorder = (layerKey) => {
|
|
1584
1838
|
var _a, _b;
|
|
1585
1839
|
const [borderLinkKey] = useLayerValue(layerKey, "border");
|
|
@@ -1620,6 +1874,28 @@ const useLayerBorder = (layerKey) => {
|
|
|
1620
1874
|
}
|
|
1621
1875
|
return { border: null };
|
|
1622
1876
|
};
|
|
1877
|
+
const calcLayerLayout = (vars) => {
|
|
1878
|
+
const layerModeValue = vars.values.layerMode;
|
|
1879
|
+
const layerWrap = vars.values.layerWrap;
|
|
1880
|
+
const layerDistribute = vars.values.layerDistribute;
|
|
1881
|
+
const layerDirectionValue = vars.values.layerDirection;
|
|
1882
|
+
const layerAlign = vars.values.layerAlign;
|
|
1883
|
+
const padding = vars.values.padding;
|
|
1884
|
+
const gap = vars.values.layerGap;
|
|
1885
|
+
const isFlex = layerModeValue === definition.layerMode.flex;
|
|
1886
|
+
const baseFlow = layerDirectionValue === definition.layerDirection.vertical ? "column" : "row";
|
|
1887
|
+
const wrap = isFlex ? layerWrap ? "wrap" : null : null;
|
|
1888
|
+
const flexFlow = [baseFlow, wrap].filter(Boolean).join(" ");
|
|
1889
|
+
return {
|
|
1890
|
+
display: isFlex ? "flex" : null,
|
|
1891
|
+
gap: toPx(gap),
|
|
1892
|
+
flexWrap: isFlex ? layerWrap ? "wrap" : null : null,
|
|
1893
|
+
justifyContent: isFlex ? layerDistribute : null,
|
|
1894
|
+
flexFlow,
|
|
1895
|
+
alignItems: isFlex ? layerAlign : null,
|
|
1896
|
+
padding: isFlex ? padding : null
|
|
1897
|
+
};
|
|
1898
|
+
};
|
|
1623
1899
|
const useLayerLayout = (layerKey) => {
|
|
1624
1900
|
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1625
1901
|
const [layerModeValue] = useLayerValue(
|
|
@@ -1655,6 +1931,15 @@ const useLayerLayout = (layerKey) => {
|
|
|
1655
1931
|
padding: isFlex ? padding : null
|
|
1656
1932
|
};
|
|
1657
1933
|
};
|
|
1934
|
+
const calcLayerTextStyles = (vars) => {
|
|
1935
|
+
const attributes = vars.values.attributes;
|
|
1936
|
+
const color = vars.values["attributes.color"];
|
|
1937
|
+
const cleanAttributes = omit(attributes, "_id", "_type");
|
|
1938
|
+
return {
|
|
1939
|
+
...cleanAttributes,
|
|
1940
|
+
color
|
|
1941
|
+
};
|
|
1942
|
+
};
|
|
1658
1943
|
const useLayerTextStyles = (layerKey) => {
|
|
1659
1944
|
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1660
1945
|
const [attributes] = useLayerValue(layerKey, "attributes", fragmentManager);
|
|
@@ -1665,6 +1950,15 @@ const useLayerTextStyles = (layerKey) => {
|
|
|
1665
1950
|
color
|
|
1666
1951
|
};
|
|
1667
1952
|
};
|
|
1953
|
+
const calcLayerFlex = (vars, parentVars) => {
|
|
1954
|
+
const widthType = vars.values.widthType;
|
|
1955
|
+
const heightType = vars.values.heightType;
|
|
1956
|
+
const layerDirectionValue = parentVars.values.layerDirection;
|
|
1957
|
+
const type = layerDirectionValue === definition.layerDirection.horizontal ? widthType : heightType;
|
|
1958
|
+
return {
|
|
1959
|
+
flex: type === definition.sizing.Fill ? "1 0 0" : "0 0 auto"
|
|
1960
|
+
};
|
|
1961
|
+
};
|
|
1668
1962
|
const useLayerFlex = (layerKey) => {
|
|
1669
1963
|
const { manager } = useContext(FragmentContext);
|
|
1670
1964
|
const [widthType] = useLayerValue(layerKey, "widthType", manager);
|
|
@@ -1680,48 +1974,121 @@ const useLayerFlex = (layerKey) => {
|
|
|
1680
1974
|
flex: type === definition.sizing.Fill ? "1 0 0" : "0 0 auto"
|
|
1681
1975
|
};
|
|
1682
1976
|
};
|
|
1977
|
+
const SKIP_OVERRIDE = { skipOverrideCheck: true };
|
|
1683
1978
|
const useLayerStyles = (layerKey) => {
|
|
1684
1979
|
try {
|
|
1685
|
-
if (!layerKey)
|
|
1686
|
-
throw new Error("Empty layer key");
|
|
1687
|
-
}
|
|
1980
|
+
if (!layerKey) throw new Error("Empty layer key");
|
|
1688
1981
|
const { manager: fragmentManager } = useContext(FragmentContext);
|
|
1689
|
-
const
|
|
1690
|
-
const
|
|
1691
|
-
const
|
|
1692
|
-
const
|
|
1693
|
-
const
|
|
1694
|
-
const
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
const
|
|
1699
|
-
const
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1982
|
+
const { layerKey: instanceLayerKey } = useContext(InstanceContext$1);
|
|
1983
|
+
const { isDocument } = useRenderTarget();
|
|
1984
|
+
const resolved = useResolvedLayer(layerKey);
|
|
1985
|
+
const vars = useResolvedLayerVariables(resolved.layer, resolved.rawLayer);
|
|
1986
|
+
const paintResolved = useResolvedLayer(vars.values.paint, SKIP_OVERRIDE);
|
|
1987
|
+
const paintVars = useResolvedLayerVariables(
|
|
1988
|
+
paintResolved.layer,
|
|
1989
|
+
paintResolved.rawLayer
|
|
1990
|
+
);
|
|
1991
|
+
const borderResolved = useResolvedLayer(vars.values.border, SKIP_OVERRIDE);
|
|
1992
|
+
const borderVars = useResolvedLayerVariables(
|
|
1993
|
+
borderResolved.layer,
|
|
1994
|
+
borderResolved.rawLayer
|
|
1995
|
+
);
|
|
1996
|
+
const borderPaintResolved = useResolvedLayer(
|
|
1997
|
+
borderVars.values.paint,
|
|
1998
|
+
SKIP_OVERRIDE
|
|
1999
|
+
);
|
|
2000
|
+
const borderPaintVars = useResolvedLayerVariables(
|
|
2001
|
+
borderPaintResolved.layer,
|
|
2002
|
+
borderPaintResolved.rawLayer
|
|
2003
|
+
);
|
|
2004
|
+
const imageResolved = useResolvedLayer(
|
|
2005
|
+
paintVars.values.image,
|
|
2006
|
+
SKIP_OVERRIDE
|
|
2007
|
+
);
|
|
2008
|
+
const imageVars = useResolvedLayerVariables(
|
|
2009
|
+
imageResolved.layer,
|
|
2010
|
+
imageResolved.rawLayer
|
|
2011
|
+
);
|
|
2012
|
+
const imageSizeLayerKey = isVariableLink$1(paintVars.rawValues.image) ? paintVars.rawValues.image : layerKey;
|
|
2013
|
+
const imageSizeResolved = useResolvedLayer(
|
|
2014
|
+
imageSizeLayerKey,
|
|
2015
|
+
SKIP_OVERRIDE
|
|
2016
|
+
);
|
|
2017
|
+
const imageSizeVars = useResolvedLayerVariables(
|
|
2018
|
+
imageSizeResolved.layer,
|
|
2019
|
+
imageSizeResolved.rawLayer
|
|
2020
|
+
);
|
|
2021
|
+
const parentLayerKey = keyOfEntity(
|
|
2022
|
+
getParent(fragmentManager, layerKey)
|
|
2023
|
+
);
|
|
2024
|
+
const parentResolved = useResolvedLayer(
|
|
2025
|
+
parentLayerKey,
|
|
2026
|
+
SKIP_OVERRIDE
|
|
2027
|
+
);
|
|
2028
|
+
const parentVars = useResolvedLayerVariables(
|
|
2029
|
+
parentResolved.layer,
|
|
2030
|
+
parentResolved.rawLayer
|
|
1703
2031
|
);
|
|
1704
|
-
const
|
|
1705
|
-
|
|
1706
|
-
|
|
2032
|
+
const instanceResolved = useResolvedLayer(
|
|
2033
|
+
instanceLayerKey,
|
|
2034
|
+
SKIP_OVERRIDE
|
|
2035
|
+
);
|
|
2036
|
+
const instanceVars = useResolvedLayerVariables(
|
|
2037
|
+
instanceResolved.layer,
|
|
2038
|
+
instanceResolved.rawLayer
|
|
2039
|
+
);
|
|
2040
|
+
const paint = calcLayerPaint(paintVars);
|
|
2041
|
+
const borderPaint = calcLayerPaint(borderPaintVars);
|
|
2042
|
+
const linearGradient = useLayerLinearGradient(paint.linearGradientLink);
|
|
2043
|
+
const borderLinearGradient = useLayerLinearGradient(
|
|
2044
|
+
borderPaint.linearGradientLink
|
|
2045
|
+
);
|
|
2046
|
+
const context = {
|
|
2047
|
+
isDocument,
|
|
2048
|
+
isTopLevel: isTopLevel(fragmentManager, layerKey),
|
|
2049
|
+
instanceLayerKey
|
|
2050
|
+
};
|
|
2051
|
+
const layerSize = calcLayerSize(vars);
|
|
2052
|
+
const position = calcLayerPosition(
|
|
2053
|
+
resolved,
|
|
2054
|
+
vars,
|
|
2055
|
+
parentResolved,
|
|
2056
|
+
instanceResolved,
|
|
2057
|
+
instanceVars,
|
|
2058
|
+
context
|
|
2059
|
+
);
|
|
2060
|
+
const background = calcLayerBackground(
|
|
2061
|
+
paintVars,
|
|
2062
|
+
imageVars,
|
|
2063
|
+
imageSizeVars,
|
|
2064
|
+
linearGradient
|
|
2065
|
+
);
|
|
2066
|
+
const display = calcLayerDisplay(vars);
|
|
2067
|
+
const border = calcLayerBorder(
|
|
2068
|
+
borderVars,
|
|
2069
|
+
borderPaintVars,
|
|
2070
|
+
borderLinearGradient,
|
|
2071
|
+
paintVars,
|
|
2072
|
+
linearGradient
|
|
2073
|
+
);
|
|
2074
|
+
const layout = calcLayerLayout(vars);
|
|
2075
|
+
const textStyles = calcLayerTextStyles(vars);
|
|
2076
|
+
const layerFlex = calcLayerFlex(vars, parentVars);
|
|
1707
2077
|
return {
|
|
1708
|
-
// ...(props ?? {}),
|
|
1709
2078
|
...background,
|
|
1710
2079
|
...border,
|
|
1711
2080
|
...position,
|
|
1712
|
-
opacity,
|
|
1713
|
-
overflow,
|
|
1714
|
-
rotate: isValue(rotate) ? `${rotate}deg` : null,
|
|
1715
|
-
"border-radius": isValue(
|
|
1716
|
-
"white-space": whiteSpace,
|
|
1717
|
-
"z-index": zIndex !== -1 ? zIndex : null,
|
|
2081
|
+
opacity: vars.values.opacity,
|
|
2082
|
+
overflow: vars.values.overflow,
|
|
2083
|
+
rotate: isValue(vars.values.rotate) ? `${vars.values.rotate}deg` : null,
|
|
2084
|
+
"border-radius": isValue(vars.rawValues.borderRadius) ? vars.values.borderRadius : null,
|
|
2085
|
+
"white-space": vars.values.whiteSpace,
|
|
2086
|
+
"z-index": vars.values.zIndex !== -1 ? vars.values.zIndex : null,
|
|
1718
2087
|
...layout,
|
|
1719
2088
|
...layerSize,
|
|
1720
2089
|
...textStyles,
|
|
1721
2090
|
...layerFlex,
|
|
1722
2091
|
display
|
|
1723
|
-
// "user-select": "none",
|
|
1724
|
-
// ...cssOverride,
|
|
1725
2092
|
};
|
|
1726
2093
|
} catch (e) {
|
|
1727
2094
|
return {};
|
|
@@ -1826,6 +2193,34 @@ const useStyleSheet = (manager) => {
|
|
|
1826
2193
|
unmount: ((_b = manager == null ? void 0 : manager.$styleSheet) == null ? void 0 : _b.unmount) ?? noop
|
|
1827
2194
|
};
|
|
1828
2195
|
};
|
|
2196
|
+
const useGlobalManager = (globalManager) => {
|
|
2197
|
+
var _a, _b;
|
|
2198
|
+
const currentGlobalManager = useContext(GlobalManagerContext);
|
|
2199
|
+
const resultManager = globalManager ?? currentGlobalManager;
|
|
2200
|
+
const [fragmentsGraph] = useGraph(
|
|
2201
|
+
resultManager,
|
|
2202
|
+
(_a = resultManager == null ? void 0 : resultManager.$fragments) == null ? void 0 : _a.key
|
|
2203
|
+
);
|
|
2204
|
+
const queryFragmentManager = (id) => {
|
|
2205
|
+
var _a2, _b2;
|
|
2206
|
+
return (_b2 = (_a2 = resultManager == null ? void 0 : resultManager.$load) == null ? void 0 : _a2.loadFragment) == null ? void 0 : _b2.call(_a2, id);
|
|
2207
|
+
};
|
|
2208
|
+
const queryArea = (id) => {
|
|
2209
|
+
var _a2, _b2;
|
|
2210
|
+
return (_b2 = (_a2 = resultManager == null ? void 0 : resultManager.$load) == null ? void 0 : _a2.loadArea) == null ? void 0 : _b2.call(_a2, id);
|
|
2211
|
+
};
|
|
2212
|
+
const setRenderTarget = (value) => {
|
|
2213
|
+
resultManager == null ? void 0 : resultManager.setRenderTarget(value);
|
|
2214
|
+
};
|
|
2215
|
+
return {
|
|
2216
|
+
fragmentsGraph,
|
|
2217
|
+
manager: resultManager,
|
|
2218
|
+
queryFragmentManager,
|
|
2219
|
+
queryArea,
|
|
2220
|
+
getFragmentManager: ((_b = resultManager == null ? void 0 : resultManager.$fragments) == null ? void 0 : _b.getManager) ?? noop,
|
|
2221
|
+
setRenderTarget
|
|
2222
|
+
};
|
|
2223
|
+
};
|
|
1829
2224
|
const useLayerInteractions = (layerKey, options) => {
|
|
1830
2225
|
const pause = (options == null ? void 0 : options.pauseInteractions) ?? false;
|
|
1831
2226
|
const { manager: globalManager } = useGlobalManager();
|
|
@@ -1850,12 +2245,14 @@ const useLayerInteractions = (layerKey, options) => {
|
|
|
1850
2245
|
});
|
|
1851
2246
|
const fireEvent = useCallback(
|
|
1852
2247
|
(eventLink) => {
|
|
1853
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
2248
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
1854
2249
|
const eventType = (_a = entityOfKey(eventLink)) == null ? void 0 : _a._type;
|
|
1855
2250
|
const eventValue = (_b = getNormalizeLayer(eventLink, fragmentManager)) == null ? void 0 : _b.layer;
|
|
2251
|
+
console.log(scopes, eventLink, eventType, eventValue);
|
|
1856
2252
|
if (eventType === definition.nodes.GoalEvent && (eventValue == null ? void 0 : eventValue.goalId)) {
|
|
1857
2253
|
if (!areaScope) return null;
|
|
1858
|
-
(
|
|
2254
|
+
console.log((_c = globalManager == null ? void 0 : globalManager.$metrics) == null ? void 0 : _c.reachGoal);
|
|
2255
|
+
(_e = (_d = globalManager == null ? void 0 : globalManager.$metrics) == null ? void 0 : _d.reachGoal) == null ? void 0 : _e.call(_d, {
|
|
1859
2256
|
goalId: eventValue == null ? void 0 : eventValue.goalId,
|
|
1860
2257
|
...pick(areaScope, "variantId", "campaignId", "areaId")
|
|
1861
2258
|
});
|
|
@@ -1863,10 +2260,10 @@ const useLayerInteractions = (layerKey, options) => {
|
|
|
1863
2260
|
if (eventType === definition.nodes.MutateEvent) {
|
|
1864
2261
|
const target = eventValue == null ? void 0 : eventValue.target;
|
|
1865
2262
|
const targetLayer = getNormalizeLayer(target, fragmentManager);
|
|
1866
|
-
const value = (eventValue == null ? void 0 : eventValue.value) ?? ((
|
|
2263
|
+
const value = (eventValue == null ? void 0 : eventValue.value) ?? ((_f = targetLayer == null ? void 0 : targetLayer.layer) == null ? void 0 : _f.defaultValue);
|
|
1867
2264
|
if (isVariableLink$1(target) && isValue(value)) {
|
|
1868
|
-
const targetId = (
|
|
1869
|
-
(
|
|
2265
|
+
const targetId = (_g = entityOfKey(target)) == null ? void 0 : _g._id;
|
|
2266
|
+
(_h = instanceScope == null ? void 0 : instanceScope.onChangeProps) == null ? void 0 : _h.call(instanceScope, targetId, value);
|
|
1870
2267
|
}
|
|
1871
2268
|
}
|
|
1872
2269
|
},
|
|
@@ -2073,52 +2470,249 @@ const useCollection = (layerKey, options) => {
|
|
|
2073
2470
|
...frame
|
|
2074
2471
|
};
|
|
2075
2472
|
};
|
|
2076
|
-
const
|
|
2077
|
-
if (
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2473
|
+
const resolveFieldRef = (field, manager) => {
|
|
2474
|
+
if (isVariableLink$1(field)) {
|
|
2475
|
+
return manager.resolve(field);
|
|
2476
|
+
}
|
|
2477
|
+
if (isObject(field) && (field == null ? void 0 : field._id)) {
|
|
2478
|
+
return field;
|
|
2479
|
+
}
|
|
2480
|
+
return void 0;
|
|
2481
|
+
};
|
|
2482
|
+
const fieldRefToKey = (field) => {
|
|
2483
|
+
if (isVariableLink$1(field)) {
|
|
2484
|
+
return field;
|
|
2485
|
+
}
|
|
2486
|
+
if (isObject(field) && (field == null ? void 0 : field._type) && (field == null ? void 0 : field._id)) {
|
|
2487
|
+
return keyOfEntity(field);
|
|
2488
|
+
}
|
|
2489
|
+
return void 0;
|
|
2490
|
+
};
|
|
2491
|
+
const collectLeafKeys = (defVar, manager, keys) => {
|
|
2492
|
+
if (!(defVar == null ? void 0 : defVar.fields)) return;
|
|
2493
|
+
const fields = cleanGraph(defVar.fields);
|
|
2494
|
+
for (const fieldRef of Object.values(fields)) {
|
|
2495
|
+
const fieldVar = resolveFieldRef(fieldRef, manager);
|
|
2496
|
+
const fieldKey = fieldRefToKey(fieldRef);
|
|
2089
2497
|
if (!fieldVar || !fieldKey) continue;
|
|
2090
2498
|
if (fieldVar.type === definition.variableType.Object && fieldVar.fields) {
|
|
2091
|
-
|
|
2499
|
+
collectLeafKeys(fieldVar, manager, keys);
|
|
2092
2500
|
} else {
|
|
2093
2501
|
keys.push(fieldKey);
|
|
2094
2502
|
}
|
|
2095
2503
|
}
|
|
2096
2504
|
};
|
|
2097
|
-
const
|
|
2098
|
-
|
|
2505
|
+
const flattenObjectFields = (defVar, valueObj, manager, result) => {
|
|
2506
|
+
if (!(defVar == null ? void 0 : defVar.fields)) return;
|
|
2507
|
+
const fields = cleanGraph(defVar.fields);
|
|
2508
|
+
for (const [fieldName, fieldRef] of Object.entries(fields)) {
|
|
2509
|
+
const fieldVar = resolveFieldRef(fieldRef, manager);
|
|
2510
|
+
if (!(fieldVar == null ? void 0 : fieldVar._id)) continue;
|
|
2511
|
+
const fieldValue = valueObj[fieldName] ?? valueObj[fieldVar._id];
|
|
2512
|
+
if (fieldValue === void 0) continue;
|
|
2513
|
+
if (fieldVar.type === definition.variableType.Object && fieldVar.fields && isObject(fieldValue)) {
|
|
2514
|
+
flattenObjectFields(
|
|
2515
|
+
fieldVar,
|
|
2516
|
+
fieldValue,
|
|
2517
|
+
manager,
|
|
2518
|
+
result
|
|
2519
|
+
);
|
|
2520
|
+
} else {
|
|
2521
|
+
result[fieldVar._id] = fieldValue;
|
|
2522
|
+
}
|
|
2523
|
+
}
|
|
2524
|
+
};
|
|
2525
|
+
const buildFieldIdMapping = (childDef, parentDef, childManager, parentManager) => {
|
|
2526
|
+
const mapping = {};
|
|
2527
|
+
if (!(childDef == null ? void 0 : childDef.fields) || !(parentDef == null ? void 0 : parentDef.fields)) return mapping;
|
|
2528
|
+
const childFields = cleanGraph(childDef.fields);
|
|
2529
|
+
const parentFields = cleanGraph(parentDef.fields);
|
|
2530
|
+
for (const [fieldName, childFieldRef] of Object.entries(childFields)) {
|
|
2531
|
+
const parentFieldRef = parentFields[fieldName];
|
|
2532
|
+
if (!parentFieldRef) continue;
|
|
2533
|
+
const childFieldVar = resolveFieldRef(childFieldRef, childManager);
|
|
2534
|
+
if (!(childFieldVar == null ? void 0 : childFieldVar._id)) continue;
|
|
2535
|
+
const parentFieldVar = resolveFieldRef(parentFieldRef, parentManager);
|
|
2536
|
+
if (!(parentFieldVar == null ? void 0 : parentFieldVar._id)) continue;
|
|
2537
|
+
if (childFieldVar.type === definition.variableType.Object && childFieldVar.fields && (parentFieldVar == null ? void 0 : parentFieldVar.type) === definition.variableType.Object && (parentFieldVar == null ? void 0 : parentFieldVar.fields)) {
|
|
2538
|
+
Object.assign(
|
|
2539
|
+
mapping,
|
|
2540
|
+
buildFieldIdMapping(
|
|
2541
|
+
childFieldVar,
|
|
2542
|
+
parentFieldVar,
|
|
2543
|
+
childManager,
|
|
2544
|
+
parentManager
|
|
2545
|
+
)
|
|
2546
|
+
);
|
|
2547
|
+
continue;
|
|
2548
|
+
}
|
|
2549
|
+
mapping[parentFieldVar._id] = childFieldVar._id;
|
|
2550
|
+
}
|
|
2551
|
+
return mapping;
|
|
2552
|
+
};
|
|
2553
|
+
const resolveArrayItems = (items, manager) => {
|
|
2554
|
+
const result = [];
|
|
2555
|
+
for (const item of items) {
|
|
2556
|
+
if (isLink$1(item)) {
|
|
2557
|
+
const resolved = manager.resolve(item);
|
|
2558
|
+
if (!resolved) continue;
|
|
2559
|
+
const payload = isObject(resolved.value) ? resolved.value : resolved;
|
|
2560
|
+
if (isObject(payload)) {
|
|
2561
|
+
result.push(cleanGraph(payload));
|
|
2562
|
+
}
|
|
2563
|
+
} else if (isObject(item)) {
|
|
2564
|
+
const payload = isObject(item.value) ? item.value : item;
|
|
2565
|
+
result.push(cleanGraph(payload));
|
|
2566
|
+
}
|
|
2567
|
+
}
|
|
2568
|
+
return result;
|
|
2569
|
+
};
|
|
2570
|
+
const remapArrayItems = (items, mapping) => {
|
|
2571
|
+
return items.map((item) => {
|
|
2572
|
+
const remapped = {};
|
|
2573
|
+
for (const [key, value] of Object.entries(item)) {
|
|
2574
|
+
const newKey = mapping[key] ?? key;
|
|
2575
|
+
remapped[newKey] = value;
|
|
2576
|
+
}
|
|
2577
|
+
return remapped;
|
|
2578
|
+
});
|
|
2579
|
+
};
|
|
2580
|
+
const useExtractProps = (props, manager, parentManager, definitions) => {
|
|
2581
|
+
const { readVariable, _dep } = useReadVariable();
|
|
2582
|
+
const leafKeys = useMemo(() => {
|
|
2099
2583
|
if (!manager || !(definitions == null ? void 0 : definitions.length)) return [];
|
|
2100
2584
|
const keys = [];
|
|
2101
2585
|
for (const defKey of definitions) {
|
|
2102
2586
|
const defVar = manager.resolve(defKey);
|
|
2103
|
-
if (
|
|
2104
|
-
|
|
2587
|
+
if (!defVar) continue;
|
|
2588
|
+
if (defVar.type === definition.variableType.Object && defVar.fields) {
|
|
2589
|
+
collectLeafKeys(defVar, manager, keys);
|
|
2590
|
+
} else if (defVar.type === definition.variableType.Array && defVar.definition) {
|
|
2591
|
+
const arrDef = resolveFieldRef(defVar.definition, manager);
|
|
2592
|
+
if ((arrDef == null ? void 0 : arrDef.type) === definition.variableType.Object && (arrDef == null ? void 0 : arrDef.fields)) {
|
|
2593
|
+
collectLeafKeys(arrDef, manager, keys);
|
|
2594
|
+
}
|
|
2105
2595
|
}
|
|
2106
2596
|
}
|
|
2107
2597
|
return keys;
|
|
2108
2598
|
}, [definitions, manager]);
|
|
2109
|
-
const
|
|
2110
|
-
|
|
2111
|
-
|
|
2599
|
+
const leafLayers = useGraphStack(leafKeys.length ? manager : null, leafKeys);
|
|
2600
|
+
const arrayItemKeys = useMemo(() => {
|
|
2601
|
+
var _a;
|
|
2602
|
+
if (!manager || !(definitions == null ? void 0 : definitions.length)) return [];
|
|
2603
|
+
const resolveManager = parentManager ?? manager;
|
|
2604
|
+
if (!resolveManager) return [];
|
|
2605
|
+
const keys = [];
|
|
2606
|
+
for (const defKey of definitions) {
|
|
2607
|
+
const defVar = manager.resolve(defKey);
|
|
2608
|
+
if (!(defVar == null ? void 0 : defVar._id)) continue;
|
|
2609
|
+
if (defVar.type !== definition.variableType.Array || !defVar.definition)
|
|
2610
|
+
continue;
|
|
2611
|
+
const propValue = props[defVar._id];
|
|
2612
|
+
if (!isVariableLink$1(propValue)) continue;
|
|
2613
|
+
const parentVar = resolveManager.resolve(propValue);
|
|
2614
|
+
if ((parentVar == null ? void 0 : parentVar.type) !== definition.variableType.Array) continue;
|
|
2615
|
+
const items = parentVar.defaultValue;
|
|
2616
|
+
if (!Array.isArray(items)) continue;
|
|
2617
|
+
for (const item of items) {
|
|
2618
|
+
if (isLink$1(item)) {
|
|
2619
|
+
keys.push(item);
|
|
2620
|
+
const resolved = resolveManager.resolve(item);
|
|
2621
|
+
if ((resolved == null ? void 0 : resolved.value) && isObject(resolved.value) && ((_a = resolved.value) == null ? void 0 : _a._type)) {
|
|
2622
|
+
const valueKey = keyOfEntity(resolved.value);
|
|
2623
|
+
if (valueKey) keys.push(valueKey);
|
|
2624
|
+
}
|
|
2625
|
+
}
|
|
2626
|
+
}
|
|
2627
|
+
}
|
|
2628
|
+
return keys;
|
|
2629
|
+
}, [definitions, manager, parentManager, props, _dep]);
|
|
2630
|
+
const arrayItemLayers = useGraphStack(
|
|
2631
|
+
arrayItemKeys.length ? parentManager ?? manager : null,
|
|
2632
|
+
arrayItemKeys
|
|
2112
2633
|
);
|
|
2113
2634
|
return useMemo(() => {
|
|
2635
|
+
if (!manager || !(definitions == null ? void 0 : definitions.length)) return props;
|
|
2636
|
+
const resolveManager = parentManager ?? manager;
|
|
2114
2637
|
const base = {};
|
|
2115
|
-
for (const layer of
|
|
2638
|
+
for (const layer of leafLayers) {
|
|
2116
2639
|
if ((layer == null ? void 0 : layer._id) && (layer == null ? void 0 : layer.defaultValue) != null) {
|
|
2117
2640
|
base[layer._id] = layer.defaultValue;
|
|
2118
2641
|
}
|
|
2119
2642
|
}
|
|
2120
|
-
|
|
2121
|
-
|
|
2643
|
+
const expanded = {};
|
|
2644
|
+
const handledPropKeys = /* @__PURE__ */ new Set();
|
|
2645
|
+
for (const defKey of definitions) {
|
|
2646
|
+
const defVar = manager.resolve(defKey);
|
|
2647
|
+
if (!(defVar == null ? void 0 : defVar._id)) continue;
|
|
2648
|
+
const propValue = props[defVar._id];
|
|
2649
|
+
handledPropKeys.add(defVar._id);
|
|
2650
|
+
if (propValue === void 0) continue;
|
|
2651
|
+
if (defVar.type === definition.variableType.Object && defVar.fields) {
|
|
2652
|
+
if (isObject(propValue)) {
|
|
2653
|
+
flattenObjectFields(
|
|
2654
|
+
defVar,
|
|
2655
|
+
propValue,
|
|
2656
|
+
manager,
|
|
2657
|
+
expanded
|
|
2658
|
+
);
|
|
2659
|
+
continue;
|
|
2660
|
+
}
|
|
2661
|
+
expanded[defVar._id] = propValue;
|
|
2662
|
+
continue;
|
|
2663
|
+
}
|
|
2664
|
+
if (defVar.type === definition.variableType.Array && defVar.definition) {
|
|
2665
|
+
if (isVariableLink$1(propValue) && resolveManager) {
|
|
2666
|
+
const parentVar = resolveManager.resolve(propValue);
|
|
2667
|
+
if ((parentVar == null ? void 0 : parentVar.type) === definition.variableType.Array && (parentVar == null ? void 0 : parentVar.definition)) {
|
|
2668
|
+
const { value: resolvedArray } = readVariable(propValue);
|
|
2669
|
+
if (Array.isArray(resolvedArray)) {
|
|
2670
|
+
const concreteItems = resolveArrayItems(
|
|
2671
|
+
resolvedArray,
|
|
2672
|
+
resolveManager
|
|
2673
|
+
);
|
|
2674
|
+
const childDef = resolveFieldRef(defVar.definition, manager);
|
|
2675
|
+
const parentDef = resolveFieldRef(
|
|
2676
|
+
parentVar.definition,
|
|
2677
|
+
resolveManager
|
|
2678
|
+
);
|
|
2679
|
+
if ((childDef == null ? void 0 : childDef.type) === definition.variableType.Object && (childDef == null ? void 0 : childDef.fields) && (parentDef == null ? void 0 : parentDef.type) === definition.variableType.Object && (parentDef == null ? void 0 : parentDef.fields)) {
|
|
2680
|
+
const mapping = buildFieldIdMapping(
|
|
2681
|
+
childDef,
|
|
2682
|
+
parentDef,
|
|
2683
|
+
manager,
|
|
2684
|
+
resolveManager
|
|
2685
|
+
);
|
|
2686
|
+
expanded[defVar._id] = remapArrayItems(concreteItems, mapping);
|
|
2687
|
+
} else {
|
|
2688
|
+
expanded[defVar._id] = concreteItems;
|
|
2689
|
+
}
|
|
2690
|
+
continue;
|
|
2691
|
+
}
|
|
2692
|
+
}
|
|
2693
|
+
expanded[defVar._id] = propValue;
|
|
2694
|
+
continue;
|
|
2695
|
+
}
|
|
2696
|
+
expanded[defVar._id] = propValue;
|
|
2697
|
+
continue;
|
|
2698
|
+
}
|
|
2699
|
+
expanded[defVar._id] = propValue;
|
|
2700
|
+
}
|
|
2701
|
+
for (const [key, value] of Object.entries(props)) {
|
|
2702
|
+
if (!handledPropKeys.has(key) && !(key in expanded)) {
|
|
2703
|
+
expanded[key] = value;
|
|
2704
|
+
}
|
|
2705
|
+
}
|
|
2706
|
+
return { ...base, ...expanded };
|
|
2707
|
+
}, [
|
|
2708
|
+
leafLayers,
|
|
2709
|
+
arrayItemLayers,
|
|
2710
|
+
props,
|
|
2711
|
+
manager,
|
|
2712
|
+
parentManager,
|
|
2713
|
+
definitions,
|
|
2714
|
+
_dep
|
|
2715
|
+
]);
|
|
2122
2716
|
};
|
|
2123
2717
|
const CollectionItem = ({
|
|
2124
2718
|
layer,
|
|
@@ -2132,9 +2726,7 @@ const CollectionItem = ({
|
|
|
2132
2726
|
keyOfEntity(layer);
|
|
2133
2727
|
const definitionId = ((_a = entityOfKey(sourceDefinition)) == null ? void 0 : _a._id) ?? "";
|
|
2134
2728
|
const value = layer.value ?? layer;
|
|
2135
|
-
const inputProps =
|
|
2136
|
-
...value
|
|
2137
|
-
} : {
|
|
2729
|
+
const inputProps = {
|
|
2138
2730
|
[definitionId]: value
|
|
2139
2731
|
};
|
|
2140
2732
|
const props = cleanGraph(inputProps);
|
|
@@ -2142,7 +2734,7 @@ const CollectionItem = ({
|
|
|
2142
2734
|
() => sourceDefinition ? [sourceDefinition] : [],
|
|
2143
2735
|
[sourceDefinition]
|
|
2144
2736
|
);
|
|
2145
|
-
const expandedProps =
|
|
2737
|
+
const expandedProps = useExtractProps(props, manager, void 0, definitions);
|
|
2146
2738
|
const cssVars = useMemo(
|
|
2147
2739
|
() => toCssCustomProperties(expandedProps),
|
|
2148
2740
|
[expandedProps]
|
|
@@ -2280,24 +2872,18 @@ const Frame = ({
|
|
|
2280
2872
|
}
|
|
2281
2873
|
);
|
|
2282
2874
|
};
|
|
2283
|
-
const useIsomorphicEffect = (callback, deps) => {
|
|
2284
|
-
useEffect(callback, deps);
|
|
2285
|
-
if (!isBrowser$1) {
|
|
2286
|
-
callback();
|
|
2287
|
-
}
|
|
2288
|
-
};
|
|
2289
2875
|
const useCssChunk = (linkKey) => {
|
|
2290
2876
|
const { manager } = useContext(FragmentContext);
|
|
2291
2877
|
const [chunkId] = useLayerValue(linkKey, "chunkId", { manager });
|
|
2292
2878
|
const [enabled] = useLayerValue(linkKey, "enabled", { manager });
|
|
2293
|
-
const
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
}, [enabled]);
|
|
2879
|
+
const { addCssChunk } = useStyleSheet(manager);
|
|
2880
|
+
useEffect(() => {
|
|
2881
|
+
if (!enabled || !chunkId) return;
|
|
2882
|
+
const cleanup = addCssChunk(chunkId);
|
|
2883
|
+
return () => {
|
|
2884
|
+
cleanup();
|
|
2885
|
+
};
|
|
2886
|
+
}, [enabled, chunkId, addCssChunk]);
|
|
2301
2887
|
};
|
|
2302
2888
|
const CssChunk = ({ linkKey }) => {
|
|
2303
2889
|
useCssChunk(linkKey);
|
|
@@ -2311,23 +2897,18 @@ const useFragmentManager = (fragmentId, inputGlobalManager) => {
|
|
|
2311
2897
|
getFragmentManager,
|
|
2312
2898
|
queryFragmentManager
|
|
2313
2899
|
} = useGlobalManager(inputGlobalManager);
|
|
2314
|
-
const [loading, setLoading] = useState(false);
|
|
2315
2900
|
const manager = getFragmentManager(fragmentId);
|
|
2901
|
+
const loading = !!fragmentId && !manager;
|
|
2316
2902
|
useEffect(() => {
|
|
2317
|
-
(
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
await queryFragmentManager(fragmentId);
|
|
2321
|
-
setLoading(false);
|
|
2322
|
-
}
|
|
2323
|
-
})();
|
|
2903
|
+
if (fragmentsGraph && !getFragmentManager(fragmentId) && !!fragmentId) {
|
|
2904
|
+
queryFragmentManager(fragmentId);
|
|
2905
|
+
}
|
|
2324
2906
|
}, [fragmentId, fragmentsGraph]);
|
|
2325
2907
|
return {
|
|
2326
2908
|
loading,
|
|
2327
2909
|
manager,
|
|
2328
2910
|
fragmentLayerKey: (_a = manager == null ? void 0 : manager.$fragment) == null ? void 0 : _a.root,
|
|
2329
2911
|
queryFragmentManager
|
|
2330
|
-
// loadFragmentManager,
|
|
2331
2912
|
};
|
|
2332
2913
|
};
|
|
2333
2914
|
const useFragmentChildren = (fragmentId) => {
|
|
@@ -2385,7 +2966,7 @@ const useFragment = (fragmentId, globalManager) => {
|
|
|
2385
2966
|
const { properties: definitions } = useFragmentProperties(fragmentId);
|
|
2386
2967
|
const scopes = useContext(ScopeContext);
|
|
2387
2968
|
!(scopes == null ? void 0 : scopes.length);
|
|
2388
|
-
const { addLayerStyle,
|
|
2969
|
+
const { addLayerStyle, mount, unmount } = useStyleSheet(
|
|
2389
2970
|
fragmentContext.manager
|
|
2390
2971
|
);
|
|
2391
2972
|
if (fragmentContext.manager) {
|
|
@@ -2420,35 +3001,26 @@ const useFragment = (fragmentId, globalManager) => {
|
|
|
2420
3001
|
definitions
|
|
2421
3002
|
};
|
|
2422
3003
|
};
|
|
2423
|
-
const FragmentInternal = (
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
// fragmentManager={fragmentContext.manager}
|
|
2444
|
-
// layerKey={layerKey}
|
|
2445
|
-
// value={{
|
|
2446
|
-
// type: definition.scopeTypes.FragmentScope,
|
|
2447
|
-
// manager: fragmentContext.manager,
|
|
2448
|
-
// definitions,
|
|
2449
|
-
// }}
|
|
2450
|
-
// >
|
|
2451
|
-
/* @__PURE__ */ jsxs("div", { "data-key": layerKey, className: hash, children: [
|
|
3004
|
+
const FragmentInternal = memo(
|
|
3005
|
+
({
|
|
3006
|
+
fragmentId,
|
|
3007
|
+
globalManager,
|
|
3008
|
+
pauseInteractions,
|
|
3009
|
+
collectStyle,
|
|
3010
|
+
FrameElement = Frame
|
|
3011
|
+
}) => {
|
|
3012
|
+
const {
|
|
3013
|
+
children,
|
|
3014
|
+
fragmentContext,
|
|
3015
|
+
hash,
|
|
3016
|
+
chunkLinks,
|
|
3017
|
+
isResize,
|
|
3018
|
+
isTopFragment,
|
|
3019
|
+
definitions,
|
|
3020
|
+
layerKey
|
|
3021
|
+
} = useFragment(fragmentId);
|
|
3022
|
+
if (!fragmentContext.manager) return null;
|
|
3023
|
+
return /* @__PURE__ */ jsxs("div", { "data-key": layerKey, className: hash, children: [
|
|
2452
3024
|
chunkLinks.map((linkKey) => /* @__PURE__ */ jsx(CssChunk, { linkKey })),
|
|
2453
3025
|
children.map((childLink) => {
|
|
2454
3026
|
var _a;
|
|
@@ -2466,21 +3038,51 @@ const FragmentInternal = ({
|
|
|
2466
3038
|
childLink
|
|
2467
3039
|
);
|
|
2468
3040
|
})
|
|
2469
|
-
] })
|
|
2470
|
-
|
|
2471
|
-
|
|
3041
|
+
] });
|
|
3042
|
+
}
|
|
3043
|
+
);
|
|
2472
3044
|
const Fragment = (props) => {
|
|
2473
3045
|
const currentGlobalManager = useContext(GlobalManagerContext);
|
|
2474
3046
|
const { manager: resultGlobalManager } = useGlobalManager(
|
|
2475
3047
|
props.globalManager
|
|
2476
3048
|
);
|
|
2477
3049
|
const { manager } = useFragmentManager(props.fragmentId, resultGlobalManager);
|
|
2478
|
-
const
|
|
3050
|
+
const fragmentContextValue = useMemo(() => ({ manager }), [manager]);
|
|
3051
|
+
const Base = /* @__PURE__ */ jsx(FragmentContext.Provider, { value: fragmentContextValue, children: /* @__PURE__ */ jsx(FragmentInternal, { ...props }) });
|
|
2479
3052
|
if (!currentGlobalManager) {
|
|
2480
3053
|
return /* @__PURE__ */ jsx(GlobalManagerProvider, { value: resultGlobalManager, children: Base });
|
|
2481
3054
|
}
|
|
2482
3055
|
return Base;
|
|
2483
3056
|
};
|
|
3057
|
+
const resolveObjectToConcreteValue = (objectVar, manager, readVariable) => {
|
|
3058
|
+
const fields = cleanGraph(objectVar.fields);
|
|
3059
|
+
const result = {};
|
|
3060
|
+
for (const [fieldName, fieldRef] of Object.entries(fields)) {
|
|
3061
|
+
let fieldVar;
|
|
3062
|
+
let fieldKey;
|
|
3063
|
+
if (isVariableLink$1(fieldRef)) {
|
|
3064
|
+
fieldKey = fieldRef;
|
|
3065
|
+
fieldVar = manager == null ? void 0 : manager.resolve(fieldKey);
|
|
3066
|
+
} else if (isObject(fieldRef) && (fieldRef == null ? void 0 : fieldRef._id)) {
|
|
3067
|
+
fieldKey = keyOfEntity(fieldRef);
|
|
3068
|
+
fieldVar = fieldRef;
|
|
3069
|
+
}
|
|
3070
|
+
if (!fieldVar || !fieldKey) continue;
|
|
3071
|
+
if (fieldVar.type === definition.variableType.Object && fieldVar.fields) {
|
|
3072
|
+
result[fieldName] = resolveObjectToConcreteValue(
|
|
3073
|
+
fieldVar,
|
|
3074
|
+
manager,
|
|
3075
|
+
readVariable
|
|
3076
|
+
);
|
|
3077
|
+
} else {
|
|
3078
|
+
const { value } = readVariable(fieldKey);
|
|
3079
|
+
if (value != null) {
|
|
3080
|
+
result[fieldName] = value;
|
|
3081
|
+
}
|
|
3082
|
+
}
|
|
3083
|
+
}
|
|
3084
|
+
return result;
|
|
3085
|
+
};
|
|
2484
3086
|
const useInstanceProps = (instanceProps) => {
|
|
2485
3087
|
const isTopInstance = !(instanceProps == null ? void 0 : instanceProps.layerKey);
|
|
2486
3088
|
const { manager: loadedManager } = useFragmentManager(
|
|
@@ -2499,13 +3101,39 @@ const useInstanceProps = (instanceProps) => {
|
|
|
2499
3101
|
};
|
|
2500
3102
|
}
|
|
2501
3103
|
const extractProps = cleanGraph(inputProps);
|
|
3104
|
+
const { readVariable } = useReadVariable();
|
|
3105
|
+
let resolvedProps = extractProps;
|
|
3106
|
+
if (!isTopInstance) {
|
|
3107
|
+
resolvedProps = {};
|
|
3108
|
+
for (const [key, value] of Object.entries(extractProps)) {
|
|
3109
|
+
if (!isVariableLink$1(value)) {
|
|
3110
|
+
resolvedProps[key] = value;
|
|
3111
|
+
continue;
|
|
3112
|
+
}
|
|
3113
|
+
const varLayer = fragmentManager == null ? void 0 : fragmentManager.resolve(value);
|
|
3114
|
+
if ((varLayer == null ? void 0 : varLayer.type) === definition.variableType.Array) {
|
|
3115
|
+
resolvedProps[key] = value;
|
|
3116
|
+
continue;
|
|
3117
|
+
}
|
|
3118
|
+
if ((varLayer == null ? void 0 : varLayer.type) === definition.variableType.Object && (varLayer == null ? void 0 : varLayer.fields)) {
|
|
3119
|
+
resolvedProps[key] = resolveObjectToConcreteValue(
|
|
3120
|
+
varLayer,
|
|
3121
|
+
fragmentManager,
|
|
3122
|
+
readVariable
|
|
3123
|
+
);
|
|
3124
|
+
continue;
|
|
3125
|
+
}
|
|
3126
|
+
const { value: resolved } = readVariable(value);
|
|
3127
|
+
resolvedProps[key] = resolved;
|
|
3128
|
+
}
|
|
3129
|
+
}
|
|
2502
3130
|
useEffect(() => {
|
|
2503
3131
|
if (isValue(instanceProps == null ? void 0 : instanceProps.props)) {
|
|
2504
3132
|
setLocalProps(instanceProps.props);
|
|
2505
3133
|
}
|
|
2506
3134
|
}, [instanceProps == null ? void 0 : instanceProps.props]);
|
|
2507
3135
|
return {
|
|
2508
|
-
props:
|
|
3136
|
+
props: resolvedProps,
|
|
2509
3137
|
onChangeProps: (variableId, value) => {
|
|
2510
3138
|
var _a;
|
|
2511
3139
|
setLocalProps((prev) => ({ ...prev, [variableId]: value }));
|
|
@@ -2582,7 +3210,7 @@ const InstanceInitial = ({
|
|
|
2582
3210
|
...instanceProps,
|
|
2583
3211
|
pauseInteractions
|
|
2584
3212
|
});
|
|
2585
|
-
const expandedProps =
|
|
3213
|
+
const expandedProps = useExtractProps(
|
|
2586
3214
|
props,
|
|
2587
3215
|
innerManager,
|
|
2588
3216
|
parentManager,
|
|
@@ -2593,49 +3221,56 @@ const InstanceInitial = ({
|
|
|
2593
3221
|
[expandedProps]
|
|
2594
3222
|
);
|
|
2595
3223
|
useSuspenseLoadFragment(globalManager, fragmentId, !ssr);
|
|
3224
|
+
const scopeValue = useMemo(
|
|
3225
|
+
() => ({
|
|
3226
|
+
type: definition.scopeTypes.InstanceScope,
|
|
3227
|
+
props: expandedProps,
|
|
3228
|
+
definitions,
|
|
3229
|
+
fragmentId,
|
|
3230
|
+
documentManager: innerManager,
|
|
3231
|
+
layerKey: instanceProps.layerKey,
|
|
3232
|
+
onChangeProps
|
|
3233
|
+
}),
|
|
3234
|
+
[
|
|
3235
|
+
expandedProps,
|
|
3236
|
+
definitions,
|
|
3237
|
+
fragmentId,
|
|
3238
|
+
innerManager,
|
|
3239
|
+
instanceProps.layerKey,
|
|
3240
|
+
onChangeProps
|
|
3241
|
+
]
|
|
3242
|
+
);
|
|
3243
|
+
const instanceContextValue = useMemo(
|
|
3244
|
+
() => ({
|
|
3245
|
+
layerKey: instanceProps.layerKey,
|
|
3246
|
+
definitions,
|
|
3247
|
+
innerManager,
|
|
3248
|
+
parentManager,
|
|
3249
|
+
props: expandedProps
|
|
3250
|
+
}),
|
|
3251
|
+
[
|
|
3252
|
+
instanceProps.layerKey,
|
|
3253
|
+
definitions,
|
|
3254
|
+
innerManager,
|
|
3255
|
+
parentManager,
|
|
3256
|
+
expandedProps
|
|
3257
|
+
]
|
|
3258
|
+
);
|
|
2596
3259
|
return /* @__PURE__ */ jsx(
|
|
2597
3260
|
Scope,
|
|
2598
3261
|
{
|
|
2599
3262
|
fragmentManager: innerManager,
|
|
2600
3263
|
layerKey: instanceProps.layerKey,
|
|
2601
|
-
value:
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
definitions,
|
|
2605
|
-
fragmentId,
|
|
2606
|
-
documentManager: innerManager,
|
|
2607
|
-
layerKey: instanceProps.layerKey,
|
|
2608
|
-
onChangeProps
|
|
2609
|
-
},
|
|
2610
|
-
children: /* @__PURE__ */ jsx(
|
|
2611
|
-
InstanceContext$1.Provider,
|
|
3264
|
+
value: scopeValue,
|
|
3265
|
+
children: /* @__PURE__ */ jsx(InstanceContext$1.Provider, { value: instanceContextValue, children: parentManager ? /* @__PURE__ */ jsx(
|
|
3266
|
+
Tag,
|
|
2612
3267
|
{
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
},
|
|
2620
|
-
children: parentManager ? /* @__PURE__ */ jsx(
|
|
2621
|
-
Tag,
|
|
2622
|
-
{
|
|
2623
|
-
className: classnames,
|
|
2624
|
-
"data-key": instanceProps.layerKey,
|
|
2625
|
-
style: { ...style, ...cssVars },
|
|
2626
|
-
...link.linkProps,
|
|
2627
|
-
...events,
|
|
2628
|
-
children: /* @__PURE__ */ jsx(
|
|
2629
|
-
Fragment,
|
|
2630
|
-
{
|
|
2631
|
-
fragmentId,
|
|
2632
|
-
globalManager,
|
|
2633
|
-
FrameElement,
|
|
2634
|
-
pauseInteractions
|
|
2635
|
-
}
|
|
2636
|
-
)
|
|
2637
|
-
}
|
|
2638
|
-
) : /* @__PURE__ */ jsx(Tag, { style: { ...style, ...cssVars }, ...link.linkProps, children: /* @__PURE__ */ jsx(
|
|
3268
|
+
className: classnames,
|
|
3269
|
+
"data-key": instanceProps.layerKey,
|
|
3270
|
+
style: { ...style, ...cssVars },
|
|
3271
|
+
...link.linkProps,
|
|
3272
|
+
...events,
|
|
3273
|
+
children: /* @__PURE__ */ jsx(
|
|
2639
3274
|
Fragment,
|
|
2640
3275
|
{
|
|
2641
3276
|
fragmentId,
|
|
@@ -2643,9 +3278,17 @@ const InstanceInitial = ({
|
|
|
2643
3278
|
FrameElement,
|
|
2644
3279
|
pauseInteractions
|
|
2645
3280
|
}
|
|
2646
|
-
)
|
|
3281
|
+
)
|
|
2647
3282
|
}
|
|
2648
|
-
)
|
|
3283
|
+
) : /* @__PURE__ */ jsx(Tag, { style: { ...style, ...cssVars }, ...link.linkProps, children: /* @__PURE__ */ jsx(
|
|
3284
|
+
Fragment,
|
|
3285
|
+
{
|
|
3286
|
+
fragmentId,
|
|
3287
|
+
globalManager,
|
|
3288
|
+
FrameElement,
|
|
3289
|
+
pauseInteractions
|
|
3290
|
+
}
|
|
3291
|
+
) }) })
|
|
2649
3292
|
}
|
|
2650
3293
|
);
|
|
2651
3294
|
};
|
|
@@ -2693,18 +3336,28 @@ const useArea = (options) => {
|
|
|
2693
3336
|
const AreaInitial = (areaProps) => {
|
|
2694
3337
|
const areaData = useArea(areaProps);
|
|
2695
3338
|
if (!areaData) return null;
|
|
2696
|
-
|
|
3339
|
+
const areaManager = useMemo(
|
|
3340
|
+
() => createAreaManager({
|
|
3341
|
+
areaId: areaData.areaId,
|
|
3342
|
+
campaignId: areaData.campaignId,
|
|
3343
|
+
variantId: areaData.variantId,
|
|
3344
|
+
areaProperties: areaData.areaProperties
|
|
3345
|
+
}),
|
|
3346
|
+
[areaData.areaId]
|
|
3347
|
+
);
|
|
3348
|
+
return /* @__PURE__ */ jsx(AreaManagerProvider, { value: areaManager, children: /* @__PURE__ */ jsx(
|
|
2697
3349
|
Scope,
|
|
2698
3350
|
{
|
|
2699
3351
|
fragmentManager: areaData.fragmentManager,
|
|
2700
3352
|
layerKey: "Area",
|
|
2701
3353
|
value: {
|
|
2702
3354
|
type: definition.scopeTypes.AreaScope,
|
|
3355
|
+
areaManager,
|
|
2703
3356
|
...areaData ?? {}
|
|
2704
3357
|
},
|
|
2705
3358
|
children: /* @__PURE__ */ jsx(Instance, { fragmentId: areaData.fragmentId, props: areaData == null ? void 0 : areaData.props })
|
|
2706
3359
|
}
|
|
2707
|
-
);
|
|
3360
|
+
) });
|
|
2708
3361
|
};
|
|
2709
3362
|
const Area = (props) => {
|
|
2710
3363
|
return "globalManager" in props ? /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(GlobalManagerProvider, { value: props.globalManager, children: /* @__PURE__ */ jsx(AreaInitial, { ...props }) }) }) : /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(AreaInitial, { ...props }) });
|
|
@@ -2731,6 +3384,8 @@ const useLayerCssOverride = (layerKey) => {
|
|
|
2731
3384
|
};
|
|
2732
3385
|
export {
|
|
2733
3386
|
Area,
|
|
3387
|
+
AreaManagerContext,
|
|
3388
|
+
AreaManagerProvider,
|
|
2734
3389
|
Collection,
|
|
2735
3390
|
CssChunk,
|
|
2736
3391
|
CustomRender,
|
|
@@ -2761,7 +3416,6 @@ export {
|
|
|
2761
3416
|
declareFragmentProperty,
|
|
2762
3417
|
defaultCustomRender,
|
|
2763
3418
|
duplicateLayer,
|
|
2764
|
-
expandObjectProps,
|
|
2765
3419
|
findBreakpoint,
|
|
2766
3420
|
getAllParents,
|
|
2767
3421
|
getHydratedData,
|
|
@@ -2783,7 +3437,6 @@ export {
|
|
|
2783
3437
|
isTopLevel,
|
|
2784
3438
|
isVariableLink,
|
|
2785
3439
|
layerFieldSetter,
|
|
2786
|
-
loadFragmentManager,
|
|
2787
3440
|
makeSnapshot,
|
|
2788
3441
|
moveChildren,
|
|
2789
3442
|
nodeWalker,
|
|
@@ -2827,6 +3480,8 @@ export {
|
|
|
2827
3480
|
useReadVariable,
|
|
2828
3481
|
useReadVariables,
|
|
2829
3482
|
useRenderTarget,
|
|
3483
|
+
useResolvedLayer,
|
|
3484
|
+
useResolvedLayerVariables,
|
|
2830
3485
|
useTextAttributes,
|
|
2831
3486
|
useTextContent,
|
|
2832
3487
|
useTextHighlight,
|