@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.
- package/dist/cjs/builder/serialization/control-serialization.js +11 -10
- package/dist/cjs/builder/serialization/control-serialization.js.map +1 -1
- package/dist/cjs/components/builtin/Box/Box.js.map +1 -1
- package/dist/cjs/components/builtin/Box/register.js +2 -2
- package/dist/cjs/components/builtin/Box/register.js.map +1 -1
- package/dist/cjs/components/builtin/Carousel/Carousel.js.map +1 -1
- package/dist/cjs/components/builtin/Carousel/register.js +1 -1
- package/dist/cjs/components/builtin/Carousel/register.js.map +1 -1
- package/dist/cjs/components/builtin/Countdown/Countdown.js.map +1 -1
- package/dist/cjs/components/builtin/Countdown/register.js +1 -1
- package/dist/cjs/components/builtin/Countdown/register.js.map +1 -1
- package/dist/cjs/components/builtin/Embed/Embed.js.map +1 -1
- package/dist/cjs/components/builtin/Embed/register.js +1 -1
- package/dist/cjs/components/builtin/Embed/register.js.map +1 -1
- package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
- package/dist/cjs/components/builtin/Form/register.js +1 -1
- package/dist/cjs/components/builtin/Form/register.js.map +1 -1
- package/dist/cjs/components/builtin/Navigation/Navigation.js.map +1 -1
- package/dist/cjs/components/builtin/Navigation/register.js +1 -1
- package/dist/cjs/components/builtin/Navigation/register.js.map +1 -1
- package/dist/cjs/components/builtin/Root/Root.js.map +1 -1
- package/dist/cjs/components/builtin/Root/register.js +6 -5
- package/dist/cjs/components/builtin/Root/register.js.map +1 -1
- package/dist/cjs/components/builtin/SocialLinks/SocialLinks.js.map +1 -1
- package/dist/cjs/components/builtin/SocialLinks/register.js +1 -1
- package/dist/cjs/components/builtin/SocialLinks/register.js.map +1 -1
- package/dist/cjs/components/hooks/useGapXPropControllerData.js +34 -0
- package/dist/cjs/components/hooks/useGapXPropControllerData.js.map +1 -0
- package/dist/cjs/components/hooks/useGapYPropControllerData.js +34 -0
- package/dist/cjs/components/hooks/useGapYPropControllerData.js.map +1 -0
- package/dist/cjs/components/hooks/useTextAreaPropControllerData.js +34 -0
- package/dist/cjs/components/hooks/useTextAreaPropControllerData.js.map +1 -0
- package/dist/cjs/controls/control.js +2 -2
- package/dist/cjs/controls/control.js.map +1 -1
- package/dist/cjs/next/api-handler/handlers/manifest.js +1 -1
- package/dist/cjs/next/api-handler/handlers/proxy-preview-mode.js +1 -1
- package/dist/cjs/next/api-handler/handlers/proxy-preview-mode.js.map +1 -1
- package/dist/cjs/prop-controllers/deleted.js +33 -0
- package/dist/cjs/prop-controllers/deleted.js.map +1 -0
- package/dist/cjs/prop-controllers/descriptors.js +0 -103
- package/dist/cjs/prop-controllers/descriptors.js.map +1 -1
- package/dist/cjs/prop-controllers/index.js +3 -0
- package/dist/cjs/prop-controllers/index.js.map +1 -1
- package/dist/cjs/prop-controllers/introspection.js +0 -30
- package/dist/cjs/prop-controllers/introspection.js.map +1 -1
- package/dist/cjs/runtimes/react/components/PreviewProvider.js +4 -0
- package/dist/cjs/runtimes/react/components/PreviewProvider.js.map +1 -1
- package/dist/cjs/runtimes/react/controls.js +33 -0
- package/dist/cjs/runtimes/react/controls.js.map +1 -1
- package/dist/cjs/state/react-builder-preview.js +95 -38
- package/dist/cjs/state/react-builder-preview.js.map +1 -1
- package/dist/esm/builder/serialization/control-serialization.js +13 -10
- package/dist/esm/builder/serialization/control-serialization.js.map +1 -1
- package/dist/esm/components/builtin/Box/Box.js.map +1 -1
- package/dist/esm/components/builtin/Box/register.js +4 -2
- package/dist/esm/components/builtin/Box/register.js.map +1 -1
- package/dist/esm/components/builtin/Carousel/Carousel.js.map +1 -1
- package/dist/esm/components/builtin/Carousel/register.js +9 -2
- package/dist/esm/components/builtin/Carousel/register.js.map +1 -1
- package/dist/esm/components/builtin/Countdown/Countdown.js.map +1 -1
- package/dist/esm/components/builtin/Countdown/register.js +2 -1
- package/dist/esm/components/builtin/Countdown/register.js.map +1 -1
- package/dist/esm/components/builtin/Embed/Embed.js.map +1 -1
- package/dist/esm/components/builtin/Embed/register.js +2 -2
- package/dist/esm/components/builtin/Embed/register.js.map +1 -1
- package/dist/esm/components/builtin/Form/Form.js.map +1 -1
- package/dist/esm/components/builtin/Form/register.js +2 -1
- package/dist/esm/components/builtin/Form/register.js.map +1 -1
- package/dist/esm/components/builtin/Navigation/Navigation.js.map +1 -1
- package/dist/esm/components/builtin/Navigation/register.js +3 -2
- package/dist/esm/components/builtin/Navigation/register.js.map +1 -1
- package/dist/esm/components/builtin/Root/Root.js.map +1 -1
- package/dist/esm/components/builtin/Root/register.js +3 -2
- package/dist/esm/components/builtin/Root/register.js.map +1 -1
- package/dist/esm/components/builtin/SocialLinks/SocialLinks.js.map +1 -1
- package/dist/esm/components/builtin/SocialLinks/register.js +2 -2
- package/dist/esm/components/builtin/SocialLinks/register.js.map +1 -1
- package/dist/esm/components/hooks/useGapXPropControllerData.js +12 -0
- package/dist/esm/components/hooks/useGapXPropControllerData.js.map +1 -0
- package/dist/esm/components/hooks/useGapYPropControllerData.js +12 -0
- package/dist/esm/components/hooks/useGapYPropControllerData.js.map +1 -0
- package/dist/esm/components/hooks/useTextAreaPropControllerData.js +12 -0
- package/dist/esm/components/hooks/useTextAreaPropControllerData.js.map +1 -0
- package/dist/esm/controls/control.js +2 -2
- package/dist/esm/controls/control.js.map +1 -1
- package/dist/esm/next/api-handler/handlers/manifest.js +1 -1
- package/dist/esm/next/api-handler/handlers/proxy-preview-mode.js +1 -1
- package/dist/esm/next/api-handler/handlers/proxy-preview-mode.js.map +1 -1
- package/dist/esm/prop-controllers/deleted.js +9 -0
- package/dist/esm/prop-controllers/deleted.js.map +1 -0
- package/dist/esm/prop-controllers/descriptors.js +0 -91
- package/dist/esm/prop-controllers/descriptors.js.map +1 -1
- package/dist/esm/prop-controllers/index.js +2 -0
- package/dist/esm/prop-controllers/index.js.map +1 -1
- package/dist/esm/prop-controllers/introspection.js +0 -40
- package/dist/esm/prop-controllers/introspection.js.map +1 -1
- package/dist/esm/runtimes/react/components/PreviewProvider.js +4 -0
- package/dist/esm/runtimes/react/components/PreviewProvider.js.map +1 -1
- package/dist/esm/runtimes/react/controls.js +33 -0
- package/dist/esm/runtimes/react/controls.js.map +1 -1
- package/dist/esm/state/react-builder-preview.js +105 -45
- package/dist/esm/state/react-builder-preview.js.map +1 -1
- package/dist/types/api/graphql/documents/queries.d.ts +7 -7
- package/dist/types/api/graphql/documents/queries.d.ts.map +1 -1
- package/dist/types/builder/serialization/control-serialization.d.ts +24 -23
- package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -1
- package/dist/types/components/builtin/Box/Box.d.ts +15 -3
- package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
- package/dist/types/components/builtin/Box/register.d.ts.map +1 -1
- package/dist/types/components/builtin/Carousel/Carousel.d.ts +3 -2
- package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
- package/dist/types/components/builtin/Carousel/register.d.ts.map +1 -1
- package/dist/types/components/builtin/Countdown/Countdown.d.ts +3 -3
- package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
- package/dist/types/components/builtin/Countdown/register.d.ts.map +1 -1
- package/dist/types/components/builtin/Embed/Embed.d.ts +2 -2
- package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/Form.d.ts +3 -3
- package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/register.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/Navigation.d.ts +3 -3
- package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/register.d.ts.map +1 -1
- package/dist/types/components/builtin/Root/Root.d.ts +4 -3
- package/dist/types/components/builtin/Root/Root.d.ts.map +1 -1
- package/dist/types/components/builtin/Root/register.d.ts.map +1 -1
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +3 -2
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
- package/dist/types/components/hooks/useGapXPropControllerData.d.ts +3 -0
- package/dist/types/components/hooks/useGapXPropControllerData.d.ts.map +1 -0
- package/dist/types/components/hooks/useGapYPropControllerData.d.ts +3 -0
- package/dist/types/components/hooks/useGapYPropControllerData.d.ts.map +1 -0
- package/dist/types/components/hooks/useTextAreaPropControllerData.d.ts +3 -0
- package/dist/types/components/hooks/useTextAreaPropControllerData.d.ts.map +1 -0
- package/dist/types/next/components/tests/page-gap-x-prop-controller.test.d.ts +3 -0
- package/dist/types/next/components/tests/page-gap-x-prop-controller.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/page-gap-y-prop-controller.test.d.ts +3 -0
- package/dist/types/next/components/tests/page-gap-y-prop-controller.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/page-text-area-prop-controller.test.d.ts +3 -0
- package/dist/types/next/components/tests/page-text-area-prop-controller.test.d.ts.map +1 -0
- package/dist/types/prop-controllers/deleted.d.ts +51 -0
- package/dist/types/prop-controllers/deleted.d.ts.map +1 -0
- package/dist/types/prop-controllers/descriptors.d.ts +9 -133
- package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
- package/dist/types/prop-controllers/index.d.ts +2 -1
- package/dist/types/prop-controllers/index.d.ts.map +1 -1
- package/dist/types/prop-controllers/introspection.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/PreviewProvider.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls.d.ts.map +1 -1
- package/dist/types/state/react-builder-preview.d.ts +11 -3
- package/dist/types/state/react-builder-preview.d.ts.map +1 -1
- 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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
541
|
+
const channel = new MessageChannel();
|
|
542
|
+
const store = createStore(
|
|
493
543
|
reducer,
|
|
494
544
|
initialState,
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
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
|
|
2
|
-
export declare const SwatchQuery
|
|
3
|
-
export declare const FileQuery
|
|
4
|
-
export declare const TypographyQuery
|
|
5
|
-
export declare const TableQuery
|
|
6
|
-
export declare const TypographiesQuery
|
|
7
|
-
export declare const GlobalElementQuery
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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?:
|
|
74
|
+
preset?: GapXPropControllerData;
|
|
74
75
|
label?: string;
|
|
75
|
-
defaultValue?:
|
|
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 =
|
|
82
|
-
type: typeof
|
|
82
|
+
type SerializedGapXControl<_T = GapXPropControllerData> = {
|
|
83
|
+
type: typeof PropControllerTypes.GapX;
|
|
83
84
|
options: SerializedConfig<GapXControlConfig>;
|
|
84
85
|
};
|
|
85
|
-
type DeserializedGapXControl<_T =
|
|
86
|
-
type: typeof
|
|
86
|
+
type DeserializedGapXControl<_T = GapXPropControllerData> = {
|
|
87
|
+
type: typeof PropControllerTypes.GapX;
|
|
87
88
|
options: DeserializedConfig<GapXControlConfig>;
|
|
88
89
|
};
|
|
89
90
|
type GapYControlConfig = {
|
|
90
|
-
preset?:
|
|
91
|
+
preset?: GapYPropControllerData;
|
|
91
92
|
label?: string;
|
|
92
|
-
defaultValue?:
|
|
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 =
|
|
99
|
-
type: typeof
|
|
99
|
+
type SerializedGapYControl<_T = GapYPropControllerData> = {
|
|
100
|
+
type: typeof PropControllerTypes.GapY;
|
|
100
101
|
options: SerializedConfig<GapYControlConfig>;
|
|
101
102
|
};
|
|
102
|
-
type DeserializedGapYControl<_T =
|
|
103
|
-
type: typeof
|
|
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> |
|
|
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> |
|
|
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>;
|