@makeswift/runtime 0.2.18 → 0.2.19

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.
@@ -30,7 +30,8 @@ const ActionTypes = {
30
30
  CHANGE_API_RESOURCE: "CHANGE_API_RESOURCE",
31
31
  EVICT_API_RESOURCE: "EVICT_API_RESOURCE",
32
32
  SET_IS_IN_BUILDER: "SET_IS_IN_BUILDER",
33
- HANDLE_WHEEL: "HANDLE_WHEEL"
33
+ HANDLE_WHEEL: "HANDLE_WHEEL",
34
+ HANDLE_POINTER_MOVE: "HANDLE_POINTER_MOVE"
34
35
  };
35
36
  function init() {
36
37
  return { type: ActionTypes.INIT };
@@ -183,6 +184,9 @@ function setIsInBuilder(isInBuilder) {
183
184
  function handleWheel(payload) {
184
185
  return { type: ActionTypes.HANDLE_WHEEL, payload };
185
186
  }
187
+ function handlePointerMove(payload) {
188
+ return { type: ActionTypes.HANDLE_POINTER_MOVE, payload };
189
+ }
186
190
  exports.ActionTypes = ActionTypes;
187
191
  exports.changeApiResource = changeApiResource;
188
192
  exports.changeDocument = changeDocument;
@@ -191,6 +195,7 @@ exports.changeDocumentElementSize = changeDocumentElementSize;
191
195
  exports.changeElementBoxModels = changeElementBoxModels;
192
196
  exports.cleanUp = cleanUp;
193
197
  exports.evictApiResource = evictApiResource;
198
+ exports.handlePointerMove = handlePointerMove;
194
199
  exports.handleWheel = handleWheel;
195
200
  exports.init = init;
196
201
  exports.messageBuilderPropController = messageBuilderPropController;
@@ -1 +1 @@
1
- {"version":3,"file":"actions.cjs.js","sources":["../src/state/actions.ts"],"sourcesContent":["import type { Operation } from 'ot-json0'\n\nimport type { Document } from './modules/read-only-documents'\nimport type { ComponentType } from './modules/react-components'\nimport type { Measurable, BoxModel } from './modules/box-models'\nimport type { ThunkAction } from 'redux-thunk'\nimport { ComponentMeta } from './modules/components-meta'\nimport { PropControllerDescriptor } from '../prop-controllers'\nimport type { Size } from './react-builder-preview'\nimport type { PropControllersHandle } from './modules/prop-controller-handles'\nimport type { PropController, PropControllerMessage } from '../prop-controllers/instances'\nimport type { APIResource } from '../api/types'\nimport type { SerializedControl } from '../builder'\n\nexport const ActionTypes = {\n INIT: 'INIT',\n CLEAN_UP: 'CLEAN_UP',\n\n REGISTER_DOCUMENT: 'REGISTER_DOCUMENT',\n UNREGISTER_DOCUMENT: 'UNREGISTER_DOCUMENT',\n\n CHANGE_DOCUMENT: 'CHANGE_DOCUMENT',\n\n REGISTER_COMPONENT: 'REGISTER_COMPONENT',\n UNREGISTER_COMPONENT: 'UNREGISTER_COMPONENT',\n\n REGISTER_BUILDER_COMPONENT: 'REGISTER_BUILDER_COMPONENT',\n UNREGISTER_BUILDER_COMPONENT: 'UNREGISTER_BUILDER_COMPONENT',\n\n REGISTER_REACT_COMPONENT: 'REGISTER_REACT_COMPONENT',\n UNREGISTER_REACT_COMPONENT: 'UNREGISTER_REACT_COMPONENT',\n\n MOUNT_COMPONENT: 'MOUNT_COMPONENT',\n UNMOUNT_COMPONENT: 'UNMOUNT_COMPONENT',\n\n REGISTER_COMPONENT_HANDLE: 'REGISTER_COMPONENT_HANDLE',\n UNREGISTER_COMPONENT_HANDLE: 'UNREGISTER_COMPONENT_HANDLE',\n\n REGISTER_MEASURABLE: 'REGISTER_MEASURABLE',\n UNREGISTER_MEASURABLE: 'UNREGISTER_MEASURABLE',\n\n CHANGE_ELEMENT_BOX_MODELS: 'CHANGE_ELEMENT_BOX_MODELS',\n\n CHANGE_DOCUMENT_ELEMENT_SIZE: 'CHANGE_DOCUMENT_ELEMENT_SIZE',\n CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP: 'CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP',\n SCROLL_DOCUMENT_ELEMENT: 'SCROLL_DOCUMENT_ELEMENT',\n\n REGISTER_PROP_CONTROLLERS_HANDLE: 'REGISTER_PROP_CONTROLLERS_HANDLE',\n UNREGISTER_PROP_CONTROLLERS_HANDLE: 'UNREGISTER_PROP_CONTROLLERS_HANDLE',\n REGISTER_PROP_CONTROLLERS: 'REGISTER_PROP_CONTROLLERS',\n UNREGISTER_PROP_CONTROLLERS: 'UNREGISTER_PROP_CONTROLLERS',\n MESSAGE_HOST_PROP_CONTROLLER: 'MESSAGE_HOST_PROP_CONTROLLER',\n MESSAGE_BUILDER_PROP_CONTROLLER: 'MESSAGE_BUILDER_PROP_CONTROLLER',\n\n CHANGE_API_RESOURCE: 'CHANGE_API_RESOURCE',\n EVICT_API_RESOURCE: 'EVICT_API_RESOURCE',\n\n SET_IS_IN_BUILDER: 'SET_IS_IN_BUILDER',\n\n HANDLE_WHEEL: 'HANDLE_WHEEL',\n} as const\n\ntype InitAction = { type: typeof ActionTypes.INIT }\n\ntype CleanUpAction = { type: typeof ActionTypes.CLEAN_UP }\n\ntype RegisterDocumentAction = {\n type: typeof ActionTypes.REGISTER_DOCUMENT\n payload: { documentKey: string; document: Document }\n}\n\ntype UnregisterDocumentAction = {\n type: typeof ActionTypes.UNREGISTER_DOCUMENT\n payload: { documentKey: string }\n}\n\ntype ChangeDocumentAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT\n payload: { documentKey: string; operation: Operation }\n}\n\ntype RegisterComponentAction = {\n type: typeof ActionTypes.REGISTER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n propControllerDescriptors: Record<string, PropControllerDescriptor>\n }\n}\n\ntype UnregisterComponentAction = {\n type: typeof ActionTypes.UNREGISTER_COMPONENT\n payload: { type: string }\n}\n\ntype RegisterBuilderComponentAction = {\n type: typeof ActionTypes.REGISTER_BUILDER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n serializedControls: Record<string, SerializedControl>\n }\n}\n\ntype UnregisterBuilderComponentAction = {\n type: typeof ActionTypes.UNREGISTER_BUILDER_COMPONENT\n payload: { type: string }\n}\n\ntype RegisterReactComponentAction = {\n type: typeof ActionTypes.REGISTER_REACT_COMPONENT\n payload: { type: string; component: ComponentType }\n}\n\ntype UnregisterReactComponentAction = {\n type: typeof ActionTypes.UNREGISTER_REACT_COMPONENT\n payload: { type: string }\n}\n\ntype MountComponentAction = {\n type: typeof ActionTypes.MOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype UnmountComponentAction = {\n type: typeof ActionTypes.UNMOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterComponentHandleAction = {\n type: typeof ActionTypes.REGISTER_COMPONENT_HANDLE\n payload: { documentKey: string; elementKey: string; componentHandle: unknown }\n}\n\ntype UnregisterComponentHandleAction = {\n type: typeof ActionTypes.UNREGISTER_COMPONENT_HANDLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterMeasurableAction = {\n type: typeof ActionTypes.REGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string; measurable: Measurable }\n}\n\ntype UnregisterMeasurableAction = {\n type: typeof ActionTypes.UNREGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype ChangeElementBoxModelsAction = {\n type: typeof ActionTypes.CHANGE_ELEMENT_BOX_MODELS\n payload: { changedElementBoxModels: Map<string, Map<string, BoxModel | null>> }\n}\n\ntype ChangeDocumentElementSizeAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE\n payload: { size: Size }\n}\n\ntype ChangeDocumentElementScrollTopAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP\n payload: { scrollTop: number }\n}\n\ntype ScrollDocumentElementAction = {\n type: typeof ActionTypes.SCROLL_DOCUMENT_ELEMENT\n payload: { scrollTopDelta: number }\n}\n\ntype RegisterPropControllersHandleAction = {\n type: typeof ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE\n payload: { documentKey: string; elementKey: string; handle: PropControllersHandle }\n}\n\ntype UnregisterPropControllersHandleAction = {\n type: typeof ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterPropControllersAction = {\n type: typeof ActionTypes.REGISTER_PROP_CONTROLLERS\n payload: {\n documentKey: string\n elementKey: string\n propControllers: Record<string, PropController>\n }\n}\n\ntype UnregisterPropControllersAction = {\n type: typeof ActionTypes.UNREGISTER_PROP_CONTROLLERS\n payload: { documentKey: string; elementKey: string }\n}\n\ntype MessageHostPropControllerAction<T = PropControllerMessage> = {\n type: typeof ActionTypes.MESSAGE_HOST_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype MessageBuilderPropControllerAction<T = PropControllerMessage> = {\n type: typeof ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype ChangeAPIResourceAction = {\n type: typeof ActionTypes.CHANGE_API_RESOURCE\n payload: { resource: APIResource }\n}\n\ntype EvictAPIResourceAction = {\n type: typeof ActionTypes.EVICT_API_RESOURCE\n payload: { id: string }\n}\n\ntype SetIsInBuilderAction = {\n type: typeof ActionTypes.SET_IS_IN_BUILDER\n payload: boolean\n}\n\ntype HandleWheelAction = {\n type: typeof ActionTypes.HANDLE_WHEEL\n payload: { deltaX: number; deltaY: number }\n}\n\nexport type Action =\n | InitAction\n | CleanUpAction\n | ChangeDocumentAction\n | RegisterDocumentAction\n | UnregisterDocumentAction\n | RegisterComponentAction\n | UnregisterComponentAction\n | RegisterBuilderComponentAction\n | UnregisterBuilderComponentAction\n | RegisterReactComponentAction\n | UnregisterReactComponentAction\n | MountComponentAction\n | UnmountComponentAction\n | RegisterComponentHandleAction\n | UnregisterComponentHandleAction\n | RegisterMeasurableAction\n | UnregisterMeasurableAction\n | ChangeElementBoxModelsAction\n | ChangeDocumentElementSizeAction\n | ChangeDocumentElementScrollTopAction\n | ScrollDocumentElementAction\n | RegisterPropControllersHandleAction\n | UnregisterPropControllersHandleAction\n | RegisterPropControllersAction\n | UnregisterPropControllersAction\n | MessageHostPropControllerAction\n | MessageBuilderPropControllerAction\n | ChangeAPIResourceAction\n | EvictAPIResourceAction\n | SetIsInBuilderAction\n | HandleWheelAction\n\nexport function init(): InitAction {\n return { type: ActionTypes.INIT }\n}\n\nexport function cleanUp(): CleanUpAction {\n return { type: ActionTypes.CLEAN_UP }\n}\n\nexport function registerDocument(document: Document): RegisterDocumentAction {\n return { type: ActionTypes.REGISTER_DOCUMENT, payload: { documentKey: document.key, document } }\n}\n\nexport function unregisterDocument(documentKey: string): UnregisterDocumentAction {\n return { type: ActionTypes.UNREGISTER_DOCUMENT, payload: { documentKey } }\n}\n\nexport function registerDocumentEffect(\n document: Document,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerDocument(document))\n\n return () => {\n dispatch(unregisterDocument(document.key))\n }\n }\n}\n\nexport function changeDocument(documentKey: string, operation: Operation): ChangeDocumentAction {\n return { type: ActionTypes.CHANGE_DOCUMENT, payload: { documentKey, operation } }\n}\n\nexport function registerComponent(\n type: string,\n meta: ComponentMeta,\n propControllerDescriptors: Record<string, PropControllerDescriptor>,\n): RegisterComponentAction {\n return {\n type: ActionTypes.REGISTER_COMPONENT,\n payload: { type, meta, propControllerDescriptors },\n }\n}\n\nexport function unregisterComponent(type: string): UnregisterComponentAction {\n return { type: ActionTypes.UNREGISTER_COMPONENT, payload: { type } }\n}\n\nexport function registerComponentEffect(\n type: string,\n meta: ComponentMeta,\n propControllerDescriptors: Record<string, PropControllerDescriptor>,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerComponent(type, meta, propControllerDescriptors))\n\n return () => {\n dispatch(unregisterComponent(type))\n }\n }\n}\n\nexport function registerBuilderComponent(\n type: string,\n meta: ComponentMeta,\n serializedControls: Record<string, SerializedControl>,\n): RegisterBuilderComponentAction {\n return {\n type: ActionTypes.REGISTER_BUILDER_COMPONENT,\n payload: { type, meta, serializedControls },\n }\n}\n\nexport function unregisterBuilderComponent(type: string): UnregisterBuilderComponentAction {\n return { type: ActionTypes.UNREGISTER_BUILDER_COMPONENT, payload: { type } }\n}\n\nfunction registerReactComponent(\n type: string,\n component: ComponentType,\n): RegisterReactComponentAction {\n return { type: ActionTypes.REGISTER_REACT_COMPONENT, payload: { type, component } }\n}\n\nfunction unregisterReactComponent(type: string): UnregisterReactComponentAction {\n return { type: ActionTypes.UNREGISTER_REACT_COMPONENT, payload: { type } }\n}\n\nexport function registerReactComponentEffect(\n type: string,\n component: ComponentType,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerReactComponent(type, component))\n\n return () => {\n dispatch(unregisterReactComponent(type))\n }\n }\n}\n\nexport function mountComponent(documentKey: string, elementKey: string): MountComponentAction {\n return { type: ActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function unmountComponent(documentKey: string, elementKey: string): UnmountComponentAction {\n return { type: ActionTypes.UNMOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function mountComponentEffect(\n documentKey: string,\n elementKey: string,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(mountComponent(documentKey, elementKey))\n\n return () => {\n dispatch(unmountComponent(documentKey, elementKey))\n }\n }\n}\n\nexport function registerComponentHandle(\n documentKey: string,\n elementKey: string,\n componentHandle: unknown,\n): RegisterComponentHandleAction {\n return {\n type: ActionTypes.REGISTER_COMPONENT_HANDLE,\n payload: { documentKey, elementKey, componentHandle },\n }\n}\n\nfunction unregisterComponentHandle(\n documentKey: string,\n elementKey: string,\n): UnregisterComponentHandleAction {\n return { type: ActionTypes.UNREGISTER_COMPONENT_HANDLE, payload: { documentKey, elementKey } }\n}\n\nexport function registerComponentHandleEffect(\n documentKey: string,\n elementKey: string,\n componentHandle: unknown,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerComponentHandle(documentKey, elementKey, componentHandle))\n\n return () => {\n dispatch(unregisterComponentHandle(documentKey, elementKey))\n }\n }\n}\n\nexport function registerMeasurable(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): RegisterMeasurableAction {\n return { type: ActionTypes.REGISTER_MEASURABLE, payload: { documentKey, elementKey, measurable } }\n}\n\nexport function unregisterMeasurable(\n documentKey: string,\n elementKey: string,\n): UnregisterMeasurableAction {\n return { type: ActionTypes.UNREGISTER_MEASURABLE, payload: { documentKey, elementKey } }\n}\n\nexport function registerMeasurableEffect(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerMeasurable(documentKey, elementKey, measurable))\n\n return () => {\n dispatch(unregisterMeasurable(documentKey, elementKey))\n }\n }\n}\n\nexport function changeElementBoxModels(\n changedElementBoxModels: Map<string, Map<string, BoxModel | null>>,\n): ChangeElementBoxModelsAction {\n return { type: ActionTypes.CHANGE_ELEMENT_BOX_MODELS, payload: { changedElementBoxModels } }\n}\n\nexport function changeDocumentElementSize(size: Size): ChangeDocumentElementSizeAction {\n return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } }\n}\n\nexport function changeDocumentElementScrollTop(\n scrollTop: number,\n): ChangeDocumentElementScrollTopAction {\n return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP, payload: { scrollTop } }\n}\n\nexport function scrollDocumentElement(scrollTopDelta: number): ScrollDocumentElementAction {\n return { type: ActionTypes.SCROLL_DOCUMENT_ELEMENT, payload: { scrollTopDelta } }\n}\n\nexport function registerPropControllersHandle(\n documentKey: string,\n elementKey: string,\n handle: PropControllersHandle,\n): RegisterPropControllersHandleAction {\n return {\n type: ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE,\n payload: { documentKey, elementKey, handle },\n }\n}\n\nexport function unregisterPropControllersHandle(\n documentKey: string,\n elementKey: string,\n): UnregisterPropControllersHandleAction {\n return {\n type: ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE,\n payload: { documentKey, elementKey },\n }\n}\n\nexport function registerPropControllers(\n documentKey: string,\n elementKey: string,\n propControllers: Record<string, PropController>,\n): RegisterPropControllersAction {\n return {\n type: ActionTypes.REGISTER_PROP_CONTROLLERS,\n payload: { documentKey, elementKey, propControllers },\n }\n}\n\nexport function unregisterPropControllers(\n documentKey: string,\n elementKey: string,\n): UnregisterPropControllersAction {\n return { type: ActionTypes.UNREGISTER_PROP_CONTROLLERS, payload: { documentKey, elementKey } }\n}\n\nexport function messageHostPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageHostPropControllerAction<T> {\n return {\n type: ActionTypes.MESSAGE_HOST_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function messageBuilderPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageBuilderPropControllerAction<T> {\n return {\n type: ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function changeApiResource(resource: APIResource): ChangeAPIResourceAction {\n return { type: ActionTypes.CHANGE_API_RESOURCE, payload: { resource } }\n}\n\nexport function evictApiResource(id: string): EvictAPIResourceAction {\n return { type: ActionTypes.EVICT_API_RESOURCE, payload: { id } }\n}\n\nexport function setIsInBuilder(isInBuilder: boolean): SetIsInBuilderAction {\n return { type: ActionTypes.SET_IS_IN_BUILDER, payload: isInBuilder }\n}\n\nexport function handleWheel(payload: { deltaX: number; deltaY: number }): HandleWheelAction {\n return { type: ActionTypes.HANDLE_WHEEL, payload }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.cjs.js","sources":["../src/state/actions.ts"],"sourcesContent":["import type { Operation } from 'ot-json0'\n\nimport type { Document } from './modules/read-only-documents'\nimport type { ComponentType } from './modules/react-components'\nimport type { Measurable, BoxModel } from './modules/box-models'\nimport type { ThunkAction } from 'redux-thunk'\nimport { ComponentMeta } from './modules/components-meta'\nimport { PropControllerDescriptor } from '../prop-controllers'\nimport type { Size } from './react-builder-preview'\nimport type { PropControllersHandle } from './modules/prop-controller-handles'\nimport type { PropController, PropControllerMessage } from '../prop-controllers/instances'\nimport type { APIResource } from '../api/types'\nimport type { SerializedControl } from '../builder'\n\nexport const ActionTypes = {\n INIT: 'INIT',\n CLEAN_UP: 'CLEAN_UP',\n\n REGISTER_DOCUMENT: 'REGISTER_DOCUMENT',\n UNREGISTER_DOCUMENT: 'UNREGISTER_DOCUMENT',\n\n CHANGE_DOCUMENT: 'CHANGE_DOCUMENT',\n\n REGISTER_COMPONENT: 'REGISTER_COMPONENT',\n UNREGISTER_COMPONENT: 'UNREGISTER_COMPONENT',\n\n REGISTER_BUILDER_COMPONENT: 'REGISTER_BUILDER_COMPONENT',\n UNREGISTER_BUILDER_COMPONENT: 'UNREGISTER_BUILDER_COMPONENT',\n\n REGISTER_REACT_COMPONENT: 'REGISTER_REACT_COMPONENT',\n UNREGISTER_REACT_COMPONENT: 'UNREGISTER_REACT_COMPONENT',\n\n MOUNT_COMPONENT: 'MOUNT_COMPONENT',\n UNMOUNT_COMPONENT: 'UNMOUNT_COMPONENT',\n\n REGISTER_COMPONENT_HANDLE: 'REGISTER_COMPONENT_HANDLE',\n UNREGISTER_COMPONENT_HANDLE: 'UNREGISTER_COMPONENT_HANDLE',\n\n REGISTER_MEASURABLE: 'REGISTER_MEASURABLE',\n UNREGISTER_MEASURABLE: 'UNREGISTER_MEASURABLE',\n\n CHANGE_ELEMENT_BOX_MODELS: 'CHANGE_ELEMENT_BOX_MODELS',\n\n CHANGE_DOCUMENT_ELEMENT_SIZE: 'CHANGE_DOCUMENT_ELEMENT_SIZE',\n CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP: 'CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP',\n SCROLL_DOCUMENT_ELEMENT: 'SCROLL_DOCUMENT_ELEMENT',\n\n REGISTER_PROP_CONTROLLERS_HANDLE: 'REGISTER_PROP_CONTROLLERS_HANDLE',\n UNREGISTER_PROP_CONTROLLERS_HANDLE: 'UNREGISTER_PROP_CONTROLLERS_HANDLE',\n REGISTER_PROP_CONTROLLERS: 'REGISTER_PROP_CONTROLLERS',\n UNREGISTER_PROP_CONTROLLERS: 'UNREGISTER_PROP_CONTROLLERS',\n MESSAGE_HOST_PROP_CONTROLLER: 'MESSAGE_HOST_PROP_CONTROLLER',\n MESSAGE_BUILDER_PROP_CONTROLLER: 'MESSAGE_BUILDER_PROP_CONTROLLER',\n\n CHANGE_API_RESOURCE: 'CHANGE_API_RESOURCE',\n EVICT_API_RESOURCE: 'EVICT_API_RESOURCE',\n\n SET_IS_IN_BUILDER: 'SET_IS_IN_BUILDER',\n\n HANDLE_WHEEL: 'HANDLE_WHEEL',\n HANDLE_POINTER_MOVE: 'HANDLE_POINTER_MOVE',\n} as const\n\ntype InitAction = { type: typeof ActionTypes.INIT }\n\ntype CleanUpAction = { type: typeof ActionTypes.CLEAN_UP }\n\ntype RegisterDocumentAction = {\n type: typeof ActionTypes.REGISTER_DOCUMENT\n payload: { documentKey: string; document: Document }\n}\n\ntype UnregisterDocumentAction = {\n type: typeof ActionTypes.UNREGISTER_DOCUMENT\n payload: { documentKey: string }\n}\n\ntype ChangeDocumentAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT\n payload: { documentKey: string; operation: Operation }\n}\n\ntype RegisterComponentAction = {\n type: typeof ActionTypes.REGISTER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n propControllerDescriptors: Record<string, PropControllerDescriptor>\n }\n}\n\ntype UnregisterComponentAction = {\n type: typeof ActionTypes.UNREGISTER_COMPONENT\n payload: { type: string }\n}\n\ntype RegisterBuilderComponentAction = {\n type: typeof ActionTypes.REGISTER_BUILDER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n serializedControls: Record<string, SerializedControl>\n }\n}\n\ntype UnregisterBuilderComponentAction = {\n type: typeof ActionTypes.UNREGISTER_BUILDER_COMPONENT\n payload: { type: string }\n}\n\ntype RegisterReactComponentAction = {\n type: typeof ActionTypes.REGISTER_REACT_COMPONENT\n payload: { type: string; component: ComponentType }\n}\n\ntype UnregisterReactComponentAction = {\n type: typeof ActionTypes.UNREGISTER_REACT_COMPONENT\n payload: { type: string }\n}\n\ntype MountComponentAction = {\n type: typeof ActionTypes.MOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype UnmountComponentAction = {\n type: typeof ActionTypes.UNMOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterComponentHandleAction = {\n type: typeof ActionTypes.REGISTER_COMPONENT_HANDLE\n payload: { documentKey: string; elementKey: string; componentHandle: unknown }\n}\n\ntype UnregisterComponentHandleAction = {\n type: typeof ActionTypes.UNREGISTER_COMPONENT_HANDLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterMeasurableAction = {\n type: typeof ActionTypes.REGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string; measurable: Measurable }\n}\n\ntype UnregisterMeasurableAction = {\n type: typeof ActionTypes.UNREGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype ChangeElementBoxModelsAction = {\n type: typeof ActionTypes.CHANGE_ELEMENT_BOX_MODELS\n payload: { changedElementBoxModels: Map<string, Map<string, BoxModel | null>> }\n}\n\ntype ChangeDocumentElementSizeAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE\n payload: { size: Size }\n}\n\ntype ChangeDocumentElementScrollTopAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP\n payload: { scrollTop: number }\n}\n\ntype ScrollDocumentElementAction = {\n type: typeof ActionTypes.SCROLL_DOCUMENT_ELEMENT\n payload: { scrollTopDelta: number }\n}\n\ntype RegisterPropControllersHandleAction = {\n type: typeof ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE\n payload: { documentKey: string; elementKey: string; handle: PropControllersHandle }\n}\n\ntype UnregisterPropControllersHandleAction = {\n type: typeof ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterPropControllersAction = {\n type: typeof ActionTypes.REGISTER_PROP_CONTROLLERS\n payload: {\n documentKey: string\n elementKey: string\n propControllers: Record<string, PropController>\n }\n}\n\ntype UnregisterPropControllersAction = {\n type: typeof ActionTypes.UNREGISTER_PROP_CONTROLLERS\n payload: { documentKey: string; elementKey: string }\n}\n\ntype MessageHostPropControllerAction<T = PropControllerMessage> = {\n type: typeof ActionTypes.MESSAGE_HOST_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype MessageBuilderPropControllerAction<T = PropControllerMessage> = {\n type: typeof ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype ChangeAPIResourceAction = {\n type: typeof ActionTypes.CHANGE_API_RESOURCE\n payload: { resource: APIResource }\n}\n\ntype EvictAPIResourceAction = {\n type: typeof ActionTypes.EVICT_API_RESOURCE\n payload: { id: string }\n}\n\ntype SetIsInBuilderAction = {\n type: typeof ActionTypes.SET_IS_IN_BUILDER\n payload: boolean\n}\n\ntype HandleWheelAction = {\n type: typeof ActionTypes.HANDLE_WHEEL\n payload: { deltaX: number; deltaY: number }\n}\n\ntype HandlePointerMoveAction = {\n type: typeof ActionTypes.HANDLE_POINTER_MOVE\n payload: { clientX: number; clientY: number }\n}\n\nexport type Action =\n | InitAction\n | CleanUpAction\n | ChangeDocumentAction\n | RegisterDocumentAction\n | UnregisterDocumentAction\n | RegisterComponentAction\n | UnregisterComponentAction\n | RegisterBuilderComponentAction\n | UnregisterBuilderComponentAction\n | RegisterReactComponentAction\n | UnregisterReactComponentAction\n | MountComponentAction\n | UnmountComponentAction\n | RegisterComponentHandleAction\n | UnregisterComponentHandleAction\n | RegisterMeasurableAction\n | UnregisterMeasurableAction\n | ChangeElementBoxModelsAction\n | ChangeDocumentElementSizeAction\n | ChangeDocumentElementScrollTopAction\n | ScrollDocumentElementAction\n | RegisterPropControllersHandleAction\n | UnregisterPropControllersHandleAction\n | RegisterPropControllersAction\n | UnregisterPropControllersAction\n | MessageHostPropControllerAction\n | MessageBuilderPropControllerAction\n | ChangeAPIResourceAction\n | EvictAPIResourceAction\n | SetIsInBuilderAction\n | HandleWheelAction\n | HandlePointerMoveAction\n\nexport function init(): InitAction {\n return { type: ActionTypes.INIT }\n}\n\nexport function cleanUp(): CleanUpAction {\n return { type: ActionTypes.CLEAN_UP }\n}\n\nexport function registerDocument(document: Document): RegisterDocumentAction {\n return { type: ActionTypes.REGISTER_DOCUMENT, payload: { documentKey: document.key, document } }\n}\n\nexport function unregisterDocument(documentKey: string): UnregisterDocumentAction {\n return { type: ActionTypes.UNREGISTER_DOCUMENT, payload: { documentKey } }\n}\n\nexport function registerDocumentEffect(\n document: Document,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerDocument(document))\n\n return () => {\n dispatch(unregisterDocument(document.key))\n }\n }\n}\n\nexport function changeDocument(documentKey: string, operation: Operation): ChangeDocumentAction {\n return { type: ActionTypes.CHANGE_DOCUMENT, payload: { documentKey, operation } }\n}\n\nexport function registerComponent(\n type: string,\n meta: ComponentMeta,\n propControllerDescriptors: Record<string, PropControllerDescriptor>,\n): RegisterComponentAction {\n return {\n type: ActionTypes.REGISTER_COMPONENT,\n payload: { type, meta, propControllerDescriptors },\n }\n}\n\nexport function unregisterComponent(type: string): UnregisterComponentAction {\n return { type: ActionTypes.UNREGISTER_COMPONENT, payload: { type } }\n}\n\nexport function registerComponentEffect(\n type: string,\n meta: ComponentMeta,\n propControllerDescriptors: Record<string, PropControllerDescriptor>,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerComponent(type, meta, propControllerDescriptors))\n\n return () => {\n dispatch(unregisterComponent(type))\n }\n }\n}\n\nexport function registerBuilderComponent(\n type: string,\n meta: ComponentMeta,\n serializedControls: Record<string, SerializedControl>,\n): RegisterBuilderComponentAction {\n return {\n type: ActionTypes.REGISTER_BUILDER_COMPONENT,\n payload: { type, meta, serializedControls },\n }\n}\n\nexport function unregisterBuilderComponent(type: string): UnregisterBuilderComponentAction {\n return { type: ActionTypes.UNREGISTER_BUILDER_COMPONENT, payload: { type } }\n}\n\nfunction registerReactComponent(\n type: string,\n component: ComponentType,\n): RegisterReactComponentAction {\n return { type: ActionTypes.REGISTER_REACT_COMPONENT, payload: { type, component } }\n}\n\nfunction unregisterReactComponent(type: string): UnregisterReactComponentAction {\n return { type: ActionTypes.UNREGISTER_REACT_COMPONENT, payload: { type } }\n}\n\nexport function registerReactComponentEffect(\n type: string,\n component: ComponentType,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerReactComponent(type, component))\n\n return () => {\n dispatch(unregisterReactComponent(type))\n }\n }\n}\n\nexport function mountComponent(documentKey: string, elementKey: string): MountComponentAction {\n return { type: ActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function unmountComponent(documentKey: string, elementKey: string): UnmountComponentAction {\n return { type: ActionTypes.UNMOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function mountComponentEffect(\n documentKey: string,\n elementKey: string,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(mountComponent(documentKey, elementKey))\n\n return () => {\n dispatch(unmountComponent(documentKey, elementKey))\n }\n }\n}\n\nexport function registerComponentHandle(\n documentKey: string,\n elementKey: string,\n componentHandle: unknown,\n): RegisterComponentHandleAction {\n return {\n type: ActionTypes.REGISTER_COMPONENT_HANDLE,\n payload: { documentKey, elementKey, componentHandle },\n }\n}\n\nfunction unregisterComponentHandle(\n documentKey: string,\n elementKey: string,\n): UnregisterComponentHandleAction {\n return { type: ActionTypes.UNREGISTER_COMPONENT_HANDLE, payload: { documentKey, elementKey } }\n}\n\nexport function registerComponentHandleEffect(\n documentKey: string,\n elementKey: string,\n componentHandle: unknown,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerComponentHandle(documentKey, elementKey, componentHandle))\n\n return () => {\n dispatch(unregisterComponentHandle(documentKey, elementKey))\n }\n }\n}\n\nexport function registerMeasurable(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): RegisterMeasurableAction {\n return { type: ActionTypes.REGISTER_MEASURABLE, payload: { documentKey, elementKey, measurable } }\n}\n\nexport function unregisterMeasurable(\n documentKey: string,\n elementKey: string,\n): UnregisterMeasurableAction {\n return { type: ActionTypes.UNREGISTER_MEASURABLE, payload: { documentKey, elementKey } }\n}\n\nexport function registerMeasurableEffect(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerMeasurable(documentKey, elementKey, measurable))\n\n return () => {\n dispatch(unregisterMeasurable(documentKey, elementKey))\n }\n }\n}\n\nexport function changeElementBoxModels(\n changedElementBoxModels: Map<string, Map<string, BoxModel | null>>,\n): ChangeElementBoxModelsAction {\n return { type: ActionTypes.CHANGE_ELEMENT_BOX_MODELS, payload: { changedElementBoxModels } }\n}\n\nexport function changeDocumentElementSize(size: Size): ChangeDocumentElementSizeAction {\n return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } }\n}\n\nexport function changeDocumentElementScrollTop(\n scrollTop: number,\n): ChangeDocumentElementScrollTopAction {\n return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP, payload: { scrollTop } }\n}\n\nexport function scrollDocumentElement(scrollTopDelta: number): ScrollDocumentElementAction {\n return { type: ActionTypes.SCROLL_DOCUMENT_ELEMENT, payload: { scrollTopDelta } }\n}\n\nexport function registerPropControllersHandle(\n documentKey: string,\n elementKey: string,\n handle: PropControllersHandle,\n): RegisterPropControllersHandleAction {\n return {\n type: ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE,\n payload: { documentKey, elementKey, handle },\n }\n}\n\nexport function unregisterPropControllersHandle(\n documentKey: string,\n elementKey: string,\n): UnregisterPropControllersHandleAction {\n return {\n type: ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE,\n payload: { documentKey, elementKey },\n }\n}\n\nexport function registerPropControllers(\n documentKey: string,\n elementKey: string,\n propControllers: Record<string, PropController>,\n): RegisterPropControllersAction {\n return {\n type: ActionTypes.REGISTER_PROP_CONTROLLERS,\n payload: { documentKey, elementKey, propControllers },\n }\n}\n\nexport function unregisterPropControllers(\n documentKey: string,\n elementKey: string,\n): UnregisterPropControllersAction {\n return { type: ActionTypes.UNREGISTER_PROP_CONTROLLERS, payload: { documentKey, elementKey } }\n}\n\nexport function messageHostPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageHostPropControllerAction<T> {\n return {\n type: ActionTypes.MESSAGE_HOST_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function messageBuilderPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageBuilderPropControllerAction<T> {\n return {\n type: ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function changeApiResource(resource: APIResource): ChangeAPIResourceAction {\n return { type: ActionTypes.CHANGE_API_RESOURCE, payload: { resource } }\n}\n\nexport function evictApiResource(id: string): EvictAPIResourceAction {\n return { type: ActionTypes.EVICT_API_RESOURCE, payload: { id } }\n}\n\nexport function setIsInBuilder(isInBuilder: boolean): SetIsInBuilderAction {\n return { type: ActionTypes.SET_IS_IN_BUILDER, payload: isInBuilder }\n}\n\nexport function handleWheel(payload: { deltaX: number; deltaY: number }): HandleWheelAction {\n return { type: ActionTypes.HANDLE_WHEEL, payload }\n}\n\nexport function handlePointerMove(payload: {\n clientX: number\n clientY: number\n}): HandlePointerMoveAction {\n return { type: ActionTypes.HANDLE_POINTER_MOVE, payload }\n}\n"],"names":[],"mappings":"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"}
@@ -29,7 +29,8 @@ const ActionTypes = {
29
29
  CHANGE_API_RESOURCE: "CHANGE_API_RESOURCE",
30
30
  EVICT_API_RESOURCE: "EVICT_API_RESOURCE",
31
31
  SET_IS_IN_BUILDER: "SET_IS_IN_BUILDER",
32
- HANDLE_WHEEL: "HANDLE_WHEEL"
32
+ HANDLE_WHEEL: "HANDLE_WHEEL",
33
+ HANDLE_POINTER_MOVE: "HANDLE_POINTER_MOVE"
33
34
  };
34
35
  function init() {
35
36
  return { type: ActionTypes.INIT };
@@ -182,5 +183,8 @@ function setIsInBuilder(isInBuilder) {
182
183
  function handleWheel(payload) {
183
184
  return { type: ActionTypes.HANDLE_WHEEL, payload };
184
185
  }
185
- export { ActionTypes as A, messageBuilderPropController as B, changeDocumentElementScrollTop as a, cleanUp as b, changeDocument as c, changeApiResource as d, evictApiResource as e, registerDocumentEffect as f, registerComponentHandleEffect as g, mountComponentEffect as h, init as i, registerComponentEffect as j, registerReactComponentEffect as k, changeElementBoxModels as l, messageHostPropController as m, changeDocumentElementSize as n, handleWheel as o, setIsInBuilder as p, registerBuilderComponent as q, registerDocument as r, scrollDocumentElement as s, unregisterBuilderComponent as t, unregisterDocument as u, unregisterMeasurable as v, registerMeasurable as w, unregisterPropControllers as x, registerPropControllers as y, registerPropControllersHandle as z };
186
+ function handlePointerMove(payload) {
187
+ return { type: ActionTypes.HANDLE_POINTER_MOVE, payload };
188
+ }
189
+ export { ActionTypes as A, registerPropControllersHandle as B, messageBuilderPropController as C, changeDocumentElementScrollTop as a, cleanUp as b, changeDocument as c, changeApiResource as d, evictApiResource as e, registerDocumentEffect as f, registerComponentHandleEffect as g, mountComponentEffect as h, init as i, registerComponentEffect as j, registerReactComponentEffect as k, changeElementBoxModels as l, messageHostPropController as m, changeDocumentElementSize as n, handleWheel as o, handlePointerMove as p, setIsInBuilder as q, registerDocument as r, scrollDocumentElement as s, registerBuilderComponent as t, unregisterDocument as u, unregisterBuilderComponent as v, unregisterMeasurable as w, registerMeasurable as x, unregisterPropControllers as y, registerPropControllers as z };
186
190
  //# sourceMappingURL=actions.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.es.js","sources":["../src/state/actions.ts"],"sourcesContent":["import type { Operation } from 'ot-json0'\n\nimport type { Document } from './modules/read-only-documents'\nimport type { ComponentType } from './modules/react-components'\nimport type { Measurable, BoxModel } from './modules/box-models'\nimport type { ThunkAction } from 'redux-thunk'\nimport { ComponentMeta } from './modules/components-meta'\nimport { PropControllerDescriptor } from '../prop-controllers'\nimport type { Size } from './react-builder-preview'\nimport type { PropControllersHandle } from './modules/prop-controller-handles'\nimport type { PropController, PropControllerMessage } from '../prop-controllers/instances'\nimport type { APIResource } from '../api/types'\nimport type { SerializedControl } from '../builder'\n\nexport const ActionTypes = {\n INIT: 'INIT',\n CLEAN_UP: 'CLEAN_UP',\n\n REGISTER_DOCUMENT: 'REGISTER_DOCUMENT',\n UNREGISTER_DOCUMENT: 'UNREGISTER_DOCUMENT',\n\n CHANGE_DOCUMENT: 'CHANGE_DOCUMENT',\n\n REGISTER_COMPONENT: 'REGISTER_COMPONENT',\n UNREGISTER_COMPONENT: 'UNREGISTER_COMPONENT',\n\n REGISTER_BUILDER_COMPONENT: 'REGISTER_BUILDER_COMPONENT',\n UNREGISTER_BUILDER_COMPONENT: 'UNREGISTER_BUILDER_COMPONENT',\n\n REGISTER_REACT_COMPONENT: 'REGISTER_REACT_COMPONENT',\n UNREGISTER_REACT_COMPONENT: 'UNREGISTER_REACT_COMPONENT',\n\n MOUNT_COMPONENT: 'MOUNT_COMPONENT',\n UNMOUNT_COMPONENT: 'UNMOUNT_COMPONENT',\n\n REGISTER_COMPONENT_HANDLE: 'REGISTER_COMPONENT_HANDLE',\n UNREGISTER_COMPONENT_HANDLE: 'UNREGISTER_COMPONENT_HANDLE',\n\n REGISTER_MEASURABLE: 'REGISTER_MEASURABLE',\n UNREGISTER_MEASURABLE: 'UNREGISTER_MEASURABLE',\n\n CHANGE_ELEMENT_BOX_MODELS: 'CHANGE_ELEMENT_BOX_MODELS',\n\n CHANGE_DOCUMENT_ELEMENT_SIZE: 'CHANGE_DOCUMENT_ELEMENT_SIZE',\n CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP: 'CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP',\n SCROLL_DOCUMENT_ELEMENT: 'SCROLL_DOCUMENT_ELEMENT',\n\n REGISTER_PROP_CONTROLLERS_HANDLE: 'REGISTER_PROP_CONTROLLERS_HANDLE',\n UNREGISTER_PROP_CONTROLLERS_HANDLE: 'UNREGISTER_PROP_CONTROLLERS_HANDLE',\n REGISTER_PROP_CONTROLLERS: 'REGISTER_PROP_CONTROLLERS',\n UNREGISTER_PROP_CONTROLLERS: 'UNREGISTER_PROP_CONTROLLERS',\n MESSAGE_HOST_PROP_CONTROLLER: 'MESSAGE_HOST_PROP_CONTROLLER',\n MESSAGE_BUILDER_PROP_CONTROLLER: 'MESSAGE_BUILDER_PROP_CONTROLLER',\n\n CHANGE_API_RESOURCE: 'CHANGE_API_RESOURCE',\n EVICT_API_RESOURCE: 'EVICT_API_RESOURCE',\n\n SET_IS_IN_BUILDER: 'SET_IS_IN_BUILDER',\n\n HANDLE_WHEEL: 'HANDLE_WHEEL',\n} as const\n\ntype InitAction = { type: typeof ActionTypes.INIT }\n\ntype CleanUpAction = { type: typeof ActionTypes.CLEAN_UP }\n\ntype RegisterDocumentAction = {\n type: typeof ActionTypes.REGISTER_DOCUMENT\n payload: { documentKey: string; document: Document }\n}\n\ntype UnregisterDocumentAction = {\n type: typeof ActionTypes.UNREGISTER_DOCUMENT\n payload: { documentKey: string }\n}\n\ntype ChangeDocumentAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT\n payload: { documentKey: string; operation: Operation }\n}\n\ntype RegisterComponentAction = {\n type: typeof ActionTypes.REGISTER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n propControllerDescriptors: Record<string, PropControllerDescriptor>\n }\n}\n\ntype UnregisterComponentAction = {\n type: typeof ActionTypes.UNREGISTER_COMPONENT\n payload: { type: string }\n}\n\ntype RegisterBuilderComponentAction = {\n type: typeof ActionTypes.REGISTER_BUILDER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n serializedControls: Record<string, SerializedControl>\n }\n}\n\ntype UnregisterBuilderComponentAction = {\n type: typeof ActionTypes.UNREGISTER_BUILDER_COMPONENT\n payload: { type: string }\n}\n\ntype RegisterReactComponentAction = {\n type: typeof ActionTypes.REGISTER_REACT_COMPONENT\n payload: { type: string; component: ComponentType }\n}\n\ntype UnregisterReactComponentAction = {\n type: typeof ActionTypes.UNREGISTER_REACT_COMPONENT\n payload: { type: string }\n}\n\ntype MountComponentAction = {\n type: typeof ActionTypes.MOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype UnmountComponentAction = {\n type: typeof ActionTypes.UNMOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterComponentHandleAction = {\n type: typeof ActionTypes.REGISTER_COMPONENT_HANDLE\n payload: { documentKey: string; elementKey: string; componentHandle: unknown }\n}\n\ntype UnregisterComponentHandleAction = {\n type: typeof ActionTypes.UNREGISTER_COMPONENT_HANDLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterMeasurableAction = {\n type: typeof ActionTypes.REGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string; measurable: Measurable }\n}\n\ntype UnregisterMeasurableAction = {\n type: typeof ActionTypes.UNREGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype ChangeElementBoxModelsAction = {\n type: typeof ActionTypes.CHANGE_ELEMENT_BOX_MODELS\n payload: { changedElementBoxModels: Map<string, Map<string, BoxModel | null>> }\n}\n\ntype ChangeDocumentElementSizeAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE\n payload: { size: Size }\n}\n\ntype ChangeDocumentElementScrollTopAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP\n payload: { scrollTop: number }\n}\n\ntype ScrollDocumentElementAction = {\n type: typeof ActionTypes.SCROLL_DOCUMENT_ELEMENT\n payload: { scrollTopDelta: number }\n}\n\ntype RegisterPropControllersHandleAction = {\n type: typeof ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE\n payload: { documentKey: string; elementKey: string; handle: PropControllersHandle }\n}\n\ntype UnregisterPropControllersHandleAction = {\n type: typeof ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterPropControllersAction = {\n type: typeof ActionTypes.REGISTER_PROP_CONTROLLERS\n payload: {\n documentKey: string\n elementKey: string\n propControllers: Record<string, PropController>\n }\n}\n\ntype UnregisterPropControllersAction = {\n type: typeof ActionTypes.UNREGISTER_PROP_CONTROLLERS\n payload: { documentKey: string; elementKey: string }\n}\n\ntype MessageHostPropControllerAction<T = PropControllerMessage> = {\n type: typeof ActionTypes.MESSAGE_HOST_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype MessageBuilderPropControllerAction<T = PropControllerMessage> = {\n type: typeof ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype ChangeAPIResourceAction = {\n type: typeof ActionTypes.CHANGE_API_RESOURCE\n payload: { resource: APIResource }\n}\n\ntype EvictAPIResourceAction = {\n type: typeof ActionTypes.EVICT_API_RESOURCE\n payload: { id: string }\n}\n\ntype SetIsInBuilderAction = {\n type: typeof ActionTypes.SET_IS_IN_BUILDER\n payload: boolean\n}\n\ntype HandleWheelAction = {\n type: typeof ActionTypes.HANDLE_WHEEL\n payload: { deltaX: number; deltaY: number }\n}\n\nexport type Action =\n | InitAction\n | CleanUpAction\n | ChangeDocumentAction\n | RegisterDocumentAction\n | UnregisterDocumentAction\n | RegisterComponentAction\n | UnregisterComponentAction\n | RegisterBuilderComponentAction\n | UnregisterBuilderComponentAction\n | RegisterReactComponentAction\n | UnregisterReactComponentAction\n | MountComponentAction\n | UnmountComponentAction\n | RegisterComponentHandleAction\n | UnregisterComponentHandleAction\n | RegisterMeasurableAction\n | UnregisterMeasurableAction\n | ChangeElementBoxModelsAction\n | ChangeDocumentElementSizeAction\n | ChangeDocumentElementScrollTopAction\n | ScrollDocumentElementAction\n | RegisterPropControllersHandleAction\n | UnregisterPropControllersHandleAction\n | RegisterPropControllersAction\n | UnregisterPropControllersAction\n | MessageHostPropControllerAction\n | MessageBuilderPropControllerAction\n | ChangeAPIResourceAction\n | EvictAPIResourceAction\n | SetIsInBuilderAction\n | HandleWheelAction\n\nexport function init(): InitAction {\n return { type: ActionTypes.INIT }\n}\n\nexport function cleanUp(): CleanUpAction {\n return { type: ActionTypes.CLEAN_UP }\n}\n\nexport function registerDocument(document: Document): RegisterDocumentAction {\n return { type: ActionTypes.REGISTER_DOCUMENT, payload: { documentKey: document.key, document } }\n}\n\nexport function unregisterDocument(documentKey: string): UnregisterDocumentAction {\n return { type: ActionTypes.UNREGISTER_DOCUMENT, payload: { documentKey } }\n}\n\nexport function registerDocumentEffect(\n document: Document,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerDocument(document))\n\n return () => {\n dispatch(unregisterDocument(document.key))\n }\n }\n}\n\nexport function changeDocument(documentKey: string, operation: Operation): ChangeDocumentAction {\n return { type: ActionTypes.CHANGE_DOCUMENT, payload: { documentKey, operation } }\n}\n\nexport function registerComponent(\n type: string,\n meta: ComponentMeta,\n propControllerDescriptors: Record<string, PropControllerDescriptor>,\n): RegisterComponentAction {\n return {\n type: ActionTypes.REGISTER_COMPONENT,\n payload: { type, meta, propControllerDescriptors },\n }\n}\n\nexport function unregisterComponent(type: string): UnregisterComponentAction {\n return { type: ActionTypes.UNREGISTER_COMPONENT, payload: { type } }\n}\n\nexport function registerComponentEffect(\n type: string,\n meta: ComponentMeta,\n propControllerDescriptors: Record<string, PropControllerDescriptor>,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerComponent(type, meta, propControllerDescriptors))\n\n return () => {\n dispatch(unregisterComponent(type))\n }\n }\n}\n\nexport function registerBuilderComponent(\n type: string,\n meta: ComponentMeta,\n serializedControls: Record<string, SerializedControl>,\n): RegisterBuilderComponentAction {\n return {\n type: ActionTypes.REGISTER_BUILDER_COMPONENT,\n payload: { type, meta, serializedControls },\n }\n}\n\nexport function unregisterBuilderComponent(type: string): UnregisterBuilderComponentAction {\n return { type: ActionTypes.UNREGISTER_BUILDER_COMPONENT, payload: { type } }\n}\n\nfunction registerReactComponent(\n type: string,\n component: ComponentType,\n): RegisterReactComponentAction {\n return { type: ActionTypes.REGISTER_REACT_COMPONENT, payload: { type, component } }\n}\n\nfunction unregisterReactComponent(type: string): UnregisterReactComponentAction {\n return { type: ActionTypes.UNREGISTER_REACT_COMPONENT, payload: { type } }\n}\n\nexport function registerReactComponentEffect(\n type: string,\n component: ComponentType,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerReactComponent(type, component))\n\n return () => {\n dispatch(unregisterReactComponent(type))\n }\n }\n}\n\nexport function mountComponent(documentKey: string, elementKey: string): MountComponentAction {\n return { type: ActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function unmountComponent(documentKey: string, elementKey: string): UnmountComponentAction {\n return { type: ActionTypes.UNMOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function mountComponentEffect(\n documentKey: string,\n elementKey: string,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(mountComponent(documentKey, elementKey))\n\n return () => {\n dispatch(unmountComponent(documentKey, elementKey))\n }\n }\n}\n\nexport function registerComponentHandle(\n documentKey: string,\n elementKey: string,\n componentHandle: unknown,\n): RegisterComponentHandleAction {\n return {\n type: ActionTypes.REGISTER_COMPONENT_HANDLE,\n payload: { documentKey, elementKey, componentHandle },\n }\n}\n\nfunction unregisterComponentHandle(\n documentKey: string,\n elementKey: string,\n): UnregisterComponentHandleAction {\n return { type: ActionTypes.UNREGISTER_COMPONENT_HANDLE, payload: { documentKey, elementKey } }\n}\n\nexport function registerComponentHandleEffect(\n documentKey: string,\n elementKey: string,\n componentHandle: unknown,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerComponentHandle(documentKey, elementKey, componentHandle))\n\n return () => {\n dispatch(unregisterComponentHandle(documentKey, elementKey))\n }\n }\n}\n\nexport function registerMeasurable(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): RegisterMeasurableAction {\n return { type: ActionTypes.REGISTER_MEASURABLE, payload: { documentKey, elementKey, measurable } }\n}\n\nexport function unregisterMeasurable(\n documentKey: string,\n elementKey: string,\n): UnregisterMeasurableAction {\n return { type: ActionTypes.UNREGISTER_MEASURABLE, payload: { documentKey, elementKey } }\n}\n\nexport function registerMeasurableEffect(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerMeasurable(documentKey, elementKey, measurable))\n\n return () => {\n dispatch(unregisterMeasurable(documentKey, elementKey))\n }\n }\n}\n\nexport function changeElementBoxModels(\n changedElementBoxModels: Map<string, Map<string, BoxModel | null>>,\n): ChangeElementBoxModelsAction {\n return { type: ActionTypes.CHANGE_ELEMENT_BOX_MODELS, payload: { changedElementBoxModels } }\n}\n\nexport function changeDocumentElementSize(size: Size): ChangeDocumentElementSizeAction {\n return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } }\n}\n\nexport function changeDocumentElementScrollTop(\n scrollTop: number,\n): ChangeDocumentElementScrollTopAction {\n return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP, payload: { scrollTop } }\n}\n\nexport function scrollDocumentElement(scrollTopDelta: number): ScrollDocumentElementAction {\n return { type: ActionTypes.SCROLL_DOCUMENT_ELEMENT, payload: { scrollTopDelta } }\n}\n\nexport function registerPropControllersHandle(\n documentKey: string,\n elementKey: string,\n handle: PropControllersHandle,\n): RegisterPropControllersHandleAction {\n return {\n type: ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE,\n payload: { documentKey, elementKey, handle },\n }\n}\n\nexport function unregisterPropControllersHandle(\n documentKey: string,\n elementKey: string,\n): UnregisterPropControllersHandleAction {\n return {\n type: ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE,\n payload: { documentKey, elementKey },\n }\n}\n\nexport function registerPropControllers(\n documentKey: string,\n elementKey: string,\n propControllers: Record<string, PropController>,\n): RegisterPropControllersAction {\n return {\n type: ActionTypes.REGISTER_PROP_CONTROLLERS,\n payload: { documentKey, elementKey, propControllers },\n }\n}\n\nexport function unregisterPropControllers(\n documentKey: string,\n elementKey: string,\n): UnregisterPropControllersAction {\n return { type: ActionTypes.UNREGISTER_PROP_CONTROLLERS, payload: { documentKey, elementKey } }\n}\n\nexport function messageHostPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageHostPropControllerAction<T> {\n return {\n type: ActionTypes.MESSAGE_HOST_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function messageBuilderPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageBuilderPropControllerAction<T> {\n return {\n type: ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function changeApiResource(resource: APIResource): ChangeAPIResourceAction {\n return { type: ActionTypes.CHANGE_API_RESOURCE, payload: { resource } }\n}\n\nexport function evictApiResource(id: string): EvictAPIResourceAction {\n return { type: ActionTypes.EVICT_API_RESOURCE, payload: { id } }\n}\n\nexport function setIsInBuilder(isInBuilder: boolean): SetIsInBuilderAction {\n return { type: ActionTypes.SET_IS_IN_BUILDER, payload: isInBuilder }\n}\n\nexport function handleWheel(payload: { deltaX: number; deltaY: number }): HandleWheelAction {\n return { type: ActionTypes.HANDLE_WHEEL, payload }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.es.js","sources":["../src/state/actions.ts"],"sourcesContent":["import type { Operation } from 'ot-json0'\n\nimport type { Document } from './modules/read-only-documents'\nimport type { ComponentType } from './modules/react-components'\nimport type { Measurable, BoxModel } from './modules/box-models'\nimport type { ThunkAction } from 'redux-thunk'\nimport { ComponentMeta } from './modules/components-meta'\nimport { PropControllerDescriptor } from '../prop-controllers'\nimport type { Size } from './react-builder-preview'\nimport type { PropControllersHandle } from './modules/prop-controller-handles'\nimport type { PropController, PropControllerMessage } from '../prop-controllers/instances'\nimport type { APIResource } from '../api/types'\nimport type { SerializedControl } from '../builder'\n\nexport const ActionTypes = {\n INIT: 'INIT',\n CLEAN_UP: 'CLEAN_UP',\n\n REGISTER_DOCUMENT: 'REGISTER_DOCUMENT',\n UNREGISTER_DOCUMENT: 'UNREGISTER_DOCUMENT',\n\n CHANGE_DOCUMENT: 'CHANGE_DOCUMENT',\n\n REGISTER_COMPONENT: 'REGISTER_COMPONENT',\n UNREGISTER_COMPONENT: 'UNREGISTER_COMPONENT',\n\n REGISTER_BUILDER_COMPONENT: 'REGISTER_BUILDER_COMPONENT',\n UNREGISTER_BUILDER_COMPONENT: 'UNREGISTER_BUILDER_COMPONENT',\n\n REGISTER_REACT_COMPONENT: 'REGISTER_REACT_COMPONENT',\n UNREGISTER_REACT_COMPONENT: 'UNREGISTER_REACT_COMPONENT',\n\n MOUNT_COMPONENT: 'MOUNT_COMPONENT',\n UNMOUNT_COMPONENT: 'UNMOUNT_COMPONENT',\n\n REGISTER_COMPONENT_HANDLE: 'REGISTER_COMPONENT_HANDLE',\n UNREGISTER_COMPONENT_HANDLE: 'UNREGISTER_COMPONENT_HANDLE',\n\n REGISTER_MEASURABLE: 'REGISTER_MEASURABLE',\n UNREGISTER_MEASURABLE: 'UNREGISTER_MEASURABLE',\n\n CHANGE_ELEMENT_BOX_MODELS: 'CHANGE_ELEMENT_BOX_MODELS',\n\n CHANGE_DOCUMENT_ELEMENT_SIZE: 'CHANGE_DOCUMENT_ELEMENT_SIZE',\n CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP: 'CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP',\n SCROLL_DOCUMENT_ELEMENT: 'SCROLL_DOCUMENT_ELEMENT',\n\n REGISTER_PROP_CONTROLLERS_HANDLE: 'REGISTER_PROP_CONTROLLERS_HANDLE',\n UNREGISTER_PROP_CONTROLLERS_HANDLE: 'UNREGISTER_PROP_CONTROLLERS_HANDLE',\n REGISTER_PROP_CONTROLLERS: 'REGISTER_PROP_CONTROLLERS',\n UNREGISTER_PROP_CONTROLLERS: 'UNREGISTER_PROP_CONTROLLERS',\n MESSAGE_HOST_PROP_CONTROLLER: 'MESSAGE_HOST_PROP_CONTROLLER',\n MESSAGE_BUILDER_PROP_CONTROLLER: 'MESSAGE_BUILDER_PROP_CONTROLLER',\n\n CHANGE_API_RESOURCE: 'CHANGE_API_RESOURCE',\n EVICT_API_RESOURCE: 'EVICT_API_RESOURCE',\n\n SET_IS_IN_BUILDER: 'SET_IS_IN_BUILDER',\n\n HANDLE_WHEEL: 'HANDLE_WHEEL',\n HANDLE_POINTER_MOVE: 'HANDLE_POINTER_MOVE',\n} as const\n\ntype InitAction = { type: typeof ActionTypes.INIT }\n\ntype CleanUpAction = { type: typeof ActionTypes.CLEAN_UP }\n\ntype RegisterDocumentAction = {\n type: typeof ActionTypes.REGISTER_DOCUMENT\n payload: { documentKey: string; document: Document }\n}\n\ntype UnregisterDocumentAction = {\n type: typeof ActionTypes.UNREGISTER_DOCUMENT\n payload: { documentKey: string }\n}\n\ntype ChangeDocumentAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT\n payload: { documentKey: string; operation: Operation }\n}\n\ntype RegisterComponentAction = {\n type: typeof ActionTypes.REGISTER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n propControllerDescriptors: Record<string, PropControllerDescriptor>\n }\n}\n\ntype UnregisterComponentAction = {\n type: typeof ActionTypes.UNREGISTER_COMPONENT\n payload: { type: string }\n}\n\ntype RegisterBuilderComponentAction = {\n type: typeof ActionTypes.REGISTER_BUILDER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n serializedControls: Record<string, SerializedControl>\n }\n}\n\ntype UnregisterBuilderComponentAction = {\n type: typeof ActionTypes.UNREGISTER_BUILDER_COMPONENT\n payload: { type: string }\n}\n\ntype RegisterReactComponentAction = {\n type: typeof ActionTypes.REGISTER_REACT_COMPONENT\n payload: { type: string; component: ComponentType }\n}\n\ntype UnregisterReactComponentAction = {\n type: typeof ActionTypes.UNREGISTER_REACT_COMPONENT\n payload: { type: string }\n}\n\ntype MountComponentAction = {\n type: typeof ActionTypes.MOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype UnmountComponentAction = {\n type: typeof ActionTypes.UNMOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterComponentHandleAction = {\n type: typeof ActionTypes.REGISTER_COMPONENT_HANDLE\n payload: { documentKey: string; elementKey: string; componentHandle: unknown }\n}\n\ntype UnregisterComponentHandleAction = {\n type: typeof ActionTypes.UNREGISTER_COMPONENT_HANDLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterMeasurableAction = {\n type: typeof ActionTypes.REGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string; measurable: Measurable }\n}\n\ntype UnregisterMeasurableAction = {\n type: typeof ActionTypes.UNREGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype ChangeElementBoxModelsAction = {\n type: typeof ActionTypes.CHANGE_ELEMENT_BOX_MODELS\n payload: { changedElementBoxModels: Map<string, Map<string, BoxModel | null>> }\n}\n\ntype ChangeDocumentElementSizeAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE\n payload: { size: Size }\n}\n\ntype ChangeDocumentElementScrollTopAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP\n payload: { scrollTop: number }\n}\n\ntype ScrollDocumentElementAction = {\n type: typeof ActionTypes.SCROLL_DOCUMENT_ELEMENT\n payload: { scrollTopDelta: number }\n}\n\ntype RegisterPropControllersHandleAction = {\n type: typeof ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE\n payload: { documentKey: string; elementKey: string; handle: PropControllersHandle }\n}\n\ntype UnregisterPropControllersHandleAction = {\n type: typeof ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterPropControllersAction = {\n type: typeof ActionTypes.REGISTER_PROP_CONTROLLERS\n payload: {\n documentKey: string\n elementKey: string\n propControllers: Record<string, PropController>\n }\n}\n\ntype UnregisterPropControllersAction = {\n type: typeof ActionTypes.UNREGISTER_PROP_CONTROLLERS\n payload: { documentKey: string; elementKey: string }\n}\n\ntype MessageHostPropControllerAction<T = PropControllerMessage> = {\n type: typeof ActionTypes.MESSAGE_HOST_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype MessageBuilderPropControllerAction<T = PropControllerMessage> = {\n type: typeof ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype ChangeAPIResourceAction = {\n type: typeof ActionTypes.CHANGE_API_RESOURCE\n payload: { resource: APIResource }\n}\n\ntype EvictAPIResourceAction = {\n type: typeof ActionTypes.EVICT_API_RESOURCE\n payload: { id: string }\n}\n\ntype SetIsInBuilderAction = {\n type: typeof ActionTypes.SET_IS_IN_BUILDER\n payload: boolean\n}\n\ntype HandleWheelAction = {\n type: typeof ActionTypes.HANDLE_WHEEL\n payload: { deltaX: number; deltaY: number }\n}\n\ntype HandlePointerMoveAction = {\n type: typeof ActionTypes.HANDLE_POINTER_MOVE\n payload: { clientX: number; clientY: number }\n}\n\nexport type Action =\n | InitAction\n | CleanUpAction\n | ChangeDocumentAction\n | RegisterDocumentAction\n | UnregisterDocumentAction\n | RegisterComponentAction\n | UnregisterComponentAction\n | RegisterBuilderComponentAction\n | UnregisterBuilderComponentAction\n | RegisterReactComponentAction\n | UnregisterReactComponentAction\n | MountComponentAction\n | UnmountComponentAction\n | RegisterComponentHandleAction\n | UnregisterComponentHandleAction\n | RegisterMeasurableAction\n | UnregisterMeasurableAction\n | ChangeElementBoxModelsAction\n | ChangeDocumentElementSizeAction\n | ChangeDocumentElementScrollTopAction\n | ScrollDocumentElementAction\n | RegisterPropControllersHandleAction\n | UnregisterPropControllersHandleAction\n | RegisterPropControllersAction\n | UnregisterPropControllersAction\n | MessageHostPropControllerAction\n | MessageBuilderPropControllerAction\n | ChangeAPIResourceAction\n | EvictAPIResourceAction\n | SetIsInBuilderAction\n | HandleWheelAction\n | HandlePointerMoveAction\n\nexport function init(): InitAction {\n return { type: ActionTypes.INIT }\n}\n\nexport function cleanUp(): CleanUpAction {\n return { type: ActionTypes.CLEAN_UP }\n}\n\nexport function registerDocument(document: Document): RegisterDocumentAction {\n return { type: ActionTypes.REGISTER_DOCUMENT, payload: { documentKey: document.key, document } }\n}\n\nexport function unregisterDocument(documentKey: string): UnregisterDocumentAction {\n return { type: ActionTypes.UNREGISTER_DOCUMENT, payload: { documentKey } }\n}\n\nexport function registerDocumentEffect(\n document: Document,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerDocument(document))\n\n return () => {\n dispatch(unregisterDocument(document.key))\n }\n }\n}\n\nexport function changeDocument(documentKey: string, operation: Operation): ChangeDocumentAction {\n return { type: ActionTypes.CHANGE_DOCUMENT, payload: { documentKey, operation } }\n}\n\nexport function registerComponent(\n type: string,\n meta: ComponentMeta,\n propControllerDescriptors: Record<string, PropControllerDescriptor>,\n): RegisterComponentAction {\n return {\n type: ActionTypes.REGISTER_COMPONENT,\n payload: { type, meta, propControllerDescriptors },\n }\n}\n\nexport function unregisterComponent(type: string): UnregisterComponentAction {\n return { type: ActionTypes.UNREGISTER_COMPONENT, payload: { type } }\n}\n\nexport function registerComponentEffect(\n type: string,\n meta: ComponentMeta,\n propControllerDescriptors: Record<string, PropControllerDescriptor>,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerComponent(type, meta, propControllerDescriptors))\n\n return () => {\n dispatch(unregisterComponent(type))\n }\n }\n}\n\nexport function registerBuilderComponent(\n type: string,\n meta: ComponentMeta,\n serializedControls: Record<string, SerializedControl>,\n): RegisterBuilderComponentAction {\n return {\n type: ActionTypes.REGISTER_BUILDER_COMPONENT,\n payload: { type, meta, serializedControls },\n }\n}\n\nexport function unregisterBuilderComponent(type: string): UnregisterBuilderComponentAction {\n return { type: ActionTypes.UNREGISTER_BUILDER_COMPONENT, payload: { type } }\n}\n\nfunction registerReactComponent(\n type: string,\n component: ComponentType,\n): RegisterReactComponentAction {\n return { type: ActionTypes.REGISTER_REACT_COMPONENT, payload: { type, component } }\n}\n\nfunction unregisterReactComponent(type: string): UnregisterReactComponentAction {\n return { type: ActionTypes.UNREGISTER_REACT_COMPONENT, payload: { type } }\n}\n\nexport function registerReactComponentEffect(\n type: string,\n component: ComponentType,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerReactComponent(type, component))\n\n return () => {\n dispatch(unregisterReactComponent(type))\n }\n }\n}\n\nexport function mountComponent(documentKey: string, elementKey: string): MountComponentAction {\n return { type: ActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function unmountComponent(documentKey: string, elementKey: string): UnmountComponentAction {\n return { type: ActionTypes.UNMOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function mountComponentEffect(\n documentKey: string,\n elementKey: string,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(mountComponent(documentKey, elementKey))\n\n return () => {\n dispatch(unmountComponent(documentKey, elementKey))\n }\n }\n}\n\nexport function registerComponentHandle(\n documentKey: string,\n elementKey: string,\n componentHandle: unknown,\n): RegisterComponentHandleAction {\n return {\n type: ActionTypes.REGISTER_COMPONENT_HANDLE,\n payload: { documentKey, elementKey, componentHandle },\n }\n}\n\nfunction unregisterComponentHandle(\n documentKey: string,\n elementKey: string,\n): UnregisterComponentHandleAction {\n return { type: ActionTypes.UNREGISTER_COMPONENT_HANDLE, payload: { documentKey, elementKey } }\n}\n\nexport function registerComponentHandleEffect(\n documentKey: string,\n elementKey: string,\n componentHandle: unknown,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerComponentHandle(documentKey, elementKey, componentHandle))\n\n return () => {\n dispatch(unregisterComponentHandle(documentKey, elementKey))\n }\n }\n}\n\nexport function registerMeasurable(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): RegisterMeasurableAction {\n return { type: ActionTypes.REGISTER_MEASURABLE, payload: { documentKey, elementKey, measurable } }\n}\n\nexport function unregisterMeasurable(\n documentKey: string,\n elementKey: string,\n): UnregisterMeasurableAction {\n return { type: ActionTypes.UNREGISTER_MEASURABLE, payload: { documentKey, elementKey } }\n}\n\nexport function registerMeasurableEffect(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerMeasurable(documentKey, elementKey, measurable))\n\n return () => {\n dispatch(unregisterMeasurable(documentKey, elementKey))\n }\n }\n}\n\nexport function changeElementBoxModels(\n changedElementBoxModels: Map<string, Map<string, BoxModel | null>>,\n): ChangeElementBoxModelsAction {\n return { type: ActionTypes.CHANGE_ELEMENT_BOX_MODELS, payload: { changedElementBoxModels } }\n}\n\nexport function changeDocumentElementSize(size: Size): ChangeDocumentElementSizeAction {\n return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } }\n}\n\nexport function changeDocumentElementScrollTop(\n scrollTop: number,\n): ChangeDocumentElementScrollTopAction {\n return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP, payload: { scrollTop } }\n}\n\nexport function scrollDocumentElement(scrollTopDelta: number): ScrollDocumentElementAction {\n return { type: ActionTypes.SCROLL_DOCUMENT_ELEMENT, payload: { scrollTopDelta } }\n}\n\nexport function registerPropControllersHandle(\n documentKey: string,\n elementKey: string,\n handle: PropControllersHandle,\n): RegisterPropControllersHandleAction {\n return {\n type: ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE,\n payload: { documentKey, elementKey, handle },\n }\n}\n\nexport function unregisterPropControllersHandle(\n documentKey: string,\n elementKey: string,\n): UnregisterPropControllersHandleAction {\n return {\n type: ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE,\n payload: { documentKey, elementKey },\n }\n}\n\nexport function registerPropControllers(\n documentKey: string,\n elementKey: string,\n propControllers: Record<string, PropController>,\n): RegisterPropControllersAction {\n return {\n type: ActionTypes.REGISTER_PROP_CONTROLLERS,\n payload: { documentKey, elementKey, propControllers },\n }\n}\n\nexport function unregisterPropControllers(\n documentKey: string,\n elementKey: string,\n): UnregisterPropControllersAction {\n return { type: ActionTypes.UNREGISTER_PROP_CONTROLLERS, payload: { documentKey, elementKey } }\n}\n\nexport function messageHostPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageHostPropControllerAction<T> {\n return {\n type: ActionTypes.MESSAGE_HOST_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function messageBuilderPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageBuilderPropControllerAction<T> {\n return {\n type: ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function changeApiResource(resource: APIResource): ChangeAPIResourceAction {\n return { type: ActionTypes.CHANGE_API_RESOURCE, payload: { resource } }\n}\n\nexport function evictApiResource(id: string): EvictAPIResourceAction {\n return { type: ActionTypes.EVICT_API_RESOURCE, payload: { id } }\n}\n\nexport function setIsInBuilder(isInBuilder: boolean): SetIsInBuilderAction {\n return { type: ActionTypes.SET_IS_IN_BUILDER, payload: isInBuilder }\n}\n\nexport function handleWheel(payload: { deltaX: number; deltaY: number }): HandleWheelAction {\n return { type: ActionTypes.HANDLE_WHEEL, payload }\n}\n\nexport function handlePointerMove(payload: {\n clientX: number\n clientY: number\n}): HandlePointerMoveAction {\n return { type: ActionTypes.HANDLE_POINTER_MOVE, payload }\n}\n"],"names":[],"mappings":"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"}
package/dist/index.cjs.js CHANGED
@@ -1007,7 +1007,7 @@ class Document$1 extends NextDocument__default["default"] {
1007
1007
  });
1008
1008
  }
1009
1009
  }
1010
- const version = "0.2.18";
1010
+ const version = "0.2.19";
1011
1011
  function isErrorWithMessage(error) {
1012
1012
  return typeof error === "object" && error !== null && "message" in error && typeof error.message === "string";
1013
1013
  }
package/dist/index.es.js CHANGED
@@ -972,7 +972,7 @@ class Document$1 extends NextDocument {
972
972
  });
973
973
  }
