@makeswift/runtime 0.0.0-e0c0445 → 0.0.0-e76fc43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/box-model.js +1 -0
  2. package/components.js +1 -0
  3. package/dist/actions.cjs.js +73 -16
  4. package/dist/actions.cjs.js.map +1 -1
  5. package/dist/actions.es.js +67 -16
  6. package/dist/actions.es.js.map +1 -1
  7. package/dist/box-models.cjs.js +25 -15
  8. package/dist/box-models.cjs.js.map +1 -1
  9. package/dist/box-models.es.js +25 -15
  10. package/dist/box-models.es.js.map +1 -1
  11. package/dist/components.cjs.js +2012 -333
  12. package/dist/components.cjs.js.map +1 -1
  13. package/dist/components.es.js +1888 -219
  14. package/dist/components.es.js.map +1 -1
  15. package/dist/deepEqual.cjs.js +40 -0
  16. package/dist/deepEqual.cjs.js.map +1 -0
  17. package/dist/deepEqual.es.js +39 -0
  18. package/dist/deepEqual.es.js.map +1 -0
  19. package/dist/descriptors.cjs.js.map +1 -1
  20. package/dist/descriptors.es.js.map +1 -1
  21. package/dist/immutable.es.cjs.js +4459 -0
  22. package/dist/immutable.es.cjs.js.map +1 -0
  23. package/dist/immutable.es.es.js +4450 -0
  24. package/dist/immutable.es.es.js.map +1 -0
  25. package/dist/instances.cjs.js +89 -0
  26. package/dist/instances.cjs.js.map +1 -0
  27. package/dist/instances.es.js +87 -0
  28. package/dist/instances.es.js.map +1 -0
  29. package/dist/main.cjs.js +1 -0
  30. package/dist/main.cjs.js.map +1 -1
  31. package/dist/main.es.js +1 -1
  32. package/dist/prop-controllers.cjs.js +2 -0
  33. package/dist/prop-controllers.cjs.js.map +1 -1
  34. package/dist/prop-controllers.es.js +1 -0
  35. package/dist/prop-controllers.es.js.map +1 -1
  36. package/dist/react-builder-preview.cjs.js +172 -33
  37. package/dist/react-builder-preview.cjs.js.map +1 -1
  38. package/dist/react-builder-preview.es.js +180 -41
  39. package/dist/react-builder-preview.es.js.map +1 -1
  40. package/dist/react.cjs2.js +50 -14
  41. package/dist/react.cjs2.js.map +1 -1
  42. package/dist/react.es2.js +52 -17
  43. package/dist/react.es2.js.map +1 -1
  44. package/dist/shallowEqual.cjs.js +24 -0
  45. package/dist/shallowEqual.cjs.js.map +1 -0
  46. package/dist/shallowEqual.es.js +23 -0
  47. package/dist/shallowEqual.es.js.map +1 -0
  48. package/dist/types/components/builtin/Text/Text.d.ts +16 -0
  49. package/dist/types/components/builtin/Text/Text.d.ts.map +1 -0
  50. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +24 -0
  51. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -0
  52. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Link/index.d.ts +9 -0
  53. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Link/index.d.ts.map +1 -0
  54. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +25 -0
  55. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
  56. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts +13 -0
  57. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +1 -0
  58. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts +5 -0
  59. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -0
  60. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +3 -0
  61. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
  62. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +3 -0
  63. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
  64. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts +3 -0
  65. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
  66. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts +3 -0
  67. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +1 -0
  68. package/dist/types/components/builtin/Text/hooks/useRichText.d.ts +1 -0
  69. package/dist/types/components/builtin/Text/hooks/useRichText.d.ts.map +1 -0
  70. package/dist/types/components/builtin/Text/index.d.ts +2 -0
  71. package/dist/types/components/builtin/Text/index.d.ts.map +1 -0
  72. package/dist/types/components/builtin/Text/prop-controllers.d.ts +286 -0
  73. package/dist/types/components/builtin/Text/prop-controllers.d.ts.map +1 -0
  74. package/dist/types/components/builtin/index.d.ts +1 -0
  75. package/dist/types/components/builtin/index.d.ts.map +1 -1
  76. package/dist/types/components/hooks/useRichText.d.ts +18 -0
  77. package/dist/types/components/hooks/useRichText.d.ts.map +1 -0
  78. package/dist/types/components/hooks/useTypography.d.ts +24 -0
  79. package/dist/types/components/hooks/useTypography.d.ts.map +1 -0
  80. package/dist/types/components/index.d.ts +1 -0
  81. package/dist/types/components/index.d.ts.map +1 -1
  82. package/dist/types/components/shared/RichTextEditor/components/Block/index.d.ts +24 -0
  83. package/dist/types/components/shared/RichTextEditor/components/Block/index.d.ts.map +1 -0
  84. package/dist/types/components/shared/RichTextEditor/components/Link/index.d.ts +9 -0
  85. package/dist/types/components/shared/RichTextEditor/components/Link/index.d.ts.map +1 -0
  86. package/dist/types/components/shared/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +23 -0
  87. package/dist/types/components/shared/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
  88. package/dist/types/components/shared/RichTextEditor/components/Mark/index.d.ts +13 -0
  89. package/dist/types/components/shared/RichTextEditor/components/Mark/index.d.ts.map +1 -0
  90. package/dist/types/components/shared/RichTextEditor/index.d.ts +5 -0
  91. package/dist/types/components/shared/RichTextEditor/index.d.ts.map +1 -0
  92. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +3 -0
  93. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
  94. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +3 -0
  95. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
  96. package/dist/types/components/shared/RichTextEditor/plugins/Inlines.d.ts +3 -0
  97. package/dist/types/components/shared/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
  98. package/dist/types/components/shared/RichTextEditor/plugins/Link.d.ts +3 -0
  99. package/dist/types/components/shared/RichTextEditor/plugins/Link.d.ts.map +1 -0
  100. package/dist/types/components/utils/contants.d.ts +5 -0
  101. package/dist/types/components/utils/contants.d.ts.map +1 -0
  102. package/dist/types/components/utils/devices.d.ts +1 -0
  103. package/dist/types/components/utils/devices.d.ts.map +1 -1
  104. package/dist/types/components/utils/intersection.d.ts +4 -0
  105. package/dist/types/components/utils/intersection.d.ts.map +1 -0
  106. package/dist/types/components/utils/keys.d.ts +5 -0
  107. package/dist/types/components/utils/keys.d.ts.map +1 -0
  108. package/dist/types/components/utils/queries.d.ts +6 -4
  109. package/dist/types/components/utils/queries.d.ts.map +1 -1
  110. package/dist/types/index.d.ts +1 -1
  111. package/dist/types/index.d.ts.map +1 -1
  112. package/dist/types/prop-controllers/descriptors.d.ts +1 -1
  113. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  114. package/dist/types/prop-controllers/index.d.ts +2 -0
  115. package/dist/types/prop-controllers/index.d.ts.map +1 -1
  116. package/dist/types/prop-controllers/instances.d.ts +63 -4
  117. package/dist/types/prop-controllers/instances.d.ts.map +1 -1
  118. package/dist/types/runtimes/react.d.ts.map +1 -1
  119. package/dist/types/state/actions.d.ts +88 -13
  120. package/dist/types/state/actions.d.ts.map +1 -1
  121. package/dist/types/state/modules/box-models.d.ts +5 -5
  122. package/dist/types/state/modules/box-models.d.ts.map +1 -1
  123. package/dist/types/state/modules/prop-controller-handles.d.ts +4 -8
  124. package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -1
  125. package/dist/types/state/react-builder-preview.d.ts +2 -0
  126. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  127. package/dist/types/state/react-page.d.ts +1 -0
  128. package/dist/types/state/react-page.d.ts.map +1 -1
  129. package/dist/types/utils/coalesce.d.ts +3 -0
  130. package/dist/types/utils/coalesce.d.ts.map +1 -0
  131. package/dist/types/utils/constants.d.ts +6 -0
  132. package/dist/types/utils/constants.d.ts.map +1 -0
  133. package/dist/types/utils/intersection.d.ts +4 -0
  134. package/dist/types/utils/intersection.d.ts.map +1 -0
  135. package/dist/types/utils/keys.d.ts +5 -0
  136. package/dist/types/utils/keys.d.ts.map +1 -0
  137. package/dist/types/utils/shallowMerge.d.ts +2 -0
  138. package/dist/types/utils/shallowMerge.d.ts.map +1 -0
  139. package/package.json +35 -4
  140. package/prop-controllers.js +1 -0
  141. package/react.js +1 -0
package/box-model.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./dist/box-model.cjs')
package/components.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./dist/components.cjs')
@@ -7,12 +7,19 @@ const ActionTypes = {
7
7
  UNREGISTER_REACT_COMPONENT: "UNREGISTER_REACT_COMPONENT",
8
8
  MOUNT_COMPONENT: "MOUNT_COMPONENT",
9
9
  UNMOUNT_COMPONENT: "UNMOUNT_COMPONENT",
10
- CHANGE_COMPONENT_HANDLE: "CHANGE_COMPONENT_HANDLE",
10
+ REGISTER_COMPONENT_HANDLE: "REGISTER_COMPONENT_HANDLE",
11
+ UNREGISTER_COMPONENT_HANDLE: "UNREGISTER_COMPONENT_HANDLE",
11
12
  REGISTER_MEASURABLE: "REGISTER_MEASURABLE",
12
13
  UNREGISTER_MEASURABLE: "UNREGISTER_MEASURABLE",
13
14
  CHANGE_ELEMENT_BOX_MODELS: "CHANGE_ELEMENT_BOX_MODELS",
14
15
  CHANGE_DOCUMENT_ELEMENT_SIZE: "CHANGE_DOCUMENT_ELEMENT_SIZE",
15
- CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP: "CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP"
16
+ CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP: "CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP",
17
+ REGISTER_PROP_CONTROLLERS_HANDLE: "REGISTER_PROP_CONTROLLERS_HANDLE",
18
+ UNREGISTER_PROP_CONTROLLERS_HANDLE: "UNREGISTER_PROP_CONTROLLERS_HANDLE",
19
+ REGISTER_PROP_CONTROLLERS: "REGISTER_PROP_CONTROLLERS",
20
+ UNREGISTER_PROP_CONTROLLERS: "UNREGISTER_PROP_CONTROLLERS",
21
+ MESSAGE_HOST_PROP_CONTROLLER: "MESSAGE_HOST_PROP_CONTROLLER",
22
+ MESSAGE_BUILDER_PROP_CONTROLLER: "MESSAGE_BUILDER_PROP_CONTROLLER"
16
23
  };
