@makeswift/runtime 0.16.0-canary.4 → 0.16.0-canary.6

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 (152) hide show
  1. package/dist/cjs/builder/serialization/control-serialization.js +11 -10
  2. package/dist/cjs/builder/serialization/control-serialization.js.map +1 -1
  3. package/dist/cjs/components/builtin/Box/Box.js.map +1 -1
  4. package/dist/cjs/components/builtin/Box/register.js +2 -2
  5. package/dist/cjs/components/builtin/Box/register.js.map +1 -1
  6. package/dist/cjs/components/builtin/Carousel/Carousel.js.map +1 -1
  7. package/dist/cjs/components/builtin/Carousel/register.js +1 -1
  8. package/dist/cjs/components/builtin/Carousel/register.js.map +1 -1
  9. package/dist/cjs/components/builtin/Countdown/Countdown.js.map +1 -1
  10. package/dist/cjs/components/builtin/Countdown/register.js +1 -1
  11. package/dist/cjs/components/builtin/Countdown/register.js.map +1 -1
  12. package/dist/cjs/components/builtin/Embed/Embed.js.map +1 -1
  13. package/dist/cjs/components/builtin/Embed/register.js +1 -1
  14. package/dist/cjs/components/builtin/Embed/register.js.map +1 -1
  15. package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
  16. package/dist/cjs/components/builtin/Form/register.js +1 -1
  17. package/dist/cjs/components/builtin/Form/register.js.map +1 -1
  18. package/dist/cjs/components/builtin/Navigation/Navigation.js.map +1 -1
  19. package/dist/cjs/components/builtin/Navigation/register.js +1 -1
  20. package/dist/cjs/components/builtin/Navigation/register.js.map +1 -1
  21. package/dist/cjs/components/builtin/Root/Root.js.map +1 -1
  22. package/dist/cjs/components/builtin/Root/register.js +6 -5
  23. package/dist/cjs/components/builtin/Root/register.js.map +1 -1
  24. package/dist/cjs/components/builtin/SocialLinks/SocialLinks.js.map +1 -1
  25. package/dist/cjs/components/builtin/SocialLinks/register.js +1 -1
  26. package/dist/cjs/components/builtin/SocialLinks/register.js.map +1 -1
  27. package/dist/cjs/components/hooks/useGapXPropControllerData.js +34 -0
  28. package/dist/cjs/components/hooks/useGapXPropControllerData.js.map +1 -0
  29. package/dist/cjs/components/hooks/useGapYPropControllerData.js +34 -0
  30. package/dist/cjs/components/hooks/useGapYPropControllerData.js.map +1 -0
  31. package/dist/cjs/components/hooks/useTextAreaPropControllerData.js +34 -0
  32. package/dist/cjs/components/hooks/useTextAreaPropControllerData.js.map +1 -0
  33. package/dist/cjs/controls/control.js +2 -2
  34. package/dist/cjs/controls/control.js.map +1 -1
  35. package/dist/cjs/next/api-handler/handlers/manifest.js +1 -1
  36. package/dist/cjs/next/api-handler/handlers/proxy-preview-mode.js +1 -1
  37. package/dist/cjs/next/api-handler/handlers/proxy-preview-mode.js.map +1 -1
  38. package/dist/cjs/prop-controllers/deleted.js +33 -0
  39. package/dist/cjs/prop-controllers/deleted.js.map +1 -0
  40. package/dist/cjs/prop-controllers/descriptors.js +0 -103
  41. package/dist/cjs/prop-controllers/descriptors.js.map +1 -1
  42. package/dist/cjs/prop-controllers/index.js +3 -0
  43. package/dist/cjs/prop-controllers/index.js.map +1 -1
  44. package/dist/cjs/prop-controllers/introspection.js +0 -30
  45. package/dist/cjs/prop-controllers/introspection.js.map +1 -1
  46. package/dist/cjs/runtimes/react/components/PreviewProvider.js +4 -0
  47. package/dist/cjs/runtimes/react/components/PreviewProvider.js.map +1 -1
  48. package/dist/cjs/runtimes/react/controls.js +33 -0
  49. package/dist/cjs/runtimes/react/controls.js.map +1 -1
  50. package/dist/cjs/state/react-builder-preview.js +95 -38
  51. package/dist/cjs/state/react-builder-preview.js.map +1 -1
  52. package/dist/esm/builder/serialization/control-serialization.js +13 -10
  53. package/dist/esm/builder/serialization/control-serialization.js.map +1 -1
  54. package/dist/esm/components/builtin/Box/Box.js.map +1 -1
  55. package/dist/esm/components/builtin/Box/register.js +4 -2
  56. package/dist/esm/components/builtin/Box/register.js.map +1 -1
  57. package/dist/esm/components/builtin/Carousel/Carousel.js.map +1 -1
  58. package/dist/esm/components/builtin/Carousel/register.js +9 -2
  59. package/dist/esm/components/builtin/Carousel/register.js.map +1 -1
  60. package/dist/esm/components/builtin/Countdown/Countdown.js.map +1 -1
  61. package/dist/esm/components/builtin/Countdown/register.js +2 -1
  62. package/dist/esm/components/builtin/Countdown/register.js.map +1 -1
  63. package/dist/esm/components/builtin/Embed/Embed.js.map +1 -1
  64. package/dist/esm/components/builtin/Embed/register.js +2 -2
  65. package/dist/esm/components/builtin/Embed/register.js.map +1 -1
  66. package/dist/esm/components/builtin/Form/Form.js.map +1 -1
  67. package/dist/esm/components/builtin/Form/register.js +2 -1
  68. package/dist/esm/components/builtin/Form/register.js.map +1 -1
  69. package/dist/esm/components/builtin/Navigation/Navigation.js.map +1 -1
  70. package/dist/esm/components/builtin/Navigation/register.js +3 -2
  71. package/dist/esm/components/builtin/Navigation/register.js.map +1 -1
  72. package/dist/esm/components/builtin/Root/Root.js.map +1 -1
  73. package/dist/esm/components/builtin/Root/register.js +3 -2
  74. package/dist/esm/components/builtin/Root/register.js.map +1 -1
  75. package/dist/esm/components/builtin/SocialLinks/SocialLinks.js.map +1 -1
  76. package/dist/esm/components/builtin/SocialLinks/register.js +2 -2
  77. package/dist/esm/components/builtin/SocialLinks/register.js.map +1 -1
  78. package/dist/esm/components/hooks/useGapXPropControllerData.js +12 -0
  79. package/dist/esm/components/hooks/useGapXPropControllerData.js.map +1 -0
  80. package/dist/esm/components/hooks/useGapYPropControllerData.js +12 -0
  81. package/dist/esm/components/hooks/useGapYPropControllerData.js.map +1 -0
  82. package/dist/esm/components/hooks/useTextAreaPropControllerData.js +12 -0
  83. package/dist/esm/components/hooks/useTextAreaPropControllerData.js.map +1 -0
  84. package/dist/esm/controls/control.js +2 -2
  85. package/dist/esm/controls/control.js.map +1 -1
  86. package/dist/esm/next/api-handler/handlers/manifest.js +1 -1
  87. package/dist/esm/next/api-handler/handlers/proxy-preview-mode.js +1 -1
  88. package/dist/esm/next/api-handler/handlers/proxy-preview-mode.js.map +1 -1
  89. package/dist/esm/prop-controllers/deleted.js +9 -0
  90. package/dist/esm/prop-controllers/deleted.js.map +1 -0
  91. package/dist/esm/prop-controllers/descriptors.js +0 -91
  92. package/dist/esm/prop-controllers/descriptors.js.map +1 -1
  93. package/dist/esm/prop-controllers/index.js +2 -0
  94. package/dist/esm/prop-controllers/index.js.map +1 -1
  95. package/dist/esm/prop-controllers/introspection.js +0 -40
  96. package/dist/esm/prop-controllers/introspection.js.map +1 -1
  97. package/dist/esm/runtimes/react/components/PreviewProvider.js +4 -0
  98. package/dist/esm/runtimes/react/components/PreviewProvider.js.map +1 -1
  99. package/dist/esm/runtimes/react/controls.js +33 -0
  100. package/dist/esm/runtimes/react/controls.js.map +1 -1
  101. package/dist/esm/state/react-builder-preview.js +105 -45
  102. package/dist/esm/state/react-builder-preview.js.map +1 -1
  103. package/dist/types/api/graphql/documents/queries.d.ts +7 -7
  104. package/dist/types/api/graphql/documents/queries.d.ts.map +1 -1
  105. package/dist/types/builder/serialization/control-serialization.d.ts +24 -23
  106. package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -1
  107. package/dist/types/components/builtin/Box/Box.d.ts +15 -3
  108. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  109. package/dist/types/components/builtin/Box/register.d.ts.map +1 -1
  110. package/dist/types/components/builtin/Carousel/Carousel.d.ts +3 -2
  111. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  112. package/dist/types/components/builtin/Carousel/register.d.ts.map +1 -1
  113. package/dist/types/components/builtin/Countdown/Countdown.d.ts +3 -3
  114. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  115. package/dist/types/components/builtin/Countdown/register.d.ts.map +1 -1
  116. package/dist/types/components/builtin/Embed/Embed.d.ts +2 -2
  117. package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -1
  118. package/dist/types/components/builtin/Form/Form.d.ts +3 -3
  119. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  120. package/dist/types/components/builtin/Form/register.d.ts.map +1 -1
  121. package/dist/types/components/builtin/Navigation/Navigation.d.ts +3 -3
  122. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  123. package/dist/types/components/builtin/Navigation/register.d.ts.map +1 -1
  124. package/dist/types/components/builtin/Root/Root.d.ts +4 -3
  125. package/dist/types/components/builtin/Root/Root.d.ts.map +1 -1
  126. package/dist/types/components/builtin/Root/register.d.ts.map +1 -1
  127. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +3 -2
  128. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  129. package/dist/types/components/hooks/useGapXPropControllerData.d.ts +3 -0
  130. package/dist/types/components/hooks/useGapXPropControllerData.d.ts.map +1 -0
  131. package/dist/types/components/hooks/useGapYPropControllerData.d.ts +3 -0
  132. package/dist/types/components/hooks/useGapYPropControllerData.d.ts.map +1 -0
  133. package/dist/types/components/hooks/useTextAreaPropControllerData.d.ts +3 -0
  134. package/dist/types/components/hooks/useTextAreaPropControllerData.d.ts.map +1 -0
  135. package/dist/types/next/components/tests/page-gap-x-prop-controller.test.d.ts +3 -0
  136. package/dist/types/next/components/tests/page-gap-x-prop-controller.test.d.ts.map +1 -0
  137. package/dist/types/next/components/tests/page-gap-y-prop-controller.test.d.ts +3 -0
  138. package/dist/types/next/components/tests/page-gap-y-prop-controller.test.d.ts.map +1 -0
  139. package/dist/types/next/components/tests/page-text-area-prop-controller.test.d.ts +3 -0
  140. package/dist/types/next/components/tests/page-text-area-prop-controller.test.d.ts.map +1 -0
  141. package/dist/types/prop-controllers/deleted.d.ts +51 -0
  142. package/dist/types/prop-controllers/deleted.d.ts.map +1 -0
  143. package/dist/types/prop-controllers/descriptors.d.ts +9 -133
  144. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  145. package/dist/types/prop-controllers/index.d.ts +2 -1
  146. package/dist/types/prop-controllers/index.d.ts.map +1 -1
  147. package/dist/types/prop-controllers/introspection.d.ts.map +1 -1
  148. package/dist/types/runtimes/react/components/PreviewProvider.d.ts.map +1 -1
  149. package/dist/types/runtimes/react/controls.d.ts.map +1 -1
  150. package/dist/types/state/react-builder-preview.d.ts +11 -3
  151. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  152. package/package.json +2 -2
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  applyMiddleware,
3
3
  combineReducers,
