@makeswift/runtime 0.1.8 → 0.1.10

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.
Files changed (146) hide show
  1. package/dist/Box.cjs.js +2 -3
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +2 -3
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +4 -3
  6. package/dist/Button.cjs.js.map +1 -1
  7. package/dist/Button.es.js +4 -3
  8. package/dist/Button.es.js.map +1 -1
  9. package/dist/Carousel.cjs.js +5 -4
  10. package/dist/Carousel.cjs.js.map +1 -1
  11. package/dist/Carousel.es.js +5 -4
  12. package/dist/Carousel.es.js.map +1 -1
  13. package/dist/Countdown.cjs.js +5 -4
  14. package/dist/Countdown.cjs.js.map +1 -1
  15. package/dist/Countdown.es.js +5 -4
  16. package/dist/Countdown.es.js.map +1 -1
  17. package/dist/Divider.cjs.js +4 -3
  18. package/dist/Divider.cjs.js.map +1 -1
  19. package/dist/Divider.es.js +4 -3
  20. package/dist/Divider.es.js.map +1 -1
  21. package/dist/Embed.cjs.js +4 -3
  22. package/dist/Embed.cjs.js.map +1 -1
  23. package/dist/Embed.es.js +4 -3
  24. package/dist/Embed.es.js.map +1 -1
  25. package/dist/Form.cjs.js +3 -4
  26. package/dist/Form.cjs.js.map +1 -1
  27. package/dist/Form.es.js +3 -4
  28. package/dist/Form.es.js.map +1 -1
  29. package/dist/Image.cjs2.js +4 -3
  30. package/dist/Image.cjs2.js.map +1 -1
  31. package/dist/Image.es2.js +4 -3
  32. package/dist/Image.es2.js.map +1 -1
  33. package/dist/Navigation.cjs.js +4 -3
  34. package/dist/Navigation.cjs.js.map +1 -1
  35. package/dist/Navigation.es.js +4 -3
  36. package/dist/Navigation.es.js.map +1 -1
  37. package/dist/Root.cjs.js +4 -3
  38. package/dist/Root.cjs.js.map +1 -1
  39. package/dist/Root.es.js +4 -3
  40. package/dist/Root.es.js.map +1 -1
  41. package/dist/SocialLinks.cjs.js +4 -3
  42. package/dist/SocialLinks.cjs.js.map +1 -1
  43. package/dist/SocialLinks.es.js +4 -3
  44. package/dist/SocialLinks.es.js.map +1 -1
  45. package/dist/Text.cjs.js +2 -3
  46. package/dist/Text.cjs.js.map +1 -1
  47. package/dist/Text.es.js +2 -3
  48. package/dist/Text.es.js.map +1 -1
  49. package/dist/Video.cjs.js +5 -4
  50. package/dist/Video.cjs.js.map +1 -1
  51. package/dist/Video.es.js +5 -4
  52. package/dist/Video.es.js.map +1 -1
  53. package/dist/actions.es.js +1 -1
  54. package/dist/builder.cjs.js +0 -2
  55. package/dist/builder.cjs.js.map +1 -1
  56. package/dist/builder.es.js +0 -2
  57. package/dist/builder.es.js.map +1 -1
  58. package/dist/components.cjs.js +2 -3
  59. package/dist/components.cjs.js.map +1 -1
  60. package/dist/components.es.js +2 -3
  61. package/dist/components.es.js.map +1 -1
  62. package/dist/control-serialization.cjs.js +37 -39
  63. package/dist/control-serialization.cjs.js.map +1 -1
  64. package/dist/control-serialization.es.js +1 -3
  65. package/dist/control-serialization.es.js.map +1 -1
  66. package/dist/controls.cjs.js +9 -5
  67. package/dist/controls.cjs.js.map +1 -1
  68. package/dist/controls.es.js +2 -2
  69. package/dist/cssMediaRules.cjs.js +1 -13
  70. package/dist/cssMediaRules.cjs.js.map +1 -1
  71. package/dist/cssMediaRules.es.js +1 -13
  72. package/dist/cssMediaRules.es.js.map +1 -1
  73. package/dist/image.cjs.js +269 -1
  74. package/dist/image.cjs.js.map +1 -1
  75. package/dist/image.es.js +230 -1
  76. package/dist/image.es.js.map +1 -1
  77. package/dist/index.cjs.js +382 -187
  78. package/dist/index.cjs.js.map +1 -1
  79. package/dist/index.es.js +212 -18
  80. package/dist/index.es.js.map +1 -1
  81. package/dist/index.es2.js +1 -1
  82. package/dist/index.es3.js +1 -1
  83. package/dist/main.cjs.js +2 -3
  84. package/dist/main.cjs.js.map +1 -1
  85. package/dist/main.es.js +2 -3
  86. package/dist/main.es.js.map +1 -1
  87. package/dist/next.cjs.js +4 -3
  88. package/dist/next.cjs.js.map +1 -1
  89. package/dist/next.es.js +5 -4
  90. package/dist/next.es.js.map +1 -1
  91. package/dist/prop-controllers.cjs.js +5 -6
  92. package/dist/prop-controllers.cjs.js.map +1 -1
  93. package/dist/prop-controllers.es.js +2 -3
  94. package/dist/prop-controllers.es.js.map +1 -1
  95. package/dist/react-builder-preview.cjs.js +21 -78
  96. package/dist/react-builder-preview.cjs.js.map +1 -1
  97. package/dist/react-builder-preview.es.js +28 -85
  98. package/dist/react-builder-preview.es.js.map +1 -1
  99. package/dist/react-page.cjs.js +113 -48
  100. package/dist/react-page.cjs.js.map +1 -1
  101. package/dist/react-page.es.js +80 -20
  102. package/dist/react-page.es.js.map +1 -1
  103. package/dist/react.cjs.js +4 -3
  104. package/dist/react.cjs.js.map +1 -1
  105. package/dist/react.es.js +4 -3
  106. package/dist/react.es.js.map +1 -1
  107. package/dist/{instances.cjs.js → slot.cjs.js} +28 -4
  108. package/dist/slot.cjs.js.map +1 -0
  109. package/dist/{instances.es.js → slot.es.js} +23 -3
  110. package/dist/slot.es.js.map +1 -0
  111. package/dist/types/box-model.d.ts +1 -1
  112. package/dist/types/box-model.d.ts.map +1 -1
  113. package/dist/types/controls/index.d.ts +1 -0
  114. package/dist/types/controls/index.d.ts.map +1 -1
  115. package/dist/types/controls/slot.d.ts +42 -0
  116. package/dist/types/controls/slot.d.ts.map +1 -0
  117. package/dist/types/prop-controllers/descriptors.d.ts +2 -2
  118. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  119. package/dist/types/prop-controllers/instances.d.ts +3 -2
  120. package/dist/types/prop-controllers/instances.d.ts.map +1 -1
  121. package/dist/types/prop-controllers/introspection.d.ts.map +1 -1
  122. package/dist/types/runtimes/react/controls/slot.d.ts +30 -0
  123. package/dist/types/runtimes/react/controls/slot.d.ts.map +1 -0
  124. package/dist/types/runtimes/react/controls/style.d.ts.map +1 -1
  125. package/dist/types/runtimes/react/controls.d.ts.map +1 -1
  126. package/dist/types/runtimes/react/index.d.ts +4 -0
  127. package/dist/types/runtimes/react/index.d.ts.map +1 -1
  128. package/dist/types/runtimes/react/use-style.d.ts +3 -0
  129. package/dist/types/runtimes/react/use-style.d.ts.map +1 -0
  130. package/dist/types/state/modules/prop-controller-handles.d.ts +1 -0
  131. package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -1
  132. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  133. package/dist/types/state/react-page.d.ts +3 -0
  134. package/dist/types/state/react-page.d.ts.map +1 -1
  135. package/dist/useBoxShadow.es.js +1 -1
  136. package/package.json +2 -2
  137. package/dist/descriptors.cjs.js +0 -232
  138. package/dist/descriptors.cjs.js.map +0 -1
  139. package/dist/descriptors.es.js +0 -196
  140. package/dist/descriptors.es.js.map +0 -1
  141. package/dist/instances.cjs.js.map +0 -1
  142. package/dist/instances.es.js.map +0 -1
  143. package/dist/style.cjs.js +0 -41
  144. package/dist/style.cjs.js.map +0 -1
  145. package/dist/style.es.js +0 -38
  146. package/dist/style.es.js.map +0 -1