17
24
  function changeDocument(documentKey, operation) {
18
25
  return { type: ActionTypes.CHANGE_DOCUMENT, payload: { documentKey, operation } };
@@ -48,28 +55,45 @@ function registerReactComponentEffect(type, component) {
48
55
  };
49
56
  };
50
57
  }
51
- function mountComponent(elementKey) {
52
- return { type: ActionTypes.MOUNT_COMPONENT, payload: { elementKey } };
58
+ function mountComponent(documentKey, elementKey) {
59
+ return { type: ActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } };
53
60
  }
54
- function unmountComponent(elementKey) {
55
- return { type: ActionTypes.UNMOUNT_COMPONENT, payload: { elementKey } };
61
+ function unmountComponent(documentKey, elementKey) {
62
+ return { type: ActionTypes.UNMOUNT_COMPONENT, payload: { documentKey, elementKey } };
56
63
  }
57
- function mountComponentEffect(elementKey) {
64
+ function mountComponentEffect(documentKey, elementKey) {
58
65
  return (dispatch) => {
59
- dispatch(mountComponent(elementKey));
66
+ dispatch(mountComponent(documentKey, elementKey));
60
67
  return () => {
61
- dispatch(unmountComponent(elementKey));
68
+ dispatch(unmountComponent(documentKey, elementKey));
62
69
  };
63
70
  };
64
71
  }
65
- function changeComponentHandle(elementKey, componentHandle) {
66
- return { type: ActionTypes.CHANGE_COMPONENT_HANDLE, payload: { elementKey, componentHandle } };
72
+ function registerComponentHandle(documentKey, elementKey, componentHandle) {
73
+ return {
74
+ type: ActionTypes.REGISTER_COMPONENT_HANDLE,
75
+ payload: { documentKey, elementKey, componentHandle }
76
+ };
67
77
  }
68
- function registerMeasurable(elementKey, measurable) {
69
- return { type: ActionTypes.REGISTER_MEASURABLE, payload: { elementKey, measurable } };
78
+ function unregisterComponentHandle(documentKey, elementKey) {
79
+ return { type: ActionTypes.UNREGISTER_COMPONENT_HANDLE, payload: { documentKey, elementKey } };
70
80
  }
71
- function unregisterMeasurable(elementKey) {
72
- return { type: ActionTypes.UNREGISTER_MEASURABLE, payload: { elementKey } };
81
+ function registerComponentHandleEffect(documentKey, elementKey, componentHandle) {
82
+ return (dispatch) => {
83
+ dispatch(registerComponentHandle(documentKey, elementKey, componentHandle));
84
+ return () => {
85
+ dispatch(unregisterComponentHandle(documentKey, elementKey));
86
+ };
87
+ };
88
+ }
89
+ function registerMeasurable(documentKey, elementKey, measurable) {
90
+ return { type: ActionTypes.REGISTER_MEASURABLE, payload: { documentKey, elementKey, measurable } };
91
+ }
92
+ function unregisterMeasurable(documentKey, elementKey) {
93
+ return { type: ActionTypes.UNREGISTER_MEASURABLE, payload: { documentKey, elementKey } };
94
+ }
95
+ function changeElementBoxModels(changedElementBoxModels) {
96
+ return { type: ActionTypes.CHANGE_ELEMENT_BOX_MODELS, payload: { changedElementBoxModels } };
73
97
  }
74
98
  function changeDocumentElementSize(size) {
75
99
  return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } };
@@ -77,15 +101,48 @@ function changeDocumentElementSize(size) {
77
101
  function changeDocumentElementScrollTop(scrollTop) {
78
102
  return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP, payload: { scrollTop } };
79
103
  }
104
+ function registerPropControllersHandle(documentKey, elementKey, handle) {
105
+ return {
106
+ type: ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE,
107
+ payload: { documentKey, elementKey, handle }
108
+ };
109
+ }
110
+ function registerPropControllers(documentKey, elementKey, propControllers) {
111
+ return {
112
+ type: ActionTypes.REGISTER_PROP_CONTROLLERS,
113
+ payload: { documentKey, elementKey, propControllers }
114
+ };
115
+ }
116
+ function unregisterPropControllers(documentKey, elementKey) {
117
+ return { type: ActionTypes.UNREGISTER_PROP_CONTROLLERS, payload: { documentKey, elementKey } };
118
+ }
119
+ function messageHostPropController(documentKey, elementKey, propName, message) {
120
+ return {
121
+ type: ActionTypes.MESSAGE_HOST_PROP_CONTROLLER,
122
+ payload: { documentKey, elementKey, propName, message }
123
+ };
124
+ }
125
+ function messageBuilderPropController(documentKey, elementKey, propName, message) {
126
+ return {
127
+ type: ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,
128
+ payload: { documentKey, elementKey, propName, message }
129
+ };
130
+ }
80
131
  exports.ActionTypes = ActionTypes;
81
- exports.changeComponentHandle = changeComponentHandle;
82
132
  exports.changeDocument = changeDocument;
83
133
  exports.changeDocumentElementScrollTop = changeDocumentElementScrollTop;
84
134
  exports.changeDocumentElementSize = changeDocumentElementSize;
135
+ exports.changeElementBoxModels = changeElementBoxModels;
136
+ exports.messageBuilderPropController = messageBuilderPropController;
137
+ exports.messageHostPropController = messageHostPropController;
85
138
  exports.mountComponentEffect = mountComponentEffect;
86
139
  exports.registerComponent = registerComponent;
87
140
  exports.registerComponentEffect = registerComponentEffect;
141
+ exports.registerComponentHandleEffect = registerComponentHandleEffect;
88
142
  exports.registerMeasurable = registerMeasurable;
143
+ exports.registerPropControllers = registerPropControllers;
144
+ exports.registerPropControllersHandle = registerPropControllersHandle;
89
145
  exports.registerReactComponentEffect = registerReactComponentEffect;
90
146
  exports.unregisterMeasurable = unregisterMeasurable;
147
+ exports.unregisterPropControllers = unregisterPropControllers;
91
148
  //# sourceMappingURL=actions.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.cjs.js","sources":["../src/state/actions.ts"],"sourcesContent":["import type { Operation } from 'ot-json0'\n\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'\n\nexport const ActionTypes = {\n CHANGE_DOCUMENT: 'CHANGE_DOCUMENT',\n\n REGISTER_COMPONENT: 'REGISTER_COMPONENT',\n UNREGISTER_COMPONENT: 'UNREGISTER_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 CHANGE_COMPONENT_HANDLE: 'CHANGE_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} as const\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 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: { elementKey: string }\n}\n\ntype UnmountComponentAction = {\n type: typeof ActionTypes.UNMOUNT_COMPONENT\n payload: { elementKey: string }\n}\n\ntype ChangeComponentHandleAction = {\n type: typeof ActionTypes.CHANGE_COMPONENT_HANDLE\n payload: { elementKey: string; componentHandle: unknown }\n}\n\ntype RegisterMeasurableAction = {\n type: typeof ActionTypes.REGISTER_MEASURABLE\n payload: { elementKey: string; measurable: Measurable }\n}\n\ntype UnregisterMeasurableAction = {\n type: typeof ActionTypes.UNREGISTER_MEASURABLE\n payload: { elementKey: string }\n}\n\ntype ChangeElementBoxModelsAction = {\n type: typeof ActionTypes.CHANGE_ELEMENT_BOX_MODELS\n payload: { changedElementBoxModels: 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\nexport type Action =\n | ChangeDocumentAction\n | RegisterComponentAction\n | UnregisterComponentAction\n | RegisterReactComponentAction\n | UnregisterReactComponentAction\n | MountComponentAction\n | UnmountComponentAction\n | ChangeComponentHandleAction\n | RegisterMeasurableAction\n | UnregisterMeasurableAction\n | ChangeElementBoxModelsAction\n | ChangeDocumentElementSizeAction\n | ChangeDocumentElementScrollTopAction\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\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(elementKey: string): MountComponentAction {\n return { type: ActionTypes.MOUNT_COMPONENT, payload: { elementKey } }\n}\n\nexport function unmountComponent(elementKey: string): UnmountComponentAction {\n return { type: ActionTypes.UNMOUNT_COMPONENT, payload: { elementKey } }\n}\n\nexport function mountComponentEffect(\n elementKey: string,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(mountComponent(elementKey))\n\n return () => {\n dispatch(unmountComponent(elementKey))\n }\n }\n}\n\nexport function changeComponentHandle(\n elementKey: string,\n componentHandle: unknown,\n): ChangeComponentHandleAction {\n return { type: ActionTypes.CHANGE_COMPONENT_HANDLE, payload: { elementKey, componentHandle } }\n}\n\nexport function registerMeasurable(\n elementKey: string,\n measurable: Measurable,\n): RegisterMeasurableAction {\n return { type: ActionTypes.REGISTER_MEASURABLE, payload: { elementKey, measurable } }\n}\n\nexport function unregisterMeasurable(elementKey: string): UnregisterMeasurableAction {\n return { type: ActionTypes.UNREGISTER_MEASURABLE, payload: { elementKey } }\n}\n\nexport function registerMeasurableEffect(\n elementKey: string,\n measurable: Measurable,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerMeasurable(elementKey, measurable))\n\n return () => {\n dispatch(unregisterMeasurable(elementKey))\n }\n }\n}\n\nexport function changeElementBoxModels(\n changedElementBoxModels: 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"],"names":[],"mappings":";MASa,cAAc;AAAA,EACzB,iBAAiB;AAAA,EAEjB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EAEtB,0BAA0B;AAAA,EAC1B,4BAA4B;AAAA,EAE5B,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EAEnB,yBAAyB;AAAA,EAEzB,qBAAqB;AAAA,EACrB,uBAAuB;AAAA,EAEvB,2BAA2B;AAAA,EAE3B,8BAA8B;AAAA,EAC9B,oCAAoC;AAAA;wBAuFP,aAAqB,WAA4C;SACvF,EAAE,MAAM,YAAY,iBAAiB,SAAS,EAAE,aAAa;AAAA;2BAIpE,MACA,MACA,2BACyB;SAClB;AAAA,IACL,MAAM,YAAY;AAAA,IAClB,SAAS,EAAE,MAAM,MAAM;AAAA;AAAA;6BAIS,MAAyC;SACpE,EAAE,MAAM,YAAY,sBAAsB,SAAS,EAAE;AAAA;iCAI5D,MACA,MACA,2BACmD;SAC5C,cAAY;aACR,kBAAkB,MAAM,MAAM;WAEhC,MAAM;eACF,oBAAoB;AAAA;AAAA;AAAA;AAKnC,gCACE,MACA,WAC8B;SACvB,EAAE,MAAM,YAAY,0BAA0B,SAAS,EAAE,MAAM;AAAA;AAGxE,kCAAkC,MAA8C;SACvE,EAAE,MAAM,YAAY,4BAA4B,SAAS,EAAE;AAAA;sCAIlE,MACA,WACmD;SAC5C,cAAY;aACR,uBAAuB,MAAM;WAE/B,MAAM;eACF,yBAAyB;AAAA;AAAA;AAAA;wBAKT,YAA0C;SAChE,EAAE,MAAM,YAAY,iBAAiB,SAAS,EAAE;AAAA;0BAGxB,YAA4C;SACpE,EAAE,MAAM,YAAY,mBAAmB,SAAS,EAAE;AAAA;8BAIzD,YACmD;SAC5C,cAAY;aACR,eAAe;WAEjB,MAAM;eACF,iBAAiB;AAAA;AAAA;AAAA;+BAM9B,YACA,iBAC6B;SACtB,EAAE,MAAM,YAAY,yBAAyB,SAAS,EAAE,YAAY;AAAA;4BAI3E,YACA,YAC0B;SACnB,EAAE,MAAM,YAAY,qBAAqB,SAAS,EAAE,YAAY;AAAA;8BAGpC,YAAgD;SAC5E,EAAE,MAAM,YAAY,uBAAuB,SAAS,EAAE;AAAA;mCAsBrB,MAA6C;SAC9E,EAAE,MAAM,YAAY,8BAA8B,SAAS,EAAE;AAAA;wCAIpE,WACsC;SAC/B,EAAE,MAAM,YAAY,oCAAoC,SAAS,EAAE;AAAA;;;;;;;;;;;;"}
1
+ {"version":3,"file":"actions.cjs.js","sources":["../src/state/actions.ts"],"sourcesContent":["import type { Operation } from 'ot-json0'\n\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'\n\nexport const ActionTypes = {\n CHANGE_DOCUMENT: 'CHANGE_DOCUMENT',\n\n REGISTER_COMPONENT: 'REGISTER_COMPONENT',\n UNREGISTER_COMPONENT: 'UNREGISTER_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\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} as const\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 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 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\nexport type Action =\n | ChangeDocumentAction\n | RegisterComponentAction\n | UnregisterComponentAction\n | RegisterReactComponentAction\n | UnregisterReactComponentAction\n | MountComponentAction\n | UnmountComponentAction\n | RegisterComponentHandleAction\n | UnregisterComponentHandleAction\n | RegisterMeasurableAction\n | UnregisterMeasurableAction\n | ChangeElementBoxModelsAction\n | ChangeDocumentElementSizeAction\n | ChangeDocumentElementScrollTopAction\n | RegisterPropControllersHandleAction\n | UnregisterPropControllersHandleAction\n | RegisterPropControllersAction\n | UnregisterPropControllersAction\n | MessageHostPropControllerAction\n | MessageBuilderPropControllerAction\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\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\nfunction 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 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"],"names":[],"mappings":";MAWa,cAAc;AAAA,EACzB,iBAAiB;AAAA,EAEjB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EAEtB,0BAA0B;AAAA,EAC1B,4BAA4B;AAAA,EAE5B,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EAEnB,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAE7B,qBAAqB;AAAA,EACrB,uBAAuB;AAAA,EAEvB,2BAA2B;AAAA,EAE3B,8BAA8B;AAAA,EAC9B,oCAAoC;AAAA,EAEpC,kCAAkC;AAAA,EAClC,oCAAoC;AAAA,EACpC,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAC7B,8BAA8B;AAAA,EAC9B,iCAAiC;AAAA;wBAqIJ,aAAqB,WAA4C;SACvF,EAAE,MAAM,YAAY,iBAAiB,SAAS,EAAE,aAAa;AAAA;2BAIpE,MACA,MACA,2BACyB;SAClB;AAAA,IACL,MAAM,YAAY;AAAA,IAClB,SAAS,EAAE,MAAM,MAAM;AAAA;AAAA;6BAIS,MAAyC;SACpE,EAAE,MAAM,YAAY,sBAAsB,SAAS,EAAE;AAAA;iCAI5D,MACA,MACA,2BACmD;SAC5C,cAAY;aACR,kBAAkB,MAAM,MAAM;WAEhC,MAAM;eACF,oBAAoB;AAAA;AAAA;AAAA;AAKnC,gCACE,MACA,WAC8B;SACvB,EAAE,MAAM,YAAY,0BAA0B,SAAS,EAAE,MAAM;AAAA;AAGxE,kCAAkC,MAA8C;SACvE,EAAE,MAAM,YAAY,4BAA4B,SAAS,EAAE;AAAA;sCAIlE,MACA,WACmD;SAC5C,cAAY;aACR,uBAAuB,MAAM;WAE/B,MAAM;eACF,yBAAyB;AAAA;AAAA;AAAA;wBAKT,aAAqB,YAA0C;SACrF,EAAE,MAAM,YAAY,iBAAiB,SAAS,EAAE,aAAa;AAAA;0BAGrC,aAAqB,YAA4C;SACzF,EAAE,MAAM,YAAY,mBAAmB,SAAS,EAAE,aAAa;AAAA;8BAItE,aACA,YACmD;SAC5C,cAAY;aACR,eAAe,aAAa;WAE9B,MAAM;eACF,iBAAiB,aAAa;AAAA;AAAA;AAAA;AAK7C,iCACE,aACA,YACA,iBAC+B;SACxB;AAAA,IACL,MAAM,YAAY;AAAA,IAClB,SAAS,EAAE,aAAa,YAAY;AAAA;AAAA;AAIxC,mCACE,aACA,YACiC;SAC1B,EAAE,MAAM,YAAY,6BAA6B,SAAS,EAAE,aAAa;AAAA;uCAIhF,aACA,YACA,iBACmD;SAC5C,cAAY;aACR,wBAAwB,aAAa,YAAY;WAEnD,MAAM;eACF,0BAA0B,aAAa;AAAA;AAAA;AAAA;4BAMpD,aACA,YACA,YAC0B;SACnB,EAAE,MAAM,YAAY,qBAAqB,SAAS,EAAE,aAAa,YAAY;AAAA;8BAIpF,aACA,YAC4B;SACrB,EAAE,MAAM,YAAY,uBAAuB,SAAS,EAAE,aAAa;AAAA;gCAkB1E,yBAC8B;SACvB,EAAE,MAAM,YAAY,2BAA2B,SAAS,EAAE;AAAA;mCAGzB,MAA6C;SAC9E,EAAE,MAAM,YAAY,8BAA8B,SAAS,EAAE;AAAA;wCAIpE,WACsC;SAC/B,EAAE,MAAM,YAAY,oCAAoC,SAAS,EAAE;AAAA;uCAI1E,aACA,YACA,QACqC;SAC9B;AAAA,IACL,MAAM,YAAY;AAAA,IAClB,SAAS,EAAE,aAAa,YAAY;AAAA;AAAA;iCAetC,aACA,YACA,iBAC+B;SACxB;AAAA,IACL,MAAM,YAAY;AAAA,IAClB,SAAS,EAAE,aAAa,YAAY;AAAA;AAAA;mCAKtC,aACA,YACiC;SAC1B,EAAE,MAAM,YAAY,6BAA6B,SAAS,EAAE,aAAa;AAAA;mCAIhF,aACA,YACA,UACA,SACoC;SAC7B;AAAA,IACL,MAAM,YAAY;AAAA,IAClB,SAAS,EAAE,aAAa,YAAY,UAAU;AAAA;AAAA;sCAKhD,aACA,YACA,UACA,SACuC;SAChC;AAAA,IACL,MAAM,YAAY;AAAA,IAClB,SAAS,EAAE,aAAa,YAAY,UAAU;AAAA;AAAA;;;;;;;;;;;;;;;;;;"}
@@ -6,12 +6,19 @@ const ActionTypes = {
6
6
  UNREGISTER_REACT_COMPONENT: "UNREGISTER_REACT_COMPONENT",
7
7
  MOUNT_COMPONENT: "MOUNT_COMPONENT",
8
8
  UNMOUNT_COMPONENT: "UNMOUNT_COMPONENT",
9
- CHANGE_COMPONENT_HANDLE: "CHANGE_COMPONENT_HANDLE",
9
+ REGISTER_COMPONENT_HANDLE: "REGISTER_COMPONENT_HANDLE",
10
+ UNREGISTER_COMPONENT_HANDLE: "UNREGISTER_COMPONENT_HANDLE",
10
11
  REGISTER_MEASURABLE: "REGISTER_MEASURABLE",
11
12
  UNREGISTER_MEASURABLE: "UNREGISTER_MEASURABLE",
12
13
  CHANGE_ELEMENT_BOX_MODELS: "CHANGE_ELEMENT_BOX_MODELS",
13
14
  CHANGE_DOCUMENT_ELEMENT_SIZE: "CHANGE_DOCUMENT_ELEMENT_SIZE",
14
- CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP: "CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP"
15
+ CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP: "CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP",
16
+ REGISTER_PROP_CONTROLLERS_HANDLE: "REGISTER_PROP_CONTROLLERS_HANDLE",
17
+ UNREGISTER_PROP_CONTROLLERS_HANDLE: "UNREGISTER_PROP_CONTROLLERS_HANDLE",
18
+ REGISTER_PROP_CONTROLLERS: "REGISTER_PROP_CONTROLLERS",
19
+ UNREGISTER_PROP_CONTROLLERS: "UNREGISTER_PROP_CONTROLLERS",
20
+ MESSAGE_HOST_PROP_CONTROLLER: "MESSAGE_HOST_PROP_CONTROLLER",
21
+ MESSAGE_BUILDER_PROP_CONTROLLER: "MESSAGE_BUILDER_PROP_CONTROLLER"
15
22
  };
16
23
  function changeDocument(documentKey, operation) {
17
24
  return { type: ActionTypes.CHANGE_DOCUMENT, payload: { documentKey, operation } };
@@ -47,28 +54,45 @@ function registerReactComponentEffect(type, component) {
47
54
  };
48
55
  };
49
56
  }
50
- function mountComponent(elementKey) {
51
- return { type: ActionTypes.MOUNT_COMPONENT, payload: { elementKey } };
57
+ function mountComponent(documentKey, elementKey) {
58
+ return { type: ActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } };
52
59
  }
53
- function unmountComponent(elementKey) {
54
- return { type: ActionTypes.UNMOUNT_COMPONENT, payload: { elementKey } };
60
+ function unmountComponent(documentKey, elementKey) {
61
+ return { type: ActionTypes.UNMOUNT_COMPONENT, payload: { documentKey, elementKey } };
55
62
  }
56
- function mountComponentEffect(elementKey) {
63
+ function mountComponentEffect(documentKey, elementKey) {
57
64
  return (dispatch) => {
58
- dispatch(mountComponent(elementKey));
65
+ dispatch(mountComponent(documentKey, elementKey));
59
66
  return () => {
60
- dispatch(unmountComponent(elementKey));
67
+ dispatch(unmountComponent(documentKey, elementKey));
61
68
  };
62
69
  };
63
70
  }
64
- function changeComponentHandle(elementKey, componentHandle) {
65
- return { type: ActionTypes.CHANGE_COMPONENT_HANDLE, payload: { elementKey, componentHandle } };
71
+ function registerComponentHandle(documentKey, elementKey, componentHandle) {
72
+ return {
73
+ type: ActionTypes.REGISTER_COMPONENT_HANDLE,
74
+ payload: { documentKey, elementKey, componentHandle }
75
+ };
66
76
  }
67
- function registerMeasurable(elementKey, measurable) {
68
- return { type: ActionTypes.REGISTER_MEASURABLE, payload: { elementKey, measurable } };
77
+ function unregisterComponentHandle(documentKey, elementKey) {
78
+ return { type: ActionTypes.UNREGISTER_COMPONENT_HANDLE, payload: { documentKey, elementKey } };
69
79
  }
70
- function unregisterMeasurable(elementKey) {
71
- return { type: ActionTypes.UNREGISTER_MEASURABLE, payload: { elementKey } };
80
+ function registerComponentHandleEffect(documentKey, elementKey, componentHandle) {
81
+ return (dispatch) => {
82
+ dispatch(registerComponentHandle(documentKey, elementKey, componentHandle));
83
+ return () => {
84
+ dispatch(unregisterComponentHandle(documentKey, elementKey));
85
+ };
86
+ };
87
+ }
88
+ function registerMeasurable(documentKey, elementKey, measurable) {
89
+ return { type: ActionTypes.REGISTER_MEASURABLE, payload: { documentKey, elementKey, measurable } };
90
+ }
91
+ function unregisterMeasurable(documentKey, elementKey) {
92
+ return { type: ActionTypes.UNREGISTER_MEASURABLE, payload: { documentKey, elementKey } };
93
+ }
94
+ function changeElementBoxModels(changedElementBoxModels) {
95
+ return { type: ActionTypes.CHANGE_ELEMENT_BOX_MODELS, payload: { changedElementBoxModels } };
72
96
  }
73
97
  function changeDocumentElementSize(size) {
74
98
  return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } };
@@ -76,5 +100,32 @@ function changeDocumentElementSize(size) {
76
100
  function changeDocumentElementScrollTop(scrollTop) {
77
101
  return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP, payload: { scrollTop } };
78
102
  }
79
- export { ActionTypes as A, changeDocumentElementScrollTop as a, changeComponentHandle as b, changeDocument as c, registerReactComponentEffect as d, changeDocumentElementSize as e, registerComponent as f, registerMeasurable as g, mountComponentEffect as m, registerComponentEffect as r, unregisterMeasurable as u };
103
+ function registerPropControllersHandle(documentKey, elementKey, handle) {
104
+ return {
105
+ type: ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE,
106
+ payload: { documentKey, elementKey, handle }
107
+ };
108
+ }
109
+ function registerPropControllers(documentKey, elementKey, propControllers) {
110
+ return {
111
+ type: ActionTypes.REGISTER_PROP_CONTROLLERS,
112
+ payload: { documentKey, elementKey, propControllers }
113
+ };
114
+ }
115
+ function unregisterPropControllers(documentKey, elementKey) {
116
+ return { type: ActionTypes.UNREGISTER_PROP_CONTROLLERS, payload: { documentKey, elementKey } };
117
+ }
118
+ function messageHostPropController(documentKey, elementKey, propName, message) {
119
+ return {
120
+ type: ActionTypes.MESSAGE_HOST_PROP_CONTROLLER,
121
+ payload: { documentKey, elementKey, propName, message }
122
+ };
123
+ }
124
+ function messageBuilderPropController(documentKey, elementKey, propName, message) {
125
+ return {
126
+ type: ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,
127
+ payload: { documentKey, elementKey, propName, message }
128
+ };
129
+ }
130
+ export { ActionTypes as A, changeDocumentElementScrollTop as a, mountComponentEffect as b, changeDocument as c, registerComponentEffect as d, registerReactComponentEffect as e, changeElementBoxModels as f, changeDocumentElementSize as g, registerComponent as h, registerMeasurable as i, unregisterPropControllers as j, registerPropControllersHandle as k, registerPropControllers as l, messageHostPropController as m, messageBuilderPropController as n, registerComponentHandleEffect as r, unregisterMeasurable as u };
80
131
  //# 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 { 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'\n\nexport const ActionTypes = {\n CHANGE_DOCUMENT: 'CHANGE_DOCUMENT',\n\n REGISTER_COMPONENT: 'REGISTER_COMPONENT',\n UNREGISTER_COMPONENT: 'UNREGISTER_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 CHANGE_COMPONENT_HANDLE: 'CHANGE_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} as const\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 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: { elementKey: string }\n}\n\ntype UnmountComponentAction = {\n type: typeof ActionTypes.UNMOUNT_COMPONENT\n payload: { elementKey: string }\n}\n\ntype ChangeComponentHandleAction = {\n type: typeof ActionTypes.CHANGE_COMPONENT_HANDLE\n payload: { elementKey: string; componentHandle: unknown }\n}\n\ntype RegisterMeasurableAction = {\n type: typeof ActionTypes.REGISTER_MEASURABLE\n payload: { elementKey: string; measurable: Measurable }\n}\n\ntype UnregisterMeasurableAction = {\n type: typeof ActionTypes.UNREGISTER_MEASURABLE\n payload: { elementKey: string }\n}\n\ntype ChangeElementBoxModelsAction = {\n type: typeof ActionTypes.CHANGE_ELEMENT_BOX_MODELS\n payload: { changedElementBoxModels: 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\nexport type Action =\n | ChangeDocumentAction\n | RegisterComponentAction\n | UnregisterComponentAction\n | RegisterReactComponentAction\n | UnregisterReactComponentAction\n | MountComponentAction\n | UnmountComponentAction\n | ChangeComponentHandleAction\n | RegisterMeasurableAction\n | UnregisterMeasurableAction\n | ChangeElementBoxModelsAction\n | ChangeDocumentElementSizeAction\n | ChangeDocumentElementScrollTopAction\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\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(elementKey: string): MountComponentAction {\n return { type: ActionTypes.MOUNT_COMPONENT, payload: { elementKey } }\n}\n\nexport function unmountComponent(elementKey: string): UnmountComponentAction {\n return { type: ActionTypes.UNMOUNT_COMPONENT, payload: { elementKey } }\n}\n\nexport function mountComponentEffect(\n elementKey: string,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(mountComponent(elementKey))\n\n return () => {\n dispatch(unmountComponent(elementKey))\n }\n }\n}\n\nexport function changeComponentHandle(\n elementKey: string,\n componentHandle: unknown,\n): ChangeComponentHandleAction {\n return { type: ActionTypes.CHANGE_COMPONENT_HANDLE, payload: { elementKey, componentHandle } }\n}\n\nexport function registerMeasurable(\n elementKey: string,\n measurable: Measurable,\n): RegisterMeasurableAction {\n return { type: ActionTypes.REGISTER_MEASURABLE, payload: { elementKey, measurable } }\n}\n\nexport function unregisterMeasurable(elementKey: string): UnregisterMeasurableAction {\n return { type: ActionTypes.UNREGISTER_MEASURABLE, payload: { elementKey } }\n}\n\nexport function registerMeasurableEffect(\n elementKey: string,\n measurable: Measurable,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerMeasurable(elementKey, measurable))\n\n return () => {\n dispatch(unregisterMeasurable(elementKey))\n }\n }\n}\n\nexport function changeElementBoxModels(\n changedElementBoxModels: 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"],"names":[],"mappings":"MASa,cAAc;AAAA,EACzB,iBAAiB;AAAA,EAEjB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EAEtB,0BAA0B;AAAA,EAC1B,4BAA4B;AAAA,EAE5B,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EAEnB,yBAAyB;AAAA,EAEzB,qBAAqB;AAAA,EACrB,uBAAuB;AAAA,EAEvB,2BAA2B;AAAA,EAE3B,8BAA8B;AAAA,EAC9B,oCAAoC;AAAA;wBAuFP,aAAqB,WAA4C;SACvF,EAAE,MAAM,YAAY,iBAAiB,SAAS,EAAE,aAAa;AAAA;2BAIpE,MACA,MACA,2BACyB;SAClB;AAAA,IACL,MAAM,YAAY;AAAA,IAClB,SAAS,EAAE,MAAM,MAAM;AAAA;AAAA;6BAIS,MAAyC;SACpE,EAAE,MAAM,YAAY,sBAAsB,SAAS,EAAE;AAAA;iCAI5D,MACA,MACA,2BACmD;SAC5C,cAAY;aACR,kBAAkB,MAAM,MAAM;WAEhC,MAAM;eACF,oBAAoB;AAAA;AAAA;AAAA;AAKnC,gCACE,MACA,WAC8B;SACvB,EAAE,MAAM,YAAY,0BAA0B,SAAS,EAAE,MAAM;AAAA;AAGxE,kCAAkC,MAA8C;SACvE,EAAE,MAAM,YAAY,4BAA4B,SAAS,EAAE;AAAA;sCAIlE,MACA,WACmD;SAC5C,cAAY;aACR,uBAAuB,MAAM;WAE/B,MAAM;eACF,yBAAyB;AAAA;AAAA;AAAA;wBAKT,YAA0C;SAChE,EAAE,MAAM,YAAY,iBAAiB,SAAS,EAAE;AAAA;0BAGxB,YAA4C;SACpE,EAAE,MAAM,YAAY,mBAAmB,SAAS,EAAE;AAAA;8BAIzD,YACmD;SAC5C,cAAY;aACR,eAAe;WAEjB,MAAM;eACF,iBAAiB;AAAA;AAAA;AAAA;+BAM9B,YACA,iBAC6B;SACtB,EAAE,MAAM,YAAY,yBAAyB,SAAS,EAAE,YAAY;AAAA;4BAI3E,YACA,YAC0B;SACnB,EAAE,MAAM,YAAY,qBAAqB,SAAS,EAAE,YAAY;AAAA;8BAGpC,YAAgD;SAC5E,EAAE,MAAM,YAAY,uBAAuB,SAAS,EAAE;AAAA;mCAsBrB,MAA6C;SAC9E,EAAE,MAAM,YAAY,8BAA8B,SAAS,EAAE;AAAA;wCAIpE,WACsC;SAC/B,EAAE,MAAM,YAAY,oCAAoC,SAAS,EAAE;AAAA;;"}
1
+ {"version":3,"file":"actions.es.js","sources":["../src/state/actions.ts"],"sourcesContent":["import type { Operation } from 'ot-json0'\n\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'\n\nexport const ActionTypes = {\n CHANGE_DOCUMENT: 'CHANGE_DOCUMENT',\n\n REGISTER_COMPONENT: 'REGISTER_COMPONENT',\n UNREGISTER_COMPONENT: 'UNREGISTER_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\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} as const\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 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 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\nexport type Action =\n | ChangeDocumentAction\n | RegisterComponentAction\n | UnregisterComponentAction\n | RegisterReactComponentAction\n | UnregisterReactComponentAction\n | MountComponentAction\n | UnmountComponentAction\n | RegisterComponentHandleAction\n | UnregisterComponentHandleAction\n | RegisterMeasurableAction\n | UnregisterMeasurableAction\n | ChangeElementBoxModelsAction\n | ChangeDocumentElementSizeAction\n | ChangeDocumentElementScrollTopAction\n | RegisterPropControllersHandleAction\n | UnregisterPropControllersHandleAction\n | RegisterPropControllersAction\n | UnregisterPropControllersAction\n | MessageHostPropControllerAction\n | MessageBuilderPropControllerAction\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\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\nfunction 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 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"],"names":[],"mappings":"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"}
@@ -184,7 +184,7 @@ function measure(measurable) {
184
184
  return measurable.getBoxModel();
185
185
  }
186
186
  function getInitialState() {
187
- return { measurables: new Map(), boxModels: new Map() };
187
+ return { measurables: /* @__PURE__ */ new Map(), boxModels: /* @__PURE__ */ new Map() };
188
188
  }
189
189
  function getMeasurables(state) {
190
190
  return state.measurables;
@@ -192,31 +192,41 @@ function getMeasurables(state) {
192
192
  function getBoxModels(state) {
193
193
  return state.boxModels;
194
194
  }
195
- function getBoxModel(state, elementKey) {
196
- var _a;
197
- return (_a = getBoxModels(state).get(elementKey)) != null ? _a : null;
195
+ function getBoxModel(state, documentKey, elementKey) {
196
+ var _a, _b;
197
+ return (_b = (_a = getBoxModels(state).get(documentKey)) == null ? void 0 : _a.get(elementKey)) != null ? _b : null;
198
198
  }
199
199
  function reducer(state = getInitialState(), action) {
200
+ var _a, _b;
200
201
  switch (action.type) {
201
- case actions.ActionTypes.REGISTER_MEASURABLE:
202
+ case actions.ActionTypes.REGISTER_MEASURABLE: {
203
+ const { documentKey, elementKey, measurable } = action.payload;
202
204
  return __spreadProps(__spreadValues({}, state), {
203
- measurables: new Map(getMeasurables(state)).set(action.payload.elementKey, action.payload.measurable)
205
+ measurables: new Map(state.measurables).set(documentKey, new Map((_a = state.measurables.get(documentKey)) != null ? _a : []).set(elementKey, measurable))
204
206
  });
207
+ }
205
208
  case actions.ActionTypes.UNREGISTER_MEASURABLE: {
206
- const nextMeasurables = new Map(getMeasurables(state));
207
- const deleted = nextMeasurables.delete(action.payload.elementKey);
208
- return deleted ? __spreadProps(__spreadValues({}, state), { measurables: nextMeasurables }) : state;
209
+ const { documentKey, elementKey } = action.payload;
210
+ const nextMeasurables = new Map((_b = state.measurables.get(documentKey)) != null ? _b : []);
211
+ const deleted = nextMeasurables.delete(elementKey);
212
+ return deleted ? __spreadProps(__spreadValues({}, state), { measurables: new Map(state.measurables).set(documentKey, nextMeasurables) }) : state;
209
213
  }
210
214
  case actions.ActionTypes.CHANGE_ELEMENT_BOX_MODELS: {
211
215
  const { changedElementBoxModels } = action.payload;
212
216
  if (changedElementBoxModels.size === 0)
213
217
  return state;
214
- const nextBoxModels = new Map(getBoxModels(state));
215
- changedElementBoxModels.forEach((boxModel, elementKey) => {
216
- if (boxModel == null)
217
- nextBoxModels.delete(elementKey);
218
- else
219
- nextBoxModels.set(elementKey, boxModel);
218
+ const nextBoxModels = new Map(state.boxModels);
219
+ changedElementBoxModels.forEach((changedBoxModels, documentKey) => {
220
+ var _a2;
221
+ const nextDocumentBoxModels = new Map((_a2 = nextBoxModels.get(documentKey)) != null ? _a2 : []);
222
+ changedBoxModels.forEach((changedBoxModel, elementKey) => {
223
+ if (changedBoxModel == null)
224
+ nextDocumentBoxModels.delete(elementKey);
225
+ else
226
+ nextDocumentBoxModels.set(elementKey, changedBoxModel);
227
+ });
228
+ if (nextDocumentBoxModels.size > 0)
229
+ nextBoxModels.set(documentKey, nextDocumentBoxModels);
220
230
  });
221
231
  return __spreadProps(__spreadValues({}, state), { boxModels: nextBoxModels });
222
232
  }
@@ -1 +1 @@
1
- {"version":3,"file":"box-models.cjs.js","sources":["../../../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../../../node_modules/css-box-model/dist/css-box-model.esm.js","../src/state/modules/box-models.ts"],"sourcesContent":["var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import invariant from 'tiny-invariant';\n\nvar getRect = function getRect(_ref) {\n var top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var width = right - left;\n var height = bottom - top;\n var rect = {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height,\n x: left,\n y: top,\n center: {\n x: (right + left) / 2,\n y: (bottom + top) / 2\n }\n };\n return rect;\n};\nvar expand = function expand(target, expandBy) {\n return {\n top: target.top - expandBy.top,\n left: target.left - expandBy.left,\n bottom: target.bottom + expandBy.bottom,\n right: target.right + expandBy.right\n };\n};\nvar shrink = function shrink(target, shrinkBy) {\n return {\n top: target.top + shrinkBy.top,\n left: target.left + shrinkBy.left,\n bottom: target.bottom - shrinkBy.bottom,\n right: target.right - shrinkBy.right\n };\n};\n\nvar shift = function shift(target, shiftBy) {\n return {\n top: target.top + shiftBy.y,\n left: target.left + shiftBy.x,\n bottom: target.bottom + shiftBy.y,\n right: target.right + shiftBy.x\n };\n};\n\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\nvar createBox = function createBox(_ref2) {\n var borderBox = _ref2.borderBox,\n _ref2$margin = _ref2.margin,\n margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin,\n _ref2$border = _ref2.border,\n border = _ref2$border === void 0 ? noSpacing : _ref2$border,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding;\n var marginBox = getRect(expand(borderBox, margin));\n var paddingBox = getRect(shrink(borderBox, border));\n var contentBox = getRect(shrink(paddingBox, padding));\n return {\n marginBox: marginBox,\n borderBox: getRect(borderBox),\n paddingBox: paddingBox,\n contentBox: contentBox,\n margin: margin,\n border: border,\n padding: padding\n };\n};\n\nvar parse = function parse(raw) {\n var value = raw.slice(0, -2);\n var suffix = raw.slice(-2);\n\n if (suffix !== 'px') {\n return 0;\n }\n\n var result = Number(value);\n !!isNaN(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not parse value [raw: \" + raw + \", without suffix: \" + value + \"]\") : invariant(false) : void 0;\n return result;\n};\n\nvar getWindowScroll = function getWindowScroll() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nvar offset = function offset(original, change) {\n var borderBox = original.borderBox,\n border = original.border,\n margin = original.margin,\n padding = original.padding;\n var shifted = shift(borderBox, change);\n return createBox({\n borderBox: shifted,\n border: border,\n margin: margin,\n padding: padding\n });\n};\nvar withScroll = function withScroll(original, scroll) {\n if (scroll === void 0) {\n scroll = getWindowScroll();\n }\n\n return offset(original, scroll);\n};\nvar calculateBox = function calculateBox(borderBox, styles) {\n var margin = {\n top: parse(styles.marginTop),\n right: parse(styles.marginRight),\n bottom: parse(styles.marginBottom),\n left: parse(styles.marginLeft)\n };\n var padding = {\n top: parse(styles.paddingTop),\n right: parse(styles.paddingRight),\n bottom: parse(styles.paddingBottom),\n left: parse(styles.paddingLeft)\n };\n var border = {\n top: parse(styles.borderTopWidth),\n right: parse(styles.borderRightWidth),\n bottom: parse(styles.borderBottomWidth),\n left: parse(styles.borderLeftWidth)\n };\n return createBox({\n borderBox: borderBox,\n margin: margin,\n padding: padding,\n border: border\n });\n};\nvar getBox = function getBox(el) {\n var borderBox = el.getBoundingClientRect();\n var styles = window.getComputedStyle(el);\n return calculateBox(borderBox, styles);\n};\n\nexport { calculateBox, createBox, expand, getBox, getRect, offset, shrink, withScroll };\n","import {\n BoxModel,\n createBox as createBoxWithoutScroll,\n CreateBoxArgs,\n getBox as getBoxWithoutScroll,\n withScroll,\n} from 'css-box-model'\n\nimport { Action, ActionTypes } from '../actions'\n\nexport type { BoxModel }\n\nexport function parse(rawString: string): number {\n const value = Number(rawString.replace(/px$/, ''))\n\n return Number.isFinite(value) ? value : 0\n}\n\nexport function createBox(boxArgs: CreateBoxArgs): BoxModel {\n return withScroll(createBoxWithoutScroll(boxArgs))\n}\n\nexport function getBox(element: Element): BoxModel {\n return withScroll(getBoxWithoutScroll(element))\n}\n\nexport interface BoxModelHandle {\n getBoxModel(): BoxModel | null\n}\n\nexport type Measurable = Element | BoxModelHandle\n\nexport function isMeasurable(value: unknown): value is Measurable {\n if (value instanceof Element) return true\n\n if (\n typeof value === 'object' &&\n value !== null &&\n 'getBoxModel' in value &&\n typeof (value as { getBoxModel: unknown }).getBoxModel === 'function'\n ) {\n return true\n }\n\n return false\n}\n\nexport function measure(measurable: Measurable): BoxModel | null {\n if (measurable instanceof Element) return getBox(measurable)\n\n return measurable.getBoxModel()\n}\n\nexport type State = {\n measurables: Map<string, Measurable>\n boxModels: Map<string, BoxModel>\n}\n\nexport function getInitialState(): State {\n return { measurables: new Map(), boxModels: new Map() }\n}\n\nexport function getMeasurables(state: State): Map<string, Measurable> {\n return state.measurables\n}\n\nexport function getBoxModels(state: State): Map<string, BoxModel> {\n return state.boxModels\n}\n\nexport function getBoxModel(state: State, elementKey: string): BoxModel | null {\n return getBoxModels(state).get(elementKey) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action) {\n switch (action.type) {\n case ActionTypes.REGISTER_MEASURABLE:\n return {\n ...state,\n measurables: new Map(getMeasurables(state)).set(\n action.payload.elementKey,\n action.payload.measurable,\n ),\n }\n\n case ActionTypes.UNREGISTER_MEASURABLE: {\n const nextMeasurables = new Map(getMeasurables(state))\n\n const deleted = nextMeasurables.delete(action.payload.elementKey)\n\n return deleted ? { ...state, measurables: nextMeasurables } : state\n }\n\n case ActionTypes.CHANGE_ELEMENT_BOX_MODELS: {\n const { changedElementBoxModels } = action.payload\n\n if (changedElementBoxModels.size === 0) return state\n\n const nextBoxModels = new Map(getBoxModels(state))\n\n changedElementBoxModels.forEach((boxModel, elementKey) => {\n if (boxModel == null) nextBoxModels.delete(elementKey)\n else nextBoxModels.set(elementKey, boxModel)\n })\n\n return { ...state, boxModels: nextBoxModels }\n }\n\n default:\n return state\n }\n}\n"],"names":["createBox","parse","getBox","createBoxWithoutScroll","getBoxWithoutScroll","ActionTypes"],"mappings":"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"}
1
+ {"version":3,"file":"box-models.cjs.js","sources":["../../../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../../../node_modules/css-box-model/dist/css-box-model.esm.js","../src/state/modules/box-models.ts"],"sourcesContent":["var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import invariant from 'tiny-invariant';\n\nvar getRect = function getRect(_ref) {\n var top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var width = right - left;\n var height = bottom - top;\n var rect = {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height,\n x: left,\n y: top,\n center: {\n x: (right + left) / 2,\n y: (bottom + top) / 2\n }\n };\n return rect;\n};\nvar expand = function expand(target, expandBy) {\n return {\n top: target.top - expandBy.top,\n left: target.left - expandBy.left,\n bottom: target.bottom + expandBy.bottom,\n right: target.right + expandBy.right\n };\n};\nvar shrink = function shrink(target, shrinkBy) {\n return {\n top: target.top + shrinkBy.top,\n left: target.left + shrinkBy.left,\n bottom: target.bottom - shrinkBy.bottom,\n right: target.right - shrinkBy.right\n };\n};\n\nvar shift = function shift(target, shiftBy) {\n return {\n top: target.top + shiftBy.y,\n left: target.left + shiftBy.x,\n bottom: target.bottom + shiftBy.y,\n right: target.right + shiftBy.x\n };\n};\n\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\nvar createBox = function createBox(_ref2) {\n var borderBox = _ref2.borderBox,\n _ref2$margin = _ref2.margin,\n margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin,\n _ref2$border = _ref2.border,\n border = _ref2$border === void 0 ? noSpacing : _ref2$border,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding;\n var marginBox = getRect(expand(borderBox, margin));\n var paddingBox = getRect(shrink(borderBox, border));\n var contentBox = getRect(shrink(paddingBox, padding));\n return {\n marginBox: marginBox,\n borderBox: getRect(borderBox),\n paddingBox: paddingBox,\n contentBox: contentBox,\n margin: margin,\n border: border,\n padding: padding\n };\n};\n\nvar parse = function parse(raw) {\n var value = raw.slice(0, -2);\n var suffix = raw.slice(-2);\n\n if (suffix !== 'px') {\n return 0;\n }\n\n var result = Number(value);\n !!isNaN(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not parse value [raw: \" + raw + \", without suffix: \" + value + \"]\") : invariant(false) : void 0;\n return result;\n};\n\nvar getWindowScroll = function getWindowScroll() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nvar offset = function offset(original, change) {\n var borderBox = original.borderBox,\n border = original.border,\n margin = original.margin,\n padding = original.padding;\n var shifted = shift(borderBox, change);\n return createBox({\n borderBox: shifted,\n border: border,\n margin: margin,\n padding: padding\n });\n};\nvar withScroll = function withScroll(original, scroll) {\n if (scroll === void 0) {\n scroll = getWindowScroll();\n }\n\n return offset(original, scroll);\n};\nvar calculateBox = function calculateBox(borderBox, styles) {\n var margin = {\n top: parse(styles.marginTop),\n right: parse(styles.marginRight),\n bottom: parse(styles.marginBottom),\n left: parse(styles.marginLeft)\n };\n var padding = {\n top: parse(styles.paddingTop),\n right: parse(styles.paddingRight),\n bottom: parse(styles.paddingBottom),\n left: parse(styles.paddingLeft)\n };\n var border = {\n top: parse(styles.borderTopWidth),\n right: parse(styles.borderRightWidth),\n bottom: parse(styles.borderBottomWidth),\n left: parse(styles.borderLeftWidth)\n };\n return createBox({\n borderBox: borderBox,\n margin: margin,\n padding: padding,\n border: border\n });\n};\nvar getBox = function getBox(el) {\n var borderBox = el.getBoundingClientRect();\n var styles = window.getComputedStyle(el);\n return calculateBox(borderBox, styles);\n};\n\nexport { calculateBox, createBox, expand, getBox, getRect, offset, shrink, withScroll };\n","import {\n BoxModel,\n createBox as createBoxWithoutScroll,\n CreateBoxArgs,\n getBox as getBoxWithoutScroll,\n withScroll,\n} from 'css-box-model'\n\nimport { Action, ActionTypes } from '../actions'\n\nexport type { BoxModel }\n\nexport function parse(rawString: string): number {\n const value = Number(rawString.replace(/px$/, ''))\n\n return Number.isFinite(value) ? value : 0\n}\n\nexport function createBox(boxArgs: CreateBoxArgs): BoxModel {\n return withScroll(createBoxWithoutScroll(boxArgs))\n}\n\nexport function getBox(element: Element): BoxModel {\n return withScroll(getBoxWithoutScroll(element))\n}\n\nexport interface BoxModelHandle {\n getBoxModel(): BoxModel | null\n}\n\nexport type Measurable = Element | BoxModelHandle\n\nexport function isMeasurable(value: unknown): value is Measurable {\n if (value instanceof Element) return true\n\n if (\n typeof value === 'object' &&\n value !== null &&\n 'getBoxModel' in value &&\n typeof (value as { getBoxModel: unknown }).getBoxModel === 'function'\n ) {\n return true\n }\n\n return false\n}\n\nexport function measure(measurable: Measurable): BoxModel | null {\n if (measurable instanceof Element) return getBox(measurable)\n\n return measurable.getBoxModel()\n}\n\nexport type State = {\n measurables: Map<string, Map<string, Measurable>>\n boxModels: Map<string, Map<string, BoxModel>>\n}\n\nexport function getInitialState(): State {\n return { measurables: new Map(), boxModels: new Map() }\n}\n\nexport function getMeasurables(state: State): Map<string, Map<string, Measurable>> {\n return state.measurables\n}\n\nexport function getBoxModels(state: State): Map<string, Map<string, BoxModel>> {\n return state.boxModels\n}\n\nexport function getBoxModel(\n state: State,\n documentKey: string,\n elementKey: string,\n): BoxModel | null {\n return getBoxModels(state).get(documentKey)?.get(elementKey) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action) {\n switch (action.type) {\n case ActionTypes.REGISTER_MEASURABLE: {\n const { documentKey, elementKey, measurable } = action.payload\n\n return {\n ...state,\n measurables: new Map(state.measurables).set(\n documentKey,\n new Map(state.measurables.get(documentKey) ?? []).set(elementKey, measurable),\n ),\n }\n }\n\n case ActionTypes.UNREGISTER_MEASURABLE: {\n const { documentKey, elementKey } = action.payload\n const nextMeasurables = new Map(state.measurables.get(documentKey) ?? [])\n\n const deleted = nextMeasurables.delete(elementKey)\n\n return deleted\n ? { ...state, measurables: new Map(state.measurables).set(documentKey, nextMeasurables) }\n : state\n }\n\n case ActionTypes.CHANGE_ELEMENT_BOX_MODELS: {\n const { changedElementBoxModels } = action.payload\n\n if (changedElementBoxModels.size === 0) return state\n\n const nextBoxModels = new Map(state.boxModels)\n\n changedElementBoxModels.forEach((changedBoxModels, documentKey) => {\n const nextDocumentBoxModels = new Map(nextBoxModels.get(documentKey) ?? [])\n\n changedBoxModels.forEach((changedBoxModel, elementKey) => {\n if (changedBoxModel == null) nextDocumentBoxModels.delete(elementKey)\n else nextDocumentBoxModels.set(elementKey, changedBoxModel)\n })\n\n if (nextDocumentBoxModels.size > 0) nextBoxModels.set(documentKey, nextDocumentBoxModels)\n })\n\n return { ...state, boxModels: nextBoxModels }\n }\n\n default:\n return state\n }\n}\n"],"names":["createBox","parse","getBox","createBoxWithoutScroll","getBoxWithoutScroll","ActionTypes"],"mappings":"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"}
@@ -183,7 +183,7 @@ function measure(measurable) {
183
183
  return measurable.getBoxModel();
184
184
  }
185
185
  function getInitialState() {
186
- return { measurables: new Map(), boxModels: new Map() };
186
+ return { measurables: /* @__PURE__ */ new Map(), boxModels: /* @__PURE__ */ new Map() };
187
187
  }
188
188
  function getMeasurables(state) {
189
189
  return state.measurables;
@@ -191,31 +191,41 @@ function getMeasurables(state) {
191
191
  function getBoxModels(state) {
192
192
  return state.boxModels;
193
193
  }
194
- function getBoxModel(state, elementKey) {
195
- var _a;
196
- return (_a = getBoxModels(state).get(elementKey)) != null ? _a : null;
194
+ function getBoxModel(state, documentKey, elementKey) {
195
+ var _a, _b;
196
+ return (_b = (_a = getBoxModels(state).get(documentKey)) == null ? void 0 : _a.get(elementKey)) != null ? _b : null;
197
197
  }
198
198
  function reducer(state = getInitialState(), action) {
199
+ var _a, _b;
199
200
  switch (action.type) {
200
- case ActionTypes.REGISTER_MEASURABLE:
201
+ case ActionTypes.REGISTER_MEASURABLE: {
202
+ const { documentKey, elementKey, measurable } = action.payload;
201
203
  return __spreadProps(__spreadValues({}, state), {
202
- measurables: new Map(getMeasurables(state)).set(action.payload.elementKey, action.payload.measurable)
204
+ measurables: new Map(state.measurables).set(documentKey, new Map((_a = state.measurables.get(documentKey)) != null ? _a : []).set(elementKey, measurable))
203
205
  });
206
+ }
204
207
  case ActionTypes.UNREGISTER_MEASURABLE: {
205
- const nextMeasurables = new Map(getMeasurables(state));
206
- const deleted = nextMeasurables.delete(action.payload.elementKey);
207
- return deleted ? __spreadProps(__spreadValues({}, state), { measurables: nextMeasurables }) : state;
208
+ const { documentKey, elementKey } = action.payload;
209
+ const nextMeasurables = new Map((_b = state.measurables.get(documentKey)) != null ? _b : []);
210
+ const deleted = nextMeasurables.delete(elementKey);
211
+ return deleted ? __spreadProps(__spreadValues({}, state), { measurables: new Map(state.measurables).set(documentKey, nextMeasurables) }) : state;
208
212
  }
209
213
  case ActionTypes.CHANGE_ELEMENT_BOX_MODELS: {
210
214
  const { changedElementBoxModels } = action.payload;
211
215
  if (changedElementBoxModels.size === 0)
212
216
  return state;
213
- const nextBoxModels = new Map(getBoxModels(state));
214
- changedElementBoxModels.forEach((boxModel, elementKey) => {
215
- if (boxModel == null)
216
- nextBoxModels.delete(elementKey);
217
- else
218
- nextBoxModels.set(elementKey, boxModel);
217
+ const nextBoxModels = new Map(state.boxModels);
218
+ changedElementBoxModels.forEach((changedBoxModels, documentKey) => {
219
+ var _a2;
220
+ const nextDocumentBoxModels = new Map((_a2 = nextBoxModels.get(documentKey)) != null ? _a2 : []);
221
+ changedBoxModels.forEach((changedBoxModel, elementKey) => {
222
+ if (changedBoxModel == null)
223
+ nextDocumentBoxModels.delete(elementKey);
224
+ else
225
+ nextDocumentBoxModels.set(elementKey, changedBoxModel);
226
+ });
227
+ if (nextDocumentBoxModels.size > 0)
228
+ nextBoxModels.set(documentKey, nextDocumentBoxModels);
219
229
  });
220
230
  return __spreadProps(__spreadValues({}, state), { boxModels: nextBoxModels });
221
231
  }
@@ -1 +1 @@
1
- {"version":3,"file":"box-models.es.js","sources":["../../../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../../../node_modules/css-box-model/dist/css-box-model.esm.js","../src/state/modules/box-models.ts"],"sourcesContent":["var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import invariant from 'tiny-invariant';\n\nvar getRect = function getRect(_ref) {\n var top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var width = right - left;\n var height = bottom - top;\n var rect = {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height,\n x: left,\n y: top,\n center: {\n x: (right + left) / 2,\n y: (bottom + top) / 2\n }\n };\n return rect;\n};\nvar expand = function expand(target, expandBy) {\n return {\n top: target.top - expandBy.top,\n left: target.left - expandBy.left,\n bottom: target.bottom + expandBy.bottom,\n right: target.right + expandBy.right\n };\n};\nvar shrink = function shrink(target, shrinkBy) {\n return {\n top: target.top + shrinkBy.top,\n left: target.left + shrinkBy.left,\n bottom: target.bottom - shrinkBy.bottom,\n right: target.right - shrinkBy.right\n };\n};\n\nvar shift = function shift(target, shiftBy) {\n return {\n top: target.top + shiftBy.y,\n left: target.left + shiftBy.x,\n bottom: target.bottom + shiftBy.y,\n right: target.right + shiftBy.x\n };\n};\n\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\nvar createBox = function createBox(_ref2) {\n var borderBox = _ref2.borderBox,\n _ref2$margin = _ref2.margin,\n margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin,\n _ref2$border = _ref2.border,\n border = _ref2$border === void 0 ? noSpacing : _ref2$border,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding;\n var marginBox = getRect(expand(borderBox, margin));\n var paddingBox = getRect(shrink(borderBox, border));\n var contentBox = getRect(shrink(paddingBox, padding));\n return {\n marginBox: marginBox,\n borderBox: getRect(borderBox),\n paddingBox: paddingBox,\n contentBox: contentBox,\n margin: margin,\n border: border,\n padding: padding\n };\n};\n\nvar parse = function parse(raw) {\n var value = raw.slice(0, -2);\n var suffix = raw.slice(-2);\n\n if (suffix !== 'px') {\n return 0;\n }\n\n var result = Number(value);\n !!isNaN(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not parse value [raw: \" + raw + \", without suffix: \" + value + \"]\") : invariant(false) : void 0;\n return result;\n};\n\nvar getWindowScroll = function getWindowScroll() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nvar offset = function offset(original, change) {\n var borderBox = original.borderBox,\n border = original.border,\n margin = original.margin,\n padding = original.padding;\n var shifted = shift(borderBox, change);\n return createBox({\n borderBox: shifted,\n border: border,\n margin: margin,\n padding: padding\n });\n};\nvar withScroll = function withScroll(original, scroll) {\n if (scroll === void 0) {\n scroll = getWindowScroll();\n }\n\n return offset(original, scroll);\n};\nvar calculateBox = function calculateBox(borderBox, styles) {\n var margin = {\n top: parse(styles.marginTop),\n right: parse(styles.marginRight),\n bottom: parse(styles.marginBottom),\n left: parse(styles.marginLeft)\n };\n var padding = {\n top: parse(styles.paddingTop),\n right: parse(styles.paddingRight),\n bottom: parse(styles.paddingBottom),\n left: parse(styles.paddingLeft)\n };\n var border = {\n top: parse(styles.borderTopWidth),\n right: parse(styles.borderRightWidth),\n bottom: parse(styles.borderBottomWidth),\n left: parse(styles.borderLeftWidth)\n };\n return createBox({\n borderBox: borderBox,\n margin: margin,\n padding: padding,\n border: border\n });\n};\nvar getBox = function getBox(el) {\n var borderBox = el.getBoundingClientRect();\n var styles = window.getComputedStyle(el);\n return calculateBox(borderBox, styles);\n};\n\nexport { calculateBox, createBox, expand, getBox, getRect, offset, shrink, withScroll };\n","import {\n BoxModel,\n createBox as createBoxWithoutScroll,\n CreateBoxArgs,\n getBox as getBoxWithoutScroll,\n withScroll,\n} from 'css-box-model'\n\nimport { Action, ActionTypes } from '../actions'\n\nexport type { BoxModel }\n\nexport function parse(rawString: string): number {\n const value = Number(rawString.replace(/px$/, ''))\n\n return Number.isFinite(value) ? value : 0\n}\n\nexport function createBox(boxArgs: CreateBoxArgs): BoxModel {\n return withScroll(createBoxWithoutScroll(boxArgs))\n}\n\nexport function getBox(element: Element): BoxModel {\n return withScroll(getBoxWithoutScroll(element))\n}\n\nexport interface BoxModelHandle {\n getBoxModel(): BoxModel | null\n}\n\nexport type Measurable = Element | BoxModelHandle\n\nexport function isMeasurable(value: unknown): value is Measurable {\n if (value instanceof Element) return true\n\n if (\n typeof value === 'object' &&\n value !== null &&\n 'getBoxModel' in value &&\n typeof (value as { getBoxModel: unknown }).getBoxModel === 'function'\n ) {\n return true\n }\n\n return false\n}\n\nexport function measure(measurable: Measurable): BoxModel | null {\n if (measurable instanceof Element) return getBox(measurable)\n\n return measurable.getBoxModel()\n}\n\nexport type State = {\n measurables: Map<string, Measurable>\n boxModels: Map<string, BoxModel>\n}\n\nexport function getInitialState(): State {\n return { measurables: new Map(), boxModels: new Map() }\n}\n\nexport function getMeasurables(state: State): Map<string, Measurable> {\n return state.measurables\n}\n\nexport function getBoxModels(state: State): Map<string, BoxModel> {\n return state.boxModels\n}\n\nexport function getBoxModel(state: State, elementKey: string): BoxModel | null {\n return getBoxModels(state).get(elementKey) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action) {\n switch (action.type) {\n case ActionTypes.REGISTER_MEASURABLE:\n return {\n ...state,\n measurables: new Map(getMeasurables(state)).set(\n action.payload.elementKey,\n action.payload.measurable,\n ),\n }\n\n case ActionTypes.UNREGISTER_MEASURABLE: {\n const nextMeasurables = new Map(getMeasurables(state))\n\n const deleted = nextMeasurables.delete(action.payload.elementKey)\n\n return deleted ? { ...state, measurables: nextMeasurables } : state\n }\n\n case ActionTypes.CHANGE_ELEMENT_BOX_MODELS: {\n const { changedElementBoxModels } = action.payload\n\n if (changedElementBoxModels.size === 0) return state\n\n const nextBoxModels = new Map(getBoxModels(state))\n\n changedElementBoxModels.forEach((boxModel, elementKey) => {\n if (boxModel == null) nextBoxModels.delete(elementKey)\n else nextBoxModels.set(elementKey, boxModel)\n })\n\n return { ...state, boxModels: nextBoxModels }\n }\n\n default:\n return state\n }\n}\n"],"names":["createBox","parse","getBox","createBoxWithoutScroll","getBoxWithoutScroll"],"mappings":"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"}
1
+ {"version":3,"file":"box-models.es.js","sources":["../../../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../../../node_modules/css-box-model/dist/css-box-model.esm.js","../src/state/modules/box-models.ts"],"sourcesContent":["var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import invariant from 'tiny-invariant';\n\nvar getRect = function getRect(_ref) {\n var top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var width = right - left;\n var height = bottom - top;\n var rect = {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height,\n x: left,\n y: top,\n center: {\n x: (right + left) / 2,\n y: (bottom + top) / 2\n }\n };\n return rect;\n};\nvar expand = function expand(target, expandBy) {\n return {\n top: target.top - expandBy.top,\n left: target.left - expandBy.left,\n bottom: target.bottom + expandBy.bottom,\n right: target.right + expandBy.right\n };\n};\nvar shrink = function shrink(target, shrinkBy) {\n return {\n top: target.top + shrinkBy.top,\n left: target.left + shrinkBy.left,\n bottom: target.bottom - shrinkBy.bottom,\n right: target.right - shrinkBy.right\n };\n};\n\nvar shift = function shift(target, shiftBy) {\n return {\n top: target.top + shiftBy.y,\n left: target.left + shiftBy.x,\n bottom: target.bottom + shiftBy.y,\n right: target.right + shiftBy.x\n };\n};\n\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\nvar createBox = function createBox(_ref2) {\n var borderBox = _ref2.borderBox,\n _ref2$margin = _ref2.margin,\n margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin,\n _ref2$border = _ref2.border,\n border = _ref2$border === void 0 ? noSpacing : _ref2$border,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding;\n var marginBox = getRect(expand(borderBox, margin));\n var paddingBox = getRect(shrink(borderBox, border));\n var contentBox = getRect(shrink(paddingBox, padding));\n return {\n marginBox: marginBox,\n borderBox: getRect(borderBox),\n paddingBox: paddingBox,\n contentBox: contentBox,\n margin: margin,\n border: border,\n padding: padding\n };\n};\n\nvar parse = function parse(raw) {\n var value = raw.slice(0, -2);\n var suffix = raw.slice(-2);\n\n if (suffix !== 'px') {\n return 0;\n }\n\n var result = Number(value);\n !!isNaN(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not parse value [raw: \" + raw + \", without suffix: \" + value + \"]\") : invariant(false) : void 0;\n return result;\n};\n\nvar getWindowScroll = function getWindowScroll() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nvar offset = function offset(original, change) {\n var borderBox = original.borderBox,\n border = original.border,\n margin = original.margin,\n padding = original.padding;\n var shifted = shift(borderBox, change);\n return createBox({\n borderBox: shifted,\n border: border,\n margin: margin,\n padding: padding\n });\n};\nvar withScroll = function withScroll(original, scroll) {\n if (scroll === void 0) {\n scroll = getWindowScroll();\n }\n\n return offset(original, scroll);\n};\nvar calculateBox = function calculateBox(borderBox, styles) {\n var margin = {\n top: parse(styles.marginTop),\n right: parse(styles.marginRight),\n bottom: parse(styles.marginBottom),\n left: parse(styles.marginLeft)\n };\n var padding = {\n top: parse(styles.paddingTop),\n right: parse(styles.paddingRight),\n bottom: parse(styles.paddingBottom),\n left: parse(styles.paddingLeft)\n };\n var border = {\n top: parse(styles.borderTopWidth),\n right: parse(styles.borderRightWidth),\n bottom: parse(styles.borderBottomWidth),\n left: parse(styles.borderLeftWidth)\n };\n return createBox({\n borderBox: borderBox,\n margin: margin,\n padding: padding,\n border: border\n });\n};\nvar getBox = function getBox(el) {\n var borderBox = el.getBoundingClientRect();\n var styles = window.getComputedStyle(el);\n return calculateBox(borderBox, styles);\n};\n\nexport { calculateBox, createBox, expand, getBox, getRect, offset, shrink, withScroll };\n","import {\n BoxModel,\n createBox as createBoxWithoutScroll,\n CreateBoxArgs,\n getBox as getBoxWithoutScroll,\n withScroll,\n} from 'css-box-model'\n\nimport { Action, ActionTypes } from '../actions'\n\nexport type { BoxModel }\n\nexport function parse(rawString: string): number {\n const value = Number(rawString.replace(/px$/, ''))\n\n return Number.isFinite(value) ? value : 0\n}\n\nexport function createBox(boxArgs: CreateBoxArgs): BoxModel {\n return withScroll(createBoxWithoutScroll(boxArgs))\n}\n\nexport function getBox(element: Element): BoxModel {\n return withScroll(getBoxWithoutScroll(element))\n}\n\nexport interface BoxModelHandle {\n getBoxModel(): BoxModel | null\n}\n\nexport type Measurable = Element | BoxModelHandle\n\nexport function isMeasurable(value: unknown): value is Measurable {\n if (value instanceof Element) return true\n\n if (\n typeof value === 'object' &&\n value !== null &&\n 'getBoxModel' in value &&\n typeof (value as { getBoxModel: unknown }).getBoxModel === 'function'\n ) {\n return true\n }\n\n return false\n}\n\nexport function measure(measurable: Measurable): BoxModel | null {\n if (measurable instanceof Element) return getBox(measurable)\n\n return measurable.getBoxModel()\n}\n\nexport type State = {\n measurables: Map<string, Map<string, Measurable>>\n boxModels: Map<string, Map<string, BoxModel>>\n}\n\nexport function getInitialState(): State {\n return { measurables: new Map(), boxModels: new Map() }\n}\n\nexport function getMeasurables(state: State): Map<string, Map<string, Measurable>> {\n return state.measurables\n}\n\nexport function getBoxModels(state: State): Map<string, Map<string, BoxModel>> {\n return state.boxModels\n}\n\nexport function getBoxModel(\n state: State,\n documentKey: string,\n elementKey: string,\n): BoxModel | null {\n return getBoxModels(state).get(documentKey)?.get(elementKey) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action) {\n switch (action.type) {\n case ActionTypes.REGISTER_MEASURABLE: {\n const { documentKey, elementKey, measurable } = action.payload\n\n return {\n ...state,\n measurables: new Map(state.measurables).set(\n documentKey,\n new Map(state.measurables.get(documentKey) ?? []).set(elementKey, measurable),\n ),\n }\n }\n\n case ActionTypes.UNREGISTER_MEASURABLE: {\n const { documentKey, elementKey } = action.payload\n const nextMeasurables = new Map(state.measurables.get(documentKey) ?? [])\n\n const deleted = nextMeasurables.delete(elementKey)\n\n return deleted\n ? { ...state, measurables: new Map(state.measurables).set(documentKey, nextMeasurables) }\n : state\n }\n\n case ActionTypes.CHANGE_ELEMENT_BOX_MODELS: {\n const { changedElementBoxModels } = action.payload\n\n if (changedElementBoxModels.size === 0) return state\n\n const nextBoxModels = new Map(state.boxModels)\n\n changedElementBoxModels.forEach((changedBoxModels, documentKey) => {\n const nextDocumentBoxModels = new Map(nextBoxModels.get(documentKey) ?? [])\n\n changedBoxModels.forEach((changedBoxModel, elementKey) => {\n if (changedBoxModel == null) nextDocumentBoxModels.delete(elementKey)\n else nextDocumentBoxModels.set(elementKey, changedBoxModel)\n })\n\n if (nextDocumentBoxModels.size > 0) nextBoxModels.set(documentKey, nextDocumentBoxModels)\n })\n\n return { ...state, boxModels: nextBoxModels }\n }\n\n default:\n return state\n }\n}\n"],"names":["createBox","parse","getBox","createBoxWithoutScroll","getBoxWithoutScroll"],"mappings":"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"}