4
- createStore
4
+ createStore,
5
+ compose
5
6
  } from "redux";
6
7
  import thunk from "redux-thunk";
7
8
  import deepEqual from "../utils/deepEqual";
@@ -21,19 +22,21 @@ import * as ReactPage from "./react-page";
21
22
  import {
22
23
  changeDocumentElementSize,
23
24
  changeElementBoxModels,
25
+ elementFromPointChange,
26
+ handleWheel,
27
+ handlePointerMove,
24
28
  messageBuilderPropController,
25
29
  registerBuilderComponent,
30
+ registerComponent,
26
31
  registerMeasurable,
27
32
  registerPropControllers,
28
33
  registerPropControllersHandle,
34
+ setBreakpoints,
35
+ setIsInBuilder,
29
36
  unregisterBuilderComponent,
37
+ unregisterComponent,
30
38
  unregisterMeasurable,
31
- unregisterPropControllers,
32
- setIsInBuilder,
33
- handleWheel,
34
- handlePointerMove,
35
- elementFromPointChange,
36
- setBreakpoints
39
+ unregisterPropControllers
37
40
  } from "./actions";
38
41
  import { ActionTypes } from "./actions";
39
42
  import { createPropController } from "../prop-controllers/instances";
@@ -289,15 +292,36 @@ function startPollingElementFromPoint() {
289
292
  }
290
293
  };
291
294
  }
