@makeswift/runtime 0.7.5 → 0.7.7
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/Box.cjs.js +0 -1
- package/dist/Box.cjs.js.map +1 -1
- package/dist/Box.es.js +0 -1
- package/dist/Box.es.js.map +1 -1
- package/dist/Button.cjs.js +0 -1
- package/dist/Button.cjs.js.map +1 -1
- package/dist/Button.es.js +0 -1
- package/dist/Button.es.js.map +1 -1
- package/dist/Carousel.cjs.js +0 -1
- package/dist/Carousel.cjs.js.map +1 -1
- package/dist/Carousel.es.js +0 -1
- package/dist/Carousel.es.js.map +1 -1
- package/dist/Countdown.cjs.js +0 -1
- package/dist/Countdown.cjs.js.map +1 -1
- package/dist/Countdown.es.js +0 -1
- package/dist/Countdown.es.js.map +1 -1
- package/dist/Divider.cjs.js +0 -1
- package/dist/Divider.cjs.js.map +1 -1
- package/dist/Divider.es.js +0 -1
- package/dist/Divider.es.js.map +1 -1
- package/dist/EditableText.cjs.js +0 -1
- package/dist/EditableText.cjs.js.map +1 -1
- package/dist/EditableText.es.js +1 -2
- package/dist/EditableText.es.js.map +1 -1
- package/dist/Embed.cjs.js +0 -1
- package/dist/Embed.cjs.js.map +1 -1
- package/dist/Embed.es.js +0 -1
- package/dist/Embed.es.js.map +1 -1
- package/dist/Form.cjs.js +0 -1
- package/dist/Form.cjs.js.map +1 -1
- package/dist/Form.es.js +0 -1
- package/dist/Form.es.js.map +1 -1
- package/dist/Image.cjs.js +0 -1
- package/dist/Image.cjs.js.map +1 -1
- package/dist/Image.es.js +0 -1
- package/dist/Image.es.js.map +1 -1
- package/dist/LiveProvider.cjs.js +0 -1
- package/dist/LiveProvider.cjs.js.map +1 -1
- package/dist/LiveProvider.es.js +0 -1
- package/dist/LiveProvider.es.js.map +1 -1
- package/dist/Navigation.cjs.js +0 -1
- package/dist/Navigation.cjs.js.map +1 -1
- package/dist/Navigation.es.js +0 -1
- package/dist/Navigation.es.js.map +1 -1
- package/dist/PreviewProvider.cjs.js +6 -2
- package/dist/PreviewProvider.cjs.js.map +1 -1
- package/dist/PreviewProvider.es.js +8 -4
- package/dist/PreviewProvider.es.js.map +1 -1
- package/dist/ReadOnlyText.cjs.js +0 -1
- package/dist/ReadOnlyText.cjs.js.map +1 -1
- package/dist/ReadOnlyText.es.js +0 -1
- package/dist/ReadOnlyText.es.js.map +1 -1
- package/dist/Root.cjs.js +0 -1
- package/dist/Root.cjs.js.map +1 -1
- package/dist/Root.es.js +0 -1
- package/dist/Root.es.js.map +1 -1
- package/dist/SocialLinks.cjs.js +0 -1
- package/dist/SocialLinks.cjs.js.map +1 -1
- package/dist/SocialLinks.es.js +0 -1
- package/dist/SocialLinks.es.js.map +1 -1
- package/dist/Text.cjs.js +0 -1
- package/dist/Text.cjs.js.map +1 -1
- package/dist/Text.es.js +0 -1
- package/dist/Text.es.js.map +1 -1
- package/dist/Video.cjs.js +0 -1
- package/dist/Video.cjs.js.map +1 -1
- package/dist/Video.es.js +0 -1
- package/dist/Video.es.js.map +1 -1
- package/dist/builder.cjs.js +0 -1
- package/dist/builder.cjs.js.map +1 -1
- package/dist/builder.es.js +0 -1
- package/dist/builder.es.js.map +1 -1
- package/dist/components.cjs.js +0 -1
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +0 -1
- package/dist/components.es.js.map +1 -1
- package/dist/constants.cjs.js +18 -3
- package/dist/constants.cjs.js.map +1 -1
- package/dist/constants.es.js +17 -3
- package/dist/constants.es.js.map +1 -1
- package/dist/control-serialization.cjs.js +107 -108
- package/dist/control-serialization.cjs.js.map +1 -1
- package/dist/control-serialization.es.js +1 -2
- package/dist/control-serialization.es.js.map +1 -1
- package/dist/controls.cjs.js +14 -11
- package/dist/controls.cjs.js.map +1 -1
- package/dist/controls.es.js +1 -2
- package/dist/controls.es.js.map +1 -1
- package/dist/index.cjs.js +133 -114
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs5.js +0 -1
- package/dist/index.cjs5.js.map +1 -1
- package/dist/index.es.js +107 -88
- package/dist/index.es.js.map +1 -1
- package/dist/index.es5.js +0 -1
- package/dist/index.es5.js.map +1 -1
- package/dist/index.es6.js +1 -1
- package/dist/main.cjs.js +0 -1
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.es.js +0 -1
- package/dist/main.es.js.map +1 -1
- package/dist/next.cjs.js +0 -1
- package/dist/next.cjs.js.map +1 -1
- package/dist/next.es.js +0 -1
- package/dist/next.es.js.map +1 -1
- package/dist/prop-controllers.es.js +1 -1
- package/dist/react.cjs.js +0 -1
- package/dist/react.cjs.js.map +1 -1
- package/dist/react.es.js +0 -1
- package/dist/react.es.js.map +1 -1
- package/dist/rich-text.cjs.js +499 -7
- package/dist/rich-text.cjs.js.map +1 -1
- package/dist/rich-text.es.js +484 -7
- package/dist/rich-text.es.js.map +1 -1
- package/dist/types/src/components/builtin/Button/Button.d.ts +1 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
- package/dist/types/src/controls/control.d.ts +2 -1
- package/dist/types/src/controls/control.d.ts.map +1 -1
- package/dist/types/src/controls/list.d.ts +20 -0
- package/dist/types/src/controls/list.d.ts.map +1 -1
- package/dist/types/src/controls/shape.d.ts +21 -0
- package/dist/types/src/controls/shape.d.ts.map +1 -1
- package/dist/types/src/prop-controllers/instances.d.ts +3 -2
- package/dist/types/src/prop-controllers/instances.d.ts.map +1 -1
- package/dist/types/src/runtimes/react/controls/control.d.ts +6 -3
- package/dist/types/src/runtimes/react/controls/control.d.ts.map +1 -1
- package/dist/types/src/runtimes/react/controls/list.d.ts +3 -2
- package/dist/types/src/runtimes/react/controls/list.d.ts.map +1 -1
- package/dist/types/src/runtimes/react/controls/shape.d.ts +3 -2
- package/dist/types/src/runtimes/react/controls/shape.d.ts.map +1 -1
- package/dist/types/src/runtimes/react/controls.d.ts.map +1 -1
- package/dist/types/src/state/modules/read-only-documents.d.ts +1 -0
- package/dist/types/src/state/modules/read-only-documents.d.ts.map +1 -1
- package/dist/types/src/state/react-builder-preview.d.ts.map +1 -1
- package/dist/types/src/state/react-page.d.ts +6 -0
- package/dist/types/src/state/react-page.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/control.cjs.js +0 -437
- package/dist/control.cjs.js.map +0 -1
- package/dist/control.es.js +0 -426
- package/dist/control.es.js.map +0 -1
package/dist/control.cjs.js
DELETED
|
@@ -1,437 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __defProps = Object.defineProperties;
|
|
4
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
-
var __spreadValues = (a, b) => {
|
|
10
|
-
for (var prop in b || (b = {}))
|
|
11
|
-
if (__hasOwnProp.call(b, prop))
|
|
12
|
-
__defNormalProp(a, prop, b[prop]);
|
|
13
|
-
if (__getOwnPropSymbols)
|
|
14
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
15
|
-
if (__propIsEnum.call(b, prop))
|
|
16
|
-
__defNormalProp(a, prop, b[prop]);
|
|
17
|
-
}
|
|
18
|
-
return a;
|
|
19
|
-
};
|
|
20
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
|
-
var richText = require("./rich-text.cjs.js");
|
|
22
|
-
const LinkControlType = "makeswift::controls::link";
|
|
23
|
-
function Link(config = {}) {
|
|
24
|
-
return { type: LinkControlType, config };
|
|
25
|
-
}
|
|
26
|
-
function copyLinkData(value, context) {
|
|
27
|
-
var _a;
|
|
28
|
-
if (value == null)
|
|
29
|
-
return value;
|
|
30
|
-
if (value.type === "OPEN_PAGE") {
|
|
31
|
-
const pageId = value.payload.pageId;
|
|
32
|
-
if (pageId != null) {
|
|
33
|
-
return __spreadProps(__spreadValues({}, value), {
|
|
34
|
-
payload: __spreadProps(__spreadValues({}, value.payload), {
|
|
35
|
-
pageId: (_a = context.replacementContext.pageIds.get(pageId)) != null ? _a : pageId
|
|
36
|
-
})
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return value;
|
|
41
|
-
}
|
|
42
|
-
const ListControlType = "makeswift::controls::list";
|
|
43
|
-
function List(config) {
|
|
44
|
-
return { type: ListControlType, config };
|
|
45
|
-
}
|
|
46
|
-
function copyListData(definition, value, context) {
|
|
47
|
-
if (value == null)
|
|
48
|
-
return value;
|
|
49
|
-
return value && value.map((item) => __spreadProps(__spreadValues({}, item), {
|
|
50
|
-
value: copy(definition.config.type, item.value, context)
|
|
51
|
-
}));
|
|
52
|
-
}
|
|
53
|
-
const ShapeControlType = "makeswift::controls::shape";
|
|
54
|
-
function Shape(config) {
|
|
55
|
-
return { type: ShapeControlType, config };
|
|
56
|
-
}
|
|
57
|
-
function copyShapeData(definition, value, context) {
|
|
58
|
-
if (value == null)
|
|
59
|
-
return value;
|
|
60
|
-
const newValue = {};
|
|
61
|
-
for (const [key, itemDefinition] of Object.entries(definition.config.type)) {
|
|
62
|
-
const prop = value[key];
|
|
63
|
-
newValue[key] = copy(itemDefinition, prop, context);
|
|
64
|
-
}
|
|
65
|
-
return newValue;
|
|
66
|
-
}
|
|
67
|
-
function copy$e(value, context) {
|
|
68
|
-
if (value == null)
|
|
69
|
-
return value;
|
|
70
|
-
return value.map((override) => __spreadProps(__spreadValues({}, override), {
|
|
71
|
-
value: override.value.map((backgroundItem) => {
|
|
72
|
-
var _a, _b;
|
|
73
|
-
switch (backgroundItem.type) {
|
|
74
|
-
case "color":
|
|
75
|
-
return __spreadProps(__spreadValues({}, backgroundItem), {
|
|
76
|
-
payload: backgroundItem.payload === null ? null : __spreadProps(__spreadValues({}, backgroundItem.payload), {
|
|
77
|
-
swatchId: (_a = context.replacementContext.swatchIds.get(backgroundItem.payload.swatchId)) != null ? _a : backgroundItem.payload.swatchId
|
|
78
|
-
})
|
|
79
|
-
});
|
|
80
|
-
case "gradient":
|
|
81
|
-
return __spreadProps(__spreadValues({}, backgroundItem), {
|
|
82
|
-
payload: __spreadProps(__spreadValues({}, backgroundItem.payload), {
|
|
83
|
-
stops: backgroundItem.payload.stops.map((stop) => {
|
|
84
|
-
var _a2;
|
|
85
|
-
return __spreadProps(__spreadValues({}, stop), {
|
|
86
|
-
color: stop.color == null ? null : __spreadProps(__spreadValues({}, stop.color), {
|
|
87
|
-
swatchId: (_a2 = context.replacementContext.swatchIds.get(stop.color.swatchId)) != null ? _a2 : stop.color.swatchId
|
|
88
|
-
})
|
|
89
|
-
});
|
|
90
|
-
})
|
|
91
|
-
})
|
|
92
|
-
});
|
|
93
|
-
case "image":
|
|
94
|
-
return __spreadProps(__spreadValues({}, backgroundItem), {
|
|
95
|
-
payload: __spreadProps(__spreadValues({}, backgroundItem.payload), {
|
|
96
|
-
imageId: (_b = context.replacementContext.fileIds.get(backgroundItem.payload.imageId)) != null ? _b : backgroundItem.payload.imageId
|
|
97
|
-
})
|
|
98
|
-
});
|
|
99
|
-
default:
|
|
100
|
-
return backgroundItem;
|
|
101
|
-
}
|
|
102
|
-
})
|
|
103
|
-
}));
|
|
104
|
-
}
|
|
105
|
-
function copy$d(value, context) {
|
|
106
|
-
if (value == null)
|
|
107
|
-
return void 0;
|
|
108
|
-
return __spreadProps(__spreadValues({}, value), {
|
|
109
|
-
elements: value.elements.map((element) => context.copyElement(element))
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
function copy$c(value, context) {
|
|
113
|
-
var _a, _b;
|
|
114
|
-
if (value == null)
|
|
115
|
-
return value;
|
|
116
|
-
switch (value.type) {
|
|
117
|
-
case "OPEN_PAGE": {
|
|
118
|
-
const pageId = value.payload.pageId;
|
|
119
|
-
if (pageId == null)
|
|
120
|
-
return value;
|
|
121
|
-
return __spreadProps(__spreadValues({}, value), {
|
|
122
|
-
payload: __spreadProps(__spreadValues({}, value.payload), {
|
|
123
|
-
pageId: (_a = context.replacementContext.pageIds.get(pageId)) != null ? _a : pageId
|
|
124
|
-
})
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
case "SCROLL_TO_ELEMENT": {
|
|
128
|
-
const elementIdConfig = value.payload.elementIdConfig;
|
|
129
|
-
if (elementIdConfig == null)
|
|
130
|
-
return value;
|
|
131
|
-
return __spreadProps(__spreadValues({}, value), {
|
|
132
|
-
payload: __spreadProps(__spreadValues({}, value.payload), {
|
|
133
|
-
elementIdConfig: __spreadProps(__spreadValues({}, elementIdConfig), {
|
|
134
|
-
elementKey: (_b = context.replacementContext.elementKeys.get(elementIdConfig.elementKey)) != null ? _b : elementIdConfig.elementKey
|
|
135
|
-
})
|
|
136
|
-
})
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
default:
|
|
140
|
-
return value;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
function copy$b(value, context) {
|
|
144
|
-
if (value == null)
|
|
145
|
-
return value;
|
|
146
|
-
return value.map(copyNavigationLinksPanelItem);
|
|
147
|
-
function copyNavigationLinksPanelItem(item) {
|
|
148
|
-
switch (item.type) {
|
|
149
|
-
case "button":
|
|
150
|
-
case "dropdown": {
|
|
151
|
-
const { color, link } = item.payload;
|
|
152
|
-
return __spreadProps(__spreadValues({}, item), {
|
|
153
|
-
payload: __spreadProps(__spreadValues({}, item.payload), {
|
|
154
|
-
link: link != null ? copy$c(link, context) : void 0,
|
|
155
|
-
color: color != null ? color.map((override) => {
|
|
156
|
-
var _a;
|
|
157
|
-
return __spreadProps(__spreadValues({}, override), {
|
|
158
|
-
value: __spreadProps(__spreadValues({}, override.value), {
|
|
159
|
-
swatchId: (_a = context.replacementContext.swatchIds.get(override.value.swatchId)) != null ? _a : override.value.swatchId
|
|
160
|
-
})
|
|
161
|
-
});
|
|
162
|
-
}) : void 0
|
|
163
|
-
})
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
default:
|
|
167
|
-
return item;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
function copy$a(value, context) {
|
|
172
|
-
if (value == null)
|
|
173
|
-
return value;
|
|
174
|
-
return value.map((override) => __spreadProps(__spreadValues({}, override), { value: override.value.map(copyShadowItem) }));
|
|
175
|
-
function copyShadowItem(item) {
|
|
176
|
-
var _a;
|
|
177
|
-
const { color } = item.payload;
|
|
178
|
-
if (color == null)
|
|
179
|
-
return item;
|
|
180
|
-
return __spreadProps(__spreadValues({}, item), {
|
|
181
|
-
payload: __spreadProps(__spreadValues({}, item.payload), {
|
|
182
|
-
color: __spreadProps(__spreadValues({}, color), {
|
|
183
|
-
swatchId: (_a = context.replacementContext.swatchIds.get(color.swatchId)) != null ? _a : color.swatchId
|
|
184
|
-
})
|
|
185
|
-
})
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
function copy$9(value, context) {
|
|
190
|
-
var _a;
|
|
191
|
-
if (value == null)
|
|
192
|
-
return value;
|
|
193
|
-
return (_a = context.replacementContext.fileIds.get(value)) != null ? _a : value;
|
|
194
|
-
}
|
|
195
|
-
function copy$8(value, context) {
|
|
196
|
-
if (value == null)
|
|
197
|
-
return value;
|
|
198
|
-
return value.map(copyImagesPanelItem);
|
|
199
|
-
function copyImagesPanelItem(imagesPanelItem) {
|
|
200
|
-
var _a;
|
|
201
|
-
const { file } = imagesPanelItem.props;
|
|
202
|
-
if (file == null)
|
|
203
|
-
return imagesPanelItem;
|
|
204
|
-
return __spreadProps(__spreadValues({}, imagesPanelItem), {
|
|
205
|
-
props: __spreadProps(__spreadValues({}, imagesPanelItem.props), {
|
|
206
|
-
file: (_a = context.replacementContext.fileIds.get(file)) != null ? _a : file
|
|
207
|
-
})
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
function copy$7(value, context) {
|
|
212
|
-
if (value == null)
|
|
213
|
-
return value;
|
|
214
|
-
return value.map((override) => __spreadProps(__spreadValues({}, override), { value: copyColorValue(override.value) }));
|
|
215
|
-
function copyColorValue(colorValue) {
|
|
216
|
-
var _a;
|
|
217
|
-
return __spreadProps(__spreadValues({}, colorValue), {
|
|
218
|
-
swatchId: (_a = context.replacementContext.swatchIds.get(colorValue.swatchId)) != null ? _a : colorValue.swatchId
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
function copy$6(value, context) {
|
|
223
|
-
if (value == null)
|
|
224
|
-
return value;
|
|
225
|
-
return __spreadProps(__spreadValues({}, value), { fields: value.fields.map(copyFormFieldsPanelItem) });
|
|
226
|
-
function copyFormFieldsPanelItem(item) {
|
|
227
|
-
var _a;
|
|
228
|
-
return __spreadProps(__spreadValues({}, item), {
|
|
229
|
-
tableColumnId: (_a = context.replacementContext.tableColumnIds.get(item.tableColumnId)) != null ? _a : item.tableColumnId
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
function copy$5(value, context) {
|
|
234
|
-
var _a;
|
|
235
|
-
if (value == null)
|
|
236
|
-
return value;
|
|
237
|
-
return (_a = context.replacementContext.tableIds.get(value)) != null ? _a : value;
|
|
238
|
-
}
|
|
239
|
-
function copy$4(value, context) {
|
|
240
|
-
if (value == null)
|
|
241
|
-
return value;
|
|
242
|
-
return value.map((override) => __spreadProps(__spreadValues({}, override), { value: copyBorderValue(override.value) }));
|
|
243
|
-
function copyBorderValue({ borderTop, borderRight, borderBottom, borderLeft }) {
|
|
244
|
-
return {
|
|
245
|
-
borderTop: borderTop && copyBorderSide(borderTop),
|
|
246
|
-
borderRight: borderRight && copyBorderSide(borderRight),
|
|
247
|
-
borderBottom: borderBottom && copyBorderSide(borderBottom),
|
|
248
|
-
borderLeft: borderLeft && copyBorderSide(borderLeft)
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
function copyBorderSide(borderSide) {
|
|
252
|
-
var _a;
|
|
253
|
-
const { color } = borderSide;
|
|
254
|
-
if (color == null)
|
|
255
|
-
return borderSide;
|
|
256
|
-
return __spreadProps(__spreadValues({}, borderSide), {
|
|
257
|
-
color: __spreadProps(__spreadValues({}, color), {
|
|
258
|
-
swatchId: (_a = context.replacementContext.swatchIds.get(color.swatchId)) != null ? _a : color.swatchId
|
|
259
|
-
})
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
function copy$3(value, context) {
|
|
264
|
-
if (value == null)
|
|
265
|
-
return value;
|
|
266
|
-
return __spreadProps(__spreadValues({}, value), { document: value.document ? copyNode(value.document) : value.document });
|
|
267
|
-
function copyNode(node) {
|
|
268
|
-
var _a;
|
|
269
|
-
switch (node.object) {
|
|
270
|
-
case "document":
|
|
271
|
-
case "block":
|
|
272
|
-
case "inline":
|
|
273
|
-
return copyInline(node);
|
|
274
|
-
case "text":
|
|
275
|
-
return __spreadProps(__spreadValues({}, node), { marks: (_a = node.marks) == null ? void 0 : _a.map(copyMark) });
|
|
276
|
-
default:
|
|
277
|
-
return node;
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
function copyInline(inline) {
|
|
281
|
-
var _a, _b;
|
|
282
|
-
switch (inline.type) {
|
|
283
|
-
case "link":
|
|
284
|
-
return __spreadProps(__spreadValues({}, inline), {
|
|
285
|
-
nodes: (_a = inline.nodes) == null ? void 0 : _a.map(copyNode),
|
|
286
|
-
data: inline.data ? copyLinkData2(inline.data) : inline.data
|
|
287
|
-
});
|
|
288
|
-
default:
|
|
289
|
-
return __spreadProps(__spreadValues({}, inline), { nodes: (_b = inline.nodes) == null ? void 0 : _b.map(copyNode) });
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
function copyLinkData2(data) {
|
|
293
|
-
var _a, _b;
|
|
294
|
-
switch (data.type) {
|
|
295
|
-
case "OPEN_PAGE": {
|
|
296
|
-
const pageId = data.payload.pageId;
|
|
297
|
-
if (pageId == null)
|
|
298
|
-
return data;
|
|
299
|
-
return __spreadProps(__spreadValues({}, data), {
|
|
300
|
-
payload: __spreadProps(__spreadValues({}, data.payload), {
|
|
301
|
-
pageId: (_a = context.replacementContext.pageIds.get(pageId)) != null ? _a : data.payload.pageId
|
|
302
|
-
})
|
|
303
|
-
});
|
|
304
|
-
}
|
|
305
|
-
case "SCROLL_TO_ELEMENT": {
|
|
306
|
-
const elementIdConfig = data.payload.elementIdConfig;
|
|
307
|
-
if (elementIdConfig == null)
|
|
308
|
-
return data;
|
|
309
|
-
return __spreadProps(__spreadValues({}, data), {
|
|
310
|
-
payload: __spreadProps(__spreadValues({}, data.payload), {
|
|
311
|
-
elementIdConfig: __spreadProps(__spreadValues({}, elementIdConfig), {
|
|
312
|
-
elementKey: (_b = context.replacementContext.elementKeys.get(elementIdConfig.elementKey)) != null ? _b : elementIdConfig.elementKey
|
|
313
|
-
})
|
|
314
|
-
})
|
|
315
|
-
});
|
|
316
|
-
}
|
|
317
|
-
default:
|
|
318
|
-
return data;
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
function copyMark(mark) {
|
|
322
|
-
var _a, _b, _c, _d;
|
|
323
|
-
switch (mark.type) {
|
|
324
|
-
case "typography": {
|
|
325
|
-
const typographyId = (_a = mark.data) == null ? void 0 : _a.value.id;
|
|
326
|
-
return __spreadProps(__spreadValues({}, mark), {
|
|
327
|
-
data: __spreadProps(__spreadValues({}, mark.data), {
|
|
328
|
-
value: __spreadProps(__spreadValues({}, (_b = mark.data) == null ? void 0 : _b.value), {
|
|
329
|
-
id: (_c = context.replacementContext.typographyIds.get(typographyId)) != null ? _c : typographyId,
|
|
330
|
-
style: (_d = mark.data) == null ? void 0 : _d.value.style.map((override) => {
|
|
331
|
-
var _a2, _b2, _c2;
|
|
332
|
-
return __spreadProps(__spreadValues({}, override), {
|
|
333
|
-
value: __spreadProps(__spreadValues({}, override.value), {
|
|
334
|
-
color: override.value.color == null ? override.value.color : __spreadProps(__spreadValues({}, override.value.color), {
|
|
335
|
-
swatchId: (_c2 = context.replacementContext.swatchIds.get((_a2 = override.value.color) == null ? void 0 : _a2.swatchId)) != null ? _c2 : (_b2 = override.value.color) == null ? void 0 : _b2.swatchId
|
|
336
|
-
})
|
|
337
|
-
})
|
|
338
|
-
});
|
|
339
|
-
})
|
|
340
|
-
})
|
|
341
|
-
})
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
default:
|
|
345
|
-
return mark;
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
function copy$2(value, context) {
|
|
350
|
-
if (value == null)
|
|
351
|
-
return value;
|
|
352
|
-
if (context.replacementContext.elementHtmlIds.has(value))
|
|
353
|
-
return void 0;
|
|
354
|
-
context.replacementContext.elementHtmlIds.add(value);
|
|
355
|
-
return value;
|
|
356
|
-
}
|
|
357
|
-
function copy$1(descriptor, value, context) {
|
|
358
|
-
switch (descriptor.type) {
|
|
359
|
-
case "Backgrounds":
|
|
360
|
-
return copy$e(value, context);
|
|
361
|
-
case "Grid":
|
|
362
|
-
return copy$d(value, context);
|
|
363
|
-
case "NavigationLinks":
|
|
364
|
-
return copy$b(value, context);
|
|
365
|
-
case "Link":
|
|
366
|
-
return copy$c(value, context);
|
|
367
|
-
case "Shadows":
|
|
368
|
-
return copy$a(value, context);
|
|
369
|
-
case "Image":
|
|
370
|
-
return copy$9(value, context);
|
|
371
|
-
case "Images":
|
|
372
|
-
return copy$8(value, context);
|
|
373
|
-
case "ResponsiveColor":
|
|
374
|
-
return copy$7(value, context);
|
|
375
|
-
case "TableFormFields":
|
|
376
|
-
return copy$6(value, context);
|
|
377
|
-
case "Table":
|
|
378
|
-
return copy$5(value, context);
|
|
379
|
-
case "Border":
|
|
380
|
-
return copy$4(value, context);
|
|
381
|
-
case "RichText":
|
|
382
|
-
return copy$3(value, context);
|
|
383
|
-
case "ElementID":
|
|
384
|
-
return copy$2(value, context);
|
|
385
|
-
default:
|
|
386
|
-
return value;
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
function copyElementReference(value, context) {
|
|
390
|
-
return context.replacementContext.globalElementIds.get(value) || value;
|
|
391
|
-
}
|
|
392
|
-
function copy(definition, value, context) {
|
|
393
|
-
switch (definition.type) {
|
|
394
|
-
case richText.Types.Backgrounds:
|
|
395
|
-
case richText.Types.Grid:
|
|
396
|
-
case richText.Types.NavigationLinks:
|
|
397
|
-
case richText.Types.Link:
|
|
398
|
-
case richText.Types.Shadows:
|
|
399
|
-
case richText.Types.Image:
|
|
400
|
-
case richText.Types.Images:
|
|
401
|
-
case richText.Types.ResponsiveColor:
|
|
402
|
-
case richText.Types.TableFormFields:
|
|
403
|
-
case richText.Types.Table:
|
|
404
|
-
case richText.Types.Border:
|
|
405
|
-
case richText.Types.RichText:
|
|
406
|
-
case richText.Types.ElementID:
|
|
407
|
-
return copy$1(definition, value, context);
|
|
408
|
-
case richText.ColorControlType:
|
|
409
|
-
return richText.copyColorData(value, context);
|
|
410
|
-
case richText.ImageControlType:
|
|
411
|
-
return richText.copyImageData(value, context);
|
|
412
|
-
case LinkControlType:
|
|
413
|
-
return copyLinkData(value, context);
|
|
414
|
-
case ShapeControlType:
|
|
415
|
-
return copyShapeData(definition, value, context);
|
|
416
|
-
case ListControlType:
|
|
417
|
-
return copyListData(definition, value, context);
|
|
418
|
-
case richText.StyleControlType:
|
|
419
|
-
return richText.copyStyleData(value, context);
|
|
420
|
-
case richText.SlotControlType:
|
|
421
|
-
return richText.copySlotData(value, context);
|
|
422
|
-
default:
|
|
423
|
-
return value;
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
exports.Link = Link;
|
|
427
|
-
exports.LinkControlType = LinkControlType;
|
|
428
|
-
exports.List = List;
|
|
429
|
-
exports.ListControlType = ListControlType;
|
|
430
|
-
exports.Shape = Shape;
|
|
431
|
-
exports.ShapeControlType = ShapeControlType;
|
|
432
|
-
exports.copy = copy;
|
|
433
|
-
exports.copyElementReference = copyElementReference;
|
|
434
|
-
exports.copyLinkData = copyLinkData;
|
|
435
|
-
exports.copyListData = copyListData;
|
|
436
|
-
exports.copyShapeData = copyShapeData;
|
|
437
|
-
//# sourceMappingURL=control.cjs.js.map
|
package/dist/control.cjs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"control.cjs.js","sources":["../src/controls/link.ts","../src/controls/list.ts","../src/controls/shape.ts","../src/prop-controllers/copy/backgrounds.ts","../src/prop-controllers/copy/grid.ts","../src/prop-controllers/copy/link.ts","../src/prop-controllers/copy/navigation-links.ts","../src/prop-controllers/copy/shadows.ts","../src/prop-controllers/copy/image.ts","../src/prop-controllers/copy/images.ts","../src/prop-controllers/copy/responsive-color.ts","../src/prop-controllers/copy/table-form-fields.ts","../src/prop-controllers/copy/table.ts","../src/prop-controllers/copy/border.ts","../src/prop-controllers/copy/rich-text.ts","../src/prop-controllers/copy/element-id.ts","../src/prop-controllers/copy.ts","../src/controls/control.ts"],"sourcesContent":["import { CopyContext, ReplacementContext } from '../state/react-page'\n\ntype OpenPageLink = {\n type: 'OPEN_PAGE'\n payload: { pageId: string | null | undefined; openInNewTab: boolean }\n}\n\ntype OpenURLLink = { type: 'OPEN_URL'; payload: { url: string; openInNewTab: boolean } }\n\ntype SendEmailLink = {\n type: 'SEND_EMAIL'\n payload: { to: string; subject?: string; body?: string }\n}\n\ntype CallPhoneLink = { type: 'CALL_PHONE'; payload: { phoneNumber: string } }\n\ntype ScrollToElementLink = {\n type: 'SCROLL_TO_ELEMENT'\n payload: {\n elementIdConfig: { elementKey: string; propName: string } | null | undefined\n block: 'start' | 'center' | 'end'\n }\n}\n\nexport type LinkControlData =\n | OpenPageLink\n | OpenURLLink\n | SendEmailLink\n | CallPhoneLink\n | ScrollToElementLink\n\nexport const LinkControlType = 'makeswift::controls::link'\n\ntype LinkControlConfig = {\n label?: string\n}\n\nexport type LinkControlDefinition<C extends LinkControlConfig = LinkControlConfig> = {\n type: typeof LinkControlType\n config: C\n}\n\nexport function Link<C extends LinkControlConfig>(config: C = {} as C): LinkControlDefinition<C> {\n return { type: LinkControlType, config }\n}\n\nexport function copyLinkData(\n value: LinkControlData | undefined,\n context: CopyContext,\n): LinkControlData | undefined {\n if (value == null) return value\n\n if (value.type === 'OPEN_PAGE') {\n const pageId = value.payload.pageId\n\n if (pageId != null) {\n return {\n ...value,\n payload: {\n ...value.payload,\n pageId: context.replacementContext.pageIds.get(pageId) ?? pageId,\n },\n }\n }\n }\n\n return value\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('link', () => {\n test('page id is replaced by one in replacement context', () => {\n // Arrange\n const data: LinkControlData = {\n type: 'OPEN_PAGE',\n payload: {\n pageId: 'UGFnZTpmNTdmMjQ2MS0wMGY3LTQzZWUtYmIwOS03ODdiNTUyYzUyYWQ=',\n openInNewTab: false,\n },\n }\n const expected = JSON.parse(\n JSON.stringify(data).replace(\n 'UGFnZTpmNTdmMjQ2MS0wMGY3LTQzZWUtYmIwOS03ODdiNTUyYzUyYWQ=',\n 'testing',\n ),\n )\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map(),\n pageIds: new Map([['UGFnZTpmNTdmMjQ2MS0wMGY3LTQzZWUtYmIwOS03ODdiNTUyYzUyYWQ=', 'testing']]),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n fileIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copyLinkData(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { CopyContext } from '../state/react-page'\nimport { ControlDefinition, ControlDefinitionData } from './control'\n\nimport { copy as controlCopy } from './control'\n\nexport const ListControlType = 'makeswift::controls::list'\n\ntype ListControlConfig<T extends ControlDefinition = ControlDefinition> = {\n type: T\n label?: string\n /**\n * @todos\n * - Make `item` the control's transformed \"value\" instead of \"data.\"\n */\n getItemLabel?(item: ControlDefinitionData<T> | undefined): string\n}\n\nexport type ListControlDefinition<C extends ListControlConfig = ListControlConfig> = {\n type: typeof ListControlType\n config: C\n}\n\nexport function List<T extends ControlDefinition, C extends ListControlConfig<T>>(\n config: C & { type: T },\n): ListControlDefinition<C> {\n return { type: ListControlType, config }\n}\n\nexport type ListControlItemData<T extends ListControlDefinition> = {\n id: string\n type: T['config']['type']['type']\n value: ControlDefinitionData<T['config']['type']>\n}\n\nexport type ListControlData<T extends ListControlDefinition = ListControlDefinition> =\n ListControlItemData<T>[]\n\nexport function copyListData(\n definition: ListControlDefinition,\n value: ListControlData | undefined,\n context: CopyContext,\n): ListControlData | undefined {\n if (value == null) return value\n\n return (\n value &&\n value.map(item => ({\n ...item,\n value: controlCopy(definition.config.type, item.value, context),\n }))\n )\n}\n","import { CopyContext } from '../state/react-page'\nimport { ControlDefinition, ControlDefinitionData } from './control'\n\nimport { copy as controlCopy } from './control'\n\nexport const ShapeControlType = 'makeswift::controls::shape'\n\ntype ShapeControlConfig = {\n type: Record<string, ControlDefinition>\n}\n\nexport type ShapeControlDefinition<C extends ShapeControlConfig = ShapeControlConfig> = {\n type: typeof ShapeControlType\n config: C\n}\n\nexport function Shape<C extends ShapeControlConfig>(config: C): ShapeControlDefinition<C> {\n return { type: ShapeControlType, config }\n}\n\nexport type ShapeControlData<T extends ShapeControlDefinition = ShapeControlDefinition> = {\n [K in keyof T['config']['type']]?: ControlDefinitionData<T['config']['type'][K]>\n}\n\nexport function copyShapeData(\n definition: ShapeControlDefinition,\n value: ShapeControlData | undefined,\n context: CopyContext,\n): ShapeControlData | undefined {\n if (value == null) return value\n\n const newValue: ShapeControlData = {}\n\n for (const [key, itemDefinition] of Object.entries(definition.config.type)) {\n const prop = value[key]\n\n newValue[key] = controlCopy(itemDefinition, prop, context)\n }\n\n return newValue\n}\n","import { CopyContext } from '../../state/react-page'\nimport { BackgroundsValue } from '../descriptors'\n\nexport function copy(\n value: BackgroundsValue | undefined,\n context: CopyContext,\n): BackgroundsValue | undefined {\n if (value == null) return value\n\n return value.map(override => ({\n ...override,\n value: override.value.map(backgroundItem => {\n switch (backgroundItem.type) {\n case 'color':\n return {\n ...backgroundItem,\n payload:\n backgroundItem.payload === null\n ? null\n : {\n ...backgroundItem.payload,\n swatchId:\n context.replacementContext.swatchIds.get(backgroundItem.payload.swatchId) ??\n backgroundItem.payload.swatchId,\n },\n }\n\n case 'gradient':\n return {\n ...backgroundItem,\n payload: {\n ...backgroundItem.payload,\n stops: backgroundItem.payload.stops.map(stop => ({\n ...stop,\n color:\n stop.color == null\n ? null\n : {\n ...stop.color,\n swatchId:\n context.replacementContext.swatchIds.get(stop.color.swatchId) ??\n stop.color.swatchId,\n },\n })),\n },\n }\n\n case 'image':\n return {\n ...backgroundItem,\n payload: {\n ...backgroundItem.payload,\n imageId:\n context.replacementContext.fileIds.get(backgroundItem.payload.imageId) ??\n backgroundItem.payload.imageId,\n },\n }\n\n default:\n return backgroundItem\n }\n }),\n }))\n}\n","import { CopyContext, Data } from '../../state/react-page'\nimport { GridValue } from '../descriptors'\n\nexport function copy(value: GridValue | undefined, context: CopyContext): Data | undefined {\n if (value == null) return undefined\n\n return {\n ...value,\n elements: value.elements.map(element => context.copyElement(element)),\n }\n}\n","import { CopyContext } from '../../state/react-page'\nimport { LinkValue } from '../descriptors'\n\nexport function copy(value: LinkValue | undefined, context: CopyContext): LinkValue | undefined {\n if (value == null) return value\n\n switch (value.type) {\n case 'OPEN_PAGE': {\n const pageId = value.payload.pageId\n\n if (pageId == null) return value\n\n return {\n ...value,\n payload: {\n ...value.payload,\n pageId: context.replacementContext.pageIds.get(pageId) ?? pageId,\n },\n }\n }\n\n case 'SCROLL_TO_ELEMENT': {\n const elementIdConfig = value.payload.elementIdConfig\n\n if (elementIdConfig == null) return value\n\n return {\n ...value,\n payload: {\n ...value.payload,\n elementIdConfig: {\n ...elementIdConfig,\n elementKey:\n context.replacementContext.elementKeys.get(elementIdConfig.elementKey) ??\n elementIdConfig.elementKey,\n },\n },\n }\n }\n\n default:\n return value\n }\n}\n","import { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { copy as linkCopy } from './link'\nimport { NavigationLinksValue } from '../descriptors'\n\nexport function copy(\n value: NavigationLinksValue | undefined,\n context: CopyContext,\n): NavigationLinksValue | undefined {\n if (value == null) return value\n\n return value.map(copyNavigationLinksPanelItem)\n\n function copyNavigationLinksPanelItem(item: any): any {\n switch (item.type) {\n case 'button':\n case 'dropdown': {\n const { color, link } = item.payload\n\n return {\n ...item,\n payload: {\n ...item.payload,\n link: link != null ? linkCopy(link, context) : undefined,\n color:\n color != null\n ? color.map((override: { value: { swatchId: string } }) => ({\n ...override,\n value: {\n ...override.value,\n swatchId:\n context.replacementContext.swatchIds.get(override.value.swatchId) ??\n override.value.swatchId,\n },\n }))\n : undefined,\n },\n }\n }\n\n default:\n return item\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('navigation-links copy', () => {\n test('replace page id from replacement context', () => {\n // Arrange\n const data: NavigationLinksValue = [\n {\n id: 'e1cf2d04-012a-4481-832a-7b4dda62195e',\n type: 'button',\n payload: {\n link: {\n type: 'OPEN_PAGE',\n payload: {\n pageId: 'UGFnZTo2OGMzODZhNC1jYzRkLTQzMzUtYWZiMi05MDdhZGRkYzQ3YTM=',\n openInNewTab: true,\n },\n },\n label: 'Fellow Page',\n },\n },\n ]\n const expected = JSON.parse(\n JSON.stringify(data).replace(\n 'UGFnZTo2OGMzODZhNC1jYzRkLTQzMzUtYWZiMi05MDdhZGRkYzQ3YTM=',\n 'testing',\n ),\n )\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map(),\n fileIds: new Map(),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n pageIds: new Map([['UGFnZTo2OGMzODZhNC1jYzRkLTQzMzUtYWZiMi05MDdhZGRkYzQ3YTM=', 'testing']]),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { ShadowsValue } from '../descriptors'\n\nexport function copy(\n value: ShadowsValue | undefined,\n context: CopyContext,\n): ShadowsValue | undefined {\n if (value == null) return value\n\n return value.map(override => ({ ...override, value: override.value.map(copyShadowItem) }))\n\n function copyShadowItem(item: any): any {\n const { color } = item.payload\n\n if (color == null) return item\n\n return {\n ...item,\n payload: {\n ...item.payload,\n color: {\n ...color,\n swatchId: context.replacementContext.swatchIds.get(color.swatchId) ?? color.swatchId,\n },\n },\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('shadow copy', () => {\n test('replaces the swatch id', () => {\n // Arrange\n const data: ShadowsValue = [\n {\n value: [\n {\n id: '8575efe6-4d04-4361-b593-e559537c4c3c',\n payload: {\n color: {\n alpha: 1,\n swatchId: 'U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==',\n },\n offsetX: -5,\n offsetY: 8.7,\n blurRadius: 17,\n spreadRadius: 16,\n },\n },\n ],\n deviceId: 'desktop',\n },\n ]\n const expected = JSON.parse(\n JSON.stringify(data).replace(\n 'U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==',\n 'testing',\n ),\n )\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map([\n ['U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==', 'testing'],\n ]),\n fileIds: new Map(),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { ImageValue } from '../descriptors'\n\nexport function copy(value: ImageValue | undefined, context: CopyContext): ImageValue | undefined {\n if (value == null) return value\n\n return context.replacementContext.fileIds.get(value) ?? value\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('image copy', () => {\n test('image is replaced by a one in replacement context', () => {\n // Arrange\n const data: ImageValue = 'file-id'\n const expected = JSON.parse(JSON.stringify(data).replace('file-id', 'testing'))\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map(),\n fileIds: new Map([['file-id', 'testing']]),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { ImagesValue } from '../descriptors'\n\nexport function copy(\n value: ImagesValue | undefined,\n context: CopyContext,\n): ImagesValue | undefined {\n if (value == null) return value\n\n return value.map(copyImagesPanelItem)\n\n function copyImagesPanelItem(imagesPanelItem: any): any {\n const { file } = imagesPanelItem.props\n\n if (file == null) return imagesPanelItem\n\n return {\n ...imagesPanelItem,\n props: {\n ...imagesPanelItem.props,\n file: context.replacementContext.fileIds.get(file) ?? file,\n },\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('images copy', () => {\n test('images are replaced by ones in replacement context', () => {\n // Arrange\n const data: ImagesValue = [\n {\n key: '0ae80f8f-9d4a-43bc-ae7c-007164a19d22',\n props: {\n file: 'RmlsZTo5ZmU3ZGUzMi1jY2E0LTRkMjktOWVlMC1jNTI2NDYxY2I1YjM=',\n },\n },\n {\n key: '161674c3-8710-4fd6-90e6-6096c4e9bb88',\n props: {\n file: 'RmlsZTo5ZmU3ZGUzMi1jY2E0LTRkMjktOWVlMC1jNTI2NDYxY2I1YjM=',\n },\n },\n ]\n const expected = JSON.parse(\n JSON.stringify(data).replaceAll(\n 'RmlsZTo5ZmU3ZGUzMi1jY2E0LTRkMjktOWVlMC1jNTI2NDYxY2I1YjM=',\n 'testing',\n ),\n )\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map(),\n fileIds: new Map([['RmlsZTo5ZmU3ZGUzMi1jY2E0LTRkMjktOWVlMC1jNTI2NDYxY2I1YjM=', 'testing']]),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { CopyContext } from '../../state/react-page'\nimport { ResponsiveColorValue } from '../descriptors'\n\nexport function copy(\n value: ResponsiveColorValue | undefined,\n context: CopyContext,\n): ResponsiveColorValue | undefined {\n if (value == null) return value\n\n return value.map(override => ({ ...override, value: copyColorValue(override.value) }))\n\n function copyColorValue(colorValue: any): any {\n return {\n ...colorValue,\n swatchId:\n context.replacementContext.swatchIds.get(colorValue.swatchId) ?? colorValue.swatchId,\n }\n }\n}\n","import { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { TableFormFieldsValue } from '../descriptors'\n\nexport function copy(\n value: TableFormFieldsValue | undefined,\n context: CopyContext,\n): TableFormFieldsValue | undefined {\n if (value == null) return value\n\n return { ...value, fields: value.fields.map(copyFormFieldsPanelItem) }\n\n function copyFormFieldsPanelItem(item: any): any {\n return {\n ...item,\n tableColumnId:\n context.replacementContext.tableColumnIds.get(item.tableColumnId) ?? item.tableColumnId,\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('table form fields copy', () => {\n test('replaces the table column id', () => {\n // Arrange\n const data: TableFormFieldsValue = {\n grid: [\n {\n value: {\n count: 12,\n spans: [[12], [12]],\n },\n deviceId: 'desktop',\n },\n ],\n fields: [\n {\n id: '8c4b3dcb-d9d2-4199-9a66-c35aa39248f0',\n label: 'hello',\n required: true,\n tableColumnId:\n 'U2luZ2xlTGluZVRleHRUYWJsZUNvbHVtbjphMzQ0Yzk3ZC04MTQ0LTRmMzctYjU2My1hODE5OTQ5OGMyYWI=',\n },\n ],\n }\n const expected = JSON.parse(\n JSON.stringify(data).replace(\n 'U2luZ2xlTGluZVRleHRUYWJsZUNvbHVtbjphMzQ0Yzk3ZC04MTQ0LTRmMzctYjU2My1hODE5OTQ5OGMyYWI=',\n 'testing',\n ),\n )\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map(),\n fileIds: new Map(),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map([\n [\n 'U2luZ2xlTGluZVRleHRUYWJsZUNvbHVtbjphMzQ0Yzk3ZC04MTQ0LTRmMzctYjU2My1hODE5OTQ5OGMyYWI=',\n 'testing',\n ],\n ]),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { TableValue } from '../descriptors'\n\nexport function copy(value: TableValue | undefined, context: CopyContext): TableValue | undefined {\n if (value == null) return value\n\n return context.replacementContext.tableIds.get(value) ?? value\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('table copy', () => {\n test('replaces the table id', () => {\n // Arrange\n const data: TableValue = 'VGFibGU6MTM5NDhlYzMtMjgwNS00Nzk0LTliNzctNDJkN2RhNmQxZWEy'\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map(),\n fileIds: new Map(),\n typographyIds: new Map(),\n tableIds: new Map([\n ['VGFibGU6MTM5NDhlYzMtMjgwNS00Nzk0LTliNzctNDJkN2RhNmQxZWEy', 'testing'],\n ]),\n tableColumnIds: new Map(),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // Assert\n expect(result).toMatch('testing')\n })\n })\n}\n","import { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { BorderValue } from '../descriptors'\n\nexport function copy(\n value: BorderValue | undefined,\n context: CopyContext,\n): BorderValue | undefined {\n if (value == null) return value\n\n return value.map(override => ({ ...override, value: copyBorderValue(override.value) }))\n\n function copyBorderValue({ borderTop, borderRight, borderBottom, borderLeft }: any): any {\n return {\n borderTop: borderTop && copyBorderSide(borderTop),\n borderRight: borderRight && copyBorderSide(borderRight),\n borderBottom: borderBottom && copyBorderSide(borderBottom),\n borderLeft: borderLeft && copyBorderSide(borderLeft),\n }\n }\n\n function copyBorderSide(borderSide: any): any {\n const { color } = borderSide\n\n if (color == null) return borderSide\n\n return {\n ...borderSide,\n color: {\n ...color,\n swatchId: context.replacementContext.swatchIds.get(color.swatchId) ?? color.swatchId,\n },\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n describe.concurrent('border copy', () => {\n test('replaces the swatch id', () => {\n // Arrange\n const data: BorderValue = [\n {\n value: {\n borderTop: {\n color: {\n alpha: 1,\n swatchId: 'U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==',\n },\n style: 'solid',\n width: 5,\n },\n borderLeft: {\n color: {\n alpha: 1,\n swatchId: 'U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==',\n },\n style: 'solid',\n width: 5,\n },\n borderRight: {\n color: {\n alpha: 1,\n swatchId: 'U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==',\n },\n style: 'solid',\n width: 5,\n },\n borderBottom: {\n color: {\n alpha: 1,\n swatchId: 'U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==',\n },\n style: 'solid',\n width: 5,\n },\n },\n deviceId: 'desktop',\n },\n ]\n const expected: BorderValue = [\n {\n value: {\n borderTop: {\n color: {\n alpha: 1,\n swatchId: 'testing',\n },\n style: 'solid',\n width: 5,\n },\n borderLeft: {\n color: {\n alpha: 1,\n swatchId: 'testing',\n },\n style: 'solid',\n width: 5,\n },\n borderRight: {\n color: {\n alpha: 1,\n swatchId: 'testing',\n },\n style: 'solid',\n width: 5,\n },\n borderBottom: {\n color: {\n alpha: 1,\n swatchId: 'testing',\n },\n style: 'solid',\n width: 5,\n },\n },\n deviceId: 'desktop',\n },\n ]\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map([\n ['U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==', 'testing'],\n ]),\n fileIds: new Map(),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { InlineJSON, MarkJSON, NodeJSON } from 'slate'\nimport { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { RichTextValue } from '../descriptors'\n\nexport function copy(\n value: RichTextValue | undefined,\n context: CopyContext,\n): RichTextValue | undefined {\n if (value == null) return value\n\n return { ...value, document: value.document ? copyNode(value.document) : value.document }\n\n function copyNode<T extends NodeJSON>(node: T): T {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n // @ts-expect-error: TypeScript can't refine the generic type T, even though it can\n // refine NodeJSON.\n return copyInline(node)\n\n case 'text':\n return { ...node, marks: node.marks?.map(copyMark) }\n\n default:\n return node\n }\n }\n\n function copyInline(inline: InlineJSON): InlineJSON {\n switch (inline.type) {\n case 'link':\n return {\n ...inline,\n nodes: inline.nodes?.map(copyNode),\n data: inline.data ? copyLinkData(inline.data as any) : inline.data,\n }\n\n default:\n return { ...inline, nodes: inline.nodes?.map(copyNode) }\n }\n }\n\n function copyLinkData(data: any): any {\n switch (data.type) {\n case 'OPEN_PAGE': {\n const pageId = data.payload.pageId\n\n if (pageId == null) return data\n\n return {\n ...data,\n payload: {\n ...data.payload,\n pageId: context.replacementContext.pageIds.get(pageId) ?? data.payload.pageId,\n },\n }\n }\n\n case 'SCROLL_TO_ELEMENT': {\n const elementIdConfig = data.payload.elementIdConfig\n\n if (elementIdConfig == null) return data\n\n return {\n ...data,\n payload: {\n ...data.payload,\n elementIdConfig: {\n ...elementIdConfig,\n elementKey:\n context.replacementContext.elementKeys.get(elementIdConfig.elementKey) ??\n elementIdConfig.elementKey,\n },\n },\n }\n }\n\n default:\n return data\n }\n }\n\n function copyMark(mark: MarkJSON): MarkJSON {\n switch (mark.type) {\n case 'typography': {\n const typographyId = mark.data?.value.id\n\n return {\n ...mark,\n data: {\n ...mark.data,\n value: {\n ...mark.data?.value,\n id: context.replacementContext.typographyIds.get(typographyId) ?? typographyId,\n style: mark.data?.value.style.map((override: any) => ({\n ...override,\n value: {\n ...override.value,\n color:\n override.value.color == null\n ? override.value.color\n : {\n ...override.value.color,\n swatchId:\n context.replacementContext.swatchIds.get(\n override.value.color?.swatchId,\n ) ?? override.value.color?.swatchId,\n },\n },\n })),\n },\n },\n }\n }\n\n default:\n return mark\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('rich text copy', () => {\n test('replaces the swatch id', () => {\n // Arrange\n const data: RichTextValue = {\n object: 'value',\n document: {\n data: {},\n nodes: [\n {\n data: {},\n type: 'paragraph',\n nodes: [\n {\n text: 'Hello world',\n marks: [\n {\n data: {\n value: {\n id: 'VHlwb2dyYXBoeTo5ODE1NWY0Ni1mNmQzLTQ1M2YtODk5OC02ZWY5NzJhNTBlY2U=',\n style: [\n {\n value: {\n color: {\n alpha: 1,\n swatchId:\n 'U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==',\n },\n fontSize: {\n unit: 'px',\n value: 23,\n },\n lineHeight: 2.5,\n strikethrough: true,\n },\n deviceId: 'desktop',\n },\n ],\n },\n },\n type: 'typography',\n object: 'mark',\n },\n ],\n object: 'text',\n },\n ],\n object: 'block',\n },\n ],\n object: 'document',\n },\n selection: {\n focus: {\n path: [0, 0],\n object: 'point',\n offset: 0,\n },\n anchor: {\n path: [0, 0],\n object: 'point',\n offset: 0,\n },\n object: 'selection',\n isFocused: false,\n },\n }\n const expected = JSON.parse(\n JSON.stringify(data)\n .replace('U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==', 'swatch-testing')\n .replace(\n 'VHlwb2dyYXBoeTo5ODE1NWY0Ni1mNmQzLTQ1M2YtODk5OC02ZWY5NzJhNTBlY2U=',\n 'typography-testing',\n ),\n )\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map([\n ['U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==', 'swatch-testing'],\n ]),\n fileIds: new Map(),\n typographyIds: new Map([\n [\n 'VHlwb2dyYXBoeTo5ODE1NWY0Ni1mNmQzLTQ1M2YtODk5OC02ZWY5NzJhNTBlY2U=',\n 'typography-testing',\n ],\n ]),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { CopyContext } from '../../state/react-page'\n\nexport function copy(value: string | undefined, context: CopyContext): string | undefined {\n if (value == null) return value\n\n if (context.replacementContext.elementHtmlIds.has(value)) return undefined\n\n context.replacementContext.elementHtmlIds.add(value)\n\n return value\n}\n","import { Descriptor } from './descriptors'\nimport { copy as backgroundsCopy } from './copy/backgrounds'\nimport { copy as gridCopy } from './copy/grid'\nimport { copy as navigationLinksCopy } from './copy/navigation-links'\nimport { copy as linkCopy } from './copy/link'\nimport { copy as shadowsCopy } from './copy/shadows'\nimport { copy as imageCopy } from './copy/image'\nimport { copy as imagesCopy } from './copy/images'\nimport { copy as responsiveColorCopy } from './copy/responsive-color'\nimport { copy as tableFormFieldsCopy } from './copy/table-form-fields'\nimport { copy as tableCopy } from './copy/table'\nimport { copy as borderCopy } from './copy/border'\nimport { copy as richTextCopy } from './copy/rich-text'\nimport { copy as elementIdCopy } from './copy/element-id'\nimport { CopyContext } from '../state/react-page'\n\n// @note: note typing value, because would then have to type narrow `Data` per case\nexport function copy(descriptor: Descriptor, value: any, context: CopyContext) {\n switch (descriptor.type) {\n case 'Backgrounds':\n return backgroundsCopy(value, context)\n case 'Grid':\n return gridCopy(value, context)\n case 'NavigationLinks':\n return navigationLinksCopy(value, context)\n case 'Link':\n return linkCopy(value, context)\n case 'Shadows':\n return shadowsCopy(value, context)\n case 'Image':\n return imageCopy(value, context)\n case 'Images':\n return imagesCopy(value, context)\n case 'ResponsiveColor':\n return responsiveColorCopy(value, context)\n case 'TableFormFields':\n return tableFormFieldsCopy(value, context)\n case 'Table':\n return tableCopy(value, context)\n case 'Border':\n return borderCopy(value, context)\n case 'RichText':\n return richTextCopy(value, context)\n case 'ElementID':\n return elementIdCopy(value, context)\n default:\n return value\n }\n}\n\nexport function copyElementReference(value: string, context: CopyContext) {\n return context.replacementContext.globalElementIds.get(value) || value\n}\n","import { CheckboxControlData, CheckboxControlDefinition } from './checkbox'\nimport { ColorControlData, ColorControlDefinition, ColorControlType, copyColorData } from './color'\nimport { ComboboxControlData, ComboboxControlDefinition } from './combobox'\nimport { ImageControlData, ImageControlDefinition, copyImageData, ImageControlType } from './image'\nimport { LinkControlData, LinkControlDefinition, copyLinkData, LinkControlType } from './link'\nimport { ListControlData, ListControlDefinition, copyListData, ListControlType } from './list'\nimport { NumberControlData, NumberControlDefinition } from './number'\nimport { SelectControlData, SelectControlDefinition } from './select'\nimport { ShapeControlData, ShapeControlDefinition, copyShapeData, ShapeControlType } from './shape'\nimport { TextAreaControlData, TextAreaControlDefinition } from './text-area'\nimport { TextInputControlData, TextInputControlDefinition } from './text-input'\nimport { copyStyleData, StyleControlType } from './style'\nimport { copySlotData, SlotControlType } from './slot'\n\nimport { Descriptor, Types } from '../prop-controllers/descriptors'\nimport { copy as propControllerCopy } from '../prop-controllers/copy'\nimport { CopyContext } from '../state/react-page'\n\nexport type ControlDefinition =\n | CheckboxControlDefinition\n | NumberControlDefinition\n | TextInputControlDefinition\n | TextAreaControlDefinition\n | SelectControlDefinition\n | ColorControlDefinition\n | ImageControlDefinition\n | ComboboxControlDefinition\n | ShapeControlDefinition\n | ListControlDefinition<any>\n | LinkControlDefinition\n\nexport type ControlDefinitionData<T extends ControlDefinition> = T extends CheckboxControlDefinition\n ? CheckboxControlData\n : T extends NumberControlDefinition\n ? NumberControlData\n : T extends TextInputControlDefinition\n ? TextInputControlData\n : T extends TextAreaControlDefinition\n ? TextAreaControlData\n : T extends SelectControlDefinition\n ? SelectControlData<T>\n : T extends ColorControlDefinition\n ? ColorControlData\n : T extends ImageControlDefinition\n ? ImageControlData\n : T extends ComboboxControlDefinition\n ? ComboboxControlData<T>\n : T extends ShapeControlDefinition\n ? ShapeControlData<T>\n : T extends ListControlDefinition\n ? ListControlData<T>\n : T extends LinkControlDefinition\n ? LinkControlData\n : never\n\nexport function copy(definition: Descriptor | ControlDefinition, value: any, context: CopyContext) {\n switch (definition.type) {\n case Types.Backgrounds:\n case Types.Grid:\n case Types.NavigationLinks:\n case Types.Link:\n case Types.Shadows:\n case Types.Image:\n case Types.Images:\n case Types.ResponsiveColor:\n case Types.TableFormFields:\n case Types.Table:\n case Types.Border:\n case Types.RichText:\n case Types.ElementID:\n return propControllerCopy(definition, value, context)\n case ColorControlType:\n return copyColorData(value, context)\n case ImageControlType:\n return copyImageData(value, context)\n case LinkControlType:\n return copyLinkData(value, context)\n case ShapeControlType:\n return copyShapeData(definition, value, context)\n case ListControlType:\n return copyListData(definition, value, context)\n case StyleControlType:\n return copyStyleData(value, context)\n case SlotControlType:\n return copySlotData(value, context)\n default:\n return value\n }\n}\n"],"names":["controlCopy","linkCopy","backgroundsCopy","gridCopy","navigationLinksCopy","shadowsCopy","imageCopy","imagesCopy","responsiveColorCopy","tableFormFieldsCopy","tableCopy","borderCopy","richTextCopy","elementIdCopy","Types","propControllerCopy","ColorControlType","copyColorData","ImageControlType","copyImageData","StyleControlType","copyStyleData","SlotControlType","copySlotData"],"mappings":"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"}
|