974
974
  }
975
- const version = "0.2.18";
975
+ const version = "0.2.19";
976
976
  function isErrorWithMessage(error) {
977
977
  return typeof error === "object" && error !== null && "message" in error && typeof error.message === "string";
978
978
  }
@@ -219,11 +219,22 @@ function lockDocumentScroll() {
219
219
  }
220
220
  };
221
221
  }
222
+ function startHandlingPointerMoveEvent() {
223
+ return (dispatch) => {
224
+ window.document.documentElement.addEventListener("pointermove", handlePointerMoveEvent);
225
+ return () => {
226
+ window.document.documentElement.removeEventListener("pointermove", handlePointerMoveEvent);
227
+ };
228
+ function handlePointerMoveEvent({ clientX, clientY }) {
229
+ dispatch(actions.handlePointerMove({ clientX, clientY }));
230
+ }
231
+ };
232
+ }
222
233
  function startHandlingFocusEvents() {
223
234
  window.addEventListener("focusin", handleFocusIn);
224
235
  window.addEventListener("focusout", handleFocusOut);
225
236
  return () => {
226
- window.addEventListener("focusin", handleFocusIn);
237
+ window.removeEventListener("focusin", handleFocusIn);
227
238
  window.removeEventListener("focusout", handleFocusOut);
228
239
  };
229
240
  function handleFocusIn(event) {
@@ -260,12 +271,14 @@ function initialize() {
260
271
  const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement());
261
272
  const stopHandlingFocusEvent = startHandlingFocusEvents();
262
273
  const unlockDocumentScroll = dispatch(lockDocumentScroll());
274
+ const stopHandlingPointerMoveEvent = dispatch(startHandlingPointerMoveEvent());
263
275
  dispatch(actions.setIsInBuilder(true));
264
276
  return () => {
265
277
  stopMeasuringElements();
266
278
  stopMeasuringDocumentElement();
267
279
  stopHandlingFocusEvent();
268
280
  unlockDocumentScroll();
281
+ stopHandlingPointerMoveEvent();
269
282
  dispatch(actions.setIsInBuilder(false));
270
283
  };
271
284
  };
@@ -312,6 +325,7 @@ function messageChannelMiddleware() {
312
325
  case actions.ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:
313
326
  case actions.ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:
314
327
  case actions.ActionTypes.HANDLE_WHEEL:
328
+ case actions.ActionTypes.HANDLE_POINTER_MOVE:
315
329
  messageChannel.port1.postMessage(action);
316
330
  break;
317
331
  case actions.ActionTypes.REGISTER_COMPONENT: {
@@ -1 +1 @@
1
- {"version":3,"file":"react-builder-preview.cjs.js","sources":["../src/state/modules/read-write-documents.ts","../src/state/react-builder-preview.ts"],"sourcesContent":["import { Operation } from 'ot-json0'\nimport { removeIn, setIn } from 'immutable'\n\nimport * as ReadOnlyDocuments from './read-only-documents'\nimport { Action, ActionTypes } from '../actions'\n\nexport type { Document, Element, ElementData, ElementReference } from './read-only-documents'\nexport { isElementReference } from './read-only-documents'\nexport type { Operation }\n\nfunction apply(data: ReadOnlyDocuments.Element, operation: Operation): ReadOnlyDocuments.Element {\n let applied = data\n\n operation.forEach(component => {\n // @ts-expect-error: `ld` isn't in all possible values of `component`\n if (component.ld != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `od` isn't in all possible values of `component`\n if (component.od != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `li` isn't in all possible values of `component`\n if (component.li != null) applied = setIn(applied, component.p, component.li)\n\n // @ts-expect-error: `oi` isn't in all possible values of `component`\n if (component.oi != null) applied = setIn(applied, component.p, component.oi)\n })\n\n return applied\n}\n\nexport type State = ReadOnlyDocuments.State\n\nexport function getInitialState({\n rootElements,\n}: {\n rootElements?: Map<string, ReadOnlyDocuments.Element>\n} = {}): State {\n return ReadOnlyDocuments.getInitialState({ rootElements })\n}\n\nfunction getReadOnlyDocumentsStateSlice(state: State): ReadOnlyDocuments.State {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): ReadOnlyDocuments.Document | null {\n return ReadOnlyDocuments.getDocument(getReadOnlyDocumentsStateSlice(state), documentKey)\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n const nextState = ReadOnlyDocuments.reducer(state, action)\n\n switch (action.type) {\n case ActionTypes.CHANGE_DOCUMENT: {\n const currentRootElement = getDocument(nextState, action.payload.documentKey)?.rootElement\n\n if (currentRootElement == null) return nextState\n\n const nextRootElement = apply(currentRootElement, action.payload.operation)\n\n return currentRootElement === nextRootElement\n ? nextState\n : new Map(nextState).set(\n action.payload.documentKey,\n ReadOnlyDocuments.createDocument(action.payload.documentKey, nextRootElement),\n )\n }\n\n default:\n return nextState\n }\n}\n","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'\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 ReactPage from './react-page'\nimport {\n Action,\n changeDocumentElementSize,\n changeElementBoxModels,\n messageBuilderPropController,\n registerBuilderComponent,\n registerMeasurable,\n registerPropControllers,\n registerPropControllersHandle,\n registerDocument,\n registerComponentHandle,\n unregisterBuilderComponent,\n unregisterMeasurable,\n unregisterPropControllers,\n setIsInBuilder,\n handleWheel,\n} from './actions'\nimport { ActionTypes } from './actions'\nimport { createPropController, PropController } from '../prop-controllers/instances'\nimport { ApolloClient, NormalizedCacheObject } from '@apollo/client'\nimport { Fragments } from '../api'\nimport { serializeControls } from '../builder'\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\nconst 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})\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 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 startHandlingFocusEvents(): () => void {\n window.addEventListener('focusin', handleFocusIn)\n window.addEventListener('focusout', handleFocusOut)\n\n return () => {\n window.addEventListener('focusin', handleFocusIn)\n window.removeEventListener('focusout', handleFocusOut)\n }\n\n function handleFocusIn(event: FocusEvent) {\n if (!(event.target instanceof window.HTMLElement) || !event.target.isContentEditable) {\n window.parent.focus()\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (\n !(event.relatedTarget instanceof window.HTMLElement) ||\n !event.relatedTarget.isContentEditable\n ) {\n window.parent.focus()\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\nexport function initialize(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const stopMeasuringElements = dispatch(startMeasuringElements())\n const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement())\n const stopHandlingFocusEvent = startHandlingFocusEvents()\n const unlockDocumentScroll = dispatch(lockDocumentScroll())\n dispatch(setIsInBuilder(true))\n\n return () => {\n stopMeasuringElements()\n stopMeasuringDocumentElement()\n stopHandlingFocusEvent()\n unlockDocumentScroll()\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(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n const messageChannel = new MessageChannel()\n let cleanUp = () => {}\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 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 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.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\nfunction 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\nif (import.meta.vitest) {\n const { describe, it, fn, expect } = import.meta.vitest\n\n describe('propControllerHandlesMiddleware', () => {\n it('registers prop controllers for element data', () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { key: 'elementKey', type: 'type', props: {} }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const handle = { setPropControllers: fn() }\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(handle.setPropControllers).toHaveBeenCalled()\n })\n\n it(\"doesn't register prop controllers for element references\", () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { type: 'reference', key: 'elementKey', value: 'value' }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const handle = { setPropControllers: fn() }\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(handle.setPropControllers).not.toHaveBeenCalled()\n })\n })\n}\n\nfunction apolloClientCacheSyncMiddleware(\n client: ApolloClient<NormalizedCacheObject>,\n): Middleware<Dispatch, State, Dispatch> {\n return () => (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.CHANGE_API_RESOURCE: {\n const { resource } = action.payload\n\n client.cache.writeFragment({\n id: client.cache.identify(resource),\n fragment: Fragments[resource.__typename],\n data: resource,\n })\n\n break\n }\n\n case ActionTypes.EVICT_API_RESOURCE:\n client.cache.evict({ id: action.payload.id })\n break\n }\n\n return next(action)\n }\n }\n}\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n preloadedState,\n client,\n}: {\n preloadedState?: PreloadedState<State>\n client: ApolloClient<NormalizedCacheObject>\n}): Store {\n return createStore(\n reducer,\n preloadedState,\n applyMiddleware(\n thunk,\n measureBoxModelsMiddleware(),\n messageChannelMiddleware(),\n propControllerHandlesMiddleware(),\n apolloClientCacheSyncMiddleware(client),\n ),\n )\n}\n"],"names":["removeIn","setIn","ReadOnlyDocuments.getInitialState","ReadOnlyDocuments.getDocument","ReadOnlyDocuments.reducer","ActionTypes","ReadOnlyDocuments.createDocument","combineReducers","Documents.reducer","ReactComponents.reducer","BoxModels.reducer","ComponentsMeta.reducer","PropControllers.reducer","PropControllerHandles.reducer","IsInBuilder.reducer","BoxModels.getMeasurables","BoxModels.getBoxModels","BoxModels.getBoxModel","ComponentsMeta.getComponentsMeta","PropControllers.getComponentPropControllerDescriptors","BoxModels.measure","deepEqual","changeElementBoxModels","handleWheel","changeDocumentElementSize","setIsInBuilder","BoxModels.isMeasurable","registerMeasurable","unregisterMeasurable","serializeControls","registerBuilderComponent","unregisterBuilderComponent","ReactPage.getElementPropControllerDescriptors","createPropController","messageBuilderPropController","registerPropControllers","ReactPage.getElement","ReactPage.isElementReference","PropControllerHandles.isPropControllersHandle","registerPropControllersHandle","PropControllerHandles.getPropControllersHandle","unregisterPropControllers","PropControllerHandles.getPropController","Fragments","createStore","applyMiddleware","thunk"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,eAAe,MAAiC,WAAiD;AAC/F,MAAI,UAAU;AAEd,YAAU,QAAQ,CAAa,cAAA;AAE7B,QAAI,UAAU,MAAM;AAAgB,gBAAAA,UAAAA,SAAS,SAAS,UAAU,CAAC;AAGjE,QAAI,UAAU,MAAM;AAAgB,gBAAAA,UAAAA,SAAS,SAAS,UAAU,CAAC;AAGjE,QAAI,UAAU,MAAM;AAAM,gBAAUC,UAAM,MAAA,SAAS,UAAU,GAAG,UAAU,EAAE;AAG5E,QAAI,UAAU,MAAM;AAAM,gBAAUA,UAAM,MAAA,SAAS,UAAU,GAAG,UAAU,EAAE;AAAA,EAAA,CAC7E;AAEM,SAAA;AACT;AAIgC,yBAAA;AAAA,EAC9B;AAAA,IAGE,IAAW;AACb,SAAOC,UAAkB,gBAAgB,EAAE,aAAA,CAAc;AAC3D;AAEA,wCAAwC,OAAuC;AACtE,SAAA;AACT;AAEO,qBAAqB,OAAc,aAAwD;AAChG,SAAOC,UAAkB,cAAY,+BAA+B,KAAK,GAAG,WAAW;AACzF;AAEwB,mBAAA,QAAe,gBAAgB,GAAG,QAAuB;;AAC/E,QAAM,YAAYC,UAAAA,QAA0B,OAAO,MAAM;AAEzD,UAAQ,OAAO;AAAA,SACRC,QAAAA,YAAY,iBAAiB;AAChC,YAAM,qBAAqB,kBAAY,WAAW,OAAO,QAAQ,WAAW,MAAjD,mBAAoD;AAE/E,UAAI,sBAAsB;AAAa,eAAA;AAEvC,YAAM,kBAAkB,MAAM,oBAAoB,OAAO,QAAQ,SAAS;AAE1E,aAAO,uBAAuB,kBAC1B,YACA,IAAI,IAAI,SAAS,EAAE,IACjB,OAAO,QAAQ,aACfC,UAAAA,eAAiC,OAAO,QAAQ,aAAa,eAAe,CAC9E;AAAA,IACN;AAAA;AAGS,aAAA;AAAA;AAEb;ACtBA,MAAM,UAAUC,MAAAA,gBAAgB;AAAA,EAC9B,WAAWC;AAAAA,EACX,iBAAiBC,UAAgB;AAAA,EACjC,WAAWC,UAAU;AAAA,EACrB,gBAAgBC,UAAe;AAAA,EAC/B,iBAAiBC,UAAgB;AAAA,EACjC,uBAAuBC,UAAsB;AAAA,EAC7C,aAAaC,UAAY;AAC3B,CAAC;AAID,gCAAgC,OAA+B;AAC7D,SAAO,MAAM;AACf;AAEA,wBAAwB,OAA8D;AACpF,SAAOC,yBAAyB,uBAAuB,KAAK,CAAC;AAC/D;AAEA,sBAAsB,OAA4D;AAChF,SAAOC,uBAAuB,uBAAuB,KAAK,CAAC;AAC7D;AAEA,qBACE,OACA,aACA,YAC2B;AAC3B,SAAOC,UAAAA,YAAsB,uBAAuB,KAAK,GAAG,aAAa,UAAU;AACrF;AAEA,qCAAqC,OAAoC;AACvE,SAAO,MAAM;AACf;AAEA,2BAA2B,OAAyD;AAClF,SAAOC,4BAAiC,4BAA4B,KAAK,CAAC;AAC5E;AAEA,sCAAsC,OAAqC;AACzE,SAAO,MAAM;AACf;AAEA,+CACE,OACA,eACiE;AACjE,SAAOC,UAAgB,wCACrB,6BAA6B,KAAK,GAClC,aACF;AACF;AAEA,4CAA4C,OAA2C;AACrF,SAAO,MAAM;AACf;AAEA,2BAAsE;AAC7D,SAAA,CAAC,UAAU,aAAa;AACvB,UAAA,cAAc,eAAe,SAAA,CAAU;AACvC,UAAA,mBAAmB,aAAa,SAAA,CAAU;AAC1C,UAAA,wCAAwB;AAElB,gBAAA,QAAQ,CAAC,qBAAqB,gBAAgB;AAClD,YAAA,gDAAgC;AAElB,0BAAA,QAAQ,CAAC,YAAY,eAAe;AAChD,cAAA,WAAWC,kBAAkB,UAAU;AAE7C,YAAI,YAAY;AAAgC,oCAAA,IAAI,YAAY,QAAQ;AAAA,MAAA,CACzE;AAEG,UAAA,0BAA0B,OAAO,GAAG;AACpB,0BAAA,IAAI,aAAa,yBAAyB;AAAA,MAC9D;AAAA,IAAA,CACD;AAEK,UAAA,uCAAuB;AAEZ,qBAAA,QAAQ,CAAC,0BAA0B,gBAAgB;AAC5D,YAAA,+CAA+B;AAEZ,+BAAA,QAAQ,CAAC,WAAW,eAAe;;AAC1D,YAAI,CAAC,yBAAkB,IAAI,WAAW,MAAjC,mBAAoC,IAAI,cAAa;AAC/B,mCAAA,IAAI,YAAY,IAAI;AAAA,QAC/C;AAEI,YAAA,yBAAyB,OAAO,GAAG;AACpB,2BAAA,IAAI,aAAa,wBAAwB;AAAA,QAC5D;AAAA,MAAA,CACD;AAAA,IAAA,CACF;AAEiB,sBAAA,QAAQ,CAAC,2BAA2B,gBAAgB;AAC9D,YAAA,+CAA+B;AAEX,gCAAA,QAAQ,CAAC,kBAAkB,eAAe;AAClE,cAAM,kBAAkB,YAAY,SAAS,GAAG,aAAa,UAAU;AAEvE,YAAI,mBAAmB,QAAQ,CAACC,KAAU,UAAA,iBAAiB,gBAAgB,GAAG;AACnD,mCAAA,IAAI,YAAY,gBAAgB;AAAA,QAC3D;AAAA,MAAA,CACD;AAEG,UAAA,yBAAyB,OAAO,GAAG;AACpB,yBAAA,IAAI,aAAa,wBAAwB;AAAA,MAC5D;AAAA,IAAA,CACD;AAED,QAAI,iBAAiB,OAAO;AAAY,eAAAC,QAAAA,uBAAuB,gBAAgB,CAAC;AAAA,EAAA;AAEpF;AAE0F,kCAAA;AACxF,SAAO,CAAY,aAAA;AACb,QAAA,uBAAuB,sBAAsB,2BAA2B;AAE5E,WAAO,MAAM;AACX,2BAAqB,oBAAoB;AAAA,IAAA;AAGJ,2CAAA;AACrC,eAAS,iBAAiB;AAE1B,6BAAuB,sBAAsB,2BAA2B;AAAA,IAC1E;AAAA,EAAA;AAEJ;AAaA,wBAAwB,SAA4B;AAC3C,SAAA;AAAA,IACL,aAAa,QAAQ;AAAA,IACrB,cAAc,QAAQ;AAAA,IACtB,aAAa,QAAQ;AAAA,IACrB,cAAc,QAAQ;AAAA,IACtB,aAAa,QAAQ;AAAA,IACrB,cAAc,QAAQ;AAAA,IACtB,WAAW,QAAQ;AAAA,IACnB,YAAY,QAAQ;AAAA,EAAA;AAExB;AAEA,8BAA+E;AAC7E,SAAO,CAAY,aAAA;AACjB,UAAM,uBAAuB,OAAO,SAAS,gBAAgB,MAAM;AAC5D,WAAA,SAAS,gBAAgB,MAAM,WAAW;AAEjD,WAAO,SAAS,gBAAgB,iBAAiB,SAAS,gBAAgB;AAE1E,WAAO,MAAM;AACJ,aAAA,SAAS,gBAAgB,MAAM,WAAW;AACjD,aAAO,SAAS,gBAAgB,oBAAoB,SAAS,gBAAgB;AAAA,IAAA;AAGrD,8BAAA,EAAE,QAAQ,UAAsB;AACxD,eAASC,QAAAA,YAAY,EAAE,QAAQ,OAAA,CAAQ,CAAC;AAAA,IAC1C;AAAA,EAAA;AAEJ;AAEA,oCAAgD;AACvC,SAAA,iBAAiB,WAAW,aAAa;AACzC,SAAA,iBAAiB,YAAY,cAAc;AAElD,SAAO,MAAM;AACJ,WAAA,iBAAiB,WAAW,aAAa;AACzC,WAAA,oBAAoB,YAAY,cAAc;AAAA,EAAA;AAGvD,yBAAuB,OAAmB;AACpC,QAAA,QAAQ,kBAAkB,OAAO,gBAAgB,CAAC,MAAM,OAAO,mBAAmB;AACpF,aAAO,OAAO;IAChB;AAAA,EACF;AAEA,0BAAwB,OAAmB;AAEvC,QAAA,QAAQ,yBAAyB,OAAO,gBACxC,CAAC,MAAM,cAAc,mBACrB;AACA,aAAO,OAAO;IAChB;AAAA,EACF;AACF;AAEA,yCAA4F;AAC1F,SAAO,CAAY,aAAA;AACb,QAAA,uBAAuB,sBAAsB,2BAA2B;AACxE,QAAA;AAEJ,WAAO,MAAM;AACX,2BAAqB,oBAAoB;AAAA,IAAA;AAGJ,2CAAA;AACrC,YAAM,WAAW,eAAe,OAAO,SAAS,eAAe;AAE/D,UAAI,CAACF,KAAA,UAAU,UAAU,QAAQ,GAAG;AACvB,mBAAA;AAEF,iBAAAG,QAAAA,0BAA0B,QAAQ,CAAC;AAAA,MAC9C;AAEA,6BAAuB,sBAAsB,2BAA2B;AAAA,IAC1E;AAAA,EAAA;AAEJ;AAE8E,sBAAA;AAC5E,SAAO,CAAY,aAAA;AACX,UAAA,wBAAwB,SAAS,uBAAA,CAAwB;AACzD,UAAA,+BAA+B,SAAS,8BAAA,CAA+B;AAC7E,UAAM,yBAAyB;AACzB,UAAA,uBAAuB,SAAS,mBAAA,CAAoB;AACjD,aAAAC,QAAAA,eAAe,IAAI,CAAC;AAE7B,WAAO,MAAM;AACW;AACO;AACN;AACF;AACZ,eAAAA,QAAAA,eAAe,KAAK,CAAC;AAAA,IAAA;AAAA,EAChC;AAEJ;AAIA,sCAA6E;AAC3E,SAAO,CAAC,EAAE,eACR,CAAC,UAAgC;AAC/B,WAAO,CAAC,WAA2B;AACjC,cAAQ,OAAO;AAAA,aACRpB,QAAAA,YAAY,2BAA2B;AAC1C,cAAIqB,uBAAuB,OAAO,QAAQ,eAAe,GAAG;AAExD,qBAAAC,QAAA,mBACE,OAAO,QAAQ,aACf,OAAO,QAAQ,YACf,OAAO,QAAQ,eACjB,CACF;AAAA,UACF;AAEA;AAAA,QACF;AAAA,aAEKtB,QAAY,YAAA;AACf,mBAASuB,QAAAA,qBAAqB,OAAO,QAAQ,aAAa,OAAO,QAAQ,UAAU,CAAC;AACpF;AAAA;AAGJ,aAAO,MAAK,MAAM;AAAA,IAAA;AAAA,EACpB;AAEN;AAEkF,oCAAA;AAChF,SAAO,CAAC,EAAE,UAAU,eAClB,CAAC,UAAgC;AACzB,UAAA,iBAAiB,IAAI;AAC3B,QAAI,UAAU,MAAM;AAAA,IAAA;AAEb,WAAA,OAAO,YAAY,eAAe,OAAO,KAAK,CAAC,eAAe,KAAK,CAAC;AAE3E,mBAAe,MAAM,YAAY,CAAC,UAAgC,SAAS,MAAM,IAAI;AAErF,UAAM,QAAQ;AACR,UAAA,2BAA2B,kBAAkB,KAAK;AAE/B,6BAAA,QAAQ,CAAC,eAAe,kBAAkB;AAC3D,YAAA,4BAA4B,sCAChC,OACA,aACF;AAEA,UAAI,6BAA6B,MAAM;AACrC,cAAM,CAAC,oBAAoB,iBAAiBC,qBAAA,kBAAkB,yBAAyB;AAEvF,uBAAe,MAAM,YACnBC,QAAA,yBAAyB,eAAe,eAAe,kBAAkB,GACzE,aACF;AAAA,MACF;AAAA,IAAA,CACD;AAED,WAAO,CAAC,WAA2B;AACjC,cAAQ,OAAO;AAAA,aACRzB,QAAAA,YAAY;AAAA,aACZA,QAAAA,YAAY;AAAA,aACZA,QAAAA,YAAY;AAAA,aACZA,QAAAA,YAAY;AAAA,aACZA,QAAAA,YAAY;AAAA,aACZA,QAAY,YAAA;AACA,yBAAA,MAAM,YAAY,MAAM;AACvC;AAAA,aAEGA,QAAAA,YAAY,oBAAoB;AACnC,gBAAM,EAAE,MAAM,MAAM,8BAA8B,OAAO;AACzD,gBAAM,CAAC,oBAAoB,iBAAiBwB,qBAAA,kBAAkB,yBAAyB;AAEvF,yBAAe,MAAM,YACnBC,QAAA,yBAAyB,MAAM,MAAM,kBAAkB,GACvD,aACF;AACA;AAAA,QACF;AAAA,aAEKzB,QAAY,YAAA;AACf,yBAAe,MAAM,YAAY0B,QAAAA,2BAA2B,OAAO,QAAQ,IAAI,CAAC;AAChF;AAAA,aAEG1B,QAAY,YAAA;AACf,iBAAO,SAAS,gBAAgB,YAAY,OAAO,QAAQ;AAC3D;AAAA,aAEGA,QAAY,YAAA;AACf,iBAAO,SAAS,gBAAgB,aAAa,OAAO,QAAQ;AAC5D;AAAA,aAEGA,QAAY,YAAA;AACL,oBAAA,SAAS,YAAY;AAC/B;AAAA,aAEGA,QAAY,YAAA;AACP;AACR;AAAA;AAGJ,aAAO,MAAK,MAAM;AAAA,IAAA;AAAA,EACpB;AAEN;AAEA,0CACE,aACA,YAC4E;AACrE,SAAA,CAAC,UAAU,aAAa;AAC7B,UAAM,cAAc2B,UAAAA,oCAClB,SAAS,GACT,aACA,UACF;AAEA,QAAI,eAAe;AAAa,aAAA;AAE1B,UAAA,kBAAkB,OAAO,QAAQ,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,gBAAgB;AACpF,YAAA,iBAAiBC,KAAqB,qBAAA,YAAY,CACtD,YAAA,SAASC,qCAA6B,aAAa,YAAY,UAAU,OAAO,CAAC,CACnF;AAEO,aAAA,iCAAK,MAAL,GAAW,WAAW,eAAe;AAAA,IAC9C,GAAG,CAAoC,CAAA;AAEvC,aAASC,QAAAA,wBAAwB,aAAa,YAAY,eAAe,CAAC;AAEnE,WAAA;AAAA,EAAA;AAEX;AAEA,2CAAkF;AAChF,SAAO,CAAC,EAAE,UAAU,eAClB,CAAC,UAAgC;AAC/B,WAAO,CAAC,WAA2B;AACjC,cAAQ,OAAO;AAAA,aACR9B,QAAAA,YAAY,2BAA2B;AAC1C,gBAAM,EAAE,aAAa,YAAY,oBAAoB,OAAO;AAC5D,gBAAM,UAAU+B,UAAAA,WAAqB,SAAS,GAAG,aAAa,UAAU;AACxE,gBAAM,kBAAkB,SACtB,iCAAiC,aAAa,UAAU,CAC1D;AAGE,cAAA,WAAW,QACX,CAACC,UAAAA,mBAA6B,OAAO,KACrCC,UAAAA,wBAA8C,eAAe,GAC7D;AACA,qBAASC,QAAAA,8BAA8B,aAAa,YAAY,eAAe,CAAC;AAChF,4BAAgB,mBAAmB,eAAe;AAAA,UACpD;AAEA;AAAA,QACF;AAAA,aAEKlC,QAAAA,YAAY,6BAA6B;AACtC,gBAAA,EAAE,aAAa,eAAe,OAAO;AACrC,gBAAA,SAASmC,UAAAA,yBACb,mCAAmC,UAAU,GAC7C,aACA,UACF;AAEA,2CAAQ,mBAAmB;AAElB,mBAAAC,QAAA,0BAA0B,aAAa,UAAU,CAAC;AAE3D;AAAA,QACF;AAAA,aAEKpC,QAAAA,YAAY,8BAA8B;AAC7C,gBAAM,iBAAiBqC,UAAAA,kBACrB,mCAAmC,SAAU,CAAA,GAC7C,OAAO,QAAQ,aACf,OAAO,QAAQ,YACf,OAAO,QAAQ,QACjB;AAEI,cAAA;AAA+B,2BAAA,KAAK,OAAO,QAAQ,OAAO;AAAA,QAChE;AAAA;AAGF,aAAO,MAAK,MAAM;AAAA,IAAA;AAAA,EACpB;AAEN;AAwCA,yCACE,QACuC;AAChC,SAAA,MAAM,CAAC,UAAgC;AAC5C,WAAO,CAAC,WAA2B;AACjC,cAAQ,OAAO;AAAA,aACRrC,QAAAA,YAAY,qBAAqB;AAC9B,gBAAA,EAAE,aAAa,OAAO;AAE5B,iBAAO,MAAM,cAAc;AAAA,YACzB,IAAI,OAAO,MAAM,SAAS,QAAQ;AAAA,YAClC,UAAUsC,UAAAA,UAAU,SAAS;AAAA,YAC7B,MAAM;AAAA,UAAA,CACP;AAED;AAAA,QACF;AAAA,aAEKtC,QAAY,YAAA;AACf,iBAAO,MAAM,MAAM,EAAE,IAAI,OAAO,QAAQ,IAAI;AAC5C;AAAA;AAGJ,aAAO,MAAK,MAAM;AAAA,IAAA;AAAA,EACpB;AAEJ;AAI+B,wBAAA;AAAA,EAC7B;AAAA,EACA;AAAA,GAIQ;AACR,SAAOuC,MACL,YAAA,SACA,gBACAC,MAAA,gBACEC,2BACA,2BAA2B,GAC3B,yBAAyB,GACzB,gCAAgC,GAChC,gCAAgC,MAAM,CACxC,CACF;AACF;;;;;;;;"}
1
+ {"version":3,"file":"react-builder-preview.cjs.js","sources":["../src/state/modules/read-write-documents.ts","../src/state/react-builder-preview.ts"],"sourcesContent":["import { Operation } from 'ot-json0'\nimport { removeIn, setIn } from 'immutable'\n\nimport * as ReadOnlyDocuments from './read-only-documents'\nimport { Action, ActionTypes } from '../actions'\n\nexport type { Document, Element, ElementData, ElementReference } from './read-only-documents'\nexport { isElementReference } from './read-only-documents'\nexport type { Operation }\n\nfunction apply(data: ReadOnlyDocuments.Element, operation: Operation): ReadOnlyDocuments.Element {\n let applied = data\n\n operation.forEach(component => {\n // @ts-expect-error: `ld` isn't in all possible values of `component`\n if (component.ld != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `od` isn't in all possible values of `component`\n if (component.od != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `li` isn't in all possible values of `component`\n if (component.li != null) applied = setIn(applied, component.p, component.li)\n\n // @ts-expect-error: `oi` isn't in all possible values of `component`\n if (component.oi != null) applied = setIn(applied, component.p, component.oi)\n })\n\n return applied\n}\n\nexport type State = ReadOnlyDocuments.State\n\nexport function getInitialState({\n rootElements,\n}: {\n rootElements?: Map<string, ReadOnlyDocuments.Element>\n} = {}): State {\n return ReadOnlyDocuments.getInitialState({ rootElements })\n}\n\nfunction getReadOnlyDocumentsStateSlice(state: State): ReadOnlyDocuments.State {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): ReadOnlyDocuments.Document | null {\n return ReadOnlyDocuments.getDocument(getReadOnlyDocumentsStateSlice(state), documentKey)\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n const nextState = ReadOnlyDocuments.reducer(state, action)\n\n switch (action.type) {\n case ActionTypes.CHANGE_DOCUMENT: {\n const currentRootElement = getDocument(nextState, action.payload.documentKey)?.rootElement\n\n if (currentRootElement == null) return nextState\n\n const nextRootElement = apply(currentRootElement, action.payload.operation)\n\n return currentRootElement === nextRootElement\n ? nextState\n : new Map(nextState).set(\n action.payload.documentKey,\n ReadOnlyDocuments.createDocument(action.payload.documentKey, nextRootElement),\n )\n }\n\n default:\n return nextState\n }\n}\n","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'\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 ReactPage from './react-page'\nimport {\n Action,\n changeDocumentElementSize,\n changeElementBoxModels,\n messageBuilderPropController,\n registerBuilderComponent,\n registerMeasurable,\n registerPropControllers,\n registerPropControllersHandle,\n registerDocument,\n registerComponentHandle,\n unregisterBuilderComponent,\n unregisterMeasurable,\n unregisterPropControllers,\n setIsInBuilder,\n handleWheel,\n handlePointerMove,\n} from './actions'\nimport { ActionTypes } from './actions'\nimport { createPropController, PropController } from '../prop-controllers/instances'\nimport { ApolloClient, NormalizedCacheObject } from '@apollo/client'\nimport { Fragments } from '../api'\nimport { serializeControls } from '../builder'\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\nconst 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})\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 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(): () => void {\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 (!(event.target instanceof window.HTMLElement) || !event.target.isContentEditable) {\n window.parent.focus()\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (\n !(event.relatedTarget instanceof window.HTMLElement) ||\n !event.relatedTarget.isContentEditable\n ) {\n window.parent.focus()\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\nexport function initialize(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const stopMeasuringElements = dispatch(startMeasuringElements())\n const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement())\n const stopHandlingFocusEvent = startHandlingFocusEvents()\n const unlockDocumentScroll = dispatch(lockDocumentScroll())\n const stopHandlingPointerMoveEvent = dispatch(startHandlingPointerMoveEvent())\n dispatch(setIsInBuilder(true))\n\n return () => {\n stopMeasuringElements()\n stopMeasuringDocumentElement()\n stopHandlingFocusEvent()\n unlockDocumentScroll()\n stopHandlingPointerMoveEvent()\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(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n const messageChannel = new MessageChannel()\n let cleanUp = () => {}\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 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 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.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\nfunction 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\nif (import.meta.vitest) {\n const { describe, it, fn, expect } = import.meta.vitest\n\n describe('propControllerHandlesMiddleware', () => {\n it('registers prop controllers for element data', () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { key: 'elementKey', type: 'type', props: {} }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const handle = { setPropControllers: fn() }\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(handle.setPropControllers).toHaveBeenCalled()\n })\n\n it(\"doesn't register prop controllers for element references\", () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { type: 'reference', key: 'elementKey', value: 'value' }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const handle = { setPropControllers: fn() }\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(handle.setPropControllers).not.toHaveBeenCalled()\n })\n })\n}\n\nfunction apolloClientCacheSyncMiddleware(\n client: ApolloClient<NormalizedCacheObject>,\n): Middleware<Dispatch, State, Dispatch> {\n return () => (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.CHANGE_API_RESOURCE: {\n const { resource } = action.payload\n\n client.cache.writeFragment({\n id: client.cache.identify(resource),\n fragment: Fragments[resource.__typename],\n data: resource,\n })\n\n break\n }\n\n case ActionTypes.EVICT_API_RESOURCE:\n client.cache.evict({ id: action.payload.id })\n break\n }\n\n return next(action)\n }\n }\n}\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n preloadedState,\n client,\n}: {\n preloadedState?: PreloadedState<State>\n client: ApolloClient<NormalizedCacheObject>\n}): Store {\n return createStore(\n reducer,\n preloadedState,\n applyMiddleware(\n thunk,\n measureBoxModelsMiddleware(),\n messageChannelMiddleware(),\n propControllerHandlesMiddleware(),\n apolloClientCacheSyncMiddleware(client),\n ),\n )\n}\n"],"names":["removeIn","setIn","ReadOnlyDocuments.getInitialState","ReadOnlyDocuments.getDocument","ReadOnlyDocuments.reducer","ActionTypes","ReadOnlyDocuments.createDocument","combineReducers","Documents.reducer","ReactComponents.reducer","BoxModels.reducer","ComponentsMeta.reducer","PropControllers.reducer","PropControllerHandles.reducer","IsInBuilder.reducer","BoxModels.getMeasurables","BoxModels.getBoxModels","BoxModels.getBoxModel","ComponentsMeta.getComponentsMeta","PropControllers.getComponentPropControllerDescriptors","BoxModels.measure","deepEqual","changeElementBoxModels","handleWheel","handlePointerMove","changeDocumentElementSize","setIsInBuilder","BoxModels.isMeasurable","registerMeasurable","unregisterMeasurable","serializeControls","registerBuilderComponent","unregisterBuilderComponent","ReactPage.getElementPropControllerDescriptors","createPropController","messageBuilderPropController","registerPropControllers","ReactPage.getElement","ReactPage.isElementReference","PropControllerHandles.isPropControllersHandle","registerPropControllersHandle","PropControllerHandles.getPropControllersHandle","unregisterPropControllers","PropControllerHandles.getPropController","Fragments","createStore","applyMiddleware","thunk"],"mappings":"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"}
@@ -22,7 +22,7 @@ import thunk from "redux-thunk";
22
22
  import { Q as deepEqual } from "./index.es.js";
23
23
  import { removeIn, setIn } from "immutable";
24
24
  import { s as getInitialState$1, t as reducer$2, u as getDocument$1, c as createDocument, v as reducer$3, w as reducer$5, x as reducer$6, y as reducer$7, z as reducer$8, A as getComponentsMeta$1, B as getComponentPropControllerDescriptors$1, C as getPropController, D as getPropControllersHandle, E as getElement, F as getElementPropControllerDescriptors, i as isElementReference, G as isPropControllersHandle } from "./react-page.es.js";
25
- import { A as ActionTypes, l as changeElementBoxModels, n as changeDocumentElementSize, o as handleWheel, p as setIsInBuilder, q as registerBuilderComponent, t as unregisterBuilderComponent, v as unregisterMeasurable, w as registerMeasurable, x as unregisterPropControllers, y as registerPropControllers, z as registerPropControllersHandle, B as messageBuilderPropController } from "./actions.es.js";
25
+ import { A as ActionTypes, l as changeElementBoxModels, n as changeDocumentElementSize, o as handleWheel, p as handlePointerMove, q as setIsInBuilder, t as registerBuilderComponent, v as unregisterBuilderComponent, w as unregisterMeasurable, x as registerMeasurable, y as unregisterPropControllers, z as registerPropControllers, B as registerPropControllersHandle, C as messageBuilderPropController } from "./actions.es.js";
26
26
  import { r as reducer$4, a as getMeasurables$1, b as getBoxModels$1, m as measure, d as getBoxModel$1, i as isMeasurable } from "./box-models.es.js";
27
27
  export { c as createBox, g as getBox, p as parse } from "./box-models.es.js";
28
28
  import { a0 as createPropController } from "./slot.es.js";
@@ -214,11 +214,22 @@ function lockDocumentScroll() {
214
214
  }
215
215
  };
216
216
  }
217
+ function startHandlingPointerMoveEvent() {
218
+ return (dispatch) => {
219
+ window.document.documentElement.addEventListener("pointermove", handlePointerMoveEvent);
220
+ return () => {
221
+ window.document.documentElement.removeEventListener("pointermove", handlePointerMoveEvent);
222
+ };
223
+ function handlePointerMoveEvent({ clientX, clientY }) {
224
+ dispatch(handlePointerMove({ clientX, clientY }));
225
+ }
226
+ };
227
+ }
217
228
  function startHandlingFocusEvents() {
218
229
  window.addEventListener("focusin", handleFocusIn);
219
230
  window.addEventListener("focusout", handleFocusOut);
220
231
  return () => {
221
- window.addEventListener("focusin", handleFocusIn);
232
+ window.removeEventListener("focusin", handleFocusIn);
222
233
  window.removeEventListener("focusout", handleFocusOut);
223
234
  };
224
235
  function handleFocusIn(event) {
@@ -255,12 +266,14 @@ function initialize() {
255
266
  const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement());
256
267
  const stopHandlingFocusEvent = startHandlingFocusEvents();
257
268
  const unlockDocumentScroll = dispatch(lockDocumentScroll());
269
+ const stopHandlingPointerMoveEvent = dispatch(startHandlingPointerMoveEvent());
258
270
  dispatch(setIsInBuilder(true));
259
271
  return () => {
260
272
  stopMeasuringElements();
261
273
  stopMeasuringDocumentElement();
262
274
  stopHandlingFocusEvent();
263
275
  unlockDocumentScroll();
276
+ stopHandlingPointerMoveEvent();
264
277
  dispatch(setIsInBuilder(false));
265
278
  };
266
279
  };
@@ -307,6 +320,7 @@ function messageChannelMiddleware() {
307
320
  case ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:
308
321
  case ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:
309
322
  case ActionTypes.HANDLE_WHEEL:
323
+ case ActionTypes.HANDLE_POINTER_MOVE:
310
324
  messageChannel.port1.postMessage(action);
311
325
  break;
312
326
  case ActionTypes.REGISTER_COMPONENT: {
@@ -1 +1 @@
1
- {"version":3,"file":"react-builder-preview.es.js","sources":["../src/state/modules/read-write-documents.ts","../src/state/react-builder-preview.ts"],"sourcesContent":["import { Operation } from 'ot-json0'\nimport { removeIn, setIn } from 'immutable'\n\nimport * as ReadOnlyDocuments from './read-only-documents'\nimport { Action, ActionTypes } from '../actions'\n\nexport type { Document, Element, ElementData, ElementReference } from './read-only-documents'\nexport { isElementReference } from './read-only-documents'\nexport type { Operation }\n\nfunction apply(data: ReadOnlyDocuments.Element, operation: Operation): ReadOnlyDocuments.Element {\n let applied = data\n\n operation.forEach(component => {\n // @ts-expect-error: `ld` isn't in all possible values of `component`\n if (component.ld != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `od` isn't in all possible values of `component`\n if (component.od != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `li` isn't in all possible values of `component`\n if (component.li != null) applied = setIn(applied, component.p, component.li)\n\n // @ts-expect-error: `oi` isn't in all possible values of `component`\n if (component.oi != null) applied = setIn(applied, component.p, component.oi)\n })\n\n return applied\n}\n\nexport type State = ReadOnlyDocuments.State\n\nexport function getInitialState({\n rootElements,\n}: {\n rootElements?: Map<string, ReadOnlyDocuments.Element>\n} = {}): State {\n return ReadOnlyDocuments.getInitialState({ rootElements })\n}\n\nfunction getReadOnlyDocumentsStateSlice(state: State): ReadOnlyDocuments.State {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): ReadOnlyDocuments.Document | null {\n return ReadOnlyDocuments.getDocument(getReadOnlyDocumentsStateSlice(state), documentKey)\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n const nextState = ReadOnlyDocuments.reducer(state, action)\n\n switch (action.type) {\n case ActionTypes.CHANGE_DOCUMENT: {\n const currentRootElement = getDocument(nextState, action.payload.documentKey)?.rootElement\n\n if (currentRootElement == null) return nextState\n\n const nextRootElement = apply(currentRootElement, action.payload.operation)\n\n return currentRootElement === nextRootElement\n ? nextState\n : new Map(nextState).set(\n action.payload.documentKey,\n ReadOnlyDocuments.createDocument(action.payload.documentKey, nextRootElement),\n )\n }\n\n default:\n return nextState\n }\n}\n","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'\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 ReactPage from './react-page'\nimport {\n Action,\n changeDocumentElementSize,\n changeElementBoxModels,\n messageBuilderPropController,\n registerBuilderComponent,\n registerMeasurable,\n registerPropControllers,\n registerPropControllersHandle,\n registerDocument,\n registerComponentHandle,\n unregisterBuilderComponent,\n unregisterMeasurable,\n unregisterPropControllers,\n setIsInBuilder,\n handleWheel,\n} from './actions'\nimport { ActionTypes } from './actions'\nimport { createPropController, PropController } from '../prop-controllers/instances'\nimport { ApolloClient, NormalizedCacheObject } from '@apollo/client'\nimport { Fragments } from '../api'\nimport { serializeControls } from '../builder'\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\nconst 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})\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 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 startHandlingFocusEvents(): () => void {\n window.addEventListener('focusin', handleFocusIn)\n window.addEventListener('focusout', handleFocusOut)\n\n return () => {\n window.addEventListener('focusin', handleFocusIn)\n window.removeEventListener('focusout', handleFocusOut)\n }\n\n function handleFocusIn(event: FocusEvent) {\n if (!(event.target instanceof window.HTMLElement) || !event.target.isContentEditable) {\n window.parent.focus()\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (\n !(event.relatedTarget instanceof window.HTMLElement) ||\n !event.relatedTarget.isContentEditable\n ) {\n window.parent.focus()\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\nexport function initialize(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const stopMeasuringElements = dispatch(startMeasuringElements())\n const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement())\n const stopHandlingFocusEvent = startHandlingFocusEvents()\n const unlockDocumentScroll = dispatch(lockDocumentScroll())\n dispatch(setIsInBuilder(true))\n\n return () => {\n stopMeasuringElements()\n stopMeasuringDocumentElement()\n stopHandlingFocusEvent()\n unlockDocumentScroll()\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(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n const messageChannel = new MessageChannel()\n let cleanUp = () => {}\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 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 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.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\nfunction 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\nif (import.meta.vitest) {\n const { describe, it, fn, expect } = import.meta.vitest\n\n describe('propControllerHandlesMiddleware', () => {\n it('registers prop controllers for element data', () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { key: 'elementKey', type: 'type', props: {} }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const handle = { setPropControllers: fn() }\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(handle.setPropControllers).toHaveBeenCalled()\n })\n\n it(\"doesn't register prop controllers for element references\", () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { type: 'reference', key: 'elementKey', value: 'value' }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const handle = { setPropControllers: fn() }\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(handle.setPropControllers).not.toHaveBeenCalled()\n })\n })\n}\n\nfunction apolloClientCacheSyncMiddleware(\n client: ApolloClient<NormalizedCacheObject>,\n): Middleware<Dispatch, State, Dispatch> {\n return () => (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.CHANGE_API_RESOURCE: {\n const { resource } = action.payload\n\n client.cache.writeFragment({\n id: client.cache.identify(resource),\n fragment: Fragments[resource.__typename],\n data: resource,\n })\n\n break\n }\n\n case ActionTypes.EVICT_API_RESOURCE:\n client.cache.evict({ id: action.payload.id })\n break\n }\n\n return next(action)\n }\n }\n}\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n preloadedState,\n client,\n}: {\n preloadedState?: PreloadedState<State>\n client: ApolloClient<NormalizedCacheObject>\n}): Store {\n return createStore(\n reducer,\n preloadedState,\n applyMiddleware(\n thunk,\n measureBoxModelsMiddleware(),\n messageChannelMiddleware(),\n propControllerHandlesMiddleware(),\n apolloClientCacheSyncMiddleware(client),\n ),\n )\n}\n"],"names":["ReadOnlyDocuments.getInitialState","ReadOnlyDocuments.getDocument","ReadOnlyDocuments.reducer","ReadOnlyDocuments.createDocument","Documents.reducer","ReactComponents.reducer","BoxModels.reducer","ComponentsMeta.reducer","PropControllers.reducer","PropControllerHandles.reducer","IsInBuilder.reducer","BoxModels.getMeasurables","BoxModels.getBoxModels","BoxModels.getBoxModel","ComponentsMeta.getComponentsMeta","PropControllers.getComponentPropControllerDescriptors","BoxModels.measure","BoxModels.isMeasurable","ReactPage.getElementPropControllerDescriptors","ReactPage.getElement","ReactPage.isElementReference","PropControllerHandles.isPropControllersHandle","PropControllerHandles.getPropControllersHandle","PropControllerHandles.getPropController"],"mappings":"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"}
1
+ {"version":3,"file":"react-builder-preview.es.js","sources":["../src/state/modules/read-write-documents.ts","../src/state/react-builder-preview.ts"],"sourcesContent":["import { Operation } from 'ot-json0'\nimport { removeIn, setIn } from 'immutable'\n\nimport * as ReadOnlyDocuments from './read-only-documents'\nimport { Action, ActionTypes } from '../actions'\n\nexport type { Document, Element, ElementData, ElementReference } from './read-only-documents'\nexport { isElementReference } from './read-only-documents'\nexport type { Operation }\n\nfunction apply(data: ReadOnlyDocuments.Element, operation: Operation): ReadOnlyDocuments.Element {\n let applied = data\n\n operation.forEach(component => {\n // @ts-expect-error: `ld` isn't in all possible values of `component`\n if (component.ld != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `od` isn't in all possible values of `component`\n if (component.od != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `li` isn't in all possible values of `component`\n if (component.li != null) applied = setIn(applied, component.p, component.li)\n\n // @ts-expect-error: `oi` isn't in all possible values of `component`\n if (component.oi != null) applied = setIn(applied, component.p, component.oi)\n })\n\n return applied\n}\n\nexport type State = ReadOnlyDocuments.State\n\nexport function getInitialState({\n rootElements,\n}: {\n rootElements?: Map<string, ReadOnlyDocuments.Element>\n} = {}): State {\n return ReadOnlyDocuments.getInitialState({ rootElements })\n}\n\nfunction getReadOnlyDocumentsStateSlice(state: State): ReadOnlyDocuments.State {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): ReadOnlyDocuments.Document | null {\n return ReadOnlyDocuments.getDocument(getReadOnlyDocumentsStateSlice(state), documentKey)\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n const nextState = ReadOnlyDocuments.reducer(state, action)\n\n switch (action.type) {\n case ActionTypes.CHANGE_DOCUMENT: {\n const currentRootElement = getDocument(nextState, action.payload.documentKey)?.rootElement\n\n if (currentRootElement == null) return nextState\n\n const nextRootElement = apply(currentRootElement, action.payload.operation)\n\n return currentRootElement === nextRootElement\n ? nextState\n : new Map(nextState).set(\n action.payload.documentKey,\n ReadOnlyDocuments.createDocument(action.payload.documentKey, nextRootElement),\n )\n }\n\n default:\n return nextState\n }\n}\n","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'\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 ReactPage from './react-page'\nimport {\n Action,\n changeDocumentElementSize,\n changeElementBoxModels,\n messageBuilderPropController,\n registerBuilderComponent,\n registerMeasurable,\n registerPropControllers,\n registerPropControllersHandle,\n registerDocument,\n registerComponentHandle,\n unregisterBuilderComponent,\n unregisterMeasurable,\n unregisterPropControllers,\n setIsInBuilder,\n handleWheel,\n handlePointerMove,\n} from './actions'\nimport { ActionTypes } from './actions'\nimport { createPropController, PropController } from '../prop-controllers/instances'\nimport { ApolloClient, NormalizedCacheObject } from '@apollo/client'\nimport { Fragments } from '../api'\nimport { serializeControls } from '../builder'\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\nconst 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})\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 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(): () => void {\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 (!(event.target instanceof window.HTMLElement) || !event.target.isContentEditable) {\n window.parent.focus()\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (\n !(event.relatedTarget instanceof window.HTMLElement) ||\n !event.relatedTarget.isContentEditable\n ) {\n window.parent.focus()\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\nexport function initialize(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const stopMeasuringElements = dispatch(startMeasuringElements())\n const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement())\n const stopHandlingFocusEvent = startHandlingFocusEvents()\n const unlockDocumentScroll = dispatch(lockDocumentScroll())\n const stopHandlingPointerMoveEvent = dispatch(startHandlingPointerMoveEvent())\n dispatch(setIsInBuilder(true))\n\n return () => {\n stopMeasuringElements()\n stopMeasuringDocumentElement()\n stopHandlingFocusEvent()\n unlockDocumentScroll()\n stopHandlingPointerMoveEvent()\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(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n const messageChannel = new MessageChannel()\n let cleanUp = () => {}\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 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 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.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\nfunction 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\nif (import.meta.vitest) {\n const { describe, it, fn, expect } = import.meta.vitest\n\n describe('propControllerHandlesMiddleware', () => {\n it('registers prop controllers for element data', () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { key: 'elementKey', type: 'type', props: {} }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const handle = { setPropControllers: fn() }\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(handle.setPropControllers).toHaveBeenCalled()\n })\n\n it(\"doesn't register prop controllers for element references\", () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { type: 'reference', key: 'elementKey', value: 'value' }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const handle = { setPropControllers: fn() }\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(handle.setPropControllers).not.toHaveBeenCalled()\n })\n })\n}\n\nfunction apolloClientCacheSyncMiddleware(\n client: ApolloClient<NormalizedCacheObject>,\n): Middleware<Dispatch, State, Dispatch> {\n return () => (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.CHANGE_API_RESOURCE: {\n const { resource } = action.payload\n\n client.cache.writeFragment({\n id: client.cache.identify(resource),\n fragment: Fragments[resource.__typename],\n data: resource,\n })\n\n break\n }\n\n case ActionTypes.EVICT_API_RESOURCE:\n client.cache.evict({ id: action.payload.id })\n break\n }\n\n return next(action)\n }\n }\n}\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n preloadedState,\n client,\n}: {\n preloadedState?: PreloadedState<State>\n client: ApolloClient<NormalizedCacheObject>\n}): Store {\n return createStore(\n reducer,\n preloadedState,\n applyMiddleware(\n thunk,\n measureBoxModelsMiddleware(),\n messageChannelMiddleware(),\n propControllerHandlesMiddleware(),\n apolloClientCacheSyncMiddleware(client),\n ),\n )\n}\n"],"names":["ReadOnlyDocuments.getInitialState","ReadOnlyDocuments.getDocument","ReadOnlyDocuments.reducer","ReadOnlyDocuments.createDocument","Documents.reducer","ReactComponents.reducer","BoxModels.reducer","ComponentsMeta.reducer","PropControllers.reducer","PropControllerHandles.reducer","IsInBuilder.reducer","BoxModels.getMeasurables","BoxModels.getBoxModels","BoxModels.getBoxModel","ComponentsMeta.getComponentsMeta","PropControllers.getComponentPropControllerDescriptors","BoxModels.measure","BoxModels.isMeasurable","ReactPage.getElementPropControllerDescriptors","ReactPage.getElement","ReactPage.isElementReference","PropControllerHandles.isPropControllersHandle","PropControllerHandles.getPropControllersHandle","PropControllerHandles.getPropController"],"mappings":"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"}
@@ -42,6 +42,7 @@ export declare const ActionTypes: {
42
42
  readonly EVICT_API_RESOURCE: "EVICT_API_RESOURCE";
43
43
  readonly SET_IS_IN_BUILDER: "SET_IS_IN_BUILDER";
44
44
  readonly HANDLE_WHEEL: "HANDLE_WHEEL";
45
+ readonly HANDLE_POINTER_MOVE: "HANDLE_POINTER_MOVE";
45
46
  };
46
47
  declare type InitAction = {
47
48
  type: typeof ActionTypes.INIT;
@@ -249,7 +250,14 @@ declare type HandleWheelAction = {
249
250
  deltaY: number;
250
251
  };
251
252
  };
252
- export declare type Action = InitAction | CleanUpAction | ChangeDocumentAction | RegisterDocumentAction | UnregisterDocumentAction | RegisterComponentAction | UnregisterComponentAction | RegisterBuilderComponentAction | UnregisterBuilderComponentAction | RegisterReactComponentAction | UnregisterReactComponentAction | MountComponentAction | UnmountComponentAction | RegisterComponentHandleAction | UnregisterComponentHandleAction | RegisterMeasurableAction | UnregisterMeasurableAction | ChangeElementBoxModelsAction | ChangeDocumentElementSizeAction | ChangeDocumentElementScrollTopAction | ScrollDocumentElementAction | RegisterPropControllersHandleAction | UnregisterPropControllersHandleAction | RegisterPropControllersAction | UnregisterPropControllersAction | MessageHostPropControllerAction | MessageBuilderPropControllerAction | ChangeAPIResourceAction | EvictAPIResourceAction | SetIsInBuilderAction | HandleWheelAction;
253
+ declare type HandlePointerMoveAction = {
254
+ type: typeof ActionTypes.HANDLE_POINTER_MOVE;
255
+ payload: {
256
+ clientX: number;
257
+ clientY: number;
258
+ };
259
+ };
260
+ export declare type Action = InitAction | CleanUpAction | ChangeDocumentAction | RegisterDocumentAction | UnregisterDocumentAction | RegisterComponentAction | UnregisterComponentAction | RegisterBuilderComponentAction | UnregisterBuilderComponentAction | RegisterReactComponentAction | UnregisterReactComponentAction | MountComponentAction | UnmountComponentAction | RegisterComponentHandleAction | UnregisterComponentHandleAction | RegisterMeasurableAction | UnregisterMeasurableAction | ChangeElementBoxModelsAction | ChangeDocumentElementSizeAction | ChangeDocumentElementScrollTopAction | ScrollDocumentElementAction | RegisterPropControllersHandleAction | UnregisterPropControllersHandleAction | RegisterPropControllersAction | UnregisterPropControllersAction | MessageHostPropControllerAction | MessageBuilderPropControllerAction | ChangeAPIResourceAction | EvictAPIResourceAction | SetIsInBuilderAction | HandleWheelAction | HandlePointerMoveAction;
253
261
  export declare function init(): InitAction;
254
262
  export declare function cleanUp(): CleanUpAction;
255
263
  export declare function registerDocument(document: Document): RegisterDocumentAction;
@@ -287,5 +295,9 @@ export declare function handleWheel(payload: {
287
295
  deltaX: number;
288
296
  deltaY: number;
289
297
  }): HandleWheelAction;
298
+ export declare function handlePointerMove(payload: {
299
+ clientX: number;
300
+ clientY: number;
301
+ }): HandlePointerMoveAction;
290
302
  export {};
291
303
  //# sourceMappingURL=actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/state/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/state/actions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"react-builder-preview.d.ts","sourceRoot":"","sources":["../../../../src/state/react-builder-preview.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,UAAU,EAEV,cAAc,EACd,KAAK,IAAI,UAAU,EACpB,MAAM,OAAO,CAAA;AACd,OAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAI/D,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAA;AAG1E,OAAO,EACL,MAAM,EAeP,MAAM,WAAW,CAAA;AAGlB,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAIpE,YAAY,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAE/D,QAAA,MAAM,OAAO;;;;;;;;WAQX,CAAA;AAEF,oBAAY,KAAK,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAA;AAwG9C,wBAAgB,sBAAsB,IAAI,WAAW,CAAC,MAAM,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAcxF;AAED,oBAAY,IAAI,GAAG;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAiFD,wBAAgB,UAAU,IAAI,WAAW,CAAC,MAAM,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAgB5E;AAED,oBAAY,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AA+B5D,wBAAgB,wBAAwB,IAAI,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CA2EhF;AAuJD,oBAAY,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAA;AAEtE,wBAAgB,cAAc,CAAC,EAC7B,cAAc,EACd,MAAM,GACP,EAAE;IACD,cAAc,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,EAAE,YAAY,CAAC,qBAAqB,CAAC,CAAA;CAC5C,GAAG,KAAK,CAYR"}
1
+ {"version":3,"file":"react-builder-preview.d.ts","sourceRoot":"","sources":["../../../../src/state/react-builder-preview.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,UAAU,EAEV,cAAc,EACd,KAAK,IAAI,UAAU,EACpB,MAAM,OAAO,CAAA;AACd,OAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAI/D,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAA;AAG1E,OAAO,EACL,MAAM,EAgBP,MAAM,WAAW,CAAA;AAGlB,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAIpE,YAAY,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAE/D,QAAA,MAAM,OAAO;;;;;;;;WAQX,CAAA;AAEF,oBAAY,KAAK,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAA;AAwG9C,wBAAgB,sBAAsB,IAAI,WAAW,CAAC,MAAM,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAcxF;AAED,oBAAY,IAAI,GAAG;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AA+FD,wBAAgB,UAAU,IAAI,WAAW,CAAC,MAAM,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAkB5E;AAED,oBAAY,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AA+B5D,wBAAgB,wBAAwB,IAAI,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CA4EhF;AAuJD,oBAAY,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAA;AAEtE,wBAAgB,cAAc,CAAC,EAC7B,cAAc,EACd,MAAM,GACP,EAAE;IACD,cAAc,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,EAAE,YAAY,CAAC,qBAAqB,CAAC,CAAA;CAC5C,GAAG,KAAK,CAYR"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@makeswift/runtime",
3
- "version": "0.2.18",
3
+ "version": "0.2.19",
4
4
  "license": "MIT",
5
5
  "main": "dist/main.cjs",
6
6
  "module": "dist/main.es",