292
- function initialize() {
293
- return (dispatch) => {
295
+ function registerBuilderComponents() {
296
+ return (dispatch, getState) => {
297
+ const state = getState();
298
+ const componentsMeta = getComponentsMeta(state);
299
+ componentsMeta.forEach((meta, type) => {
300
+ const propControllerDescriptors = getComponentPropControllerDescriptors(state, type);
301
+ if (propControllerDescriptors != null) {
302
+ dispatch(registerComponent(type, meta, propControllerDescriptors));
303
+ }
304
+ });
305
+ return () => {
306
+ componentsMeta.forEach((_, componentType) => {
307
+ dispatch(unregisterComponent(componentType));
308
+ });
309
+ };
310
+ };
311
+ }
312
+ function initialize(channel) {
313
+ return (dispatch, getState) => {
294
314
  const stopMeasuringElements = dispatch(startMeasuringElements());
295
315
  const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement());
296
316
  const stopHandlingFocusEvent = dispatch(startHandlingFocusEvents());
297
317
  const unlockDocumentScroll = dispatch(lockDocumentScroll());
298
318
  const stopHandlingPointerMoveEvent = dispatch(startHandlingPointerMoveEvent());
299
319
  const stopPollingElementFromPoint = dispatch(startPollingElementFromPoint());
320
+ const unregisterBuilderComponents = dispatch(registerBuilderComponents());
321
+ const breakpoints = ReactPage.getBreakpoints(getState());
322
+ dispatch(setBreakpoints(breakpoints));
300
323
  dispatch(setIsInBuilder(true));
324
+ channel.dispatchBuffered();
301
325
  return () => {
302
326
  stopMeasuringElements();
303
327
  stopMeasuringDocumentElement();
@@ -305,6 +329,7 @@ function initialize() {
305
329
  unlockDocumentScroll();
306
330
  stopHandlingPointerMoveEvent();
307
331
  stopPollingElementFromPoint();
332
+ unregisterBuilderComponents();
308
333
  dispatch(setIsInBuilder(false));
309
334
  };
310
335
  };
@@ -333,32 +358,13 @@ function measureBoxModelsMiddleware() {
333
358
  };
334
359
  };
335
360
  }
336
- function messageChannelMiddleware(client) {
337
- return ({ dispatch, getState }) => (next) => {
361
+ function messageChannelMiddleware(client, channel) {
362
+ return ({ dispatch }) => (next) => {
363
+ if (typeof window === "undefined")
364
+ return () => {
365
+ };
338
366
  let cleanUp = () => {
339
367
  };
340
- if (typeof window === "undefined")
341
- return cleanUp;
342
- const messageChannel = new window.MessageChannel();
343
- window.parent.postMessage(messageChannel.port2, "*", [messageChannel.port2]);
344
- messageChannel.port1.onmessage = (event) => dispatch(event.data);
345
- const state = getState();
346
- const registeredComponentsMeta = getComponentsMeta(state);
347
- registeredComponentsMeta.forEach((componentMeta, componentType) => {
348
- const propControllerDescriptors = getComponentPropControllerDescriptors(
349
- state,
350
- componentType
351
- );
352
- if (propControllerDescriptors != null) {
353
- const [serializedControls, transferables] = serializeControls(propControllerDescriptors);
354
- messageChannel.port1.postMessage(
355
- registerBuilderComponent(componentType, componentMeta, serializedControls),
356
- transferables
357
- );
358
- }
359
- });
360
- const breakpoints = ReactPage.getBreakpoints(state);
361
- messageChannel.port1.postMessage(setBreakpoints(breakpoints));
362
368
  return (action) => {
363
369
  switch (action.type) {
364
370
  case ActionTypes.CHANGE_ELEMENT_BOX_MODELS:
@@ -370,19 +376,20 @@ function messageChannelMiddleware(client) {
370
376
  case ActionTypes.HANDLE_POINTER_MOVE:
371
377
  case ActionTypes.ELEMENT_FROM_POINT_CHANGE:
372
378
  case ActionTypes.SET_LOCALE:
373
- messageChannel.port1.postMessage(action);
379
+ case ActionTypes.SET_BREAKPOINTS:
380
+ channel.postMessage(action);
374
381
  break;
375
382
  case ActionTypes.REGISTER_COMPONENT: {
376
383
  const { type, meta, propControllerDescriptors } = action.payload;
377
384
  const [serializedControls, transferables] = serializeControls(propControllerDescriptors);
378
- messageChannel.port1.postMessage(
385
+ channel.postMessage(
379
386
  registerBuilderComponent(type, meta, serializedControls),
380
387
  transferables
381
388
  );
382
389
  break;
383
390
  }
384
391
  case ActionTypes.UNREGISTER_COMPONENT:
385
- messageChannel.port1.postMessage(unregisterBuilderComponent(action.payload.type));
392
+ channel.postMessage(unregisterBuilderComponent(action.payload.type));
386
393
  break;
387
394
  case ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP:
388
395
  window.document.documentElement.scrollTop = action.payload.scrollTop;
@@ -391,7 +398,7 @@ function messageChannelMiddleware(client) {
391
398
  window.document.documentElement.scrollTop += action.payload.scrollTopDelta;
392
399
  break;
393
400
  case ActionTypes.SET_BUILDER_EDIT_MODE:
394
- messageChannel.port1.postMessage(action);
401
+ channel.postMessage(action);
395
402
  window.getSelection()?.removeAllRanges();
396
403
  break;
397
404
  case ActionTypes.SET_LOCALIZED_RESOURCE_ID: {
@@ -399,7 +406,7 @@ function messageChannelMiddleware(client) {
399
406
  break;
400
407
  }
401
408
  case ActionTypes.INIT:
402
- cleanUp = dispatch(initialize());
409
+ cleanUp = dispatch(initialize(channel));
403
410
  break;
404
411
  case ActionTypes.CLEAN_UP:
405
412
  cleanUp();
@@ -479,6 +486,48 @@ function makeswiftApiClientSyncMiddleware(client) {
479
486
  };
480
487
  };
481
488
  }
489
+ class MessageChannel {
490
+ channel = null;
491
+ bufferedMessages = [];
492
+ postMessage(message, transferables) {
493
+ if (this.channel) {
494
+ this.channel.postMessage(message, transferables ?? []);
495
+ } else {
496
+ this.bufferedMessages.push([message, transferables]);
497
+ }
498
+ }
499
+ setup(onMessage) {
500
+ const channel = new window.MessageChannel();
501
+ channel.port1.onmessage = onMessage;
502
+ window.parent.postMessage(channel.port2, "*", [channel.port2]);
503
+ this.channel = channel.port1;
504
+ }
505
+ dispatchBuffered() {
506
+ console.assert(this.channel != null, "channel is not setup");
507
+ this.bufferedMessages.forEach(([message, transferables]) => {
508
+ this.channel?.postMessage(message, transferables ?? []);
509
+ });
510
+ this.bufferedMessages = [];
511
+ }
512
+ teardown() {
513
+ if (this.channel) {
514
+ this.channel.onmessage = null;
515
+ this.channel.close();
516
+ }
517
+ }
518
+ }
519
+ function setupMessageChannel(channel) {
520
+ return (dispatch) => {
521
+ channel.setup((event) => dispatch(event.data));
522
+ };
523
+ }
524
+ function withSetupTeardown(setup, teardown) {
525
+ return (next) => (reducer2, preloadedState) => ({
526
+ ...next(reducer2, preloadedState),
527
+ setup,
528
+ teardown
529
+ });
530
+ }
482
531
  function configureStore({
483
532
  rootElements,
484
533
  preloadedState,
@@ -489,17 +538,28 @@ function configureStore({
489
538
  documents: Documents.getInitialState({ rootElements }),
490
539
  isPreview: IsPreview.getInitialState(true)
491
540
  };
492
- return createStore(
541
+ const channel = new MessageChannel();
542
+ const store = createStore(
493
543
  reducer,
494
544
  initialState,
495
- applyMiddleware(
496
- thunk,
497
- measureBoxModelsMiddleware(),
498
- messageChannelMiddleware(client),
499
- propControllerHandlesMiddleware(),
500
- makeswiftApiClientSyncMiddleware(client)
545
+ compose(
546
+ withSetupTeardown(
547
+ () => {
548
+ const dispatch = store.dispatch;
549
+ dispatch(setupMessageChannel(channel));
550
+ },
551
+ () => channel.teardown()
552
+ ),
553
+ applyMiddleware(
554
+ thunk,
555
+ measureBoxModelsMiddleware(),
556
+ messageChannelMiddleware(client, channel),
557
+ propControllerHandlesMiddleware(),
558
+ makeswiftApiClientSyncMiddleware(client)
559
+ )
501
560
  )
502
561
  );
562
+ return store;
503
563
  }
504
564
  export {
505
565
  configureStore,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/state/react-builder-preview.ts"],"sourcesContent":["import {\n applyMiddleware,\n combineReducers,\n createStore,\n Dispatch as ReduxDispatch,\n Middleware,\n MiddlewareAPI,\n PreloadedState,\n Store as ReduxStore,\n} from 'redux'\nimport thunk, { ThunkAction, ThunkDispatch } from 'redux-thunk'\n\nimport deepEqual from '../utils/deepEqual'\n\nimport * as Documents from './modules/read-write-documents'\nimport * as ReactComponents from './modules/react-components'\nimport * as BoxModels from './modules/box-models'\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 IsPreview from './modules/is-preview'\nimport * as BuilderEditMode from './modules/builder-edit-mode'\nimport * as Pointer from './modules/pointer'\nimport * as ElementImperativeHandles from './modules/element-imperative-handles'\nimport * as Breakpoints from './modules/breakpoints'\nimport * as ReactPage from './react-page'\nimport {\n Action,\n changeDocumentElementSize,\n changeElementBoxModels,\n messageBuilderPropController,\n registerBuilderComponent,\n registerMeasurable,\n registerPropControllers,\n registerPropControllersHandle,\n unregisterBuilderComponent,\n unregisterMeasurable,\n unregisterPropControllers,\n setIsInBuilder,\n handleWheel,\n handlePointerMove,\n elementFromPointChange,\n setBreakpoints,\n} from './actions'\nimport { ActionTypes } from './actions'\nimport { createPropController } from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { serializeControls } from '../builder'\nimport { MakeswiftHostApiClient } from '../api/react'\nimport { ElementImperativeHandle } from '../runtimes/react/element-imperative-handle'\n\nexport type { Operation } from './modules/read-write-documents'\nexport type { BoxModelHandle } from './modules/box-models'\nexport { createBox, getBox, parse } from './modules/box-models'\n\nexport const reducer = combineReducers({\n documents: Documents.reducer,\n reactComponents: ReactComponents.reducer,\n boxModels: BoxModels.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n propControllerHandles: PropControllerHandles.reducer,\n isInBuilder: IsInBuilder.reducer,\n isPreview: IsPreview.reducer,\n builderEditMode: BuilderEditMode.reducer,\n pointer: Pointer.reducer,\n elementImperativeHandles: ElementImperativeHandles.reducer,\n breakpoints: Breakpoints.reducer,\n})\n\nexport type State = ReturnType<typeof reducer>\n\nfunction getBoxModelsStateSlice(state: State): BoxModels.State {\n return state.boxModels\n}\n\nfunction getMeasurables(state: State): Map<string, Map<string, BoxModels.Measurable>> {\n return BoxModels.getMeasurables(getBoxModelsStateSlice(state))\n}\n\nfunction getBoxModels(state: State): Map<string, Map<string, BoxModels.BoxModel>> {\n return BoxModels.getBoxModels(getBoxModelsStateSlice(state))\n}\n\nfunction getBoxModel(\n state: State,\n documentKey: string,\n elementKey: string,\n): BoxModels.BoxModel | null {\n return BoxModels.getBoxModel(getBoxModelsStateSlice(state), documentKey, elementKey)\n}\n\nfunction getComponentsMetaStateSlice(state: State): ComponentsMeta.State {\n return state.componentsMeta\n}\n\nfunction getComponentsMeta(state: State): Map<string, ComponentsMeta.ComponentMeta> {\n return ComponentsMeta.getComponentsMeta(getComponentsMetaStateSlice(state))\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nfunction 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\nfunction getPointer(state: State): Pointer.Point | null {\n return Pointer.getPointer(state.pointer)\n}\n\nfunction getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return ElementImperativeHandles.getElementImperativeHandles(state.elementImperativeHandles)\n}\n\nfunction getElementImperativeHandlesContainingElement(\n state: State,\n element: Element,\n): Map<string, Map<string, ElementImperativeHandle>> {\n const elementImperativeHandles = getElementImperativeHandles(state)\n const filteredElementImperativeHandles = new Map<string, Map<string, ElementImperativeHandle>>()\n\n for (const [documentKey, byElementKey] of elementImperativeHandles) {\n const filteredByElementKey = new Map<string, ElementImperativeHandle>()\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n const handleElement = elementImperativeHandle.getDomNode()\n\n if (handleElement?.contains(element)) {\n filteredByElementKey.set(elementKey, elementImperativeHandle)\n }\n }\n\n if (filteredByElementKey.size > 0) {\n filteredElementImperativeHandles.set(documentKey, filteredByElementKey)\n }\n }\n\n return filteredElementImperativeHandles\n}\n\nfunction measureElements(): ThunkAction<void, State, unknown, Action> {\n return (dispatch, getState) => {\n const measurables = getMeasurables(getState())\n const currentBoxModels = getBoxModels(getState())\n const measuredBoxModels = new Map<string, Map<string, BoxModels.BoxModel>>()\n\n measurables.forEach((documentMeasurables, documentKey) => {\n const measuredDocumentBoxModels = new Map<string, BoxModels.BoxModel>()\n\n documentMeasurables.forEach((measurable, elementKey) => {\n const boxModel = BoxModels.measure(measurable)\n\n if (boxModel != null) measuredDocumentBoxModels.set(elementKey, boxModel)\n })\n\n if (measuredDocumentBoxModels.size > 0) {\n measuredBoxModels.set(documentKey, measuredDocumentBoxModels)\n }\n })\n\n const changedBoxModels = new Map<string, Map<string, BoxModels.BoxModel | null>>()\n\n currentBoxModels.forEach((currentDocumentBoxModels, documentKey) => {\n const changedDocumentBoxModels = new Map<string, BoxModels.BoxModel | null>()\n\n currentDocumentBoxModels.forEach((_boxModel, elementKey) => {\n if (!measuredBoxModels.get(documentKey)?.has(elementKey)) {\n changedDocumentBoxModels.set(elementKey, null)\n }\n\n if (changedDocumentBoxModels.size > 0) {\n changedBoxModels.set(documentKey, changedDocumentBoxModels)\n }\n })\n })\n\n measuredBoxModels.forEach((measuredDocumentBoxModels, documentKey) => {\n const changedDocumentBoxModels = new Map<string, BoxModels.BoxModel | null>()\n\n measuredDocumentBoxModels.forEach((measuredBoxModel, elementKey) => {\n const currentBoxModel = getBoxModel(getState(), documentKey, elementKey)\n\n if (currentBoxModel == null || !deepEqual(currentBoxModel, measuredBoxModel)) {\n changedDocumentBoxModels.set(elementKey, measuredBoxModel)\n }\n })\n\n if (changedDocumentBoxModels.size > 0) {\n changedBoxModels.set(documentKey, changedDocumentBoxModels)\n }\n })\n\n if (changedBoxModels.size > 0) dispatch(changeElementBoxModels(changedBoxModels))\n }\n}\n\nexport function startMeasuringElements(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n dispatch(measureElements())\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nexport type Size = {\n offsetWidth: number\n offsetHeight: number\n clientWidth: number\n clientHeight: number\n scrollWidth: number\n scrollHeight: number\n scrollTop: number\n scrollLeft: number\n}\n\nfunction getElementSize(element: HTMLElement): Size {\n return {\n offsetWidth: element.offsetWidth,\n offsetHeight: element.offsetHeight,\n clientWidth: element.clientWidth,\n clientHeight: element.clientHeight,\n scrollWidth: element.scrollWidth,\n scrollHeight: element.scrollHeight,\n scrollTop: element.scrollTop,\n scrollLeft: element.scrollLeft,\n }\n}\n\nfunction lockDocumentScroll(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const lastDocumentOverflow = window.document.documentElement.style.overflow\n window.document.documentElement.style.overflow = 'hidden'\n\n window.document.documentElement.addEventListener('wheel', handleWheelEvent)\n\n return () => {\n window.document.documentElement.style.overflow = lastDocumentOverflow\n window.document.documentElement.removeEventListener('wheel', handleWheelEvent)\n }\n\n function handleWheelEvent({ deltaX, deltaY }: WheelEvent) {\n dispatch(handleWheel({ deltaX, deltaY }))\n }\n }\n}\n\nfunction startHandlingPointerMoveEvent(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n window.document.documentElement.addEventListener('pointermove', handlePointerMoveEvent)\n\n return () => {\n window.document.documentElement.removeEventListener('pointermove', handlePointerMoveEvent)\n }\n\n function handlePointerMoveEvent({ clientX, clientY }: PointerEvent) {\n dispatch(handlePointerMove({ clientX, clientY }))\n }\n }\n}\n\nfunction startHandlingFocusEvents(): ThunkAction<() => void, State, unknown, Action> {\n return (_dispatch, getState) => {\n window.addEventListener('focusin', handleFocusIn)\n window.addEventListener('focusout', handleFocusOut)\n\n return () => {\n window.removeEventListener('focusin', handleFocusIn)\n window.removeEventListener('focusout', handleFocusOut)\n }\n\n function handleFocusIn(event: FocusEvent) {\n if (ReactPage.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT) {\n return\n }\n\n if (!(event.target instanceof window.HTMLElement) || !event.target.isContentEditable) {\n window.parent.focus()\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (ReactPage.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT) {\n return\n }\n\n if (\n !(event.relatedTarget instanceof window.HTMLElement) ||\n !event.relatedTarget.isContentEditable\n ) {\n window.parent.focus()\n }\n }\n }\n}\n\nfunction startMeasuringDocumentElement(): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n let lastSize: Size\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n const nextSize = getElementSize(window.document.documentElement)\n\n if (!deepEqual(lastSize, nextSize)) {\n lastSize = nextSize\n\n dispatch(changeDocumentElementSize(nextSize))\n }\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nfunction elementKeysFromElementFromPoint(\n elementFromPoint: Element | null,\n): ThunkAction<{ documentKey: string; elementKey: string } | null, State, unknown, Action> {\n return (_dispatch, getState) => {\n if (elementFromPoint == null) return null\n\n const elementImperativeHandles = getElementImperativeHandlesContainingElement(\n getState(),\n elementFromPoint,\n )\n const acendingDepthDocumentKeys = ReactPage.getDocumentKeysSortedByDepth(getState())\n const descendingDepthDocumentKeys = acendingDepthDocumentKeys.slice().reverse()\n\n let currentElement: Element | null = elementFromPoint\n let keys = null\n\n while (currentElement != null) {\n for (const documentKey of descendingDepthDocumentKeys) {\n const byElementKey = elementImperativeHandles.get(documentKey)\n\n if (byElementKey == null) continue\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n if (elementImperativeHandle.getDomNode() === currentElement) {\n return { documentKey, elementKey }\n }\n }\n }\n\n currentElement = currentElement.parentElement\n }\n\n return keys\n }\n}\n\nfunction startPollingElementFromPoint(): ThunkAction<() => void, State, unknown, Action> {\n return (dispatch, getState) => {\n let lastElementFromPoint: Element | null = null\n let animationFrameRequestId = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameRequestId)\n }\n\n function handleAnimationFrameRequest() {\n const pointer = getPointer(getState())\n const elementFromPoint =\n pointer == null ? null : document.elementFromPoint(pointer.x, pointer.y)\n\n if (elementFromPoint !== lastElementFromPoint) {\n lastElementFromPoint = elementFromPoint\n\n const keys = dispatch(elementKeysFromElementFromPoint(elementFromPoint))\n\n dispatch(elementFromPointChange(keys))\n }\n\n animationFrameRequestId = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nexport function initialize(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const stopMeasuringElements = dispatch(startMeasuringElements())\n const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement())\n const stopHandlingFocusEvent = dispatch(startHandlingFocusEvents())\n const unlockDocumentScroll = dispatch(lockDocumentScroll())\n const stopHandlingPointerMoveEvent = dispatch(startHandlingPointerMoveEvent())\n const stopPollingElementFromPoint = dispatch(startPollingElementFromPoint())\n dispatch(setIsInBuilder(true))\n\n return () => {\n stopMeasuringElements()\n stopMeasuringDocumentElement()\n stopHandlingFocusEvent()\n unlockDocumentScroll()\n stopHandlingPointerMoveEvent()\n stopPollingElementFromPoint()\n dispatch(setIsInBuilder(false))\n }\n }\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction measureBoxModelsMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch }: MiddlewareAPI<Dispatch>) =>\n (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE: {\n if (BoxModels.isMeasurable(action.payload.componentHandle)) {\n dispatch(\n registerMeasurable(\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n }\n\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE:\n dispatch(unregisterMeasurable(action.payload.documentKey, action.payload.elementKey))\n break\n }\n\n return next(action)\n }\n }\n}\n\nexport function messageChannelMiddleware(\n client: MakeswiftHostApiClient,\n): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n let cleanUp = () => {}\n\n if (typeof window === 'undefined') return cleanUp\n\n const messageChannel = new window.MessageChannel()\n\n window.parent.postMessage(messageChannel.port2, '*', [messageChannel.port2])\n\n messageChannel.port1.onmessage = (event: MessageEvent<Action>) => dispatch(event.data)\n\n const state = getState()\n const registeredComponentsMeta = getComponentsMeta(state)\n\n registeredComponentsMeta.forEach((componentMeta, componentType) => {\n const propControllerDescriptors = getComponentPropControllerDescriptors(\n state,\n componentType,\n )\n\n if (propControllerDescriptors != null) {\n const [serializedControls, transferables] = serializeControls(propControllerDescriptors)\n\n messageChannel.port1.postMessage(\n registerBuilderComponent(componentType, componentMeta, serializedControls),\n transferables,\n )\n }\n })\n\n const breakpoints = ReactPage.getBreakpoints(state)\n messageChannel.port1.postMessage(setBreakpoints(breakpoints))\n\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.CHANGE_ELEMENT_BOX_MODELS:\n case ActionTypes.MOUNT_COMPONENT:\n case ActionTypes.UNMOUNT_COMPONENT:\n case ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:\n case ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:\n case ActionTypes.HANDLE_WHEEL:\n case ActionTypes.HANDLE_POINTER_MOVE:\n case ActionTypes.ELEMENT_FROM_POINT_CHANGE:\n case ActionTypes.SET_LOCALE:\n messageChannel.port1.postMessage(action)\n break\n\n case ActionTypes.REGISTER_COMPONENT: {\n const { type, meta, propControllerDescriptors } = action.payload\n const [serializedControls, transferables] = serializeControls(propControllerDescriptors)\n\n messageChannel.port1.postMessage(\n registerBuilderComponent(type, meta, serializedControls),\n transferables,\n )\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT:\n messageChannel.port1.postMessage(unregisterBuilderComponent(action.payload.type))\n break\n\n case ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP:\n window.document.documentElement.scrollTop = action.payload.scrollTop\n break\n\n case ActionTypes.SCROLL_DOCUMENT_ELEMENT:\n window.document.documentElement.scrollTop += action.payload.scrollTopDelta\n break\n\n case ActionTypes.SET_BUILDER_EDIT_MODE:\n messageChannel.port1.postMessage(action)\n window.getSelection()?.removeAllRanges()\n break\n\n case ActionTypes.SET_LOCALIZED_RESOURCE_ID: {\n client.setLocalizedResourceId(action.payload)\n break\n }\n\n case ActionTypes.INIT:\n cleanUp = dispatch(initialize())\n break\n\n case ActionTypes.CLEAN_UP:\n cleanUp()\n break\n }\n\n return next(action)\n }\n }\n}\n\nfunction createAndRegisterPropControllers(\n documentKey: string,\n elementKey: string,\n): ThunkAction<Record<string, PropController> | null, State, unknown, Action> {\n return (dispatch, getState) => {\n const descriptors = ReactPage.getElementPropControllerDescriptors(\n getState(),\n documentKey,\n elementKey,\n )\n\n if (descriptors == null) return null\n\n const propControllers = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {\n const propController = createPropController(descriptor, message =>\n dispatch(messageBuilderPropController(documentKey, elementKey, propName, message)),\n ) as PropController\n\n return { ...acc, [propName]: propController }\n }, {} as Record<string, PropController>)\n\n dispatch(registerPropControllers(documentKey, elementKey, propControllers))\n\n return propControllers\n }\n}\n\nexport function propControllerHandlesMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey, componentHandle } = action.payload\n const element = ReactPage.getElement(getState(), documentKey, elementKey)\n const propControllers = dispatch(\n createAndRegisterPropControllers(documentKey, elementKey),\n )\n\n if (\n element != null &&\n !ReactPage.isElementReference(element) &&\n PropControllerHandles.isPropControllersHandle(componentHandle)\n ) {\n dispatch(registerPropControllersHandle(documentKey, elementKey, componentHandle))\n componentHandle.setPropControllers(propControllers)\n }\n\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey } = action.payload\n const handle = PropControllerHandles.getPropControllersHandle(\n getPropControllerHandlesStateSlice(getState()),\n documentKey,\n elementKey,\n )\n\n handle?.setPropControllers(null)\n\n dispatch(unregisterPropControllers(documentKey, elementKey))\n\n break\n }\n\n case ActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {\n const propController = PropControllerHandles.getPropController(\n getPropControllerHandlesStateSlice(getState()),\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.propName,\n )\n\n if (propController) propController.recv(action.payload.message)\n }\n }\n\n return next(action)\n }\n }\n}\n\nfunction makeswiftApiClientSyncMiddleware(\n client: MakeswiftHostApiClient,\n): Middleware<Dispatch, State, Dispatch> {\n return () => (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n client.makeswiftApiClient.dispatch(action)\n\n return next(action)\n }\n }\n}\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n rootElements,\n preloadedState,\n client,\n}: {\n rootElements?: Map<string, Documents.Element>\n preloadedState?: PreloadedState<State>\n client: MakeswiftHostApiClient\n}): Store {\n const initialState: PreloadedState<State> = {\n ...preloadedState,\n documents: Documents.getInitialState({ rootElements }),\n isPreview: IsPreview.getInitialState(true),\n }\n\n return createStore(\n reducer,\n initialState,\n applyMiddleware(\n thunk,\n measureBoxModelsMiddleware(),\n messageChannelMiddleware(client),\n propControllerHandlesMiddleware(),\n makeswiftApiClientSyncMiddleware(client),\n ),\n )\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/state/react-builder-preview.ts"],"sourcesContent":["import {\n applyMiddleware,\n combineReducers,\n createStore,\n compose,\n Dispatch as ReduxDispatch,\n Middleware,\n MiddlewareAPI,\n PreloadedState,\n Store as ReduxStore,\n StoreEnhancer,\n} from 'redux'\nimport thunk, { ThunkAction, ThunkDispatch } from 'redux-thunk'\n\nimport deepEqual from '../utils/deepEqual'\n\nimport * as Documents from './modules/read-write-documents'\nimport * as ReactComponents from './modules/react-components'\nimport * as BoxModels from './modules/box-models'\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 IsPreview from './modules/is-preview'\nimport * as BuilderEditMode from './modules/builder-edit-mode'\nimport * as Pointer from './modules/pointer'\nimport * as ElementImperativeHandles from './modules/element-imperative-handles'\nimport * as Breakpoints from './modules/breakpoints'\nimport * as ReactPage from './react-page'\nimport {\n Action,\n changeDocumentElementSize,\n changeElementBoxModels,\n elementFromPointChange,\n handleWheel,\n handlePointerMove,\n messageBuilderPropController,\n registerBuilderComponent,\n registerComponent,\n registerMeasurable,\n registerPropControllers,\n registerPropControllersHandle,\n setBreakpoints,\n setIsInBuilder,\n unregisterBuilderComponent,\n unregisterComponent,\n unregisterMeasurable,\n unregisterPropControllers,\n} from './actions'\nimport { ActionTypes } from './actions'\nimport { createPropController } from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { serializeControls } from '../builder'\nimport { MakeswiftHostApiClient } from '../api/react'\nimport { ElementImperativeHandle } from '../runtimes/react/element-imperative-handle'\n\nexport type { Operation } from './modules/read-write-documents'\nexport type { BoxModelHandle } from './modules/box-models'\nexport { createBox, getBox, parse } from './modules/box-models'\n\nexport const reducer = combineReducers({\n documents: Documents.reducer,\n reactComponents: ReactComponents.reducer,\n boxModels: BoxModels.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n propControllerHandles: PropControllerHandles.reducer,\n isInBuilder: IsInBuilder.reducer,\n isPreview: IsPreview.reducer,\n builderEditMode: BuilderEditMode.reducer,\n pointer: Pointer.reducer,\n elementImperativeHandles: ElementImperativeHandles.reducer,\n breakpoints: Breakpoints.reducer,\n})\n\nexport type State = ReturnType<typeof reducer>\n\nfunction getBoxModelsStateSlice(state: State): BoxModels.State {\n return state.boxModels\n}\n\nfunction getMeasurables(state: State): Map<string, Map<string, BoxModels.Measurable>> {\n return BoxModels.getMeasurables(getBoxModelsStateSlice(state))\n}\n\nfunction getBoxModels(state: State): Map<string, Map<string, BoxModels.BoxModel>> {\n return BoxModels.getBoxModels(getBoxModelsStateSlice(state))\n}\n\nfunction getBoxModel(\n state: State,\n documentKey: string,\n elementKey: string,\n): BoxModels.BoxModel | null {\n return BoxModels.getBoxModel(getBoxModelsStateSlice(state), documentKey, elementKey)\n}\n\nfunction getComponentsMetaStateSlice(state: State): ComponentsMeta.State {\n return state.componentsMeta\n}\n\nfunction getComponentsMeta(state: State): Map<string, ComponentsMeta.ComponentMeta> {\n return ComponentsMeta.getComponentsMeta(getComponentsMetaStateSlice(state))\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nfunction 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\nfunction getPointer(state: State): Pointer.Point | null {\n return Pointer.getPointer(state.pointer)\n}\n\nfunction getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return ElementImperativeHandles.getElementImperativeHandles(state.elementImperativeHandles)\n}\n\nfunction getElementImperativeHandlesContainingElement(\n state: State,\n element: Element,\n): Map<string, Map<string, ElementImperativeHandle>> {\n const elementImperativeHandles = getElementImperativeHandles(state)\n const filteredElementImperativeHandles = new Map<string, Map<string, ElementImperativeHandle>>()\n\n for (const [documentKey, byElementKey] of elementImperativeHandles) {\n const filteredByElementKey = new Map<string, ElementImperativeHandle>()\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n const handleElement = elementImperativeHandle.getDomNode()\n\n if (handleElement?.contains(element)) {\n filteredByElementKey.set(elementKey, elementImperativeHandle)\n }\n }\n\n if (filteredByElementKey.size > 0) {\n filteredElementImperativeHandles.set(documentKey, filteredByElementKey)\n }\n }\n\n return filteredElementImperativeHandles\n}\n\nfunction measureElements(): ThunkAction<void, State, unknown, Action> {\n return (dispatch, getState) => {\n const measurables = getMeasurables(getState())\n const currentBoxModels = getBoxModels(getState())\n const measuredBoxModels = new Map<string, Map<string, BoxModels.BoxModel>>()\n\n measurables.forEach((documentMeasurables, documentKey) => {\n const measuredDocumentBoxModels = new Map<string, BoxModels.BoxModel>()\n\n documentMeasurables.forEach((measurable, elementKey) => {\n const boxModel = BoxModels.measure(measurable)\n\n if (boxModel != null) measuredDocumentBoxModels.set(elementKey, boxModel)\n })\n\n if (measuredDocumentBoxModels.size > 0) {\n measuredBoxModels.set(documentKey, measuredDocumentBoxModels)\n }\n })\n\n const changedBoxModels = new Map<string, Map<string, BoxModels.BoxModel | null>>()\n\n currentBoxModels.forEach((currentDocumentBoxModels, documentKey) => {\n const changedDocumentBoxModels = new Map<string, BoxModels.BoxModel | null>()\n\n currentDocumentBoxModels.forEach((_boxModel, elementKey) => {\n if (!measuredBoxModels.get(documentKey)?.has(elementKey)) {\n changedDocumentBoxModels.set(elementKey, null)\n }\n\n if (changedDocumentBoxModels.size > 0) {\n changedBoxModels.set(documentKey, changedDocumentBoxModels)\n }\n })\n })\n\n measuredBoxModels.forEach((measuredDocumentBoxModels, documentKey) => {\n const changedDocumentBoxModels = new Map<string, BoxModels.BoxModel | null>()\n\n measuredDocumentBoxModels.forEach((measuredBoxModel, elementKey) => {\n const currentBoxModel = getBoxModel(getState(), documentKey, elementKey)\n\n if (currentBoxModel == null || !deepEqual(currentBoxModel, measuredBoxModel)) {\n changedDocumentBoxModels.set(elementKey, measuredBoxModel)\n }\n })\n\n if (changedDocumentBoxModels.size > 0) {\n changedBoxModels.set(documentKey, changedDocumentBoxModels)\n }\n })\n\n if (changedBoxModels.size > 0) dispatch(changeElementBoxModels(changedBoxModels))\n }\n}\n\nexport function startMeasuringElements(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n dispatch(measureElements())\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nexport type Size = {\n offsetWidth: number\n offsetHeight: number\n clientWidth: number\n clientHeight: number\n scrollWidth: number\n scrollHeight: number\n scrollTop: number\n scrollLeft: number\n}\n\nfunction getElementSize(element: HTMLElement): Size {\n return {\n offsetWidth: element.offsetWidth,\n offsetHeight: element.offsetHeight,\n clientWidth: element.clientWidth,\n clientHeight: element.clientHeight,\n scrollWidth: element.scrollWidth,\n scrollHeight: element.scrollHeight,\n scrollTop: element.scrollTop,\n scrollLeft: element.scrollLeft,\n }\n}\n\nfunction lockDocumentScroll(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const lastDocumentOverflow = window.document.documentElement.style.overflow\n window.document.documentElement.style.overflow = 'hidden'\n\n window.document.documentElement.addEventListener('wheel', handleWheelEvent)\n\n return () => {\n window.document.documentElement.style.overflow = lastDocumentOverflow\n window.document.documentElement.removeEventListener('wheel', handleWheelEvent)\n }\n\n function handleWheelEvent({ deltaX, deltaY }: WheelEvent) {\n dispatch(handleWheel({ deltaX, deltaY }))\n }\n }\n}\n\nfunction startHandlingPointerMoveEvent(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n window.document.documentElement.addEventListener('pointermove', handlePointerMoveEvent)\n\n return () => {\n window.document.documentElement.removeEventListener('pointermove', handlePointerMoveEvent)\n }\n\n function handlePointerMoveEvent({ clientX, clientY }: PointerEvent) {\n dispatch(handlePointerMove({ clientX, clientY }))\n }\n }\n}\n\nfunction startHandlingFocusEvents(): ThunkAction<() => void, State, unknown, Action> {\n return (_dispatch, getState) => {\n window.addEventListener('focusin', handleFocusIn)\n window.addEventListener('focusout', handleFocusOut)\n\n return () => {\n window.removeEventListener('focusin', handleFocusIn)\n window.removeEventListener('focusout', handleFocusOut)\n }\n\n function handleFocusIn(event: FocusEvent) {\n if (ReactPage.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT) {\n return\n }\n\n if (!(event.target instanceof window.HTMLElement) || !event.target.isContentEditable) {\n window.parent.focus()\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (ReactPage.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT) {\n return\n }\n\n if (\n !(event.relatedTarget instanceof window.HTMLElement) ||\n !event.relatedTarget.isContentEditable\n ) {\n window.parent.focus()\n }\n }\n }\n}\n\nfunction startMeasuringDocumentElement(): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n let lastSize: Size\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n const nextSize = getElementSize(window.document.documentElement)\n\n if (!deepEqual(lastSize, nextSize)) {\n lastSize = nextSize\n\n dispatch(changeDocumentElementSize(nextSize))\n }\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nfunction elementKeysFromElementFromPoint(\n elementFromPoint: Element | null,\n): ThunkAction<{ documentKey: string; elementKey: string } | null, State, unknown, Action> {\n return (_dispatch, getState) => {\n if (elementFromPoint == null) return null\n\n const elementImperativeHandles = getElementImperativeHandlesContainingElement(\n getState(),\n elementFromPoint,\n )\n const acendingDepthDocumentKeys = ReactPage.getDocumentKeysSortedByDepth(getState())\n const descendingDepthDocumentKeys = acendingDepthDocumentKeys.slice().reverse()\n\n let currentElement: Element | null = elementFromPoint\n let keys = null\n\n while (currentElement != null) {\n for (const documentKey of descendingDepthDocumentKeys) {\n const byElementKey = elementImperativeHandles.get(documentKey)\n\n if (byElementKey == null) continue\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n if (elementImperativeHandle.getDomNode() === currentElement) {\n return { documentKey, elementKey }\n }\n }\n }\n\n currentElement = currentElement.parentElement\n }\n\n return keys\n }\n}\n\nfunction startPollingElementFromPoint(): ThunkAction<() => void, State, unknown, Action> {\n return (dispatch, getState) => {\n let lastElementFromPoint: Element | null = null\n let animationFrameRequestId = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameRequestId)\n }\n\n function handleAnimationFrameRequest() {\n const pointer = getPointer(getState())\n const elementFromPoint =\n pointer == null ? null : document.elementFromPoint(pointer.x, pointer.y)\n\n if (elementFromPoint !== lastElementFromPoint) {\n lastElementFromPoint = elementFromPoint\n\n const keys = dispatch(elementKeysFromElementFromPoint(elementFromPoint))\n\n dispatch(elementFromPointChange(keys))\n }\n\n animationFrameRequestId = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nfunction registerBuilderComponents(): ThunkAction<() => void, State, unknown, Action> {\n return (dispatch, getState) => {\n const state = getState()\n const componentsMeta = getComponentsMeta(state)\n\n componentsMeta.forEach((meta, type) => {\n const propControllerDescriptors = getComponentPropControllerDescriptors(state, type)\n if (propControllerDescriptors != null) {\n dispatch(registerComponent(type, meta, propControllerDescriptors))\n }\n })\n\n return () => {\n componentsMeta.forEach((_, componentType) => {\n dispatch(unregisterComponent(componentType))\n })\n }\n }\n}\n\nexport interface IMessageChannel {\n postMessage(message: any, transferables?: Transferable[]): void\n dispatchBuffered(): void\n}\n\nexport function initialize(\n channel: IMessageChannel,\n): ThunkAction<() => void, State, unknown, Action> {\n return (dispatch, getState) => {\n const stopMeasuringElements = dispatch(startMeasuringElements())\n const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement())\n const stopHandlingFocusEvent = dispatch(startHandlingFocusEvents())\n const unlockDocumentScroll = dispatch(lockDocumentScroll())\n const stopHandlingPointerMoveEvent = dispatch(startHandlingPointerMoveEvent())\n const stopPollingElementFromPoint = dispatch(startPollingElementFromPoint())\n const unregisterBuilderComponents = dispatch(registerBuilderComponents())\n\n const breakpoints = ReactPage.getBreakpoints(getState())\n dispatch(setBreakpoints(breakpoints))\n dispatch(setIsInBuilder(true))\n channel.dispatchBuffered()\n\n return () => {\n stopMeasuringElements()\n stopMeasuringDocumentElement()\n stopHandlingFocusEvent()\n unlockDocumentScroll()\n stopHandlingPointerMoveEvent()\n stopPollingElementFromPoint()\n unregisterBuilderComponents()\n dispatch(setIsInBuilder(false))\n }\n }\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction measureBoxModelsMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch }: MiddlewareAPI<Dispatch>) =>\n (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE: {\n if (BoxModels.isMeasurable(action.payload.componentHandle)) {\n dispatch(\n registerMeasurable(\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n }\n\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE:\n dispatch(unregisterMeasurable(action.payload.documentKey, action.payload.elementKey))\n break\n }\n\n return next(action)\n }\n }\n}\n\nexport function messageChannelMiddleware(\n client: MakeswiftHostApiClient,\n channel: IMessageChannel,\n): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n if (typeof window === 'undefined') return () => {}\n\n let cleanUp = () => {}\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.CHANGE_ELEMENT_BOX_MODELS:\n case ActionTypes.MOUNT_COMPONENT:\n case ActionTypes.UNMOUNT_COMPONENT:\n case ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:\n case ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:\n case ActionTypes.HANDLE_WHEEL:\n case ActionTypes.HANDLE_POINTER_MOVE:\n case ActionTypes.ELEMENT_FROM_POINT_CHANGE:\n case ActionTypes.SET_LOCALE:\n case ActionTypes.SET_BREAKPOINTS:\n channel.postMessage(action)\n break\n\n case ActionTypes.REGISTER_COMPONENT: {\n const { type, meta, propControllerDescriptors } = action.payload\n const [serializedControls, transferables] = serializeControls(propControllerDescriptors)\n\n channel.postMessage(\n registerBuilderComponent(type, meta, serializedControls),\n transferables,\n )\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT:\n channel.postMessage(unregisterBuilderComponent(action.payload.type))\n break\n\n case ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP:\n window.document.documentElement.scrollTop = action.payload.scrollTop\n break\n\n case ActionTypes.SCROLL_DOCUMENT_ELEMENT:\n window.document.documentElement.scrollTop += action.payload.scrollTopDelta\n break\n\n case ActionTypes.SET_BUILDER_EDIT_MODE:\n channel.postMessage(action)\n window.getSelection()?.removeAllRanges()\n break\n\n case ActionTypes.SET_LOCALIZED_RESOURCE_ID: {\n client.setLocalizedResourceId(action.payload)\n break\n }\n\n case ActionTypes.INIT:\n // dispatched by the parent window after establishing the connection\n cleanUp = dispatch(initialize(channel))\n break\n\n case ActionTypes.CLEAN_UP:\n // dispatched by the parent window on disconnect\n cleanUp()\n break\n }\n\n return next(action)\n }\n }\n}\n\nfunction createAndRegisterPropControllers(\n documentKey: string,\n elementKey: string,\n): ThunkAction<Record<string, PropController> | null, State, unknown, Action> {\n return (dispatch, getState) => {\n const descriptors = ReactPage.getElementPropControllerDescriptors(\n getState(),\n documentKey,\n elementKey,\n )\n\n if (descriptors == null) return null\n\n const propControllers = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {\n const propController = createPropController(descriptor, message =>\n dispatch(messageBuilderPropController(documentKey, elementKey, propName, message)),\n ) as PropController\n\n return { ...acc, [propName]: propController }\n }, {} as Record<string, PropController>)\n\n dispatch(registerPropControllers(documentKey, elementKey, propControllers))\n\n return propControllers\n }\n}\n\nexport function propControllerHandlesMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey, componentHandle } = action.payload\n const element = ReactPage.getElement(getState(), documentKey, elementKey)\n const propControllers = dispatch(\n createAndRegisterPropControllers(documentKey, elementKey),\n )\n\n if (\n element != null &&\n !ReactPage.isElementReference(element) &&\n PropControllerHandles.isPropControllersHandle(componentHandle)\n ) {\n dispatch(registerPropControllersHandle(documentKey, elementKey, componentHandle))\n componentHandle.setPropControllers(propControllers)\n }\n\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey } = action.payload\n const handle = PropControllerHandles.getPropControllersHandle(\n getPropControllerHandlesStateSlice(getState()),\n documentKey,\n elementKey,\n )\n\n handle?.setPropControllers(null)\n\n dispatch(unregisterPropControllers(documentKey, elementKey))\n\n break\n }\n\n case ActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {\n const propController = PropControllerHandles.getPropController(\n getPropControllerHandlesStateSlice(getState()),\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.propName,\n )\n\n if (propController) propController.recv(action.payload.message)\n }\n }\n\n return next(action)\n }\n }\n}\n\nfunction makeswiftApiClientSyncMiddleware(\n client: MakeswiftHostApiClient,\n): Middleware<Dispatch, State, Dispatch> {\n return () => (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n client.makeswiftApiClient.dispatch(action)\n\n return next(action)\n }\n }\n}\n\nclass MessageChannel {\n private channel: MessagePort | null = null\n private bufferedMessages: [Action, Transferable[]?][] = []\n\n public postMessage(message: any, transferables?: Transferable[]) {\n if (this.channel) {\n this.channel.postMessage(message, transferables ?? [])\n } else {\n this.bufferedMessages.push([message, transferables])\n }\n }\n\n public setup(onMessage: (event: MessageEvent<Action>) => void) {\n const channel = new window.MessageChannel()\n channel.port1.onmessage = onMessage\n\n // connect channel to the parent window, see\n // https://developer.mozilla.org/en-US/docs/Web/API/Channel_Messaging_API\n window.parent.postMessage(channel.port2, '*', [channel.port2])\n\n this.channel = channel.port1\n }\n\n public dispatchBuffered() {\n console.assert(this.channel != null, 'channel is not setup')\n\n this.bufferedMessages.forEach(([message, transferables]) => {\n this.channel?.postMessage(message, transferables ?? [])\n })\n\n this.bufferedMessages = []\n }\n\n public teardown() {\n if (this.channel) {\n this.channel.onmessage = null\n this.channel.close()\n }\n }\n}\n\nfunction setupMessageChannel(channel: MessageChannel): ThunkAction<void, State, unknown, Action> {\n return dispatch => {\n channel.setup((event: MessageEvent<Action>) => dispatch(event.data))\n }\n}\n\ninterface SetupTeardownMixin {\n setup: () => void\n teardown: () => void\n}\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch } & SetupTeardownMixin\n\nfunction withSetupTeardown(\n setup: () => void,\n teardown: () => void,\n): StoreEnhancer<SetupTeardownMixin> {\n return next => (reducer, preloadedState?) => ({\n ...next(reducer, preloadedState),\n setup,\n teardown,\n })\n}\n\nexport function configureStore({\n rootElements,\n preloadedState,\n client,\n}: {\n rootElements?: Map<string, Documents.Element>\n preloadedState?: PreloadedState<State>\n client: MakeswiftHostApiClient\n}): Store {\n const initialState: PreloadedState<State> = {\n ...preloadedState,\n documents: Documents.getInitialState({ rootElements }),\n isPreview: IsPreview.getInitialState(true),\n }\n\n const channel = new MessageChannel()\n const store = createStore(\n reducer,\n initialState,\n compose(\n withSetupTeardown(\n () => {\n const dispatch = store.dispatch as Dispatch\n dispatch(setupMessageChannel(channel))\n },\n () => channel.teardown(),\n ),\n applyMiddleware(\n thunk,\n measureBoxModelsMiddleware(),\n messageChannelMiddleware(client, channel),\n propControllerHandlesMiddleware(),\n makeswiftApiClientSyncMiddleware(client),\n ),\n ),\n )\n\n return store\n}\n"],"mappings":"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","names":["reducer"]}
@@ -1,9 +1,9 @@
1
- export declare const IntrospectedResourcesQuery = "\n query IntrospectedResources($fileIds: [ID!]!, $tableIds: [ID!]!) {\n files(ids: $fileIds) {\n ...File\n }\n\n tables(ids: $tableIds) {\n ...Table\n }\n }\n\n \n fragment File on File {\n __typename\n id\n name\n publicUrl: publicUrlV2\n extension\n dimensions {\n width\n height\n }\n }\n\n \n fragment Table on Table {\n __typename\n id\n name\n columns {\n __typename\n id\n name\n\n ... on MultipleSelectTableColumn {\n options {\n id\n name\n }\n }\n\n ... on SingleSelectTableColumn {\n options {\n id\n name\n }\n }\n }\n }\n\n";
2
- export declare const SwatchQuery = "\n query Swatch($swatchId: ID!) {\n swatch(id: $swatchId) {\n ...Swatch\n }\n }\n\n \n fragment Swatch on Swatch {\n __typename\n id\n hue\n saturation\n lightness\n }\n\n";
3
- export declare const FileQuery = "\n query File($fileId: ID!) {\n file(id: $fileId) {\n ...File\n }\n }\n\n \n fragment File on File {\n __typename\n id\n name\n publicUrl: publicUrlV2\n extension\n dimensions {\n width\n height\n }\n }\n\n";
4
- export declare const TypographyQuery = "\n query Typography($typographyId: ID!) {\n typography(id: $typographyId) {\n ...Typography\n }\n }\n\n \n fragment Typography on Typography {\n __typename\n id\n name\n style {\n deviceId\n value {\n fontFamily\n fontSize {\n value\n unit\n }\n color {\n swatchId\n alpha\n }\n lineHeight\n letterSpacing\n fontWeight\n textAlign\n uppercase\n underline\n strikethrough\n italic\n }\n }\n }\n\n";
5
- export declare const TableQuery = "\n query Table($tableId: ID!) {\n table(id: $tableId) {\n ...Table\n }\n }\n\n \n fragment Table on Table {\n __typename\n id\n name\n columns {\n __typename\n id\n name\n\n ... on MultipleSelectTableColumn {\n options {\n id\n name\n }\n }\n\n ... on SingleSelectTableColumn {\n options {\n id\n name\n }\n }\n }\n }\n\n";
6
- export declare const TypographiesQuery = "\n query Typographies($typographyIds: [ID!]!) {\n typographies(ids: $typographyIds) {\n ...Typography\n }\n }\n\n \n fragment Typography on Typography {\n __typename\n id\n name\n style {\n deviceId\n value {\n fontFamily\n fontSize {\n value\n unit\n }\n color {\n swatchId\n alpha\n }\n lineHeight\n letterSpacing\n fontWeight\n textAlign\n uppercase\n underline\n strikethrough\n italic\n }\n }\n }\n\n";
7
- export declare const GlobalElementQuery = "\n query GlobalElement($globalElementId: ID!) {\n globalElement(id: $globalElementId) {\n ...GlobalElement\n }\n }\n\n \n fragment GlobalElement on GlobalElement {\n __typename\n id\n data\n }\n\n";
1
+ export declare const IntrospectedResourcesQuery: string;
2
+ export declare const SwatchQuery: string;
3
+ export declare const FileQuery: string;
4
+ export declare const TypographyQuery: string;
5
+ export declare const TableQuery: string;
6
+ export declare const TypographiesQuery: string;
7
+ export declare const GlobalElementQuery: string;
8
8
  export declare const CreateTableRecordMutation = "\n mutation CreateTableRecord($input: CreateTableRecordInput!) {\n createTableRecord(input: $input) {\n tableRecord {\n id\n }\n }\n }\n";
9
9
  //# sourceMappingURL=queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../../../src/api/graphql/documents/queries.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,0BAA0B,4sBAatC,CAAA;AAED,eAAO,MAAM,WAAW,+MAQvB,CAAA;AAED,eAAO,MAAM,SAAS,kQAQrB,CAAA;AAED,eAAO,MAAM,eAAe,6jBAQ3B,CAAA;AAED,eAAO,MAAM,UAAU,wcAQtB,CAAA;AAED,eAAO,MAAM,iBAAiB,ukBAQ7B,CAAA;AAED,eAAO,MAAM,kBAAkB,kOAQ9B,CAAA;AAED,eAAO,MAAM,yBAAyB,sKAQrC,CAAA"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../../../src/api/graphql/documents/queries.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,0BAA0B,QAatC,CAAA;AAED,eAAO,MAAM,WAAW,QAQvB,CAAA;AAED,eAAO,MAAM,SAAS,QAQrB,CAAA;AAED,eAAO,MAAM,eAAe,QAQ3B,CAAA;AAED,eAAO,MAAM,UAAU,QAQtB,CAAA;AAED,eAAO,MAAM,iBAAiB,QAQ7B,CAAA;AAED,eAAO,MAAM,kBAAkB,QAQ9B,CAAA;AAED,eAAO,MAAM,yBAAyB,sKAQrC,CAAA"}
@@ -1,6 +1,7 @@
1
- import { ResponsiveLengthOptions, ResponsiveLengthPropControllerData } from '@makeswift/prop-controllers';
1
+ import { GapData, GapXDescriptor, GapXPropControllerData, GapYDescriptor, GapYPropControllerData, ResponsiveLengthOptions, ResponsiveLengthPropControllerData } from '@makeswift/prop-controllers';
2
2
  import { ComboboxControlDefinition, ListControlDefinition, RichTextV2ControlDefinition, ShapeControlDefinition, StyleV2ControlDefinition } from '../../controls';
3
- import { Data, Device, Gap, GapXDescriptor as GapXControl, GapXValue as GapXControlValue, GapYDescriptor as GapYControl, GapYValue as GapYControlValue, ImageDescriptor as ImageControl, ImageValue as ImageControlValue, ListDescriptor as ListControl, ListOptions as ListControlConfig, ListValue as ListControlValue, ResponsiveNumberDescriptor as ResponsiveNumberControl, ResponsiveNumberValue as ResponsiveNumberControlValue, ResponsiveIconRadioGroupDescriptor as ResponsiveIconRadioGroupControl, ResponsiveIconRadioGroupValue as ResponsiveIconRadioGroupControlValue, ResponsiveSelectDescriptor as ResponsiveSelectControl, ResponsiveSelectValue as ResponsiveSelectControlValue, RichTextDescriptor as RichTextControl, RichTextValue as RichTextControlValue, ShapeDescriptor as ShapeControl, ShapeValue as ShapeControlValue, TextInputDescriptor as TextInputControl, TextInputValue as TextInputControlValue, TypeaheadDescriptor as TypeaheadControl, TypeaheadOptions as TypeaheadControlConfig, TypeaheadValue as TypeaheadControlValue, PanelDescriptorType as PanelControlType, PropControllerDescriptor as Control, Props as Controls } from '../../prop-controllers';
3
+ import { Data, Device, ImageDescriptor as ImageControl, ImageValue as ImageControlValue, ResponsiveNumberDescriptor as ResponsiveNumberControl, ResponsiveNumberValue as ResponsiveNumberControlValue, ResponsiveIconRadioGroupDescriptor as ResponsiveIconRadioGroupControl, ResponsiveIconRadioGroupValue as ResponsiveIconRadioGroupControlValue, ResponsiveSelectDescriptor as ResponsiveSelectControl, ResponsiveSelectValue as ResponsiveSelectControlValue, RichTextDescriptor as RichTextControl, RichTextValue as RichTextControlValue, TextInputDescriptor as TextInputControl, TextInputValue as TextInputControlValue, PanelDescriptorType as PanelControlType, PropControllerDescriptor as Control, Props as Controls } from '../../prop-controllers';
4
+ import { DELETED_PROP_CONTROLLER_TYPES, DeletedPropControllerDescriptor, ListDescriptor as ListControl, ListOptions as ListControlConfig, ListValue as ListControlValue, ShapeDescriptor as ShapeControl, ShapeValue as ShapeControlValue, TypeaheadDescriptor as TypeaheadControl, TypeaheadOptions as TypeaheadControlConfig, TypeaheadValue as TypeaheadControlValue } from '../../prop-controllers/deleted';
4
5
  import { IconRadioGroupOption, SelectLabelOrientation, SelectOption } from '../../prop-controllers/descriptors';
5
6
  import { Deserialize, Serialize } from './controls/types';
6
7
  import { DeserializedFunction, SerializedFunction } from './function-serialization';
@@ -12,7 +13,7 @@ type SerializedShapeControlConfig<T extends Record<string, SerializedPanelContro
12
13
  };