@@ -21,10 +21,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
21
  var redux = require("redux");
22
22
  var thunk = require("redux-thunk");
23
23
  var actions = require("./actions.cjs.js");
24
- var descriptors = require("./descriptors.cjs.js");
25
- var color = require("./color.cjs.js");
26
24
  var image = require("./image.cjs.js");
27
- require("./style.cjs.js");
25
+ var color = require("./color.cjs.js");
26
+ var slot = require("./slot.cjs.js");
28
27
  function _interopDefaultLegacy(e) {
29
28
  return e && typeof e === "object" && "default" in e ? e : { "default": e };
30
29
  }
@@ -38,7 +37,7 @@ function createDocumentReference(key) {
38
37
  function createDocument(key, rootElement) {
39
38
  return { key, rootElement };
40
39
  }
41
- function getInitialState$4({
40
+ function getInitialState$5({
42
41
  rootElements = /* @__PURE__ */ new Map()
43
42
  } = {}) {
44
43
  const initialState = /* @__PURE__ */ new Map();
@@ -54,7 +53,7 @@ function getDocument$1(state, documentKey) {
54
53
  var _a;
55
54
  return (_a = getDocuments(state).get(documentKey)) != null ? _a : null;
56
55
  }
57
- function reducer$5(state = getInitialState$4(), action) {
56
+ function reducer$6(state = getInitialState$5(), action) {
58
57
  switch (action.type) {
59
58
  case actions.ActionTypes.REGISTER_DOCUMENT:
60
59
  return new Map(state).set(action.payload.documentKey, action.payload.document);
@@ -67,7 +66,7 @@ function reducer$5(state = getInitialState$4(), action) {
67
66
  return state;
68
67
  }
69
68
  }
70
- function getInitialState$3({
69
+ function getInitialState$4({
71
70
  reactComponents = /* @__PURE__ */ new Map()
72
71
  } = {}) {
73
72
  return reactComponents;
@@ -79,7 +78,7 @@ function getReactComponent$1(state, type) {
79
78
  var _a;
80
79
  return (_a = getReactComponents(state).get(type)) != null ? _a : null;
81
80
  }
82
- function reducer$4(state = getInitialState$3(), action) {
81
+ function reducer$5(state = getInitialState$4(), action) {
83
82
  switch (action.type) {
84
83
  case actions.ActionTypes.REGISTER_REACT_COMPONENT:
85
84
  return new Map(state).set(action.payload.type, action.payload.component);
@@ -92,7 +91,7 @@ function reducer$4(state = getInitialState$3(), action) {
92
91
  return state;
93
92
  }
94
93
  }
95
- function getInitialState$2({
94
+ function getInitialState$3({
96
95
  componentsMeta = /* @__PURE__ */ new Map()
97
96
  } = {}) {
98
97
  return componentsMeta;
@@ -100,7 +99,7 @@ function getInitialState$2({
100
99
  function getComponentsMeta(state) {
101
100
  return state;
102
101
  }
103
- function reducer$3(state = getInitialState$2(), action) {
102
+ function reducer$4(state = getInitialState$3(), action) {
104
103
  switch (action.type) {
105
104
  case actions.ActionTypes.REGISTER_COMPONENT:
106
105
  return new Map(state).set(action.payload.type, action.payload.meta);
@@ -113,7 +112,7 @@ function reducer$3(state = getInitialState$2(), action) {
113
112
  return state;
114
113
  }
115
114
  }
116
- function getInitialState$1({
115
+ function getInitialState$2({
117
116
  propControllerDescriptors = /* @__PURE__ */ new Map()
118
117
  } = {}) {
119
118
  return propControllerDescriptors;
@@ -125,7 +124,7 @@ function getComponentPropControllerDescriptors$1(state, componentType) {
125
124
  var _a;
126
125
  return (_a = getPropControllerDescriptors$1(state).get(componentType)) != null ? _a : null;
127
126
  }
128
- function reducer$2(state = getInitialState$1(), action) {
127
+ function reducer$3(state = getInitialState$2(), action) {
129
128
  switch (action.type) {
130
129
  case actions.ActionTypes.REGISTER_COMPONENT:
131
130
  return new Map(state).set(action.payload.type, action.payload.propControllerDescriptors);
@@ -138,6 +137,58 @@ function reducer$2(state = getInitialState$1(), action) {
138
137
  return state;
139
138
  }
140
139
  }
140
+ function isPropControllersHandle(value) {
141
+ if (typeof value === "object" && value !== null && "setPropControllers" in value && typeof value.setPropControllers === "function") {
142
+ return true;
143
+ }
144
+ return false;
145
+ }
146
+ function getInitialState$1() {
147
+ return { handles: /* @__PURE__ */ new Map(), instances: /* @__PURE__ */ new Map() };
148
+ }
149
+ function getPropControllersHandle(state, documentKey, elementKey) {
150
+ var _a, _b;
151
+ return (_b = (_a = state.handles.get(documentKey)) == null ? void 0 : _a.get(elementKey)) != null ? _b : null;
152
+ }
153
+ function getPropControllers$1(state, documentKey, elementKey) {
154
+ var _a, _b;
155
+ return (_b = (_a = state.instances.get(documentKey)) == null ? void 0 : _a.get(elementKey)) != null ? _b : null;
156
+ }
157
+ function getPropController(state, documentKey, elementKey, propName) {
158
+ var _a, _b;
159
+ return (_b = (_a = getPropControllers$1(state, documentKey, elementKey)) == null ? void 0 : _a[propName]) != null ? _b : null;
160
+ }
161
+ function reducer$2(state = getInitialState$1(), action) {
162
+ var _a, _b, _c, _d;
163
+ switch (action.type) {
164
+ case actions.ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE: {
165
+ const { documentKey, elementKey, handle } = action.payload;
166
+ return __spreadProps(__spreadValues({}, state), {
167
+ handles: new Map(state.handles).set(documentKey, new Map((_a = state.handles.get(documentKey)) != null ? _a : []).set(elementKey, handle))
168
+ });
169
+ }
170
+ case actions.ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE: {
171
+ const { documentKey, elementKey } = action.payload;
172
+ const nextHandles = new Map((_b = state.handles.get(documentKey)) != null ? _b : []);
173
+ const deleted = nextHandles.delete(elementKey);
174
+ return deleted ? __spreadProps(__spreadValues({}, state), { handles: new Map(state.handles).set(documentKey, nextHandles) }) : state;
175
+ }
176
+ case actions.ActionTypes.REGISTER_PROP_CONTROLLERS: {
177
+ const { documentKey, elementKey, propControllers } = action.payload;
178
+ return __spreadProps(__spreadValues({}, state), {
179
+ instances: new Map(state.instances).set(documentKey, new Map((_c = state.instances.get(documentKey)) != null ? _c : []).set(elementKey, propControllers))
180
+ });
181
+ }
182
+ case actions.ActionTypes.UNREGISTER_PROP_CONTROLLERS: {
183
+ const { documentKey, elementKey } = action.payload;
184
+ const nextInstances = new Map((_d = state.instances.get(documentKey)) != null ? _d : []);
185
+ const deleted = nextInstances.delete(elementKey);
186
+ return deleted ? __spreadProps(__spreadValues({}, state), { instances: new Map(state.instances).set(documentKey, nextInstances) }) : state;
187
+ }
188
+ default:
189
+ return state;
190
+ }
191
+ }
141
192
  function getInitialState() {
142
193
  return false;
143
194
  }
@@ -153,7 +204,9 @@ function getElementChildren(descriptor, prop) {
153
204
  if (prop == null)
154
205
  return [];
155
206
  switch (descriptor.type) {
156
- case descriptors.Types.Grid:
207
+ case image.Types.Grid:
208
+ return prop.elements;
209
+ case slot.SlotControlType:
157
210
  return prop.elements;
158
211
  default:
159
212
  return [];
@@ -163,7 +216,7 @@ function getElementId$1(descriptor, prop) {
163
216
  if (prop == null)
164
217
  return null;
165
218
  switch (descriptor.type) {
166
- case descriptors.Types.ElementID:
219
+ case image.Types.ElementID:
167
220
  return prop;
168
221
  default:
169
222
  return null;
@@ -174,7 +227,7 @@ function getElementSwatchIds(descriptor, prop) {
174
227
  if (prop == null)
175
228
  return [];
176
229
  switch (descriptor.type) {
177
- case descriptors.Types.Backgrounds: {
230
+ case image.Types.Backgrounds: {
178
231
  const value = prop;
179
232
  return (_a = value == null ? void 0 : value.flatMap((override) => override.value).flatMap((backgroundItem) => {
180
233
  var _a2;
@@ -188,7 +241,7 @@ function getElementSwatchIds(descriptor, prop) {
188
241
  }
189
242
  })) != null ? _a : [];
190
243
  }
191
- case descriptors.Types.Border: {
244
+ case image.Types.Border: {
192
245
  const value = prop;
193
246
  return (_b = value == null ? void 0 : value.flatMap((override) => override.value).flatMap((borderValue) => {
194
247
  var _a2, _b2, _c2, _d2, _e2, _f, _g, _h;
@@ -200,7 +253,7 @@ function getElementSwatchIds(descriptor, prop) {
200
253
  ].filter((swatchId) => swatchId != null);
201
254
  })) != null ? _b : [];
202
255
  }
203
- case descriptors.Types.NavigationLinks: {
256
+ case image.Types.NavigationLinks: {
204
257
  const value = prop;
205
258
  return (_c = value == null ? void 0 : value.flatMap((item) => {
206
259
  var _a2, _b2, _c2, _d2;
@@ -214,18 +267,18 @@ function getElementSwatchIds(descriptor, prop) {
214
267
  }
215
268
  })) != null ? _c : [];
216
269
  }
217
- case descriptors.Types.ResponsiveColor: {
270
+ case image.Types.ResponsiveColor: {
218
271
  const value = prop;
219
272
  return (_d = value == null ? void 0 : value.map((override) => override.value).map((color2) => color2.swatchId)) != null ? _d : [];
220
273
  }
221
- case descriptors.Types.Shadows: {
274
+ case image.Types.Shadows: {
222
275
  const value = prop;
223
276
  return (_e = value == null ? void 0 : value.flatMap((override) => override.value).map((item) => {
224
277
  var _a2;
225
278
  return (_a2 = item.payload.color) == null ? void 0 : _a2.swatchId;
226
279
  }).filter((swatchId) => swatchId != null)) != null ? _e : [];
227
280
  }
228
- case descriptors.Types.RichText: {
281
+ case image.Types.RichText: {
229
282
  let getNodeSwatchIds = function(node) {
230
283
  var _a2, _b2, _c2, _d2;
231
284
  switch (node.object) {
@@ -239,11 +292,11 @@ function getElementSwatchIds(descriptor, prop) {
239
292
  return [];
240
293
  }
241
294
  }, getMarkSwatchIds = function(mark) {
242
- var _a2, _b2, _c2;
243
- return (_c2 = (_b2 = (_a2 = mark.data) == null ? void 0 : _a2.value) == null ? void 0 : _b2.style.map((override) => override.value).flatMap((typographyStyle) => {
295
+ var _a2, _b2, _c2, _d2;
296
+ return (_d2 = (_c2 = (_b2 = (_a2 = mark.data) == null ? void 0 : _a2.value) == null ? void 0 : _b2.style) == null ? void 0 : _c2.map((override) => override.value).flatMap((typographyStyle) => {
244
297
  var _a3;
245
298
  return (_a3 = typographyStyle.color) == null ? void 0 : _a3.swatchId;
246
- }).filter((swatchId) => swatchId != null)) != null ? _c2 : [];
299
+ }).filter((swatchId) => swatchId != null)) != null ? _d2 : [];
247
300
  };
248
301
  const value = prop;
249
302
  if (value == null || value.document == null)
@@ -263,7 +316,7 @@ function getFileIds(descriptor, prop) {
263
316
  if (prop == null)
264
317
  return [];
265
318
  switch (descriptor.type) {
266
- case descriptors.Types.Backgrounds: {
319
+ case image.Types.Backgrounds: {
267
320
  const value = prop;
268
321
  return (_a = value == null ? void 0 : value.flatMap((override) => override.value).flatMap((backgroundItem) => {
269
322
  switch (backgroundItem.type) {
@@ -274,11 +327,11 @@ function getFileIds(descriptor, prop) {
274
327
  }
275
328
  })) != null ? _a : [];
276
329
  }
277
- case descriptors.Types.Image: {
330
+ case image.Types.Image: {
278
331
  const value = prop;
279
332
  return value == null ? [] : [value];
280
333
  }
281
- case descriptors.Types.Images: {
334
+ case image.Types.Images: {
282
335
  const value = prop;
283
336
  return (_b = value == null ? void 0 : value.flatMap((item) => item.props.file == null ? [] : [item.props.file])) != null ? _b : [];
284
337
  }
@@ -294,7 +347,7 @@ function getTypographyIds(descriptor, prop) {
294
347
  if (prop == null)
295
348
  return [];
296
349
  switch (descriptor.type) {
297
- case descriptors.Types.RichText: {
350
+ case image.Types.RichText: {
298
351
  let getNodeTypographyIds = function(node) {
299
352
  var _a, _b, _c, _d;
300
353
  switch (node.object) {
@@ -324,7 +377,7 @@ function getTableIds(descriptor, prop) {
324
377
  if (prop == null)
325
378
  return [];
326
379
  switch (descriptor.type) {
327
- case descriptors.Types.Table: {
380
+ case image.Types.Table: {
328
381
  const value = prop;
329
382
  return value == null ? [] : [value];
330
383
  }
@@ -337,7 +390,7 @@ function getPageIds(descriptor, prop) {
337
390
  if (prop == null)
338
391
  return [];
339
392
  switch (descriptor.type) {
340
- case descriptors.Types.Link: {
393
+ case image.Types.Link: {
341
394
  const value = prop;
342
395
  if (value == null)
343
396
  return [];
@@ -348,7 +401,7 @@ function getPageIds(descriptor, prop) {
348
401
  return [];
349
402
  }
350
403
  }
351
- case descriptors.Types.NavigationLinks: {
404
+ case image.Types.NavigationLinks: {
352
405
  const value = prop;
353
406
  if (value == null)
354
407
  return [];
@@ -380,7 +433,7 @@ function getPageIds(descriptor, prop) {
380
433
  }
381
434
  })) != null ? _a : [];
382
435
  }
383
- case descriptors.Types.RichText: {
436
+ case image.Types.RichText: {
384
437
  let getNodePageIds = function(node) {
385
438
  var _a2, _b;
386
439
  switch (node.object) {
@@ -421,10 +474,11 @@ function getPageIds(descriptor, prop) {
421
474
  }
422
475
  }
423
476
  const reducer = redux.combineReducers({
424
- documents: reducer$5,
425
- reactComponents: reducer$4,
426
- componentsMeta: reducer$3,
427
- propControllers: reducer$2,
477
+ documents: reducer$6,
478
+ reactComponents: reducer$5,
479
+ componentsMeta: reducer$4,
480
+ propControllers: reducer$3,
481
+ propControllerHandles: reducer$2,
428
482
  isInBuilder: reducer$1
429
483
  });
430
484
  function getDocumentsStateSlice(state) {
@@ -448,7 +502,13 @@ function getPropControllerDescriptors(state) {
448
502
  function getComponentPropControllerDescriptors(state, componentType) {
449
503
  return getComponentPropControllerDescriptors$1(getPropControllersStateSlice(state), componentType);
450
504
  }
451
- function normalizeElement(element, descriptors2) {
505
+ function getPropControllerHandlesStateSlice(state) {
506
+ return state.propControllerHandles;
507
+ }
508
+ function getPropControllers(state, documentKey, elementKey) {
509
+ return getPropControllers$1(getPropControllerHandlesStateSlice(state), documentKey, elementKey);
510
+ }
511
+ function normalizeElement(element, descriptors) {
452
512
  const elements = /* @__PURE__ */ new Map();
453
513
  const remaining = [element];
454
514
  let current;
@@ -456,7 +516,7 @@ function normalizeElement(element, descriptors2) {
456
516
  elements.set(current.key, current);
457
517
  if (isElementReference(current))
458
518
  continue;
459
- const elementDescriptors = descriptors2.get(current.type);
519
+ const elementDescriptors = descriptors.get(current.type);
460
520
  if (elementDescriptors == null)
461
521
  continue;
462
522
  const parent = current;
@@ -469,10 +529,10 @@ function normalizeElement(element, descriptors2) {
469
529
  }
470
530
  function getDocumentElements(state, documentKey) {
471
531
  const document = getDocument(state, documentKey);
472
- const descriptors2 = getPropControllerDescriptors(state);
532
+ const descriptors = getPropControllerDescriptors(state);
473
533
  if (document == null)
474
534
  return /* @__PURE__ */ new Map();
475
- return normalizeElement(document.rootElement, descriptors2);
535
+ return normalizeElement(document.rootElement, descriptors);
476
536
  }
477
537
  function getElement(state, documentKey, elementKey) {
478
538
  var _a;
@@ -488,10 +548,10 @@ function getElementId(state, documentKey, elementKey) {
488
548
  const element = getElement(state, documentKey, elementKey);
489
549
  if (element == null || isElementReference(element))
490
550
  return null;
491
- const descriptors2 = getComponentPropControllerDescriptors(state, element.type);
492
- if (descriptors2 == null)
551
+ const descriptors = getComponentPropControllerDescriptors(state, element.type);
552
+ if (descriptors == null)
493
553
  return null;
494
- const elementId = Object.entries(descriptors2).reduce((acc, [propName, descriptor]) => {
554
+ const elementId = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {
495
555
  if (acc != null)
496
556
  return acc;
497
557
  return getElementId$1(descriptor, element.props[propName]);
@@ -505,7 +565,7 @@ function configureStore({
505
565
  rootElements,
506
566
  preloadedState
507
567
  } = {}) {
508
- return redux.createStore(reducer, __spreadProps(__spreadValues({}, preloadedState), { documents: getInitialState$4({ rootElements }) }), redux.applyMiddleware(thunk__default["default"]));
568
+ return redux.createStore(reducer, __spreadProps(__spreadValues({}, preloadedState), { documents: getInitialState$5({ rootElements }) }), redux.applyMiddleware(thunk__default["default"]));
509
569
  }
510
570
  exports.configureStore = configureStore;
511
571
  exports.createDocument = createDocument;
@@ -521,17 +581,22 @@ exports.getElementId = getElementId;
521
581
  exports.getElementPropControllerDescriptors = getElementPropControllerDescriptors;
522
582
  exports.getElementSwatchIds = getElementSwatchIds;
523
583
  exports.getFileIds = getFileIds;
524
- exports.getInitialState = getInitialState$4;
584
+ exports.getInitialState = getInitialState$5;
525
585
  exports.getIsInBuilder = getIsInBuilder;
526
586
  exports.getPageIds = getPageIds;
587
+ exports.getPropController = getPropController;
527
588
  exports.getPropControllerDescriptors = getPropControllerDescriptors;
589
+ exports.getPropControllers = getPropControllers;
590
+ exports.getPropControllersHandle = getPropControllersHandle;
528
591
  exports.getReactComponent = getReactComponent;
529
592
  exports.getTableIds = getTableIds;
530
593
  exports.getTypographyIds = getTypographyIds;
531
594
  exports.isElementReference = isElementReference;
532
- exports.reducer = reducer$5;
533
- exports.reducer$1 = reducer$4;
534
- exports.reducer$2 = reducer$3;
535
- exports.reducer$3 = reducer$2;
536
- exports.reducer$4 = reducer$1;
595
+ exports.isPropControllersHandle = isPropControllersHandle;
596
+ exports.reducer = reducer$6;
597
+ exports.reducer$1 = reducer$5;
598
+ exports.reducer$2 = reducer$4;
599
+ exports.reducer$3 = reducer$3;
600
+ exports.reducer$4 = reducer$2;
601
+ exports.reducer$5 = reducer$1;
537
602
  //# sourceMappingURL=react-page.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-page.cjs.js","sources":["../src/state/modules/read-only-documents.ts","../src/state/modules/react-components.tsx","../src/state/modules/components-meta.ts","../src/state/modules/prop-controllers.ts","../src/state/modules/is-in-builder.ts","../src/prop-controllers/introspection.ts","../src/state/react-page.ts"],"sourcesContent":["import { Action, ActionTypes } from '../actions'\n\nexport type Data = undefined | null | boolean | number | string | Data[] | { [key: string]: Data }\n\nexport type ElementData = { type: string; key: string; props: Record<string, Data> }\n\nexport type ElementReference = { type: 'reference'; key: string; value: string }\n\nexport type Element = ElementData | ElementReference\n\nexport function isElementReference(element: Element): element is ElementReference {\n return !('props' in element)\n}\n\nexport type DocumentReference = {\n key: string\n}\n\nexport function createDocumentReference(key: string): DocumentReference {\n return { key }\n}\n\nexport type Document = {\n key: string\n rootElement: Element\n}\n\nexport function createDocument(key: string, rootElement: Element): Document {\n return { key, rootElement }\n}\n\nexport type State = Map<string, Document>\n\nexport function getInitialState({\n rootElements = new Map(),\n}: { rootElements?: Map<string, Element> } = {}): State {\n const initialState = new Map()\n\n rootElements.forEach((rootElement, documentKey) => {\n initialState.set(documentKey, createDocument(documentKey, rootElement))\n })\n\n return initialState\n}\n\nfunction getDocuments(state: State): Map<string, Document> {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): Document | null {\n return getDocuments(state).get(documentKey) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_DOCUMENT:\n return new Map(state).set(action.payload.documentKey, action.payload.document)\n\n case ActionTypes.UNREGISTER_DOCUMENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.documentKey)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import type { Component, PropsWithoutRef, ReactElement, RefAttributes } from 'react'\n\nimport { Action, ActionTypes } from '../actions'\n\nexport type ComponentType<P = Record<string, any>, T = any> =\n | { new (props: PropsWithoutRef<P> & RefAttributes<T>, context?: any): Component<P> }\n | ((props: PropsWithoutRef<P> & RefAttributes<T>, context?: any) => ReactElement<any, any> | null)\n\nexport type State = Map<string, ComponentType>\n\nexport function getInitialState({\n reactComponents = new Map(),\n}: { reactComponents?: Map<string, ComponentType> } = {}): State {\n return reactComponents\n}\n\nfunction getReactComponents(state: State): Map<string, ComponentType> {\n return state\n}\n\nexport function getReactComponent(state: State, type: string): ComponentType | null {\n return getReactComponents(state).get(type) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action) {\n switch (action.type) {\n case ActionTypes.REGISTER_REACT_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.component)\n\n case ActionTypes.UNREGISTER_REACT_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport type ComponentIcon =\n | 'Carousel40'\n | 'Code40'\n | 'Countdown40'\n | 'Cube40'\n | 'Divider40'\n | 'Form40'\n | 'Navigation40'\n | 'SocialLinks40'\n | 'Video40'\n\nexport type ComponentMeta = { label: string; icon: ComponentIcon; hidden: boolean }\n\nexport type State = Map<string, ComponentMeta>\n\nexport function getInitialState({\n componentsMeta = new Map(),\n}: { componentsMeta?: Map<string, ComponentMeta> } = {}): State {\n return componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentMeta> {\n return state\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.meta)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\nimport { PropControllerDescriptor } from '../../prop-controllers'\n\nexport type { PropControllerDescriptor }\n\nexport type State = Map<string, Record<string, PropControllerDescriptor>>\n\nexport function getInitialState({\n propControllerDescriptors = new Map(),\n}: {\n propControllerDescriptors?: Map<string, Record<string, PropControllerDescriptor>>\n} = {}): State {\n return propControllerDescriptors\n}\n\nexport function getPropControllerDescriptors(\n state: State,\n): Map<string, Record<string, PropControllerDescriptor>> {\n return state\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): Record<string, PropControllerDescriptor> | null {\n return getPropControllerDescriptors(state).get(componentType) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.propControllerDescriptors)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport type State = boolean\n\nexport function getInitialState(): State {\n return false\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.SET_IS_IN_BUILDER:\n return action.payload\n\n default:\n return state\n }\n}\n","import { InlineJSON, MarkJSON, NodeJSON } from 'slate'\nimport {\n BackgroundsValue,\n BorderValue,\n Descriptor,\n ElementIDValue,\n GridValue,\n ImagesValue,\n ImageValue,\n LinkValue,\n NavigationLinksValue,\n ResponsiveColorValue,\n RichTextValue,\n ShadowsValue,\n TableValue,\n Types,\n} from './descriptors'\nimport { Data, Element } from '../state/react-page'\nimport { ColorControlData, ColorControlType, ImageControlData, ImageControlType } from '../controls'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Grid:\n return (prop as GridValue).elements\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n switch (descriptor.type) {\n case Types.ElementID:\n return prop as ElementIDValue\n\n default:\n return null\n }\n}\n\nexport function getElementSwatchIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Backgrounds: {\n const value = prop as BackgroundsValue\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(backgroundItem => {\n switch (backgroundItem.type) {\n case 'color':\n return backgroundItem.payload?.swatchId == null\n ? []\n : [backgroundItem.payload.swatchId]\n\n case 'gradient':\n return backgroundItem.payload.stops.flatMap(stop =>\n stop.color == null ? [] : stop.color.swatchId,\n )\n\n default:\n return []\n }\n }) ?? []\n )\n }\n\n case Types.Border: {\n const value = prop as BorderValue\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(borderValue => {\n return [\n borderValue.borderTop?.color?.swatchId,\n borderValue.borderRight?.color?.swatchId,\n borderValue.borderBottom?.color?.swatchId,\n borderValue.borderLeft?.color?.swatchId,\n ].filter((swatchId): swatchId is NonNullable<typeof swatchId> => swatchId != null)\n }) ?? []\n )\n }\n\n case Types.NavigationLinks: {\n const value = prop as NavigationLinksValue\n return (\n value?.flatMap(item => {\n switch (item.type) {\n case 'button':\n case 'dropdown':\n return [\n ...(item.payload.color\n ?.map(override => override.value)\n .map(color => color.swatchId) ?? []),\n ...(item.payload.textColor\n ?.map(override => override.value)\n .map(color => color.swatchId) ?? []),\n ]\n }\n }) ?? []\n )\n }\n\n case Types.ResponsiveColor: {\n const value = prop as ResponsiveColorValue\n return value?.map(override => override.value).map(color => color.swatchId) ?? []\n }\n\n case Types.Shadows: {\n const value = prop as ShadowsValue\n return (\n value\n ?.flatMap(override => override.value)\n .map(item => item.payload.color?.swatchId)\n .filter((swatchId): swatchId is NonNullable<typeof swatchId> => swatchId != null) ?? []\n )\n }\n\n case Types.RichText: {\n const value = prop as RichTextValue\n\n if (value == null || value.document == null) return []\n\n return getNodeSwatchIds(value.document)\n\n function getNodeSwatchIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n return node.nodes?.flatMap(getNodeSwatchIds) ?? []\n\n case 'text':\n return node.marks?.flatMap(getMarkSwatchIds) ?? []\n\n default:\n return []\n }\n }\n\n function getMarkSwatchIds(mark: MarkJSON): string[] {\n return (\n mark.data?.value?.style\n .map((override: any) => override.value)\n .flatMap((typographyStyle: any) => typographyStyle.color?.swatchId)\n .filter((swatchId: any) => swatchId != null) ?? []\n )\n }\n }\n\n case ColorControlType: {\n const value = prop as ColorControlData\n return value?.swatchId == null ? [] : [value.swatchId]\n }\n\n default:\n return []\n }\n}\n\nexport function getFileIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Backgrounds: {\n const value = prop as BackgroundsValue\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(backgroundItem => {\n switch (backgroundItem.type) {\n case 'image':\n return [backgroundItem.payload.imageId]\n\n default:\n return []\n }\n }) ?? []\n )\n }\n\n case Types.Image: {\n const value = prop as ImageValue\n return value == null ? [] : [value]\n }\n\n case Types.Images: {\n const value = prop as ImagesValue\n return value?.flatMap(item => (item.props.file == null ? [] : [item.props.file])) ?? []\n }\n\n case ImageControlType: {\n const value = prop as ImageControlData\n return value == null ? [] : [value]\n }\n\n default:\n return []\n }\n}\n\nexport function getTypographyIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.RichText: {\n const value = prop as RichTextValue\n if (value == null || value.document == null) return []\n\n return getNodeTypographyIds(value.document)\n\n function getNodeTypographyIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n return node.nodes?.flatMap(getNodeTypographyIds) ?? []\n\n case 'text':\n return node.marks?.flatMap(getMarkTypographyIds) ?? []\n\n default:\n return []\n }\n }\n\n function getMarkTypographyIds(mark: MarkJSON): string[] {\n return [mark.data?.value?.id].filter(id => id != null)\n }\n }\n\n default:\n return []\n }\n}\n\nexport function getTableIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Table: {\n const value = prop as TableValue\n return value == null ? [] : [value]\n }\n\n default:\n return []\n }\n}\n\nexport function getPageIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Link: {\n const value = prop as LinkValue\n if (value == null) return []\n\n switch (value.type) {\n case 'OPEN_PAGE':\n return value.payload.pageId == null ? [] : [value.payload.pageId]\n\n default:\n return []\n }\n }\n\n case Types.NavigationLinks: {\n const value = prop as NavigationLinksValue\n if (value == null) return []\n\n return (\n value?.flatMap(item => {\n switch (item.type) {\n case 'button': {\n if (item.payload.link == null) return []\n\n switch (item.payload.link.type) {\n case 'OPEN_PAGE':\n return item.payload.link.payload.pageId == null\n ? []\n : [item.payload.link.payload.pageId]\n\n default:\n return []\n }\n }\n\n case 'dropdown': {\n return (\n item.payload.links?.flatMap(link => {\n if (link.payload.link == null) return []\n\n switch (link.payload.link.type) {\n case 'OPEN_PAGE':\n return link.payload.link.payload.pageId == null\n ? []\n : [link.payload.link.payload.pageId]\n\n default:\n return []\n }\n }) ?? []\n )\n }\n }\n }) ?? []\n )\n }\n\n case Types.RichText: {\n const value = prop as RichTextValue\n if (value == null || value.document == null) return []\n\n return getNodePageIds(value.document)\n\n function getNodePageIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n return node.nodes?.flatMap(getNodePageIds) ?? []\n\n case 'inline':\n return getInlinePageIds(node)\n\n default:\n return []\n }\n }\n\n function getInlinePageIds(inline: InlineJSON): string[] {\n switch (inline.type) {\n case 'link': {\n const nodePageIds = inline.nodes?.flatMap(getNodePageIds) ?? []\n const dataPageIds = inline.data ? getLinkDataPageIds(inline.data as LinkValue) : []\n\n return [...nodePageIds, ...dataPageIds]\n }\n\n default:\n return inline.nodes?.flatMap(getNodePageIds) ?? []\n }\n }\n\n function getLinkDataPageIds(link: LinkValue): string[] {\n switch (link.type) {\n case 'OPEN_PAGE':\n return link.payload.pageId == null ? [] : [link.payload.pageId]\n\n default:\n return []\n }\n }\n }\n\n default:\n return []\n }\n}\n","import {\n applyMiddleware,\n combineReducers,\n createStore,\n PreloadedState,\n Store as ReduxStore,\n} from 'redux'\nimport thunk, { ThunkDispatch } from 'redux-thunk'\n\nimport * as Documents from './modules/read-only-documents'\nimport * as ReactComponents from './modules/react-components'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as IsInBuilder from './modules/is-in-builder'\nimport * as Introspection from '../prop-controllers/introspection'\nimport { Action } from './actions'\n\nexport type {\n Data,\n Document,\n DocumentReference,\n Element,\n ElementData,\n ElementReference,\n} from './modules/read-only-documents'\nexport {\n createDocument,\n createDocumentReference,\n isElementReference,\n} from './modules/read-only-documents'\nexport type { ComponentType } from './modules/react-components'\n\nconst reducer = combineReducers({\n documents: Documents.reducer,\n reactComponents: ReactComponents.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n isInBuilder: IsInBuilder.reducer,\n})\n\nexport type State = ReturnType<typeof reducer>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocument(state: State, documentKey: string): Documents.Document | null {\n return Documents.getDocument(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getReactComponentsStateSlice(state: State): ReactComponents.State {\n return state.reactComponents\n}\n\nexport function getReactComponent(\n state: State,\n type: string,\n): ReactComponents.ComponentType | null {\n return ReactComponents.getReactComponent(getReactComponentsStateSlice(state), type)\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nexport function getPropControllerDescriptors(\n state: State,\n): Map<string, Record<string, PropControllers.PropControllerDescriptor>> {\n return PropControllers.getPropControllerDescriptors(getPropControllersStateSlice(state))\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n return PropControllers.getComponentPropControllerDescriptors(\n getPropControllersStateSlice(state),\n componentType,\n )\n}\n\nfunction normalizeElement(\n element: Documents.Element,\n descriptors: Map<string, Record<string, PropControllers.PropControllerDescriptor>>,\n): Map<string, Documents.Element> {\n const elements = new Map<string, Documents.Element>()\n const remaining = [element]\n let current: Documents.Element | undefined\n\n while ((current = remaining.pop())) {\n elements.set(current.key, current)\n\n if (Documents.isElementReference(current)) continue\n\n const elementDescriptors = descriptors.get(current.type)\n\n if (elementDescriptors == null) continue\n\n const parent = current\n const children = Object.entries(elementDescriptors).reduce((acc, [propName, descriptor]) => {\n return [...acc, ...Introspection.getElementChildren(descriptor, parent.props[propName])]\n }, [] as Documents.Element[])\n\n remaining.push(...children)\n }\n\n return elements\n}\n\nfunction getDocumentElements(state: State, documentKey: string): Map<string, Documents.Element> {\n const document = getDocument(state, documentKey)\n const descriptors = getPropControllerDescriptors(state)\n\n if (document == null) return new Map()\n\n return normalizeElement(document.rootElement, descriptors)\n}\n\nexport function getElement(\n state: State,\n documentKey: string,\n elementKey: string,\n): Documents.Element | null {\n return getDocumentElements(state, documentKey).get(elementKey) ?? null\n}\n\nexport function getElementPropControllerDescriptors(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n return getComponentPropControllerDescriptors(state, element.type)\n}\n\nexport function getElementId(state: State, documentKey: string, elementKey: string): string | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n const descriptors = getComponentPropControllerDescriptors(state, element.type)\n\n if (descriptors == null) return null\n\n const elementId = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {\n if (acc != null) return acc\n\n return Introspection.getElementId(descriptor, element.props[propName])\n }, null as string | null)\n\n return elementId\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state.isInBuilder\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n rootElements,\n preloadedState,\n}: {\n rootElements?: Map<string, Documents.Element>\n preloadedState?: PreloadedState<State>\n} = {}): Store {\n return createStore(\n reducer,\n { ...preloadedState, documents: Documents.getInitialState({ rootElements }) },\n applyMiddleware(thunk),\n )\n}\n"],"names":["getInitialState","ActionTypes","reactComponents","Map","state","type","getReactComponents","get","action","REGISTER_REACT_COMPONENT","set","payload","component","UNREGISTER_REACT_COMPONENT","nextState","deleted","delete","getPropControllerDescriptors","Types","ColorControlType","ImageControlType","combineReducers","Documents.reducer","ReactComponents.reducer","ComponentsMeta.reducer","PropControllers.reducer","IsInBuilder.reducer","Documents.getDocument","ReactComponents.getReactComponent","PropControllers.getPropControllerDescriptors","PropControllers.getComponentPropControllerDescriptors","Documents.isElementReference","Introspection.getElementChildren","Introspection.getElementId","createStore","Documents.getInitialState","applyMiddleware","thunk"],"mappings":"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"}
1
+ {"version":3,"file":"react-page.cjs.js","sources":["../src/state/modules/read-only-documents.ts","../src/state/modules/react-components.tsx","../src/state/modules/components-meta.ts","../src/state/modules/prop-controllers.ts","../src/state/modules/prop-controller-handles.ts","../src/state/modules/is-in-builder.ts","../src/prop-controllers/introspection.ts","../src/state/react-page.ts"],"sourcesContent":["import { Action, ActionTypes } from '../actions'\n\nexport type Data = undefined | null | boolean | number | string | Data[] | { [key: string]: Data }\n\nexport type ElementData = { type: string; key: string; props: Record<string, Data> }\n\nexport type ElementReference = { type: 'reference'; key: string; value: string }\n\nexport type Element = ElementData | ElementReference\n\nexport function isElementReference(element: Element): element is ElementReference {\n return !('props' in element)\n}\n\nexport type DocumentReference = {\n key: string\n}\n\nexport function createDocumentReference(key: string): DocumentReference {\n return { key }\n}\n\nexport type Document = {\n key: string\n rootElement: Element\n}\n\nexport function createDocument(key: string, rootElement: Element): Document {\n return { key, rootElement }\n}\n\nexport type State = Map<string, Document>\n\nexport function getInitialState({\n rootElements = new Map(),\n}: { rootElements?: Map<string, Element> } = {}): State {\n const initialState = new Map()\n\n rootElements.forEach((rootElement, documentKey) => {\n initialState.set(documentKey, createDocument(documentKey, rootElement))\n })\n\n return initialState\n}\n\nfunction getDocuments(state: State): Map<string, Document> {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): Document | null {\n return getDocuments(state).get(documentKey) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_DOCUMENT:\n return new Map(state).set(action.payload.documentKey, action.payload.document)\n\n case ActionTypes.UNREGISTER_DOCUMENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.documentKey)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import type { Component, PropsWithoutRef, ReactElement, RefAttributes } from 'react'\n\nimport { Action, ActionTypes } from '../actions'\n\nexport type ComponentType<P = Record<string, any>, T = any> =\n | { new (props: PropsWithoutRef<P> & RefAttributes<T>, context?: any): Component<P> }\n | ((props: PropsWithoutRef<P> & RefAttributes<T>, context?: any) => ReactElement<any, any> | null)\n\nexport type State = Map<string, ComponentType>\n\nexport function getInitialState({\n reactComponents = new Map(),\n}: { reactComponents?: Map<string, ComponentType> } = {}): State {\n return reactComponents\n}\n\nfunction getReactComponents(state: State): Map<string, ComponentType> {\n return state\n}\n\nexport function getReactComponent(state: State, type: string): ComponentType | null {\n return getReactComponents(state).get(type) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action) {\n switch (action.type) {\n case ActionTypes.REGISTER_REACT_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.component)\n\n case ActionTypes.UNREGISTER_REACT_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport type ComponentIcon =\n | 'Carousel40'\n | 'Code40'\n | 'Countdown40'\n | 'Cube40'\n | 'Divider40'\n | 'Form40'\n | 'Navigation40'\n | 'SocialLinks40'\n | 'Video40'\n\nexport type ComponentMeta = { label: string; icon: ComponentIcon; hidden: boolean }\n\nexport type State = Map<string, ComponentMeta>\n\nexport function getInitialState({\n componentsMeta = new Map(),\n}: { componentsMeta?: Map<string, ComponentMeta> } = {}): State {\n return componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentMeta> {\n return state\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.meta)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\nimport { PropControllerDescriptor } from '../../prop-controllers'\n\nexport type { PropControllerDescriptor }\n\nexport type State = Map<string, Record<string, PropControllerDescriptor>>\n\nexport function getInitialState({\n propControllerDescriptors = new Map(),\n}: {\n propControllerDescriptors?: Map<string, Record<string, PropControllerDescriptor>>\n} = {}): State {\n return propControllerDescriptors\n}\n\nexport function getPropControllerDescriptors(\n state: State,\n): Map<string, Record<string, PropControllerDescriptor>> {\n return state\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): Record<string, PropControllerDescriptor> | null {\n return getPropControllerDescriptors(state).get(componentType) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.propControllerDescriptors)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\nimport type { DescriptorsPropControllers, PropController } from '../../prop-controllers/instances'\nimport type { Descriptor } from '../../prop-controllers/descriptors'\n\nexport interface PropControllersHandle<\n T extends Record<string, Descriptor> = Record<string, Descriptor>,\n> {\n setPropControllers(propControllers: DescriptorsPropControllers<T> | null): void\n}\n\nexport function isPropControllersHandle(value: unknown): value is PropControllersHandle {\n if (\n typeof value === 'object' &&\n value !== null &&\n 'setPropControllers' in value &&\n typeof (value as { setPropControllers: unknown }).setPropControllers === 'function'\n ) {\n return true\n }\n\n return false\n}\n\nexport type State = {\n handles: Map<string, Map<string, PropControllersHandle>>\n instances: Map<string, Map<string, Record<string, PropController>>>\n}\n\nexport function getInitialState(): State {\n return { handles: new Map(), instances: new Map() }\n}\n\nexport function getPropControllersHandle(\n state: State,\n documentKey: string,\n elementKey: string,\n): PropControllersHandle | null {\n return state.handles.get(documentKey)?.get(elementKey) ?? null\n}\n\nexport function getPropControllers(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, PropController> | null {\n return state.instances.get(documentKey)?.get(elementKey) ?? null\n}\n\nexport function getPropController(\n state: State,\n documentKey: string,\n elementKey: string,\n propName: string,\n): PropController | null {\n return getPropControllers(state, documentKey, elementKey)?.[propName] ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE: {\n const { documentKey, elementKey, handle } = action.payload\n\n return {\n ...state,\n handles: new Map(state.handles).set(\n documentKey,\n new Map(state.handles.get(documentKey) ?? []).set(elementKey, handle),\n ),\n }\n }\n\n case ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE: {\n const { documentKey, elementKey } = action.payload\n const nextHandles = new Map(state.handles.get(documentKey) ?? [])\n\n const deleted = nextHandles.delete(elementKey)\n\n return deleted\n ? { ...state, handles: new Map(state.handles).set(documentKey, nextHandles) }\n : state\n }\n\n case ActionTypes.REGISTER_PROP_CONTROLLERS: {\n const { documentKey, elementKey, propControllers } = action.payload\n\n return {\n ...state,\n instances: new Map(state.instances).set(\n documentKey,\n new Map(state.instances.get(documentKey) ?? []).set(elementKey, propControllers),\n ),\n }\n }\n\n case ActionTypes.UNREGISTER_PROP_CONTROLLERS: {\n const { documentKey, elementKey } = action.payload\n const nextInstances = new Map(state.instances.get(documentKey) ?? [])\n\n const deleted = nextInstances.delete(elementKey)\n\n return deleted\n ? { ...state, instances: new Map(state.instances).set(documentKey, nextInstances) }\n : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport type State = boolean\n\nexport function getInitialState(): State {\n return false\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.SET_IS_IN_BUILDER:\n return action.payload\n\n default:\n return state\n }\n}\n","import { InlineJSON, MarkJSON, NodeJSON } from 'slate'\nimport {\n BackgroundsValue,\n BorderValue,\n Descriptor,\n ElementIDValue,\n GridValue,\n ImagesValue,\n ImageValue,\n LinkValue,\n NavigationLinksValue,\n ResponsiveColorValue,\n RichTextValue,\n ShadowsValue,\n TableValue,\n Types,\n} from './descriptors'\nimport { Data, Element } from '../state/react-page'\nimport {\n ColorControlData,\n ColorControlType,\n ImageControlData,\n ImageControlType,\n SlotControlData,\n SlotControlType,\n} from '../controls'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Grid:\n return (prop as GridValue).elements\n\n case SlotControlType:\n return (prop as SlotControlData).elements\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n switch (descriptor.type) {\n case Types.ElementID:\n return prop as ElementIDValue\n\n default:\n return null\n }\n}\n\nexport function getElementSwatchIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Backgrounds: {\n const value = prop as BackgroundsValue\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(backgroundItem => {\n switch (backgroundItem.type) {\n case 'color':\n return backgroundItem.payload?.swatchId == null\n ? []\n : [backgroundItem.payload.swatchId]\n\n case 'gradient':\n return backgroundItem.payload.stops.flatMap(stop =>\n stop.color == null ? [] : stop.color.swatchId,\n )\n\n default:\n return []\n }\n }) ?? []\n )\n }\n\n case Types.Border: {\n const value = prop as BorderValue\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(borderValue => {\n return [\n borderValue.borderTop?.color?.swatchId,\n borderValue.borderRight?.color?.swatchId,\n borderValue.borderBottom?.color?.swatchId,\n borderValue.borderLeft?.color?.swatchId,\n ].filter((swatchId): swatchId is NonNullable<typeof swatchId> => swatchId != null)\n }) ?? []\n )\n }\n\n case Types.NavigationLinks: {\n const value = prop as NavigationLinksValue\n return (\n value?.flatMap(item => {\n switch (item.type) {\n case 'button':\n case 'dropdown':\n return [\n ...(item.payload.color\n ?.map(override => override.value)\n .map(color => color.swatchId) ?? []),\n ...(item.payload.textColor\n ?.map(override => override.value)\n .map(color => color.swatchId) ?? []),\n ]\n }\n }) ?? []\n )\n }\n\n case Types.ResponsiveColor: {\n const value = prop as ResponsiveColorValue\n return value?.map(override => override.value).map(color => color.swatchId) ?? []\n }\n\n case Types.Shadows: {\n const value = prop as ShadowsValue\n return (\n value\n ?.flatMap(override => override.value)\n .map(item => item.payload.color?.swatchId)\n .filter((swatchId): swatchId is NonNullable<typeof swatchId> => swatchId != null) ?? []\n )\n }\n\n case Types.RichText: {\n const value = prop as RichTextValue\n\n if (value == null || value.document == null) return []\n\n return getNodeSwatchIds(value.document)\n\n function getNodeSwatchIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n return node.nodes?.flatMap(getNodeSwatchIds) ?? []\n\n case 'text':\n return node.marks?.flatMap(getMarkSwatchIds) ?? []\n\n default:\n return []\n }\n }\n\n function getMarkSwatchIds(mark: MarkJSON): string[] {\n return (\n mark.data?.value?.style\n ?.map((override: any) => override.value)\n .flatMap((typographyStyle: any) => typographyStyle.color?.swatchId)\n .filter((swatchId: any) => swatchId != null) ?? []\n )\n }\n }\n\n case ColorControlType: {\n const value = prop as ColorControlData\n return value?.swatchId == null ? [] : [value.swatchId]\n }\n\n default:\n return []\n }\n}\n\nexport function getFileIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Backgrounds: {\n const value = prop as BackgroundsValue\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(backgroundItem => {\n switch (backgroundItem.type) {\n case 'image':\n return [backgroundItem.payload.imageId]\n\n default:\n return []\n }\n }) ?? []\n )\n }\n\n case Types.Image: {\n const value = prop as ImageValue\n return value == null ? [] : [value]\n }\n\n case Types.Images: {\n const value = prop as ImagesValue\n return value?.flatMap(item => (item.props.file == null ? [] : [item.props.file])) ?? []\n }\n\n case ImageControlType: {\n const value = prop as ImageControlData\n return value == null ? [] : [value]\n }\n\n default:\n return []\n }\n}\n\nexport function getTypographyIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.RichText: {\n const value = prop as RichTextValue\n if (value == null || value.document == null) return []\n\n return getNodeTypographyIds(value.document)\n\n function getNodeTypographyIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n return node.nodes?.flatMap(getNodeTypographyIds) ?? []\n\n case 'text':\n return node.marks?.flatMap(getMarkTypographyIds) ?? []\n\n default:\n return []\n }\n }\n\n function getMarkTypographyIds(mark: MarkJSON): string[] {\n return [mark.data?.value?.id].filter(id => id != null)\n }\n }\n\n default:\n return []\n }\n}\n\nexport function getTableIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Table: {\n const value = prop as TableValue\n return value == null ? [] : [value]\n }\n\n default:\n return []\n }\n}\n\nexport function getPageIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Link: {\n const value = prop as LinkValue\n if (value == null) return []\n\n switch (value.type) {\n case 'OPEN_PAGE':\n return value.payload.pageId == null ? [] : [value.payload.pageId]\n\n default:\n return []\n }\n }\n\n case Types.NavigationLinks: {\n const value = prop as NavigationLinksValue\n if (value == null) return []\n\n return (\n value?.flatMap(item => {\n switch (item.type) {\n case 'button': {\n if (item.payload.link == null) return []\n\n switch (item.payload.link.type) {\n case 'OPEN_PAGE':\n return item.payload.link.payload.pageId == null\n ? []\n : [item.payload.link.payload.pageId]\n\n default:\n return []\n }\n }\n\n case 'dropdown': {\n return (\n item.payload.links?.flatMap(link => {\n if (link.payload.link == null) return []\n\n switch (link.payload.link.type) {\n case 'OPEN_PAGE':\n return link.payload.link.payload.pageId == null\n ? []\n : [link.payload.link.payload.pageId]\n\n default:\n return []\n }\n }) ?? []\n )\n }\n }\n }) ?? []\n )\n }\n\n case Types.RichText: {\n const value = prop as RichTextValue\n if (value == null || value.document == null) return []\n\n return getNodePageIds(value.document)\n\n function getNodePageIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n return node.nodes?.flatMap(getNodePageIds) ?? []\n\n case 'inline':\n return getInlinePageIds(node)\n\n default:\n return []\n }\n }\n\n function getInlinePageIds(inline: InlineJSON): string[] {\n switch (inline.type) {\n case 'link': {\n const nodePageIds = inline.nodes?.flatMap(getNodePageIds) ?? []\n const dataPageIds = inline.data ? getLinkDataPageIds(inline.data as LinkValue) : []\n\n return [...nodePageIds, ...dataPageIds]\n }\n\n default:\n return inline.nodes?.flatMap(getNodePageIds) ?? []\n }\n }\n\n function getLinkDataPageIds(link: LinkValue): string[] {\n switch (link.type) {\n case 'OPEN_PAGE':\n return link.payload.pageId == null ? [] : [link.payload.pageId]\n\n default:\n return []\n }\n }\n }\n\n default:\n return []\n }\n}\n","import {\n applyMiddleware,\n combineReducers,\n createStore,\n PreloadedState,\n Store as ReduxStore,\n} from 'redux'\nimport thunk, { ThunkDispatch } from 'redux-thunk'\n\nimport * as Documents from './modules/read-only-documents'\nimport * as ReactComponents from './modules/react-components'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as PropControllerHandles from './modules/prop-controller-handles'\nimport * as IsInBuilder from './modules/is-in-builder'\nimport * as Introspection from '../prop-controllers/introspection'\nimport { Action } from './actions'\n\nexport type {\n Data,\n Document,\n DocumentReference,\n Element,\n ElementData,\n ElementReference,\n} from './modules/read-only-documents'\nexport {\n createDocument,\n createDocumentReference,\n isElementReference,\n} from './modules/read-only-documents'\nexport type { ComponentType } from './modules/react-components'\n\nconst reducer = combineReducers({\n documents: Documents.reducer,\n reactComponents: ReactComponents.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n propControllerHandles: PropControllerHandles.reducer,\n isInBuilder: IsInBuilder.reducer,\n})\n\nexport type State = ReturnType<typeof reducer>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocument(state: State, documentKey: string): Documents.Document | null {\n return Documents.getDocument(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getReactComponentsStateSlice(state: State): ReactComponents.State {\n return state.reactComponents\n}\n\nexport function getReactComponent(\n state: State,\n type: string,\n): ReactComponents.ComponentType | null {\n return ReactComponents.getReactComponent(getReactComponentsStateSlice(state), type)\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nexport function getPropControllerDescriptors(\n state: State,\n): Map<string, Record<string, PropControllers.PropControllerDescriptor>> {\n return PropControllers.getPropControllerDescriptors(getPropControllersStateSlice(state))\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n return PropControllers.getComponentPropControllerDescriptors(\n getPropControllersStateSlice(state),\n componentType,\n )\n}\n\nfunction getPropControllerHandlesStateSlice(state: State): PropControllerHandles.State {\n return state.propControllerHandles\n}\n\nexport function getPropControllers(state: State, documentKey: string, elementKey: string) {\n return PropControllerHandles.getPropControllers(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n )\n}\n\nfunction normalizeElement(\n element: Documents.Element,\n descriptors: Map<string, Record<string, PropControllers.PropControllerDescriptor>>,\n): Map<string, Documents.Element> {\n const elements = new Map<string, Documents.Element>()\n const remaining = [element]\n let current: Documents.Element | undefined\n\n while ((current = remaining.pop())) {\n elements.set(current.key, current)\n\n if (Documents.isElementReference(current)) continue\n\n const elementDescriptors = descriptors.get(current.type)\n\n if (elementDescriptors == null) continue\n\n const parent = current\n const children = Object.entries(elementDescriptors).reduce((acc, [propName, descriptor]) => {\n return [...acc, ...Introspection.getElementChildren(descriptor, parent.props[propName])]\n }, [] as Documents.Element[])\n\n remaining.push(...children)\n }\n\n return elements\n}\n\nfunction getDocumentElements(state: State, documentKey: string): Map<string, Documents.Element> {\n const document = getDocument(state, documentKey)\n const descriptors = getPropControllerDescriptors(state)\n\n if (document == null) return new Map()\n\n return normalizeElement(document.rootElement, descriptors)\n}\n\nexport function getElement(\n state: State,\n documentKey: string,\n elementKey: string,\n): Documents.Element | null {\n return getDocumentElements(state, documentKey).get(elementKey) ?? null\n}\n\nexport function getElementPropControllerDescriptors(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n return getComponentPropControllerDescriptors(state, element.type)\n}\n\nexport function getElementId(state: State, documentKey: string, elementKey: string): string | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n const descriptors = getComponentPropControllerDescriptors(state, element.type)\n\n if (descriptors == null) return null\n\n const elementId = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {\n if (acc != null) return acc\n\n return Introspection.getElementId(descriptor, element.props[propName])\n }, null as string | null)\n\n return elementId\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state.isInBuilder\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n rootElements,\n preloadedState,\n}: {\n rootElements?: Map<string, Documents.Element>\n preloadedState?: PreloadedState<State>\n} = {}): Store {\n return createStore(\n reducer,\n { ...preloadedState, documents: Documents.getInitialState({ rootElements }) },\n applyMiddleware(thunk),\n )\n}\n"],"names":["getInitialState","ActionTypes","reactComponents","Map","state","type","getReactComponents","get","action","REGISTER_REACT_COMPONENT","set","payload","component","UNREGISTER_REACT_COMPONENT","nextState","deleted","delete","getPropControllerDescriptors","getPropControllers","Types","SlotControlType","ColorControlType","ImageControlType","combineReducers","Documents.reducer","ReactComponents.reducer","ComponentsMeta.reducer","PropControllers.reducer","PropControllerHandles.reducer","IsInBuilder.reducer","Documents.getDocument","ReactComponents.getReactComponent","PropControllers.getPropControllerDescriptors","PropControllers.getComponentPropControllerDescriptors","PropControllerHandles.getPropControllers","Documents.isElementReference","Introspection.getElementChildren","Introspection.getElementId","createStore","Documents.getInitialState","applyMiddleware","thunk"],"mappings":"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"}