13
14
  };
14
15
  type SerializedShapeControl<_T extends Record<string, Data>, U extends Record<string, SerializedPanelControl>> = {
15
- type: typeof Controls.Types.Shape;
16
+ type: typeof DELETED_PROP_CONTROLLER_TYPES.Shape;
16
17
  options: SerializedShapeControlConfig<U>;
17
18
  };
18
19
  type DeserializedShapeControlConfig<T extends Record<string, DeserializedPanelControl>> = {
@@ -22,7 +23,7 @@ type DeserializedShapeControlConfig<T extends Record<string, DeserializedPanelCo
22
23
  };
23
24
  };
24
25
  type DeserializedShapeControl<_T extends Record<string, Data>, U extends Record<string, DeserializedPanelControl>> = {
25
- type: typeof Controls.Types.Shape;
26
+ type: typeof DELETED_PROP_CONTROLLER_TYPES.Shape;
26
27
  options: DeserializedShapeControlConfig<U>;
27
28
  };
28
29
  type SerializedListControlConfig<T extends Data> = {
@@ -33,7 +34,7 @@ type SerializedListControlConfig<T extends Data> = {
33
34
  defaultValue?: ListControlValue<T>;
34
35
  };
35
36
  type SerializedListControl<T extends ListControlValue = ListControlValue> = {
36
- type: typeof Controls.Types.List;
37
+ type: typeof DELETED_PROP_CONTROLLER_TYPES.List;
37
38
  options: SerializedListControlConfig<T extends ListControlValue<infer U> ? U : never>;
38
39
  };
39
40
  type DeserializedListControlConfig<T extends Data> = {
@@ -44,7 +45,7 @@ type DeserializedListControlConfig<T extends Data> = {
44
45
  defaultValue?: ListControlValue<T>;
45
46
  };
46
47
  type DeserializedListControl<T extends ListControlValue = ListControlValue> = {
47
- type: typeof Controls.Types.List;
48
+ type: typeof DELETED_PROP_CONTROLLER_TYPES.List;
48
49
  options: DeserializedListControlConfig<T extends ListControlValue<infer U> ? U : never>;
49
50
  };
50
51
  type SerializedTypeaheadControlConfig<T extends Data> = {
@@ -54,7 +55,7 @@ type SerializedTypeaheadControlConfig<T extends Data> = {
54
55
  defaultValue?: TypeaheadControlValue<T>;
55
56
  };
56
57
  type SerializedTypeaheadControl<T extends TypeaheadControlValue = TypeaheadControlValue> = {
57
- type: typeof Controls.Types.Typeahead;
58
+ type: typeof DELETED_PROP_CONTROLLER_TYPES.Typeahead;
58
59
  options: SerializedTypeaheadControlConfig<T['value']>;
59
60
  };
60
61
  type DeserializedTypeaheadControlConfig<T extends Data> = {
@@ -64,43 +65,43 @@ type DeserializedTypeaheadControlConfig<T extends Data> = {
64
65
  defaultValue?: TypeaheadControlValue<T>;
65
66
  };
66
67
  type DeserializedTypeaheadControl<T extends TypeaheadControlValue = TypeaheadControlValue> = {
67
- type: typeof Controls.Types.Typeahead;
68
+ type: typeof DELETED_PROP_CONTROLLER_TYPES.Typeahead;
68
69
  options: DeserializedTypeaheadControlConfig<T['value']>;
69
70
  };
70
71
  type SerializedConfig<T> = T | SerializedFunction<(props: Record<string, unknown>, deviceMode: Device) => T>;
71
72
  type DeserializedConfig<T> = T | DeserializedFunction<(props: Record<string, unknown>, deviceMode: Device) => T>;
72
73
  type GapXControlConfig = {
73
- preset?: GapXControlValue;
74
+ preset?: GapXPropControllerData;
74
75
  label?: string;
75
- defaultValue?: Gap;
76
+ defaultValue?: GapData;
76
77
  min?: number;
77
78
  max?: number;
78
79
  step?: number;
79
80
  hidden?: boolean;
80
81
  };
81
- type SerializedGapXControl<_T = GapXControlValue> = {
82
- type: typeof Controls.Types.GapX;
82
+ type SerializedGapXControl<_T = GapXPropControllerData> = {
83
+ type: typeof PropControllerTypes.GapX;
83
84
  options: SerializedConfig<GapXControlConfig>;
84
85
  };
85
- type DeserializedGapXControl<_T = GapXControlValue> = {
86
- type: typeof Controls.Types.GapX;
86
+ type DeserializedGapXControl<_T = GapXPropControllerData> = {
87
+ type: typeof PropControllerTypes.GapX;
87
88
  options: DeserializedConfig<GapXControlConfig>;
88
89
  };
89
90
  type GapYControlConfig = {
90
- preset?: GapYControlValue;
91
+ preset?: GapYPropControllerData;
91
92
  label?: string;
92
- defaultValue?: Gap;
93
+ defaultValue?: GapData;
93
94
  min?: number;
94
95
  max?: number;
95
96
  step?: number;
96
97
  hidden?: boolean;
97
98
  };
98
- type SerializedGapYControl<_T = GapYControlValue> = {
99
- type: typeof Controls.Types.GapY;
99
+ type SerializedGapYControl<_T = GapYPropControllerData> = {
100
+ type: typeof PropControllerTypes.GapY;
100
101
  options: SerializedConfig<GapYControlConfig>;
101
102
  };
102
- type DeserializedGapYControl<_T = GapYControlValue> = {
103
- type: typeof Controls.Types.GapY;
103
+ type DeserializedGapYControl<_T = GapYPropControllerData> = {
104
+ type: typeof PropControllerTypes.GapY;
104
105
  options: DeserializedConfig<GapYControlConfig>;
105
106
  };
106
107
  type ResponsiveNumberControlConfig = {
@@ -269,17 +270,17 @@ type DeserializedRichTextControl<_T = RichTextControlValue> = {
269
270
  type: typeof Controls.Types.RichText;
270
271
  options: DeserializedConfig<RichTextControlConfig>;
271
272
  };
272
- export type SerializedControl<T extends Data = Data> = Exclude<Control<T>, ListControl<T extends ListControlValue ? T : ListControlValue> | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any> | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue> | GapXControl<T> | GapYControl<T> | ResponsiveNumberControl<T> | CheckboxControl<T> | ResponsiveColorDescriptor<T> | NumberDescriptor<T> | ResponsiveIconRadioGroupControl<T extends ResponsiveIconRadioGroupControlValue ? T : ResponsiveIconRadioGroupControlValue> | ResponsiveSelectControl<T extends ResponsiveSelectControlValue ? T : ResponsiveSelectControlValue> | ResponsiveLengthDescriptor<T> | DateControl<T> | LinkControl<T> | TextInputControl<T> | TextStyleControl<T> | ImageControl<T> | RichTextControl<T> | RichTextV2ControlDefinition | ComboboxControlDefinition | ShapeControlDefinition | ListControlDefinition | StyleV2ControlDefinition> | SerializedListControl<T extends ListControlValue ? T : ListControlValue> | SerializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any> | SerializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue> | SerializedGapXControl<T> | SerializedGapYControl<T> | SerializedResponsiveNumberControl<T> | SerializedCheckboxControl<T> | SerializedResponsiveColorControl<T> | SerializedNumberControl<T> | SerializedResponsiveIconRadioGroupControl<T> | SerializedResponsiveSelectControl<T> | SerializedResponsiveLengthControl<T> | SerializedDateControl<T> | SerializedLinkControl<T> | SerializedTextInputControl<T> | SerializedTextStyleControl<T> | SerializedImageControl<T> | SerializedRichTextControl<T> | Serialize<RichTextV2ControlDefinition> | Serialize<ComboboxControlDefinition> | Serialize<ShapeControlDefinition> | Serialize<ListControlDefinition> | Serialize<StyleV2ControlDefinition>;
273
+ export type SerializedControl<T extends Data = Data> = Exclude<Control<T>, ListControl<T extends ListControlValue ? T : ListControlValue> | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any> | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue> | GapXDescriptor<T> | GapYDescriptor<T> | ResponsiveNumberControl<T> | CheckboxControl<T> | ResponsiveColorDescriptor<T> | NumberDescriptor<T> | ResponsiveIconRadioGroupControl<T extends ResponsiveIconRadioGroupControlValue ? T : ResponsiveIconRadioGroupControlValue> | ResponsiveSelectControl<T extends ResponsiveSelectControlValue ? T : ResponsiveSelectControlValue> | ResponsiveLengthDescriptor<T> | DateControl<T> | LinkControl<T> | TextInputControl<T> | TextStyleControl<T> | ImageControl<T> | RichTextControl<T> | RichTextV2ControlDefinition | ComboboxControlDefinition | ShapeControlDefinition | ListControlDefinition | StyleV2ControlDefinition> | SerializedListControl<T extends ListControlValue ? T : ListControlValue> | SerializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any> | SerializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue> | SerializedGapXControl<T> | SerializedGapYControl<T> | SerializedResponsiveNumberControl<T> | SerializedCheckboxControl<T> | SerializedResponsiveColorControl<T> | SerializedNumberControl<T> | SerializedResponsiveIconRadioGroupControl<T> | SerializedResponsiveSelectControl<T> | SerializedResponsiveLengthControl<T> | SerializedDateControl<T> | SerializedLinkControl<T> | SerializedTextInputControl<T> | SerializedTextStyleControl<T> | SerializedImageControl<T> | SerializedRichTextControl<T> | Serialize<RichTextV2ControlDefinition> | Serialize<ComboboxControlDefinition> | Serialize<ShapeControlDefinition> | Serialize<ListControlDefinition> | Serialize<StyleV2ControlDefinition>;
273
274
  type SerializedPanelControl<T extends Data = Data> = Extract<SerializedControl<T>, {
274
275
  type: PanelControlType;
275
276
  }>;
276
277
  type SerializedPanelControlValueType<T extends SerializedPanelControl> = T extends SerializedPanelControl<infer U> ? U : never;
277
- export type DeserializedControl<T extends Data = Data> = Exclude<Control<T>, ListControl<T extends ListControlValue ? T : ListControlValue> | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any> | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue> | GapXControl<T> | GapYControl<T> | ResponsiveNumberControl<T> | CheckboxControl<T> | ResponsiveColorDescriptor<T> | NumberDescriptor<T> | ResponsiveIconRadioGroupControl<T extends ResponsiveIconRadioGroupControlValue ? T : ResponsiveIconRadioGroupControlValue> | ResponsiveSelectControl<T extends ResponsiveSelectControlValue ? T : ResponsiveSelectControlValue> | ResponsiveLengthDescriptor<T> | DateControl<T> | LinkControl<T> | TextInputControl<T> | TextStyleControl<T> | ImageControl<T> | RichTextControl<T> | RichTextV2ControlDefinition | ComboboxControlDefinition | ShapeControlDefinition | ListControlDefinition | StyleV2ControlDefinition> | DeserializedListControl<T extends ListControlValue ? T : ListControlValue> | DeserializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any> | DeserializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue> | DeserializedGapXControl<T> | DeserializedGapYControl<T> | DeserializedResponsiveNumberControl<T> | DeserializedCheckboxControl<T> | DeserializedResponsiveColorControl<T> | DeserializedNumberControl<T> | DeserializedResponsiveIconRadioGroupControl<T> | DeserializedResponsiveSelectControl<T> | DeserializedResponsiveLengthControl<T> | DeserializedDateControl<T> | DeserializedLinkControl<T> | DeserializedTextInputControl<T> | DeserializedTextStyleControl<T> | DeserializedImageControl<T> | DeserializedRichTextControl<T> | Deserialize<Serialize<RichTextV2ControlDefinition>> | Deserialize<Serialize<ComboboxControlDefinition>> | Deserialize<Serialize<ShapeControlDefinition>> | Deserialize<Serialize<ListControlDefinition>> | Deserialize<Serialize<StyleV2ControlDefinition>>;
278
+ export type DeserializedControl<T extends Data = Data> = Exclude<Control<T>, ListControl<T extends ListControlValue ? T : ListControlValue> | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any> | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue> | GapXDescriptor<T> | GapYDescriptor<T> | ResponsiveNumberControl<T> | CheckboxControl<T> | ResponsiveColorDescriptor<T> | NumberDescriptor<T> | ResponsiveIconRadioGroupControl<T extends ResponsiveIconRadioGroupControlValue ? T : ResponsiveIconRadioGroupControlValue> | ResponsiveSelectControl<T extends ResponsiveSelectControlValue ? T : ResponsiveSelectControlValue> | ResponsiveLengthDescriptor<T> | DateControl<T> | LinkControl<T> | TextInputControl<T> | TextStyleControl<T> | ImageControl<T> | RichTextControl<T> | RichTextV2ControlDefinition | ComboboxControlDefinition | ShapeControlDefinition | ListControlDefinition | StyleV2ControlDefinition> | DeserializedListControl<T extends ListControlValue ? T : ListControlValue> | DeserializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any> | DeserializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue> | DeserializedGapXControl<T> | DeserializedGapYControl<T> | DeserializedResponsiveNumberControl<T> | DeserializedCheckboxControl<T> | DeserializedResponsiveColorControl<T> | DeserializedNumberControl<T> | DeserializedResponsiveIconRadioGroupControl<T> | DeserializedResponsiveSelectControl<T> | DeserializedResponsiveLengthControl<T> | DeserializedDateControl<T> | DeserializedLinkControl<T> | DeserializedTextInputControl<T> | DeserializedTextStyleControl<T> | DeserializedImageControl<T> | DeserializedRichTextControl<T> | Deserialize<Serialize<RichTextV2ControlDefinition>> | Deserialize<Serialize<ComboboxControlDefinition>> | Deserialize<Serialize<ShapeControlDefinition>> | Deserialize<Serialize<ListControlDefinition>> | Deserialize<Serialize<StyleV2ControlDefinition>>;
278
279
  export type DeserializedPanelControl<T extends Data = Data> = Extract<DeserializedControl<T>, {
279
280
  type: PanelControlType;
280
281
  }>;
281
282
  type DeserializedPanelControlValueType<T extends DeserializedPanelControl> = T extends DeserializedPanelControl<infer U> ? U : never;
282
- export declare function serializeControl<T extends Data>(control: Control<T>): [SerializedControl<T>, Transferable[]];
283
+ export declare function serializeControl<T extends Data>(control: Control<T> | DeletedPropControllerDescriptor<T>): [SerializedControl<T>, Transferable[]];
283
284
  export declare function deserializeControl<T extends Data>(serializedControl: SerializedControl<T>): DeserializedControl<T>;
284
285
  export declare function serializeControls(controls: Record<string, Control>): [Record<string, SerializedControl>, Transferable[]];
285
286
  export declare function deserializeControls(serializedControls: Record<string, SerializedControl>): Record<string, DeserializedControl>;