@makeswift/runtime 0.26.3 → 0.26.4-canary.0

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 (529) hide show
  1. package/dist/cjs/api/{react.js → client.js} +4 -4
  2. package/dist/cjs/api/client.js.map +1 -0
  3. package/dist/cjs/api-handler/handlers/element-tree.js.map +1 -1
  4. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  5. package/dist/cjs/api-handler/handlers/merge-translated-data.js.map +1 -1
  6. package/dist/cjs/api-handler/handlers/translatable-data.js.map +1 -1
  7. package/dist/cjs/builder/host-to-builder-actions.js +3 -3
  8. package/dist/cjs/builder/host-to-builder-actions.js.map +1 -1
  9. package/dist/cjs/builder/index.js +2 -2
  10. package/dist/cjs/builder/index.js.map +1 -1
  11. package/dist/cjs/client/index.js +8 -8
  12. package/dist/cjs/client/index.js.map +1 -1
  13. package/dist/cjs/components/builtin/Box/Box.js +1 -1
  14. package/dist/cjs/components/builtin/Box/Box.js.map +1 -1
  15. package/dist/cjs/components/builtin/Form/Form.js +1 -1
  16. package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
  17. package/dist/cjs/components/hooks/useTableFormFieldRefs.js +1 -1
  18. package/dist/cjs/components/hooks/useTableFormFieldRefs.js.map +1 -1
  19. package/dist/cjs/next/components/tests/controls/color-control/fixtures.js.map +1 -1
  20. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +1 -2
  21. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  22. package/dist/cjs/next/components/tests/controls/rich-text-v2-control/fixtures.js.map +1 -1
  23. package/dist/cjs/next/components/tests/makeswift-component/fixtures.js +1 -2
  24. package/dist/cjs/next/components/tests/makeswift-component/fixtures.js.map +1 -1
  25. package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js +2 -3
  26. package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
  27. package/dist/cjs/next/testing/element-data.js +3 -3
  28. package/dist/cjs/next/testing/element-data.js.map +1 -1
  29. package/dist/cjs/next/testing/index.js +2 -0
  30. package/dist/cjs/next/testing/index.js.map +1 -1
  31. package/dist/cjs/next/testing/page-rendering.js +3 -3
  32. package/dist/cjs/next/testing/page-rendering.js.map +1 -1
  33. package/dist/cjs/next/testing/react-runtime.js +29 -0
  34. package/dist/cjs/next/testing/react-runtime.js.map +1 -0
  35. package/dist/cjs/prop-controllers/descriptors.js.map +1 -1
  36. package/dist/cjs/prop-controllers/instances.js.map +1 -1
  37. package/dist/cjs/runtimes/react/components/Document.js +2 -2
  38. package/dist/cjs/runtimes/react/components/Document.js.map +1 -1
  39. package/dist/cjs/runtimes/react/components/DocumentRoot.js.map +1 -1
  40. package/dist/cjs/runtimes/react/components/Element.js +2 -2
  41. package/dist/cjs/runtimes/react/components/Element.js.map +1 -1
  42. package/dist/cjs/runtimes/react/components/ElementData.js.map +1 -1
  43. package/dist/cjs/runtimes/react/components/ElementReference.js.map +1 -1
  44. package/dist/cjs/runtimes/react/components/ElementRegistration.js +2 -2
  45. package/dist/cjs/runtimes/react/components/ElementRegistration.js.map +1 -1
  46. package/dist/cjs/runtimes/react/components/MakeswiftComponent.js +2 -2
  47. package/dist/cjs/runtimes/react/components/MakeswiftComponent.js.map +1 -1
  48. package/dist/cjs/runtimes/react/components/RuntimeProvider.js +3 -3
  49. package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -1
  50. package/dist/cjs/runtimes/react/components/page/Page.js.map +1 -1
  51. package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js +2 -3
  52. package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
  53. package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js +2 -2
  54. package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  55. package/dist/cjs/runtimes/react/controls.js +2 -2
  56. package/dist/cjs/runtimes/react/controls.js.map +1 -1
  57. package/dist/cjs/runtimes/react/element-imperative-handle.js +1 -1
  58. package/dist/cjs/runtimes/react/element-imperative-handle.js.map +1 -1
  59. package/dist/cjs/runtimes/react/hooks/use-breakpoints.js +2 -2
  60. package/dist/cjs/runtimes/react/hooks/use-breakpoints.js.map +1 -1
  61. package/dist/cjs/runtimes/react/hooks/use-builder-edit-mode.js +2 -2
  62. package/dist/cjs/runtimes/react/hooks/use-builder-edit-mode.js.map +1 -1
  63. package/dist/cjs/runtimes/react/hooks/use-cache-data.js +2 -2
  64. package/dist/cjs/runtimes/react/hooks/use-cache-data.js.map +1 -1
  65. package/dist/cjs/runtimes/react/hooks/use-component.js +3 -3
  66. package/dist/cjs/runtimes/react/hooks/use-component.js.map +1 -1
  67. package/dist/cjs/runtimes/react/hooks/use-dispatch.js.map +1 -1
  68. package/dist/cjs/runtimes/react/hooks/use-document.js +2 -2
  69. package/dist/cjs/runtimes/react/hooks/use-document.js.map +1 -1
  70. package/dist/cjs/runtimes/react/hooks/use-element-id.js +2 -2
  71. package/dist/cjs/runtimes/react/hooks/use-element-id.js.map +1 -1
  72. package/dist/cjs/runtimes/react/hooks/use-is-in-builder.js +2 -2
  73. package/dist/cjs/runtimes/react/hooks/use-is-in-builder.js.map +1 -1
  74. package/dist/cjs/runtimes/react/hooks/{use-is-preview.js → use-is-read-only.js} +9 -9
  75. package/dist/cjs/runtimes/react/hooks/use-is-read-only.js.map +1 -0
  76. package/dist/cjs/runtimes/react/hooks/use-register-document.js.map +1 -1
  77. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js +2 -2
  78. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  79. package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js +1 -1
  80. package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
  81. package/dist/cjs/runtimes/react/hooks/use-selector.js.map +1 -1
  82. package/dist/cjs/runtimes/react/hooks/use-store.js.map +1 -1
  83. package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  84. package/dist/cjs/runtimes/react/host-api-client.js +2 -2
  85. package/dist/cjs/runtimes/react/host-api-client.js.map +1 -1
  86. package/dist/cjs/runtimes/react/index.js +3 -3
  87. package/dist/cjs/runtimes/react/index.js.map +1 -1
  88. package/dist/cjs/runtimes/react/poll-box-model.js +1 -1
  89. package/dist/cjs/runtimes/react/poll-box-model.js.map +1 -1
  90. package/dist/cjs/runtimes/react/react-runtime-core.js +3 -3
  91. package/dist/cjs/runtimes/react/react-runtime-core.js.map +1 -1
  92. package/dist/cjs/runtimes/react/runtime-core.js +4 -2
  93. package/dist/cjs/runtimes/react/runtime-core.js.map +1 -1
  94. package/dist/cjs/runtimes/react/testing/react-runtime.js +32 -0
  95. package/dist/cjs/runtimes/react/testing/react-runtime.js.map +1 -0
  96. package/dist/cjs/runtimes/react/utils/can-accept-ref.js.map +1 -1
  97. package/dist/cjs/state/actions/internal/index.js +34 -0
  98. package/dist/cjs/state/actions/internal/index.js.map +1 -0
  99. package/dist/cjs/state/actions/{internal.js → internal/read-only-actions.js} +30 -62
  100. package/dist/cjs/state/actions/internal/read-only-actions.js.map +1 -0
  101. package/dist/cjs/state/actions/internal/read-write-actions.js +70 -0
  102. package/dist/cjs/state/actions/internal/read-write-actions.js.map +1 -0
  103. package/dist/cjs/state/builder-api/actions.js +11 -8
  104. package/dist/cjs/state/builder-api/actions.js.map +1 -1
  105. package/dist/cjs/state/host-api.js.map +1 -1
  106. package/dist/cjs/state/makeswift-api-client.js +2 -2
  107. package/dist/cjs/state/makeswift-api-client.js.map +1 -1
  108. package/dist/cjs/state/middleware/prop-controller-handles.js +114 -0
  109. package/dist/cjs/state/middleware/prop-controller-handles.js.map +1 -0
  110. package/dist/cjs/state/middleware/read-only-element-tree.js +52 -0
  111. package/dist/cjs/state/middleware/read-only-element-tree.js.map +1 -0
  112. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js +40 -0
  113. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js.map +1 -0
  114. package/dist/cjs/state/middleware/read-write/builder-api/index.js +76 -0
  115. package/dist/cjs/state/middleware/read-write/builder-api/index.js.map +1 -0
  116. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js +278 -0
  117. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -0
  118. package/dist/cjs/state/middleware/read-write/makeswift-api-client-sync.js +37 -0
  119. package/dist/cjs/state/middleware/read-write/makeswift-api-client-sync.js.map +1 -0
  120. package/dist/cjs/state/middleware/read-write/measure-box-models.js +71 -0
  121. package/dist/cjs/state/middleware/read-write/measure-box-models.js.map +1 -0
  122. package/dist/cjs/state/middleware/read-write/update-element-tree.js +59 -0
  123. package/dist/cjs/state/middleware/read-write/update-element-tree.js.map +1 -0
  124. package/dist/cjs/state/modules/api-resources.js +7 -4
  125. package/dist/cjs/state/modules/api-resources.js.map +1 -1
  126. package/dist/cjs/state/modules/breakpoints.js +2 -1
  127. package/dist/cjs/state/modules/breakpoints.js.map +1 -1
  128. package/dist/cjs/state/modules/builder-edit-mode.js +2 -1
  129. package/dist/cjs/state/modules/builder-edit-mode.js.map +1 -1
  130. package/dist/cjs/state/modules/components-meta.js +3 -2
  131. package/dist/cjs/state/modules/components-meta.js.map +1 -1
  132. package/dist/cjs/state/modules/element-trees.js +5 -3
  133. package/dist/cjs/state/modules/element-trees.js.map +1 -1
  134. package/dist/cjs/state/modules/is-in-builder.js +2 -1
  135. package/dist/cjs/state/modules/is-in-builder.js.map +1 -1
  136. package/dist/cjs/state/modules/{is-preview.js → is-read-only.js} +12 -9
  137. package/dist/cjs/state/modules/is-read-only.js.map +1 -0
  138. package/dist/cjs/state/modules/localized-resources-map.js +4 -2
  139. package/dist/cjs/state/modules/localized-resources-map.js.map +1 -1
  140. package/dist/cjs/state/modules/prop-controllers.js +3 -2
  141. package/dist/cjs/state/modules/prop-controllers.js.map +1 -1
  142. package/dist/cjs/state/modules/react-components.js +3 -2
  143. package/dist/cjs/state/modules/react-components.js.map +1 -1
  144. package/dist/cjs/state/modules/read-only-documents.js +3 -2
  145. package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
  146. package/dist/cjs/state/modules/{box-models.js → read-write/box-models.js} +6 -4
  147. package/dist/cjs/state/modules/read-write/box-models.js.map +1 -0
  148. package/dist/cjs/state/modules/{element-imperative-handles.js → read-write/element-imperative-handles.js} +4 -3
  149. package/dist/cjs/state/modules/read-write/element-imperative-handles.js.map +1 -0
  150. package/dist/cjs/state/modules/{pointer.js → read-write/pointer.js} +3 -2
  151. package/dist/cjs/state/modules/read-write/pointer.js.map +1 -0
  152. package/dist/cjs/state/modules/{read-write-documents.js → read-write/read-write-documents.js} +3 -3
  153. package/dist/cjs/state/modules/read-write/read-write-documents.js.map +1 -0
  154. package/dist/cjs/state/ops/copy-element-tree.js +67 -0
  155. package/dist/cjs/state/ops/copy-element-tree.js.map +1 -0
  156. package/dist/cjs/state/ops/merge-element.js +73 -0
  157. package/dist/cjs/state/ops/merge-element.js.map +1 -0
  158. package/dist/cjs/state/react-builder-preview.js +18 -508
  159. package/dist/cjs/state/react-builder-preview.js.map +1 -1
  160. package/dist/cjs/state/react-page.js +6 -250
  161. package/dist/cjs/state/react-page.js.map +1 -1
  162. package/dist/cjs/state/read-only-state.js +209 -0
  163. package/dist/cjs/state/read-only-state.js.map +1 -0
  164. package/dist/cjs/state/read-write-state.js +121 -0
  165. package/dist/cjs/state/read-write-state.js.map +1 -0
  166. package/dist/cjs/state/shared-api.js.map +1 -1
  167. package/dist/cjs/state/translations/get.js +2 -2
  168. package/dist/cjs/state/translations/get.js.map +1 -1
  169. package/dist/cjs/state/translations/merge.js +2 -2
  170. package/dist/cjs/state/translations/merge.js.map +1 -1
  171. package/dist/esm/api/{react.js → client.js} +1 -1
  172. package/dist/esm/api/client.js.map +1 -0
  173. package/dist/esm/api-handler/handlers/element-tree.js.map +1 -1
  174. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  175. package/dist/esm/api-handler/handlers/merge-translated-data.js.map +1 -1
  176. package/dist/esm/api-handler/handlers/translatable-data.js.map +1 -1
  177. package/dist/esm/builder/host-to-builder-actions.js +4 -4
  178. package/dist/esm/builder/host-to-builder-actions.js.map +1 -1
  179. package/dist/esm/builder/index.js +1 -1
  180. package/dist/esm/builder/index.js.map +1 -1
  181. package/dist/esm/client/index.js +5 -5
  182. package/dist/esm/client/index.js.map +1 -1
  183. package/dist/esm/components/builtin/Box/Box.js +1 -1
  184. package/dist/esm/components/builtin/Box/Box.js.map +1 -1
  185. package/dist/esm/components/builtin/Form/Form.js +1 -1
  186. package/dist/esm/components/builtin/Form/Form.js.map +1 -1
  187. package/dist/esm/components/hooks/useTableFormFieldRefs.js +1 -1
  188. package/dist/esm/components/hooks/useTableFormFieldRefs.js.map +1 -1
  189. package/dist/esm/next/components/tests/controls/color-control/fixtures.js.map +1 -1
  190. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +1 -2
  191. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  192. package/dist/esm/next/components/tests/controls/rich-text-v2-control/fixtures.js.map +1 -1
  193. package/dist/esm/next/components/tests/makeswift-component/fixtures.js +1 -2
  194. package/dist/esm/next/components/tests/makeswift-component/fixtures.js.map +1 -1
  195. package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js +2 -3
  196. package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
  197. package/dist/esm/next/testing/element-data.js +1 -1
  198. package/dist/esm/next/testing/element-data.js.map +1 -1
  199. package/dist/esm/next/testing/index.js +1 -0
  200. package/dist/esm/next/testing/index.js.map +1 -1
  201. package/dist/esm/next/testing/page-rendering.js +3 -3
  202. package/dist/esm/next/testing/page-rendering.js.map +1 -1
  203. package/dist/esm/next/testing/react-runtime.js +5 -0
  204. package/dist/esm/next/testing/react-runtime.js.map +1 -0
  205. package/dist/esm/prop-controllers/descriptors.js.map +1 -1
  206. package/dist/esm/prop-controllers/instances.js.map +1 -1
  207. package/dist/esm/runtimes/react/components/Document.js +1 -1
  208. package/dist/esm/runtimes/react/components/Document.js.map +1 -1
  209. package/dist/esm/runtimes/react/components/DocumentRoot.js.map +1 -1
  210. package/dist/esm/runtimes/react/components/Element.js +3 -1
  211. package/dist/esm/runtimes/react/components/Element.js.map +1 -1
  212. package/dist/esm/runtimes/react/components/ElementData.js.map +1 -1
  213. package/dist/esm/runtimes/react/components/ElementReference.js.map +1 -1
  214. package/dist/esm/runtimes/react/components/ElementRegistration.js +1 -1
  215. package/dist/esm/runtimes/react/components/ElementRegistration.js.map +1 -1
  216. package/dist/esm/runtimes/react/components/MakeswiftComponent.js +1 -1
  217. package/dist/esm/runtimes/react/components/MakeswiftComponent.js.map +1 -1
  218. package/dist/esm/runtimes/react/components/RuntimeProvider.js +2 -2
  219. package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -1
  220. package/dist/esm/runtimes/react/components/page/Page.js.map +1 -1
  221. package/dist/esm/runtimes/react/controls/rich-text/rich-text.js +2 -3
  222. package/dist/esm/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
  223. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js +2 -2
  224. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  225. package/dist/esm/runtimes/react/controls.js +2 -2
  226. package/dist/esm/runtimes/react/controls.js.map +1 -1
  227. package/dist/esm/runtimes/react/element-imperative-handle.js +1 -1
  228. package/dist/esm/runtimes/react/element-imperative-handle.js.map +1 -1
  229. package/dist/esm/runtimes/react/hooks/use-breakpoints.js +1 -1
  230. package/dist/esm/runtimes/react/hooks/use-breakpoints.js.map +1 -1
  231. package/dist/esm/runtimes/react/hooks/use-builder-edit-mode.js +1 -1
  232. package/dist/esm/runtimes/react/hooks/use-builder-edit-mode.js.map +1 -1
  233. package/dist/esm/runtimes/react/hooks/use-cache-data.js +1 -1
  234. package/dist/esm/runtimes/react/hooks/use-cache-data.js.map +1 -1
  235. package/dist/esm/runtimes/react/hooks/use-component.js +1 -1
  236. package/dist/esm/runtimes/react/hooks/use-component.js.map +1 -1
  237. package/dist/esm/runtimes/react/hooks/use-dispatch.js.map +1 -1
  238. package/dist/esm/runtimes/react/hooks/use-document.js +1 -1
  239. package/dist/esm/runtimes/react/hooks/use-document.js.map +1 -1
  240. package/dist/esm/runtimes/react/hooks/use-element-id.js +1 -1
  241. package/dist/esm/runtimes/react/hooks/use-element-id.js.map +1 -1
  242. package/dist/esm/runtimes/react/hooks/use-is-in-builder.js +1 -1
  243. package/dist/esm/runtimes/react/hooks/use-is-in-builder.js.map +1 -1
  244. package/dist/esm/runtimes/react/hooks/use-is-read-only.js +9 -0
  245. package/dist/esm/runtimes/react/hooks/use-is-read-only.js.map +1 -0
  246. package/dist/esm/runtimes/react/hooks/use-register-document.js.map +1 -1
  247. package/dist/esm/runtimes/react/hooks/use-resolved-props.js +2 -2
  248. package/dist/esm/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  249. package/dist/esm/runtimes/react/hooks/use-resource-resolver.js +1 -1
  250. package/dist/esm/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
  251. package/dist/esm/runtimes/react/hooks/use-selector.js.map +1 -1
  252. package/dist/esm/runtimes/react/hooks/use-store.js.map +1 -1
  253. package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  254. package/dist/esm/runtimes/react/host-api-client.js +1 -1
  255. package/dist/esm/runtimes/react/host-api-client.js.map +1 -1
  256. package/dist/esm/runtimes/react/index.js +2 -2
  257. package/dist/esm/runtimes/react/index.js.map +1 -1
  258. package/dist/esm/runtimes/react/poll-box-model.js +1 -1
  259. package/dist/esm/runtimes/react/poll-box-model.js.map +1 -1
  260. package/dist/esm/runtimes/react/react-runtime-core.js +4 -1
  261. package/dist/esm/runtimes/react/react-runtime-core.js.map +1 -1
  262. package/dist/esm/runtimes/react/runtime-core.js +3 -5
  263. package/dist/esm/runtimes/react/runtime-core.js.map +1 -1
  264. package/dist/esm/runtimes/react/testing/react-runtime.js +8 -0
  265. package/dist/esm/runtimes/react/testing/react-runtime.js.map +1 -0
  266. package/dist/esm/runtimes/react/utils/can-accept-ref.js.map +1 -1
  267. package/dist/esm/state/actions/internal/index.js +10 -0
  268. package/dist/esm/state/actions/internal/index.js.map +1 -0
  269. package/dist/esm/state/actions/{internal.js → internal/read-only-actions.js} +24 -52
  270. package/dist/esm/state/actions/internal/read-only-actions.js.map +1 -0
  271. package/dist/esm/state/actions/internal/read-write-actions.js +41 -0
  272. package/dist/esm/state/actions/internal/read-write-actions.js.map +1 -0
  273. package/dist/esm/state/builder-api/actions.js +8 -7
  274. package/dist/esm/state/builder-api/actions.js.map +1 -1
  275. package/dist/esm/state/host-api.js.map +1 -1
  276. package/dist/esm/state/makeswift-api-client.js +1 -1
  277. package/dist/esm/state/makeswift-api-client.js.map +1 -1
  278. package/dist/esm/state/middleware/prop-controller-handles.js +80 -0
  279. package/dist/esm/state/middleware/prop-controller-handles.js.map +1 -0
  280. package/dist/esm/state/middleware/read-only-element-tree.js +28 -0
  281. package/dist/esm/state/middleware/read-only-element-tree.js.map +1 -0
  282. package/dist/esm/state/middleware/read-write/builder-api/element-size.js +16 -0
  283. package/dist/esm/state/middleware/read-write/builder-api/element-size.js.map +1 -0
  284. package/dist/esm/state/middleware/read-write/builder-api/index.js +52 -0
  285. package/dist/esm/state/middleware/read-write/builder-api/index.js.map +1 -0
  286. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js +251 -0
  287. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -0
  288. package/dist/esm/state/middleware/read-write/makeswift-api-client-sync.js +13 -0
  289. package/dist/esm/state/middleware/read-write/makeswift-api-client-sync.js.map +1 -0
  290. package/dist/esm/state/middleware/read-write/measure-box-models.js +37 -0
  291. package/dist/esm/state/middleware/read-write/measure-box-models.js.map +1 -0
  292. package/dist/esm/state/middleware/read-write/update-element-tree.js +35 -0
  293. package/dist/esm/state/middleware/read-write/update-element-tree.js.map +1 -0
  294. package/dist/esm/state/modules/api-resources.js +8 -5
  295. package/dist/esm/state/modules/api-resources.js.map +1 -1
  296. package/dist/esm/state/modules/breakpoints.js +3 -2
  297. package/dist/esm/state/modules/breakpoints.js.map +1 -1
  298. package/dist/esm/state/modules/builder-edit-mode.js +3 -2
  299. package/dist/esm/state/modules/builder-edit-mode.js.map +1 -1
  300. package/dist/esm/state/modules/components-meta.js +4 -3
  301. package/dist/esm/state/modules/components-meta.js.map +1 -1
  302. package/dist/esm/state/modules/element-trees.js +6 -4
  303. package/dist/esm/state/modules/element-trees.js.map +1 -1
  304. package/dist/esm/state/modules/is-in-builder.js +3 -2
  305. package/dist/esm/state/modules/is-in-builder.js.map +1 -1
  306. package/dist/esm/state/modules/is-read-only.js +24 -0
  307. package/dist/esm/state/modules/is-read-only.js.map +1 -0
  308. package/dist/esm/state/modules/localized-resources-map.js +5 -3
  309. package/dist/esm/state/modules/localized-resources-map.js.map +1 -1
  310. package/dist/esm/state/modules/prop-controllers.js +4 -3
  311. package/dist/esm/state/modules/prop-controllers.js.map +1 -1
  312. package/dist/esm/state/modules/react-components.js +4 -3
  313. package/dist/esm/state/modules/react-components.js.map +1 -1
  314. package/dist/esm/state/modules/read-only-documents.js +4 -6
  315. package/dist/esm/state/modules/read-only-documents.js.map +1 -1
  316. package/dist/esm/state/modules/{box-models.js → read-write/box-models.js} +6 -4
  317. package/dist/esm/state/modules/read-write/box-models.js.map +1 -0
  318. package/dist/esm/state/modules/{element-imperative-handles.js → read-write/element-imperative-handles.js} +4 -3
  319. package/dist/esm/state/modules/read-write/element-imperative-handles.js.map +1 -0
  320. package/dist/esm/state/modules/{pointer.js → read-write/pointer.js} +3 -2
  321. package/dist/esm/state/modules/read-write/pointer.js.map +1 -0
  322. package/dist/esm/state/modules/{read-write-documents.js → read-write/read-write-documents.js} +3 -3
  323. package/dist/esm/state/modules/read-write/read-write-documents.js.map +1 -0
  324. package/dist/esm/state/ops/copy-element-tree.js +37 -0
  325. package/dist/esm/state/ops/copy-element-tree.js.map +1 -0
  326. package/dist/esm/state/ops/merge-element.js +39 -0
  327. package/dist/esm/state/ops/merge-element.js.map +1 -0
  328. package/dist/esm/state/react-builder-preview.js +15 -500
  329. package/dist/esm/state/react-builder-preview.js.map +1 -1
  330. package/dist/esm/state/react-page.js +7 -240
  331. package/dist/esm/state/react-page.js.map +1 -1
  332. package/dist/esm/state/read-only-state.js +157 -0
  333. package/dist/esm/state/read-only-state.js.map +1 -0
  334. package/dist/esm/state/read-write-state.js +76 -0
  335. package/dist/esm/state/read-write-state.js.map +1 -0
  336. package/dist/esm/state/shared-api.js.map +1 -1
  337. package/dist/esm/state/translations/get.js +1 -1
  338. package/dist/esm/state/translations/get.js.map +1 -1
  339. package/dist/esm/state/translations/merge.js +1 -1
  340. package/dist/esm/state/translations/merge.js.map +1 -1
  341. package/dist/types/api/{react.d.ts → client.d.ts} +1 -1
  342. package/dist/types/api/client.d.ts.map +1 -0
  343. package/dist/types/api-handler/handlers/element-tree.d.ts +1 -1
  344. package/dist/types/api-handler/handlers/element-tree.d.ts.map +1 -1
  345. package/dist/types/api-handler/handlers/merge-translated-data.d.ts +1 -1
  346. package/dist/types/api-handler/handlers/merge-translated-data.d.ts.map +1 -1
  347. package/dist/types/api-handler/handlers/translatable-data.d.ts +1 -1
  348. package/dist/types/api-handler/handlers/translatable-data.d.ts.map +1 -1
  349. package/dist/types/api-handler/handlers/webhook/types.d.ts +4 -4
  350. package/dist/types/builder/host-to-builder-actions.d.ts +2 -2
  351. package/dist/types/builder/host-to-builder-actions.d.ts.map +1 -1
  352. package/dist/types/builder/index.d.ts +2 -2
  353. package/dist/types/builder/index.d.ts.map +1 -1
  354. package/dist/types/client/index.d.ts +2 -2
  355. package/dist/types/client/index.d.ts.map +1 -1
  356. package/dist/types/components/builtin/Box/Box.d.ts +1 -1
  357. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  358. package/dist/types/components/builtin/Form/Form.d.ts +1 -1
  359. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  360. package/dist/types/locale.d.ts +1 -1
  361. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts +1 -1
  362. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts.map +1 -1
  363. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +3 -3
  364. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
  365. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts +1 -1
  366. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts.map +1 -1
  367. package/dist/types/next/components/tests/makeswift-component/fixtures.d.ts +1 -1
  368. package/dist/types/next/components/tests/makeswift-component/fixtures.d.ts.map +1 -1
  369. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts +1 -1
  370. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts.map +1 -1
  371. package/dist/types/next/testing/element-data.d.ts +1 -1
  372. package/dist/types/next/testing/element-data.d.ts.map +1 -1
  373. package/dist/types/next/testing/index.d.ts +1 -0
  374. package/dist/types/next/testing/index.d.ts.map +1 -1
  375. package/dist/types/next/testing/page-rendering.d.ts.map +1 -1
  376. package/dist/types/next/testing/react-runtime.d.ts +2 -0
  377. package/dist/types/next/testing/react-runtime.d.ts.map +1 -0
  378. package/dist/types/prop-controllers/descriptors.d.ts +1 -1
  379. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  380. package/dist/types/prop-controllers/instances.d.ts +1 -1
  381. package/dist/types/prop-controllers/instances.d.ts.map +1 -1
  382. package/dist/types/runtimes/react/components/Document.d.ts +1 -1
  383. package/dist/types/runtimes/react/components/Document.d.ts.map +1 -1
  384. package/dist/types/runtimes/react/components/DocumentRoot.d.ts +1 -1
  385. package/dist/types/runtimes/react/components/DocumentRoot.d.ts.map +1 -1
  386. package/dist/types/runtimes/react/components/Element.d.ts +1 -1
  387. package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
  388. package/dist/types/runtimes/react/components/ElementData.d.ts +1 -1
  389. package/dist/types/runtimes/react/components/ElementData.d.ts.map +1 -1
  390. package/dist/types/runtimes/react/components/ElementReference.d.ts +1 -1
  391. package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -1
  392. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +1 -1
  393. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -1
  394. package/dist/types/runtimes/react/components/page/Page.d.ts +1 -1
  395. package/dist/types/runtimes/react/components/page/Page.d.ts.map +1 -1
  396. package/dist/types/runtimes/react/controls.d.ts +2 -2
  397. package/dist/types/runtimes/react/controls.d.ts.map +1 -1
  398. package/dist/types/runtimes/react/element-imperative-handle.d.ts +1 -1
  399. package/dist/types/runtimes/react/element-imperative-handle.d.ts.map +1 -1
  400. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts +1 -1
  401. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts.map +1 -1
  402. package/dist/types/runtimes/react/hooks/use-component.d.ts +1 -1
  403. package/dist/types/runtimes/react/hooks/use-component.d.ts.map +1 -1
  404. package/dist/types/runtimes/react/hooks/use-dispatch.d.ts +3 -3
  405. package/dist/types/runtimes/react/hooks/use-dispatch.d.ts.map +1 -1
  406. package/dist/types/runtimes/react/hooks/use-document.d.ts +1 -1
  407. package/dist/types/runtimes/react/hooks/use-document.d.ts.map +1 -1
  408. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts +2 -0
  409. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts.map +1 -0
  410. package/dist/types/runtimes/react/hooks/use-register-document.d.ts +1 -1
  411. package/dist/types/runtimes/react/hooks/use-register-document.d.ts.map +1 -1
  412. package/dist/types/runtimes/react/hooks/use-selector.d.ts +3 -3
  413. package/dist/types/runtimes/react/hooks/use-selector.d.ts.map +1 -1
  414. package/dist/types/runtimes/react/hooks/use-store.d.ts +4 -4
  415. package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
  416. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts +1 -1
  417. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts.map +1 -1
  418. package/dist/types/runtimes/react/host-api-client.d.ts +1 -1
  419. package/dist/types/runtimes/react/host-api-client.d.ts.map +1 -1
  420. package/dist/types/runtimes/react/index.d.ts +1 -1
  421. package/dist/types/runtimes/react/index.d.ts.map +1 -1
  422. package/dist/types/runtimes/react/poll-box-model.d.ts +1 -1
  423. package/dist/types/runtimes/react/poll-box-model.d.ts.map +1 -1
  424. package/dist/types/runtimes/react/react-runtime-core.d.ts +1 -1
  425. package/dist/types/runtimes/react/react-runtime-core.d.ts.map +1 -1
  426. package/dist/types/runtimes/react/runtime-core.d.ts +2 -1
  427. package/dist/types/runtimes/react/runtime-core.d.ts.map +1 -1
  428. package/dist/types/runtimes/react/testing/react-runtime.d.ts +3 -0
  429. package/dist/types/runtimes/react/testing/react-runtime.d.ts.map +1 -0
  430. package/dist/types/runtimes/react/utils/can-accept-ref.d.ts +1 -1
  431. package/dist/types/runtimes/react/utils/can-accept-ref.d.ts.map +1 -1
  432. package/dist/types/state/__tests__/merge-element.test.d.ts +2 -0
  433. package/dist/types/state/__tests__/merge-element.test.d.ts.map +1 -0
  434. package/dist/types/state/actions/index.d.ts +6 -5
  435. package/dist/types/state/actions/index.d.ts.map +1 -1
  436. package/dist/types/state/actions/internal/index.d.ts +25 -0
  437. package/dist/types/state/actions/internal/index.d.ts.map +1 -0
  438. package/dist/types/state/actions/{internal.d.ts → internal/read-only-actions.d.ts} +33 -67
  439. package/dist/types/state/actions/internal/read-only-actions.d.ts.map +1 -0
  440. package/dist/types/state/actions/internal/read-write-actions.d.ts +48 -0
  441. package/dist/types/state/actions/internal/read-write-actions.d.ts.map +1 -0
  442. package/dist/types/state/builder-api/actions.d.ts +14 -14
  443. package/dist/types/state/builder-api/actions.d.ts.map +1 -1
  444. package/dist/types/state/host-api.d.ts +1 -1
  445. package/dist/types/state/host-api.d.ts.map +1 -1
  446. package/dist/types/state/middleware/prop-controller-handles.d.ts +4 -0
  447. package/dist/types/state/middleware/prop-controller-handles.d.ts.map +1 -0
  448. package/dist/types/state/middleware/read-only-element-tree.d.ts +4 -0
  449. package/dist/types/state/middleware/read-only-element-tree.d.ts.map +1 -0
  450. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts +12 -0
  451. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts.map +1 -0
  452. package/dist/types/state/middleware/read-write/builder-api/index.d.ts +5 -0
  453. package/dist/types/state/middleware/read-write/builder-api/index.d.ts.map +1 -0
  454. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts +6 -0
  455. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts.map +1 -0
  456. package/dist/types/state/middleware/read-write/makeswift-api-client-sync.d.ts +5 -0
  457. package/dist/types/state/middleware/read-write/makeswift-api-client-sync.d.ts.map +1 -0
  458. package/dist/types/state/middleware/read-write/measure-box-models.d.ts +4 -0
  459. package/dist/types/state/middleware/read-write/measure-box-models.d.ts.map +1 -0
  460. package/dist/types/state/middleware/read-write/update-element-tree.d.ts +4 -0
  461. package/dist/types/state/middleware/read-write/update-element-tree.d.ts.map +1 -0
  462. package/dist/types/state/modules/api-resources.d.ts.map +1 -1
  463. package/dist/types/state/modules/breakpoints.d.ts.map +1 -1
  464. package/dist/types/state/modules/builder-edit-mode.d.ts.map +1 -1
  465. package/dist/types/state/modules/components-meta.d.ts.map +1 -1
  466. package/dist/types/state/modules/element-trees.d.ts.map +1 -1
  467. package/dist/types/state/modules/is-in-builder.d.ts.map +1 -1
  468. package/dist/types/state/modules/{is-preview.d.ts → is-read-only.d.ts} +3 -3
  469. package/dist/types/state/modules/is-read-only.d.ts.map +1 -0
  470. package/dist/types/state/modules/localized-resources-map.d.ts.map +1 -1
  471. package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
  472. package/dist/types/state/modules/react-components.d.ts.map +1 -1
  473. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  474. package/dist/types/state/modules/{box-models.d.ts → read-write/box-models.d.ts} +1 -1
  475. package/dist/types/state/modules/read-write/box-models.d.ts.map +1 -0
  476. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts +6 -0
  477. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts.map +1 -0
  478. package/dist/types/state/modules/{pointer.d.ts → read-write/pointer.d.ts} +2 -3
  479. package/dist/types/state/modules/read-write/pointer.d.ts.map +1 -0
  480. package/dist/types/state/modules/{read-write-documents.d.ts → read-write/read-write-documents.d.ts} +4 -4
  481. package/dist/types/state/modules/read-write/read-write-documents.d.ts.map +1 -0
  482. package/dist/types/state/ops/copy-element-tree.d.ts +37 -0
  483. package/dist/types/state/ops/copy-element-tree.d.ts.map +1 -0
  484. package/dist/types/state/ops/merge-element.d.ts +4 -0
  485. package/dist/types/state/ops/merge-element.d.ts.map +1 -0
  486. package/dist/types/state/react-builder-preview.d.ts +26 -93
  487. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  488. package/dist/types/state/react-page.d.ts +20 -136
  489. package/dist/types/state/react-page.d.ts.map +1 -1
  490. package/dist/types/state/read-only-state.d.ts +122 -0
  491. package/dist/types/state/read-only-state.d.ts.map +1 -0
  492. package/dist/types/state/read-write-state.d.ts +56 -0
  493. package/dist/types/state/read-write-state.d.ts.map +1 -0
  494. package/dist/types/state/shared-api.d.ts.map +1 -1
  495. package/dist/types/state/translations/get.d.ts +1 -1
  496. package/dist/types/state/translations/get.d.ts.map +1 -1
  497. package/dist/types/state/translations/merge.d.ts +1 -1
  498. package/dist/types/state/translations/merge.d.ts.map +1 -1
  499. package/package.json +1 -1
  500. package/dist/cjs/api/react.js.map +0 -1
  501. package/dist/cjs/runtimes/react/hooks/use-is-preview.js.map +0 -1
  502. package/dist/cjs/state/actions/internal.js.map +0 -1
  503. package/dist/cjs/state/modules/box-models.js.map +0 -1
  504. package/dist/cjs/state/modules/element-imperative-handles.js.map +0 -1
  505. package/dist/cjs/state/modules/is-preview.js.map +0 -1
  506. package/dist/cjs/state/modules/pointer.js.map +0 -1
  507. package/dist/cjs/state/modules/read-write-documents.js.map +0 -1
  508. package/dist/esm/api/react.js.map +0 -1
  509. package/dist/esm/runtimes/react/hooks/use-is-preview.js +0 -9
  510. package/dist/esm/runtimes/react/hooks/use-is-preview.js.map +0 -1
  511. package/dist/esm/state/actions/internal.js.map +0 -1
  512. package/dist/esm/state/modules/box-models.js.map +0 -1
  513. package/dist/esm/state/modules/element-imperative-handles.js.map +0 -1
  514. package/dist/esm/state/modules/is-preview.js +0 -21
  515. package/dist/esm/state/modules/is-preview.js.map +0 -1
  516. package/dist/esm/state/modules/pointer.js.map +0 -1
  517. package/dist/esm/state/modules/read-write-documents.js.map +0 -1
  518. package/dist/types/api/react.d.ts.map +0 -1
  519. package/dist/types/runtimes/react/hooks/use-is-preview.d.ts +0 -2
  520. package/dist/types/runtimes/react/hooks/use-is-preview.d.ts.map +0 -1
  521. package/dist/types/state/__tests__/react-page.test.d.ts +0 -2
  522. package/dist/types/state/__tests__/react-page.test.d.ts.map +0 -1
  523. package/dist/types/state/actions/internal.d.ts.map +0 -1
  524. package/dist/types/state/modules/box-models.d.ts.map +0 -1
  525. package/dist/types/state/modules/element-imperative-handles.d.ts +0 -7
  526. package/dist/types/state/modules/element-imperative-handles.d.ts.map +0 -1
  527. package/dist/types/state/modules/is-preview.d.ts.map +0 -1
  528. package/dist/types/state/modules/pointer.d.ts.map +0 -1
  529. package/dist/types/state/modules/read-write-documents.d.ts.map +0 -1
@@ -0,0 +1,41 @@
1
+ const ReadWriteActionTypes = {
2
+ CHANGE_ELEMENT_TREE: "CHANGE_ELEMENT_TREE",
3
+ REGISTER_MEASURABLE: "REGISTER_MEASURABLE",
4
+ UNREGISTER_MEASURABLE: "UNREGISTER_MEASURABLE",
5
+ UPDATE_API_CLIENT_CACHE: "UPDATE_API_CLIENT_CACHE"
6
+ };
7
+ function changeElementTree(payload) {
8
+ return {
9
+ type: ReadWriteActionTypes.CHANGE_ELEMENT_TREE,
10
+ payload
11
+ };
12
+ }
13
+ function registerMeasurable(documentKey, elementKey, measurable) {
14
+ return {
15
+ type: ReadWriteActionTypes.REGISTER_MEASURABLE,
16
+ payload: { documentKey, elementKey, measurable }
17
+ };
18
+ }
19
+ function unregisterMeasurable(documentKey, elementKey) {
20
+ return { type: ReadWriteActionTypes.UNREGISTER_MEASURABLE, payload: { documentKey, elementKey } };
21
+ }
22
+ function registerMeasurableEffect(documentKey, elementKey, measurable) {
23
+ return (dispatch) => {
24
+ dispatch(registerMeasurable(documentKey, elementKey, measurable));
25
+ return () => {
26
+ dispatch(unregisterMeasurable(documentKey, elementKey));
27
+ };
28
+ };
29
+ }
30
+ function updateAPIClientCache(payload) {
31
+ return { type: ReadWriteActionTypes.UPDATE_API_CLIENT_CACHE, payload };
32
+ }
33
+ export {
34
+ ReadWriteActionTypes,
35
+ changeElementTree,
36
+ registerMeasurable,
37
+ registerMeasurableEffect,
38
+ unregisterMeasurable,
39
+ updateAPIClientCache
40
+ };
41
+ //# sourceMappingURL=read-write-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/state/actions/internal/read-write-actions.ts"],"sourcesContent":["import { type Operation } from 'ot-json0'\nimport { type ThunkAction } from '@reduxjs/toolkit'\n\nimport { type Measurable } from '../../modules/read-write/box-models'\nimport { type DescriptorsByComponentType } from '../../modules/prop-controllers'\n\nimport { type DocumentPayload } from '../../shared-api'\nimport { type SerializedState as APIClientCache } from '../../makeswift-api-client'\n\nexport const ReadWriteActionTypes = {\n CHANGE_ELEMENT_TREE: 'CHANGE_ELEMENT_TREE',\n REGISTER_MEASURABLE: 'REGISTER_MEASURABLE',\n UNREGISTER_MEASURABLE: 'UNREGISTER_MEASURABLE',\n\n UPDATE_API_CLIENT_CACHE: 'UPDATE_API_CLIENT_CACHE',\n} as const\n\ntype ChangeElementTreeAction = {\n type: typeof ReadWriteActionTypes.CHANGE_ELEMENT_TREE\n payload: {\n oldDocument: DocumentPayload\n newDocument: DocumentPayload\n descriptors: DescriptorsByComponentType\n operation: Operation\n }\n}\n\ntype RegisterMeasurableAction = {\n type: typeof ReadWriteActionTypes.REGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string; measurable: Measurable }\n}\n\ntype UnregisterMeasurableAction = {\n type: typeof ReadWriteActionTypes.UNREGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype UpdateAPIClientCache = {\n type: typeof ReadWriteActionTypes.UPDATE_API_CLIENT_CACHE\n payload: APIClientCache\n}\n\nexport type ReadWriteAction =\n | ChangeElementTreeAction\n | RegisterMeasurableAction\n | UnregisterMeasurableAction\n | UpdateAPIClientCache\n\nexport function changeElementTree(\n payload: ChangeElementTreeAction['payload'],\n): ChangeElementTreeAction {\n return {\n type: ReadWriteActionTypes.CHANGE_ELEMENT_TREE,\n payload,\n }\n}\n\nexport function registerMeasurable(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): RegisterMeasurableAction {\n return {\n type: ReadWriteActionTypes.REGISTER_MEASURABLE,\n payload: { documentKey, elementKey, measurable },\n }\n}\n\nexport function unregisterMeasurable(\n documentKey: string,\n elementKey: string,\n): UnregisterMeasurableAction {\n return { type: ReadWriteActionTypes.UNREGISTER_MEASURABLE, payload: { documentKey, elementKey } }\n}\n\nexport function registerMeasurableEffect(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): ThunkAction<() => void, unknown, unknown, ReadWriteAction> {\n return dispatch => {\n dispatch(registerMeasurable(documentKey, elementKey, measurable))\n\n return () => {\n dispatch(unregisterMeasurable(documentKey, elementKey))\n }\n }\n}\n\nexport function updateAPIClientCache(payload: APIClientCache): UpdateAPIClientCache {\n return { type: ReadWriteActionTypes.UPDATE_API_CLIENT_CACHE, payload }\n}\n"],"mappings":"AASO,MAAM,uBAAuB;AAAA,EAClC,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,uBAAuB;AAAA,EAEvB,yBAAyB;AAC3B;AAiCO,SAAS,kBACd,SACyB;AACzB,SAAO;AAAA,IACL,MAAM,qBAAqB;AAAA,IAC3B;AAAA,EACF;AACF;AAEO,SAAS,mBACd,aACA,YACA,YAC0B;AAC1B,SAAO;AAAA,IACL,MAAM,qBAAqB;AAAA,IAC3B,SAAS,EAAE,aAAa,YAAY,WAAW;AAAA,EACjD;AACF;AAEO,SAAS,qBACd,aACA,YAC4B;AAC5B,SAAO,EAAE,MAAM,qBAAqB,uBAAuB,SAAS,EAAE,aAAa,WAAW,EAAE;AAClG;AAEO,SAAS,yBACd,aACA,YACA,YAC4D;AAC5D,SAAO,cAAY;AACjB,aAAS,mBAAmB,aAAa,YAAY,UAAU,CAAC;AAEhE,WAAO,MAAM;AACX,eAAS,qBAAqB,aAAa,UAAU,CAAC;AAAA,IACxD;AAAA,EACF;AACF;AAEO,SAAS,qBAAqB,SAA+C;AAClF,SAAO,EAAE,MAAM,qBAAqB,yBAAyB,QAAQ;AACvE;","names":[]}
@@ -1,11 +1,12 @@
1
1
  import { SharedActionTypes } from "../shared-api";
2
+ export * from "../shared-api";
2
3
  const BuilderActionTypes = {
3
4
  ...SharedActionTypes,
4
5
  MAKESWIFT_CONNECTION_CHECK: "MAKESWIFT_CONNECTION_CHECK",
5
- CHANGE_ELEMENT_BOX_MODELS: "CHANGE_ELEMENT_BOX_MODELS",
6
6
  MOUNT_COMPONENT: "MOUNT_COMPONENT",
7
7
  UNMOUNT_COMPONENT: "UNMOUNT_COMPONENT",
8
8
  CHANGE_DOCUMENT_ELEMENT_SIZE: "CHANGE_DOCUMENT_ELEMENT_SIZE",
9
+ CHANGE_ELEMENT_BOX_MODELS: "CHANGE_ELEMENT_BOX_MODELS",
9
10
  MESSAGE_BUILDER_PROP_CONTROLLER: "MESSAGE_BUILDER_PROP_CONTROLLER",
10
11
  HANDLE_WHEEL: "HANDLE_WHEEL",
11
12
  HANDLE_POINTER_MOVE: "HANDLE_POINTER_MOVE",
@@ -19,12 +20,6 @@ const BuilderActionTypes = {
19
20
  function makeswiftConnectionCheck(payload) {
20
21
  return { type: BuilderActionTypes.MAKESWIFT_CONNECTION_CHECK, payload };
21
22
  }
22
- function changeElementBoxModels(changedElementBoxModels) {
23
- return {
24
- type: BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS,
25
- payload: { changedElementBoxModels }
26
- };
27
- }
28
23
  function mountComponent(documentKey, elementKey) {
29
24
  return { type: BuilderActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } };
30
25
  }
@@ -42,6 +37,12 @@ function mountComponentEffect(documentKey, elementKey) {
42
37
  function changeDocumentElementSize(size) {
43
38
  return { type: BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } };
44
39
  }
40
+ function changeElementBoxModels(changedElementBoxModels) {
41
+ return {
42
+ type: BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS,
43
+ payload: { changedElementBoxModels }
44
+ };
45
+ }
45
46
  function messageBuilderPropController(documentKey, elementKey, propName, message) {
46
47
  return {
47
48
  type: BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/builder-api/actions.ts"],"sourcesContent":["import { type ThunkAction } from '@reduxjs/toolkit'\n\nimport { type SerializedControl } from '../../builder'\nimport { type PropControllerMessage } from '../../prop-controllers/instances'\n\nimport { type Document } from '../modules/read-only-documents'\nimport { type BoxModel } from '../modules/box-models'\nimport { type ComponentMeta } from '../modules/components-meta'\n\nimport { type Size } from '../react-builder-preview'\nimport { type DocumentPayload, type SharedAction, SharedActionTypes } from '../shared-api'\n\nexport const BuilderActionTypes = {\n ...SharedActionTypes,\n\n MAKESWIFT_CONNECTION_CHECK: 'MAKESWIFT_CONNECTION_CHECK',\n\n CHANGE_ELEMENT_BOX_MODELS: 'CHANGE_ELEMENT_BOX_MODELS',\n\n MOUNT_COMPONENT: 'MOUNT_COMPONENT',\n UNMOUNT_COMPONENT: 'UNMOUNT_COMPONENT',\n\n CHANGE_DOCUMENT_ELEMENT_SIZE: 'CHANGE_DOCUMENT_ELEMENT_SIZE',\n MESSAGE_BUILDER_PROP_CONTROLLER: 'MESSAGE_BUILDER_PROP_CONTROLLER',\n\n HANDLE_WHEEL: 'HANDLE_WHEEL',\n HANDLE_POINTER_MOVE: 'HANDLE_POINTER_MOVE',\n\n ELEMENT_FROM_POINT_CHANGE: 'ELEMENT_FROM_POINT_CHANGE',\n\n REGISTER_BUILDER_DOCUMENT: 'REGISTER_BUILDER_DOCUMENT',\n UNREGISTER_BUILDER_DOCUMENT: 'UNREGISTER_BUILDER_DOCUMENT',\n\n REGISTER_BUILDER_COMPONENT: 'REGISTER_BUILDER_COMPONENT',\n UNREGISTER_BUILDER_COMPONENT: 'UNREGISTER_BUILDER_COMPONENT',\n\n HANDLE_HOST_NAVIGATE: 'HANDLE_HOST_NAVIGATE',\n} as const\n\ntype ActionWithTransferables<A> = A & {\n transferables?: Transferable[]\n}\n\ntype MakeswiftConnectionCheckAction = {\n type: typeof BuilderActionTypes.MAKESWIFT_CONNECTION_CHECK\n payload: { currentUrl: string }\n}\n\ntype ChangeElementBoxModelsAction = {\n type: typeof BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS\n payload: { changedElementBoxModels: Map<string, Map<string, BoxModel | null>> }\n}\n\ntype MountComponentAction = {\n type: typeof BuilderActionTypes.MOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype UnmountComponentAction = {\n type: typeof BuilderActionTypes.UNMOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype ChangeDocumentElementSizeAction = {\n type: typeof BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE\n payload: { size: Size }\n}\n\ntype MessageBuilderPropControllerAction<T = PropControllerMessage> = {\n type: typeof BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype HandleWheelAction = {\n type: typeof BuilderActionTypes.HANDLE_WHEEL\n payload: { deltaX: number; deltaY: number }\n}\n\ntype HandlePointerMoveAction = {\n type: typeof BuilderActionTypes.HANDLE_POINTER_MOVE\n payload: { clientX: number; clientY: number }\n}\n\ntype ElementFromPointChangeAction = {\n type: typeof BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE\n payload: { keys: { documentKey: string; elementKey: string } | null }\n}\n\ntype RegisterBuilderDocumentAction = {\n type: typeof BuilderActionTypes.REGISTER_BUILDER_DOCUMENT\n payload: { documentKey: string; document: DocumentPayload }\n}\n\ntype UnregisterBuilderDocumentAction = {\n type: typeof BuilderActionTypes.UNREGISTER_BUILDER_DOCUMENT\n payload: { documentKey: string }\n}\n\ntype RegisterBuilderComponentAction = {\n type: typeof BuilderActionTypes.REGISTER_BUILDER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n serializedControls: Record<string, SerializedControl>\n }\n}\n\ntype UnregisterBuilderComponentAction = {\n type: typeof BuilderActionTypes.UNREGISTER_BUILDER_COMPONENT\n payload: { type: string }\n}\n\ntype HandleHostNavigateAction = {\n type: typeof BuilderActionTypes.HANDLE_HOST_NAVIGATE\n payload: { url: string | null }\n}\n\nexport type BuilderAction =\n | SharedAction\n | MakeswiftConnectionCheckAction\n | ChangeElementBoxModelsAction\n | MountComponentAction\n | UnmountComponentAction\n | ChangeDocumentElementSizeAction\n | MessageBuilderPropControllerAction\n | HandleWheelAction\n | HandlePointerMoveAction\n | ElementFromPointChangeAction\n | RegisterBuilderDocumentAction\n | UnregisterBuilderDocumentAction\n | RegisterBuilderComponentAction\n | UnregisterBuilderComponentAction\n | HandleHostNavigateAction\n\nexport function makeswiftConnectionCheck(\n payload: MakeswiftConnectionCheckAction['payload'],\n): MakeswiftConnectionCheckAction {\n return { type: BuilderActionTypes.MAKESWIFT_CONNECTION_CHECK, payload }\n}\n\nexport function changeElementBoxModels(\n changedElementBoxModels: Map<string, Map<string, BoxModel | null>>,\n): ChangeElementBoxModelsAction {\n return {\n type: BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS,\n payload: { changedElementBoxModels },\n }\n}\n\nexport function mountComponent(documentKey: string, elementKey: string): MountComponentAction {\n return { type: BuilderActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function unmountComponent(documentKey: string, elementKey: string): UnmountComponentAction {\n return { type: BuilderActionTypes.UNMOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function mountComponentEffect(\n documentKey: string,\n elementKey: string,\n): ThunkAction<() => void, unknown, unknown, BuilderAction> {\n return dispatch => {\n dispatch(mountComponent(documentKey, elementKey))\n\n return () => {\n dispatch(unmountComponent(documentKey, elementKey))\n }\n }\n}\n\nexport function changeDocumentElementSize(size: Size): ChangeDocumentElementSizeAction {\n return { type: BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } }\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: BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function handleWheel(payload: { deltaX: number; deltaY: number }): HandleWheelAction {\n return { type: BuilderActionTypes.HANDLE_WHEEL, payload }\n}\n\nexport function handlePointerMove(payload: {\n clientX: number\n clientY: number\n}): HandlePointerMoveAction {\n return { type: BuilderActionTypes.HANDLE_POINTER_MOVE, payload }\n}\n\nexport function elementFromPointChange(\n keys: {\n documentKey: string\n elementKey: string\n } | null,\n): ElementFromPointChangeAction {\n return { type: BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE, payload: { keys } }\n}\n\nexport function registerBuilderDocument(document: Document): RegisterBuilderDocumentAction {\n return {\n type: BuilderActionTypes.REGISTER_BUILDER_DOCUMENT,\n payload: { documentKey: document.key, document },\n }\n}\n\nexport function unregisterBuilderDocument(documentKey: string): UnregisterBuilderDocumentAction {\n return { type: BuilderActionTypes.UNREGISTER_BUILDER_DOCUMENT, payload: { documentKey } }\n}\n\nexport function registerBuilderDocumentsEffect(\n documents: Document[],\n): ThunkAction<() => void, unknown, unknown, BuilderAction> {\n return dispatch => {\n documents.forEach(document => dispatch(registerBuilderDocument(document)))\n\n return () => {\n documents.forEach(document => dispatch(unregisterBuilderDocument(document.key)))\n }\n }\n}\n\nexport function registerBuilderComponent(\n payload: RegisterBuilderComponentAction['payload'],\n transferables?: Transferable[],\n): ActionWithTransferables<RegisterBuilderComponentAction> {\n return {\n type: BuilderActionTypes.REGISTER_BUILDER_COMPONENT,\n payload,\n transferables,\n }\n}\n\nexport function unregisterBuilderComponent(\n payload: UnregisterBuilderComponentAction['payload'],\n): UnregisterBuilderComponentAction {\n return { type: BuilderActionTypes.UNREGISTER_BUILDER_COMPONENT, payload }\n}\n\nexport function hasTransferables<A extends BuilderAction>(\n action: A,\n): action is ActionWithTransferables<A> {\n return 'transferables' in action && Array.isArray(action.transferables)\n}\n"],"mappings":"AAUA,SAAkD,yBAAyB;AAEpE,MAAM,qBAAqB;AAAA,EAChC,GAAG;AAAA,EAEH,4BAA4B;AAAA,EAE5B,2BAA2B;AAAA,EAE3B,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EAEnB,8BAA8B;AAAA,EAC9B,iCAAiC;AAAA,EAEjC,cAAc;AAAA,EACd,qBAAqB;AAAA,EAErB,2BAA2B;AAAA,EAE3B,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAE7B,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAE9B,sBAAsB;AACxB;AAiGO,SAAS,yBACd,SACgC;AAChC,SAAO,EAAE,MAAM,mBAAmB,4BAA4B,QAAQ;AACxE;AAEO,SAAS,uBACd,yBAC8B;AAC9B,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB,SAAS,EAAE,wBAAwB;AAAA,EACrC;AACF;AAEO,SAAS,eAAe,aAAqB,YAA0C;AAC5F,SAAO,EAAE,MAAM,mBAAmB,iBAAiB,SAAS,EAAE,aAAa,WAAW,EAAE;AAC1F;AAEO,SAAS,iBAAiB,aAAqB,YAA4C;AAChG,SAAO,EAAE,MAAM,mBAAmB,mBAAmB,SAAS,EAAE,aAAa,WAAW,EAAE;AAC5F;AAEO,SAAS,qBACd,aACA,YAC0D;AAC1D,SAAO,cAAY;AACjB,aAAS,eAAe,aAAa,UAAU,CAAC;AAEhD,WAAO,MAAM;AACX,eAAS,iBAAiB,aAAa,UAAU,CAAC;AAAA,IACpD;AAAA,EACF;AACF;AAEO,SAAS,0BAA0B,MAA6C;AACrF,SAAO,EAAE,MAAM,mBAAmB,8BAA8B,SAAS,EAAE,KAAK,EAAE;AACpF;AAEO,SAAS,6BACd,aACA,YACA,UACA,SACuC;AACvC,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB,SAAS,EAAE,aAAa,YAAY,UAAU,QAAQ;AAAA,EACxD;AACF;AAEO,SAAS,YAAY,SAAgE;AAC1F,SAAO,EAAE,MAAM,mBAAmB,cAAc,QAAQ;AAC1D;AAEO,SAAS,kBAAkB,SAGN;AAC1B,SAAO,EAAE,MAAM,mBAAmB,qBAAqB,QAAQ;AACjE;AAEO,SAAS,uBACd,MAI8B;AAC9B,SAAO,EAAE,MAAM,mBAAmB,2BAA2B,SAAS,EAAE,KAAK,EAAE;AACjF;AAEO,SAAS,wBAAwB,UAAmD;AACzF,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB,SAAS,EAAE,aAAa,SAAS,KAAK,SAAS;AAAA,EACjD;AACF;AAEO,SAAS,0BAA0B,aAAsD;AAC9F,SAAO,EAAE,MAAM,mBAAmB,6BAA6B,SAAS,EAAE,YAAY,EAAE;AAC1F;AAEO,SAAS,+BACd,WAC0D;AAC1D,SAAO,cAAY;AACjB,cAAU,QAAQ,cAAY,SAAS,wBAAwB,QAAQ,CAAC,CAAC;AAEzE,WAAO,MAAM;AACX,gBAAU,QAAQ,cAAY,SAAS,0BAA0B,SAAS,GAAG,CAAC,CAAC;AAAA,IACjF;AAAA,EACF;AACF;AAEO,SAAS,yBACd,SACA,eACyD;AACzD,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,2BACd,SACkC;AAClC,SAAO,EAAE,MAAM,mBAAmB,8BAA8B,QAAQ;AAC1E;AAEO,SAAS,iBACd,QACsC;AACtC,SAAO,mBAAmB,UAAU,MAAM,QAAQ,OAAO,aAAa;AACxE;","names":[]}
1
+ {"version":3,"sources":["../../../../src/state/builder-api/actions.ts"],"sourcesContent":["import { type ThunkAction } from '@reduxjs/toolkit'\n\nimport { type SerializedControl } from '../../builder'\nimport { type PropControllerMessage } from '../../prop-controllers/instances'\n\nimport { type Document } from '../modules/read-only-documents'\nimport { type ComponentMeta } from '../modules/components-meta'\nimport { type BoxModel } from '../modules/read-write/box-models'\n\nimport { type ElementSize } from '../middleware/read-write/builder-api/element-size'\nimport { type DocumentPayload, type SharedAction, SharedActionTypes } from '../shared-api'\n\nexport * from '../shared-api'\n\n// actions dispatched by the host to the builder (\"Builder API\")\n// note that some of these actions, in addition to being dispatched to the builder,\n// might also be internally intercepted by the host as a part of maintaining the\n// runtime's \"read-write\" state\nexport const BuilderActionTypes = {\n ...SharedActionTypes,\n\n MAKESWIFT_CONNECTION_CHECK: 'MAKESWIFT_CONNECTION_CHECK',\n\n MOUNT_COMPONENT: 'MOUNT_COMPONENT',\n UNMOUNT_COMPONENT: 'UNMOUNT_COMPONENT',\n\n CHANGE_DOCUMENT_ELEMENT_SIZE: 'CHANGE_DOCUMENT_ELEMENT_SIZE',\n CHANGE_ELEMENT_BOX_MODELS: 'CHANGE_ELEMENT_BOX_MODELS',\n\n MESSAGE_BUILDER_PROP_CONTROLLER: 'MESSAGE_BUILDER_PROP_CONTROLLER',\n\n HANDLE_WHEEL: 'HANDLE_WHEEL',\n HANDLE_POINTER_MOVE: 'HANDLE_POINTER_MOVE',\n\n ELEMENT_FROM_POINT_CHANGE: 'ELEMENT_FROM_POINT_CHANGE',\n\n REGISTER_BUILDER_DOCUMENT: 'REGISTER_BUILDER_DOCUMENT',\n UNREGISTER_BUILDER_DOCUMENT: 'UNREGISTER_BUILDER_DOCUMENT',\n\n REGISTER_BUILDER_COMPONENT: 'REGISTER_BUILDER_COMPONENT',\n UNREGISTER_BUILDER_COMPONENT: 'UNREGISTER_BUILDER_COMPONENT',\n\n HANDLE_HOST_NAVIGATE: 'HANDLE_HOST_NAVIGATE',\n} as const\n\ntype ActionWithTransferables<A> = A & {\n transferables?: Transferable[]\n}\n\ntype MakeswiftConnectionCheckAction = {\n type: typeof BuilderActionTypes.MAKESWIFT_CONNECTION_CHECK\n payload: { currentUrl: string }\n}\n\ntype MountComponentAction = {\n type: typeof BuilderActionTypes.MOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype UnmountComponentAction = {\n type: typeof BuilderActionTypes.UNMOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype ChangeDocumentElementSizeAction = {\n type: typeof BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE\n payload: { size: ElementSize }\n}\n\ntype ChangeElementBoxModelsAction = {\n type: typeof BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS\n payload: { changedElementBoxModels: Map<string, Map<string, BoxModel | null>> }\n}\n\ntype MessageBuilderPropControllerAction<T = PropControllerMessage> = {\n type: typeof BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype HandleWheelAction = {\n type: typeof BuilderActionTypes.HANDLE_WHEEL\n payload: { deltaX: number; deltaY: number }\n}\n\ntype HandlePointerMoveAction = {\n type: typeof BuilderActionTypes.HANDLE_POINTER_MOVE\n payload: { clientX: number; clientY: number }\n}\n\ntype ElementFromPointChangeAction = {\n type: typeof BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE\n payload: { keys: { documentKey: string; elementKey: string } | null }\n}\n\ntype RegisterBuilderDocumentAction = {\n type: typeof BuilderActionTypes.REGISTER_BUILDER_DOCUMENT\n payload: { documentKey: string; document: DocumentPayload }\n}\n\ntype UnregisterBuilderDocumentAction = {\n type: typeof BuilderActionTypes.UNREGISTER_BUILDER_DOCUMENT\n payload: { documentKey: string }\n}\n\ntype RegisterBuilderComponentAction = {\n type: typeof BuilderActionTypes.REGISTER_BUILDER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n serializedControls: Record<string, SerializedControl>\n }\n}\n\ntype UnregisterBuilderComponentAction = {\n type: typeof BuilderActionTypes.UNREGISTER_BUILDER_COMPONENT\n payload: { type: string }\n}\n\ntype HandleHostNavigateAction = {\n type: typeof BuilderActionTypes.HANDLE_HOST_NAVIGATE\n payload: { url: string | null }\n}\n\nexport type BuilderAction =\n | SharedAction\n | MakeswiftConnectionCheckAction\n | MountComponentAction\n | UnmountComponentAction\n | ChangeDocumentElementSizeAction\n | ChangeElementBoxModelsAction\n | MessageBuilderPropControllerAction\n | HandleWheelAction\n | HandlePointerMoveAction\n | ElementFromPointChangeAction\n | RegisterBuilderDocumentAction\n | UnregisterBuilderDocumentAction\n | RegisterBuilderComponentAction\n | UnregisterBuilderComponentAction\n | HandleHostNavigateAction\n\nexport function makeswiftConnectionCheck(\n payload: MakeswiftConnectionCheckAction['payload'],\n): MakeswiftConnectionCheckAction {\n return { type: BuilderActionTypes.MAKESWIFT_CONNECTION_CHECK, payload }\n}\n\nexport function mountComponent(documentKey: string, elementKey: string): MountComponentAction {\n return { type: BuilderActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function unmountComponent(documentKey: string, elementKey: string): UnmountComponentAction {\n return { type: BuilderActionTypes.UNMOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function mountComponentEffect(\n documentKey: string,\n elementKey: string,\n): ThunkAction<() => void, unknown, unknown, BuilderAction> {\n return dispatch => {\n dispatch(mountComponent(documentKey, elementKey))\n\n return () => {\n dispatch(unmountComponent(documentKey, elementKey))\n }\n }\n}\n\nexport function changeDocumentElementSize(size: ElementSize): ChangeDocumentElementSizeAction {\n return { type: BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } }\n}\n\nexport function changeElementBoxModels(\n changedElementBoxModels: Map<string, Map<string, BoxModel | null>>,\n): ChangeElementBoxModelsAction {\n return {\n type: BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS,\n payload: { changedElementBoxModels },\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: BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function handleWheel(payload: { deltaX: number; deltaY: number }): HandleWheelAction {\n return { type: BuilderActionTypes.HANDLE_WHEEL, payload }\n}\n\nexport function handlePointerMove(payload: {\n clientX: number\n clientY: number\n}): HandlePointerMoveAction {\n return { type: BuilderActionTypes.HANDLE_POINTER_MOVE, payload }\n}\n\nexport function elementFromPointChange(\n keys: {\n documentKey: string\n elementKey: string\n } | null,\n): ElementFromPointChangeAction {\n return { type: BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE, payload: { keys } }\n}\n\nexport function registerBuilderDocument(document: Document): RegisterBuilderDocumentAction {\n return {\n type: BuilderActionTypes.REGISTER_BUILDER_DOCUMENT,\n payload: { documentKey: document.key, document },\n }\n}\n\nexport function unregisterBuilderDocument(documentKey: string): UnregisterBuilderDocumentAction {\n return { type: BuilderActionTypes.UNREGISTER_BUILDER_DOCUMENT, payload: { documentKey } }\n}\n\nexport function registerBuilderDocumentsEffect(\n documents: Document[],\n): ThunkAction<() => void, unknown, unknown, BuilderAction> {\n return dispatch => {\n documents.forEach(document => dispatch(registerBuilderDocument(document)))\n\n return () => {\n documents.forEach(document => dispatch(unregisterBuilderDocument(document.key)))\n }\n }\n}\n\nexport function registerBuilderComponent(\n payload: RegisterBuilderComponentAction['payload'],\n transferables?: Transferable[],\n): ActionWithTransferables<RegisterBuilderComponentAction> {\n return {\n type: BuilderActionTypes.REGISTER_BUILDER_COMPONENT,\n payload,\n transferables,\n }\n}\n\nexport function unregisterBuilderComponent(\n payload: UnregisterBuilderComponentAction['payload'],\n): UnregisterBuilderComponentAction {\n return { type: BuilderActionTypes.UNREGISTER_BUILDER_COMPONENT, payload }\n}\n\nexport function hasTransferables<A extends BuilderAction>(\n action: A,\n): action is ActionWithTransferables<A> {\n return 'transferables' in action && Array.isArray(action.transferables)\n}\n"],"mappings":"AAUA,SAAkD,yBAAyB;AAE3E,cAAc;AAMP,MAAM,qBAAqB;AAAA,EAChC,GAAG;AAAA,EAEH,4BAA4B;AAAA,EAE5B,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EAEnB,8BAA8B;AAAA,EAC9B,2BAA2B;AAAA,EAE3B,iCAAiC;AAAA,EAEjC,cAAc;AAAA,EACd,qBAAqB;AAAA,EAErB,2BAA2B;AAAA,EAE3B,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAE7B,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAE9B,sBAAsB;AACxB;AAiGO,SAAS,yBACd,SACgC;AAChC,SAAO,EAAE,MAAM,mBAAmB,4BAA4B,QAAQ;AACxE;AAEO,SAAS,eAAe,aAAqB,YAA0C;AAC5F,SAAO,EAAE,MAAM,mBAAmB,iBAAiB,SAAS,EAAE,aAAa,WAAW,EAAE;AAC1F;AAEO,SAAS,iBAAiB,aAAqB,YAA4C;AAChG,SAAO,EAAE,MAAM,mBAAmB,mBAAmB,SAAS,EAAE,aAAa,WAAW,EAAE;AAC5F;AAEO,SAAS,qBACd,aACA,YAC0D;AAC1D,SAAO,cAAY;AACjB,aAAS,eAAe,aAAa,UAAU,CAAC;AAEhD,WAAO,MAAM;AACX,eAAS,iBAAiB,aAAa,UAAU,CAAC;AAAA,IACpD;AAAA,EACF;AACF;AAEO,SAAS,0BAA0B,MAAoD;AAC5F,SAAO,EAAE,MAAM,mBAAmB,8BAA8B,SAAS,EAAE,KAAK,EAAE;AACpF;AAEO,SAAS,uBACd,yBAC8B;AAC9B,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB,SAAS,EAAE,wBAAwB;AAAA,EACrC;AACF;AAEO,SAAS,6BACd,aACA,YACA,UACA,SACuC;AACvC,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB,SAAS,EAAE,aAAa,YAAY,UAAU,QAAQ;AAAA,EACxD;AACF;AAEO,SAAS,YAAY,SAAgE;AAC1F,SAAO,EAAE,MAAM,mBAAmB,cAAc,QAAQ;AAC1D;AAEO,SAAS,kBAAkB,SAGN;AAC1B,SAAO,EAAE,MAAM,mBAAmB,qBAAqB,QAAQ;AACjE;AAEO,SAAS,uBACd,MAI8B;AAC9B,SAAO,EAAE,MAAM,mBAAmB,2BAA2B,SAAS,EAAE,KAAK,EAAE;AACjF;AAEO,SAAS,wBAAwB,UAAmD;AACzF,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB,SAAS,EAAE,aAAa,SAAS,KAAK,SAAS;AAAA,EACjD;AACF;AAEO,SAAS,0BAA0B,aAAsD;AAC9F,SAAO,EAAE,MAAM,mBAAmB,6BAA6B,SAAS,EAAE,YAAY,EAAE;AAC1F;AAEO,SAAS,+BACd,WAC0D;AAC1D,SAAO,cAAY;AACjB,cAAU,QAAQ,cAAY,SAAS,wBAAwB,QAAQ,CAAC,CAAC;AAEzE,WAAO,MAAM;AACX,gBAAU,QAAQ,cAAY,SAAS,0BAA0B,SAAS,GAAG,CAAC,CAAC;AAAA,IACjF;AAAA,EACF;AACF;AAEO,SAAS,yBACd,SACA,eACyD;AACzD,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,2BACd,SACkC;AAClC,SAAO,EAAE,MAAM,mBAAmB,8BAA8B,QAAQ;AAC1E;AAEO,SAAS,iBACd,QACsC;AACtC,SAAO,mBAAmB,UAAU,MAAM,QAAQ,OAAO,aAAa;AACxE;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/state/host-api.ts"],"sourcesContent":["import { isAction } from '@reduxjs/toolkit'\n\nimport { type Operation } from 'ot-json0'\n\nimport { type PropControllerMessage } from '../prop-controllers/instances'\nimport { type APIResource, APIResourceLocale } from '../api/types'\n\nimport { BuilderEditMode } from './modules/builder-edit-mode'\nimport { type Point } from './modules/pointer'\n\nimport { type SharedAction, SharedActionTypes } from './shared-api'\n\nexport const HostActionTypes = {\n ...SharedActionTypes,\n\n INIT: 'INIT',\n CLEAN_UP: 'CLEAN_UP',\n\n CHANGE_DOCUMENT: 'CHANGE_DOCUMENT',\n\n CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP: 'CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP',\n SCROLL_DOCUMENT_ELEMENT: 'SCROLL_DOCUMENT_ELEMENT',\n\n MESSAGE_HOST_PROP_CONTROLLER: 'MESSAGE_HOST_PROP_CONTROLLER',\n\n CHANGE_API_RESOURCE: 'CHANGE_API_RESOURCE',\n EVICT_API_RESOURCE: 'EVICT_API_RESOURCE',\n\n SET_BUILDER_EDIT_MODE: 'SET_BUILDER_EDIT_MODE',\n SET_LOCALIZED_RESOURCE_ID: 'SET_LOCALIZED_RESOURCE_ID',\n\n BUILDER_POINTER_MOVE: 'BUILDER_POINTER_MOVE',\n} as const\n\ntype InitAction = { type: typeof HostActionTypes.INIT }\n\ntype CleanUpAction = { type: typeof HostActionTypes.CLEAN_UP }\n\ntype ChangeDocumentAction = {\n type: typeof HostActionTypes.CHANGE_DOCUMENT\n payload: { documentKey: string; operation: Operation }\n}\n\ntype ChangeDocumentElementScrollTopAction = {\n type: typeof HostActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP\n payload: { scrollTop: number }\n}\n\ntype ScrollDocumentElementAction = {\n type: typeof HostActionTypes.SCROLL_DOCUMENT_ELEMENT\n payload: { scrollTopDelta: number }\n}\n\ntype MessageHostPropControllerAction<T = PropControllerMessage> = {\n type: typeof HostActionTypes.MESSAGE_HOST_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype ChangeAPIResourceAction = {\n type: typeof HostActionTypes.CHANGE_API_RESOURCE\n payload: { resource: APIResource; locale?: string | null }\n}\n\ntype EvictAPIResourceAction = {\n type: typeof HostActionTypes.EVICT_API_RESOURCE\n payload: { id: string; locale?: string | null }\n}\n\ntype SetBuilderEditModeAction = {\n type: typeof HostActionTypes.SET_BUILDER_EDIT_MODE\n payload: { editMode: BuilderEditMode }\n}\n\ntype SetLocalizedResourceIdAction = {\n type: typeof HostActionTypes.SET_LOCALIZED_RESOURCE_ID\n // TODO: make `locale` required once we've upgraded the builder to always provide it\n payload: { locale?: string; resourceId: string; localizedResourceId: string | null }\n}\n\ntype BuilderPointerMoveAction = {\n type: typeof HostActionTypes.BUILDER_POINTER_MOVE\n payload: { pointer: Point | null }\n}\n\nexport type HostAction =\n | SharedAction\n | InitAction\n | CleanUpAction\n | ChangeDocumentAction\n | ChangeDocumentElementScrollTopAction\n | ScrollDocumentElementAction\n | MessageHostPropControllerAction\n | ChangeAPIResourceAction\n | EvictAPIResourceAction\n | SetBuilderEditModeAction\n | SetLocalizedResourceIdAction\n | BuilderPointerMoveAction\n\nexport function init(): InitAction {\n return { type: HostActionTypes.INIT }\n}\n\nexport function cleanUp(): CleanUpAction {\n return { type: HostActionTypes.CLEAN_UP }\n}\n\nexport function changeDocument(documentKey: string, operation: Operation): ChangeDocumentAction {\n return { type: HostActionTypes.CHANGE_DOCUMENT, payload: { documentKey, operation } }\n}\n\nexport function changeDocumentElementScrollTop(\n scrollTop: number,\n): ChangeDocumentElementScrollTopAction {\n return { type: HostActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP, payload: { scrollTop } }\n}\n\nexport function scrollDocumentElement(scrollTopDelta: number): ScrollDocumentElementAction {\n return { type: HostActionTypes.SCROLL_DOCUMENT_ELEMENT, payload: { scrollTopDelta } }\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: HostActionTypes.MESSAGE_HOST_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function changeApiResource<R extends APIResource>(\n resource: R,\n locale?: APIResourceLocale<R>,\n): ChangeAPIResourceAction {\n return { type: HostActionTypes.CHANGE_API_RESOURCE, payload: { resource, locale } }\n}\n\nexport function evictApiResource(id: string, locale?: string | null): EvictAPIResourceAction {\n return { type: HostActionTypes.EVICT_API_RESOURCE, payload: { id, locale } }\n}\n\nexport function setBuilderEditMode(editMode: BuilderEditMode): SetBuilderEditModeAction {\n return {\n type: HostActionTypes.SET_BUILDER_EDIT_MODE,\n payload: { editMode },\n }\n}\n\nexport function setLocalizedResourceId({\n resourceId,\n localizedResourceId,\n locale,\n}: {\n resourceId: string\n localizedResourceId: string | null\n locale?: string\n}): SetLocalizedResourceIdAction {\n return {\n type: HostActionTypes.SET_LOCALIZED_RESOURCE_ID,\n payload: { resourceId, localizedResourceId, locale },\n }\n}\n\nexport function builderPointerMove(pointer: Point | null): BuilderPointerMoveAction {\n return { type: HostActionTypes.BUILDER_POINTER_MOVE, payload: { pointer } }\n}\n\nexport function isHostAction(action: unknown): action is HostAction {\n return isAction(action) && Object.hasOwn(HostActionTypes, action.type)\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AAUzB,SAA4B,yBAAyB;AAE9C,MAAM,kBAAkB;AAAA,EAC7B,GAAG;AAAA,EAEH,MAAM;AAAA,EACN,UAAU;AAAA,EAEV,iBAAiB;AAAA,EAEjB,oCAAoC;AAAA,EACpC,yBAAyB;AAAA,EAEzB,8BAA8B;AAAA,EAE9B,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EAEpB,uBAAuB;AAAA,EACvB,2BAA2B;AAAA,EAE3B,sBAAsB;AACxB;AAkEO,SAAS,OAAmB;AACjC,SAAO,EAAE,MAAM,gBAAgB,KAAK;AACtC;AAEO,SAAS,UAAyB;AACvC,SAAO,EAAE,MAAM,gBAAgB,SAAS;AAC1C;AAEO,SAAS,eAAe,aAAqB,WAA4C;AAC9F,SAAO,EAAE,MAAM,gBAAgB,iBAAiB,SAAS,EAAE,aAAa,UAAU,EAAE;AACtF;AAEO,SAAS,+BACd,WACsC;AACtC,SAAO,EAAE,MAAM,gBAAgB,oCAAoC,SAAS,EAAE,UAAU,EAAE;AAC5F;AAEO,SAAS,sBAAsB,gBAAqD;AACzF,SAAO,EAAE,MAAM,gBAAgB,yBAAyB,SAAS,EAAE,eAAe,EAAE;AACtF;AAEO,SAAS,0BACd,aACA,YACA,UACA,SACoC;AACpC,SAAO;AAAA,IACL,MAAM,gBAAgB;AAAA,IACtB,SAAS,EAAE,aAAa,YAAY,UAAU,QAAQ;AAAA,EACxD;AACF;AAEO,SAAS,kBACd,UACA,QACyB;AACzB,SAAO,EAAE,MAAM,gBAAgB,qBAAqB,SAAS,EAAE,UAAU,OAAO,EAAE;AACpF;AAEO,SAAS,iBAAiB,IAAY,QAAgD;AAC3F,SAAO,EAAE,MAAM,gBAAgB,oBAAoB,SAAS,EAAE,IAAI,OAAO,EAAE;AAC7E;AAEO,SAAS,mBAAmB,UAAqD;AACtF,SAAO;AAAA,IACL,MAAM,gBAAgB;AAAA,IACtB,SAAS,EAAE,SAAS;AAAA,EACtB;AACF;AAEO,SAAS,uBAAuB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AACF,GAIiC;AAC/B,SAAO;AAAA,IACL,MAAM,gBAAgB;AAAA,IACtB,SAAS,EAAE,YAAY,qBAAqB,OAAO;AAAA,EACrD;AACF;AAEO,SAAS,mBAAmB,SAAiD;AAClF,SAAO,EAAE,MAAM,gBAAgB,sBAAsB,SAAS,EAAE,QAAQ,EAAE;AAC5E;AAEO,SAAS,aAAa,QAAuC;AAClE,SAAO,SAAS,MAAM,KAAK,OAAO,OAAO,iBAAiB,OAAO,IAAI;AACvE;","names":[]}
1
+ {"version":3,"sources":["../../../src/state/host-api.ts"],"sourcesContent":["import { isAction } from '@reduxjs/toolkit'\n\nimport { type Operation } from 'ot-json0'\n\nimport { type PropControllerMessage } from '../prop-controllers/instances'\nimport { type APIResource, APIResourceLocale } from '../api/types'\n\nimport { BuilderEditMode } from './modules/builder-edit-mode'\nimport { type Point } from './modules/read-write/pointer'\n\nimport { type SharedAction, SharedActionTypes } from './shared-api'\n\n// actions dispatched by the builder to the host (\"Host API\")\nexport const HostActionTypes = {\n ...SharedActionTypes,\n\n INIT: 'INIT',\n CLEAN_UP: 'CLEAN_UP',\n\n CHANGE_DOCUMENT: 'CHANGE_DOCUMENT',\n\n CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP: 'CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP',\n SCROLL_DOCUMENT_ELEMENT: 'SCROLL_DOCUMENT_ELEMENT',\n\n MESSAGE_HOST_PROP_CONTROLLER: 'MESSAGE_HOST_PROP_CONTROLLER',\n\n CHANGE_API_RESOURCE: 'CHANGE_API_RESOURCE',\n EVICT_API_RESOURCE: 'EVICT_API_RESOURCE',\n\n SET_BUILDER_EDIT_MODE: 'SET_BUILDER_EDIT_MODE',\n SET_LOCALIZED_RESOURCE_ID: 'SET_LOCALIZED_RESOURCE_ID',\n\n BUILDER_POINTER_MOVE: 'BUILDER_POINTER_MOVE',\n} as const\n\ntype InitAction = { type: typeof HostActionTypes.INIT }\n\ntype CleanUpAction = { type: typeof HostActionTypes.CLEAN_UP }\n\ntype ChangeDocumentAction = {\n type: typeof HostActionTypes.CHANGE_DOCUMENT\n payload: { documentKey: string; operation: Operation }\n}\n\ntype ChangeDocumentElementScrollTopAction = {\n type: typeof HostActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP\n payload: { scrollTop: number }\n}\n\ntype ScrollDocumentElementAction = {\n type: typeof HostActionTypes.SCROLL_DOCUMENT_ELEMENT\n payload: { scrollTopDelta: number }\n}\n\ntype MessageHostPropControllerAction<T = PropControllerMessage> = {\n type: typeof HostActionTypes.MESSAGE_HOST_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype ChangeAPIResourceAction = {\n type: typeof HostActionTypes.CHANGE_API_RESOURCE\n payload: { resource: APIResource; locale?: string | null }\n}\n\ntype EvictAPIResourceAction = {\n type: typeof HostActionTypes.EVICT_API_RESOURCE\n payload: { id: string; locale?: string | null }\n}\n\ntype SetBuilderEditModeAction = {\n type: typeof HostActionTypes.SET_BUILDER_EDIT_MODE\n payload: { editMode: BuilderEditMode }\n}\n\ntype SetLocalizedResourceIdAction = {\n type: typeof HostActionTypes.SET_LOCALIZED_RESOURCE_ID\n // TODO: make `locale` required once we've upgraded the builder to always provide it\n payload: { locale?: string; resourceId: string; localizedResourceId: string | null }\n}\n\ntype BuilderPointerMoveAction = {\n type: typeof HostActionTypes.BUILDER_POINTER_MOVE\n payload: { pointer: Point | null }\n}\n\nexport type HostAction =\n | SharedAction\n | InitAction\n | CleanUpAction\n | ChangeDocumentAction\n | ChangeDocumentElementScrollTopAction\n | ScrollDocumentElementAction\n | MessageHostPropControllerAction\n | ChangeAPIResourceAction\n | EvictAPIResourceAction\n | SetBuilderEditModeAction\n | SetLocalizedResourceIdAction\n | BuilderPointerMoveAction\n\nexport function init(): InitAction {\n return { type: HostActionTypes.INIT }\n}\n\nexport function cleanUp(): CleanUpAction {\n return { type: HostActionTypes.CLEAN_UP }\n}\n\nexport function changeDocument(documentKey: string, operation: Operation): ChangeDocumentAction {\n return { type: HostActionTypes.CHANGE_DOCUMENT, payload: { documentKey, operation } }\n}\n\nexport function changeDocumentElementScrollTop(\n scrollTop: number,\n): ChangeDocumentElementScrollTopAction {\n return { type: HostActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP, payload: { scrollTop } }\n}\n\nexport function scrollDocumentElement(scrollTopDelta: number): ScrollDocumentElementAction {\n return { type: HostActionTypes.SCROLL_DOCUMENT_ELEMENT, payload: { scrollTopDelta } }\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: HostActionTypes.MESSAGE_HOST_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function changeApiResource<R extends APIResource>(\n resource: R,\n locale?: APIResourceLocale<R>,\n): ChangeAPIResourceAction {\n return { type: HostActionTypes.CHANGE_API_RESOURCE, payload: { resource, locale } }\n}\n\nexport function evictApiResource(id: string, locale?: string | null): EvictAPIResourceAction {\n return { type: HostActionTypes.EVICT_API_RESOURCE, payload: { id, locale } }\n}\n\nexport function setBuilderEditMode(editMode: BuilderEditMode): SetBuilderEditModeAction {\n return {\n type: HostActionTypes.SET_BUILDER_EDIT_MODE,\n payload: { editMode },\n }\n}\n\nexport function setLocalizedResourceId({\n resourceId,\n localizedResourceId,\n locale,\n}: {\n resourceId: string\n localizedResourceId: string | null\n locale?: string\n}): SetLocalizedResourceIdAction {\n return {\n type: HostActionTypes.SET_LOCALIZED_RESOURCE_ID,\n payload: { resourceId, localizedResourceId, locale },\n }\n}\n\nexport function builderPointerMove(pointer: Point | null): BuilderPointerMoveAction {\n return { type: HostActionTypes.BUILDER_POINTER_MOVE, payload: { pointer } }\n}\n\nexport function isHostAction(action: unknown): action is HostAction {\n return isAction(action) && Object.hasOwn(HostActionTypes, action.type)\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AAUzB,SAA4B,yBAAyB;AAG9C,MAAM,kBAAkB;AAAA,EAC7B,GAAG;AAAA,EAEH,MAAM;AAAA,EACN,UAAU;AAAA,EAEV,iBAAiB;AAAA,EAEjB,oCAAoC;AAAA,EACpC,yBAAyB;AAAA,EAEzB,8BAA8B;AAAA,EAE9B,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EAEpB,uBAAuB;AAAA,EACvB,2BAA2B;AAAA,EAE3B,sBAAsB;AACxB;AAkEO,SAAS,OAAmB;AACjC,SAAO,EAAE,MAAM,gBAAgB,KAAK;AACtC;AAEO,SAAS,UAAyB;AACvC,SAAO,EAAE,MAAM,gBAAgB,SAAS;AAC1C;AAEO,SAAS,eAAe,aAAqB,WAA4C;AAC9F,SAAO,EAAE,MAAM,gBAAgB,iBAAiB,SAAS,EAAE,aAAa,UAAU,EAAE;AACtF;AAEO,SAAS,+BACd,WACsC;AACtC,SAAO,EAAE,MAAM,gBAAgB,oCAAoC,SAAS,EAAE,UAAU,EAAE;AAC5F;AAEO,SAAS,sBAAsB,gBAAqD;AACzF,SAAO,EAAE,MAAM,gBAAgB,yBAAyB,SAAS,EAAE,eAAe,EAAE;AACtF;AAEO,SAAS,0BACd,aACA,YACA,UACA,SACoC;AACpC,SAAO;AAAA,IACL,MAAM,gBAAgB;AAAA,IACtB,SAAS,EAAE,aAAa,YAAY,UAAU,QAAQ;AAAA,EACxD;AACF;AAEO,SAAS,kBACd,UACA,QACyB;AACzB,SAAO,EAAE,MAAM,gBAAgB,qBAAqB,SAAS,EAAE,UAAU,OAAO,EAAE;AACpF;AAEO,SAAS,iBAAiB,IAAY,QAAgD;AAC3F,SAAO,EAAE,MAAM,gBAAgB,oBAAoB,SAAS,EAAE,IAAI,OAAO,EAAE;AAC7E;AAEO,SAAS,mBAAmB,UAAqD;AACtF,SAAO;AAAA,IACL,MAAM,gBAAgB;AAAA,IACtB,SAAS,EAAE,SAAS;AAAA,EACtB;AACF;AAEO,SAAS,uBAAuB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AACF,GAIiC;AAC/B,SAAO;AAAA,IACL,MAAM,gBAAgB;AAAA,IACtB,SAAS,EAAE,YAAY,qBAAqB,OAAO;AAAA,EACrD;AACF;AAEO,SAAS,mBAAmB,SAAiD;AAClF,SAAO,EAAE,MAAM,gBAAgB,sBAAsB,SAAS,EAAE,QAAQ,EAAE;AAC5E;AAEO,SAAS,aAAa,QAAuC;AAClE,SAAO,SAAS,MAAM,KAAK,OAAO,OAAO,iBAAiB,OAAO,IAAI;AACvE;","names":[]}
@@ -5,7 +5,7 @@ import {
5
5
  import * as APIResources from "./modules/api-resources";
6
6
  import * as LocalizedResourcesMap from "./modules/localized-resources-map";
7
7
  import { ActionTypes } from "./actions";
8
- import { apiResourceFulfilled } from "./actions/internal";
8
+ import { apiResourceFulfilled } from "./actions/internal/read-only-actions";
9
9
  import { setLocalizedResourceId } from "./host-api";
10
10
  import { actionMiddleware, middlewareOptions, devToolsConfig } from "./toolkit";
11
11
  import {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/state/makeswift-api-client.ts"],"sourcesContent":["import {\n configureStore as configureReduxStore,\n combineReducers,\n type ThunkAction,\n type ThunkMiddleware,\n type ThunkDispatch,\n UnknownAction,\n} from '@reduxjs/toolkit'\n\nimport * as APIResources from './modules/api-resources'\nimport * as LocalizedResourcesMap from './modules/localized-resources-map'\nimport { type Action, ActionTypes } from './actions'\nimport { apiResourceFulfilled } from './actions/internal'\nimport { setLocalizedResourceId } from './host-api'\nimport { actionMiddleware, middlewareOptions, devToolsConfig } from './toolkit'\n\nimport {\n APIResourceType,\n type APIResource,\n type Swatch,\n type File,\n type Typography,\n type GlobalElement,\n type PagePathnameSlice,\n type Table,\n type LocalizedGlobalElement,\n type APIResourceLocale,\n} from '../api'\n\nconst reducer = combineReducers({\n apiResources: APIResources.reducer,\n localizedResourcesMap: LocalizedResourcesMap.reducer,\n})\n\nexport type State = ReturnType<typeof reducer>\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\nexport type HttpFetch = (url: string | URL, init?: RequestInit) => Promise<Response>\n\nexport type SerializedState = {\n apiResources: APIResources.SerializedState\n localizedResourcesMap: LocalizedResourcesMap.SerializedState\n}\n\nfunction getLocalizedResourceId(\n state: State,\n locale: string,\n resourceId: string,\n): string | undefined | null {\n return LocalizedResourcesMap.getLocalizedResourceId(\n state.localizedResourcesMap,\n locale,\n resourceId,\n )\n}\n\nexport function getHasAPIResource<T extends APIResourceType>(\n state: State,\n resourceType: APIResourceType,\n resourceId: string,\n locale?: APIResourceLocale<T>,\n): boolean {\n switch (resourceType) {\n case APIResourceType.LocalizedGlobalElement:\n if (locale == null) {\n console.error(`Attempt to access ${resourceType} ${resourceId} without a locale`)\n return false\n }\n\n const localizedId = getLocalizedResourceId(state, locale, resourceId)\n return (\n localizedId != null &&\n APIResources.getHasAPIResource(state.apiResources, resourceType, localizedId, locale)\n )\n\n default:\n return APIResources.getHasAPIResource(state.apiResources, resourceType, resourceId, locale)\n }\n}\n\nexport function getAPIResource<T extends APIResourceType>(\n state: State,\n resourceType: T,\n resourceId: string,\n locale?: APIResourceLocale<T>,\n): Extract<APIResource, { __typename: T }> | null {\n switch (resourceType) {\n case APIResourceType.LocalizedGlobalElement:\n if (locale == null) {\n console.error(`Attempt to access ${resourceType} ${resourceId} without a locale`)\n return null\n }\n\n const localizedId = getLocalizedResourceId(state, locale, resourceId)\n return localizedId != null\n ? APIResources.getAPIResource(state.apiResources, resourceType, localizedId, locale)\n : null\n\n default:\n return APIResources.getAPIResource(state.apiResources, resourceType, resourceId, locale)\n }\n}\n\ntype Thunk<ReturnType> = ThunkAction<ReturnType, State, unknown, Action>\n\nexport function fetchAPIResource<T extends APIResourceType>(\n resourceType: T,\n resourceId: string,\n fetch: HttpFetch,\n locale?: APIResourceLocale<T>,\n): Thunk<Promise<Extract<APIResource, { __typename: T }> | null>> {\n const fetchJson = async <T>(url: string): Promise<T | null> => {\n const response = await fetch(url, {\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n\n if (response.status === 404) return null\n if (!response.ok) throw new Error(response.statusText)\n\n if (response.headers.get('content-type')?.includes('application/json') !== true) {\n throw new Error(\n `Expected JSON response from \"${url}\" but got \"${response.headers.get('content-type')}\"`,\n )\n }\n\n return response.json()\n }\n\n return async (dispatch, getState) => {\n const state = getState()\n\n if (getHasAPIResource(state, resourceType, resourceId, locale)) {\n return getAPIResource(state, resourceType, resourceId, locale)\n }\n\n let resource: APIResource | null\n\n switch (resourceType) {\n case APIResourceType.Swatch:\n resource = await fetchJson<Swatch>(`/api/makeswift/swatches/${resourceId}`)\n break\n\n case APIResourceType.File:\n resource = await fetchJson<File>(`/api/makeswift/files/${resourceId}`)\n break\n\n case APIResourceType.Typography:\n resource = await fetchJson<Typography>(`/api/makeswift/typographies/${resourceId}`)\n break\n\n case APIResourceType.GlobalElement:\n resource = await fetchJson<GlobalElement>(`/api/makeswift/global-elements/${resourceId}`)\n break\n\n case APIResourceType.LocalizedGlobalElement: {\n if (locale == null) throw new Error('Locale is required to fetch LocalizedGlobalElement')\n\n // If `getLocalizedResourceId` returns null, it means we have tried to fetch the resource,\n // but the resource is not available. If we haven't fetched it yet, it'll return undefined.\n if (getLocalizedResourceId(state, locale, resourceId) === null) {\n return null\n }\n\n resource = await fetchJson<LocalizedGlobalElement>(\n `/api/makeswift/localized-global-elements/${resourceId}/${locale}`,\n )\n\n dispatch(\n setLocalizedResourceId({\n locale,\n resourceId,\n localizedResourceId: resource?.id ?? null,\n }),\n )\n\n break\n }\n\n case APIResourceType.PagePathnameSlice: {\n const url = new URL(`/api/makeswift/page-pathname-slices/${resourceId}`, 'http://n')\n\n if (locale != null) url.searchParams.set('locale', locale)\n\n resource = await fetchJson<PagePathnameSlice>(url.pathname + url.search)\n break\n }\n\n case APIResourceType.Table:\n resource = await fetchJson<Table>(`/api/makeswift/tables/${resourceId}`)\n break\n\n default:\n resource = null\n }\n\n dispatch(apiResourceFulfilled(resourceType, resourceId, resource, locale))\n\n return resource as Extract<APIResource, { __typename: T }> | null\n }\n}\n\n// FIXME: this middleware can be removed once we've upgraded the builder\n// to always provide the locale when dispatching resource actions\nfunction defaultLocaleMiddleware(\n defaultLocale: string | undefined,\n): ThunkMiddleware<State, UnknownAction> {\n return actionMiddleware(() => next => {\n return (action: Action) => {\n switch (action.type) {\n case ActionTypes.CHANGE_API_RESOURCE:\n case ActionTypes.EVICT_API_RESOURCE:\n case ActionTypes.SET_LOCALIZED_RESOURCE_ID: {\n const { locale } = action.payload\n return next({\n ...action,\n payload: { ...action.payload, locale: locale ?? defaultLocale },\n } as Action)\n }\n }\n\n return next(action)\n }\n })\n}\n\nexport function configureStore({\n defaultLocale,\n serializedState,\n}: {\n defaultLocale: string | undefined\n serializedState?: SerializedState\n}) {\n return configureReduxStore({\n reducer,\n preloadedState: {\n apiResources: APIResources.getInitialState(serializedState?.apiResources),\n localizedResourcesMap: LocalizedResourcesMap.getInitialState(\n serializedState?.localizedResourcesMap,\n ),\n },\n\n middleware: getDefaultMiddleware =>\n getDefaultMiddleware(middlewareOptions).concat(defaultLocaleMiddleware(defaultLocale)),\n\n devTools: devToolsConfig({\n name: `API client store (${new Date().toISOString()})`,\n actionsDenylist: [\n ActionTypes.BUILDER_POINTER_MOVE,\n ActionTypes.HANDLE_POINTER_MOVE,\n ActionTypes.ELEMENT_FROM_POINT_CHANGE,\n ],\n }),\n })\n}\n\nexport type Store = ReturnType<typeof configureStore>\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/state/makeswift-api-client.ts"],"sourcesContent":["import {\n configureStore as configureReduxStore,\n combineReducers,\n type ThunkAction,\n type ThunkMiddleware,\n type ThunkDispatch,\n UnknownAction,\n} from '@reduxjs/toolkit'\n\nimport * as APIResources from './modules/api-resources'\nimport * as LocalizedResourcesMap from './modules/localized-resources-map'\nimport { type Action, ActionTypes } from './actions'\nimport { apiResourceFulfilled } from './actions/internal/read-only-actions'\nimport { setLocalizedResourceId } from './host-api'\nimport { actionMiddleware, middlewareOptions, devToolsConfig } from './toolkit'\n\nimport {\n APIResourceType,\n type APIResource,\n type Swatch,\n type File,\n type Typography,\n type GlobalElement,\n type PagePathnameSlice,\n type Table,\n type LocalizedGlobalElement,\n type APIResourceLocale,\n} from '../api'\n\nconst reducer = combineReducers({\n apiResources: APIResources.reducer,\n localizedResourcesMap: LocalizedResourcesMap.reducer,\n})\n\nexport type State = ReturnType<typeof reducer>\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\nexport type HttpFetch = (url: string | URL, init?: RequestInit) => Promise<Response>\n\nexport type SerializedState = {\n apiResources: APIResources.SerializedState\n localizedResourcesMap: LocalizedResourcesMap.SerializedState\n}\n\nfunction getLocalizedResourceId(\n state: State,\n locale: string,\n resourceId: string,\n): string | undefined | null {\n return LocalizedResourcesMap.getLocalizedResourceId(\n state.localizedResourcesMap,\n locale,\n resourceId,\n )\n}\n\nexport function getHasAPIResource<T extends APIResourceType>(\n state: State,\n resourceType: APIResourceType,\n resourceId: string,\n locale?: APIResourceLocale<T>,\n): boolean {\n switch (resourceType) {\n case APIResourceType.LocalizedGlobalElement:\n if (locale == null) {\n console.error(`Attempt to access ${resourceType} ${resourceId} without a locale`)\n return false\n }\n\n const localizedId = getLocalizedResourceId(state, locale, resourceId)\n return (\n localizedId != null &&\n APIResources.getHasAPIResource(state.apiResources, resourceType, localizedId, locale)\n )\n\n default:\n return APIResources.getHasAPIResource(state.apiResources, resourceType, resourceId, locale)\n }\n}\n\nexport function getAPIResource<T extends APIResourceType>(\n state: State,\n resourceType: T,\n resourceId: string,\n locale?: APIResourceLocale<T>,\n): Extract<APIResource, { __typename: T }> | null {\n switch (resourceType) {\n case APIResourceType.LocalizedGlobalElement:\n if (locale == null) {\n console.error(`Attempt to access ${resourceType} ${resourceId} without a locale`)\n return null\n }\n\n const localizedId = getLocalizedResourceId(state, locale, resourceId)\n return localizedId != null\n ? APIResources.getAPIResource(state.apiResources, resourceType, localizedId, locale)\n : null\n\n default:\n return APIResources.getAPIResource(state.apiResources, resourceType, resourceId, locale)\n }\n}\n\ntype Thunk<ReturnType> = ThunkAction<ReturnType, State, unknown, Action>\n\nexport function fetchAPIResource<T extends APIResourceType>(\n resourceType: T,\n resourceId: string,\n fetch: HttpFetch,\n locale?: APIResourceLocale<T>,\n): Thunk<Promise<Extract<APIResource, { __typename: T }> | null>> {\n const fetchJson = async <T>(url: string): Promise<T | null> => {\n const response = await fetch(url, {\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n\n if (response.status === 404) return null\n if (!response.ok) throw new Error(response.statusText)\n\n if (response.headers.get('content-type')?.includes('application/json') !== true) {\n throw new Error(\n `Expected JSON response from \"${url}\" but got \"${response.headers.get('content-type')}\"`,\n )\n }\n\n return response.json()\n }\n\n return async (dispatch, getState) => {\n const state = getState()\n\n if (getHasAPIResource(state, resourceType, resourceId, locale)) {\n return getAPIResource(state, resourceType, resourceId, locale)\n }\n\n let resource: APIResource | null\n\n switch (resourceType) {\n case APIResourceType.Swatch:\n resource = await fetchJson<Swatch>(`/api/makeswift/swatches/${resourceId}`)\n break\n\n case APIResourceType.File:\n resource = await fetchJson<File>(`/api/makeswift/files/${resourceId}`)\n break\n\n case APIResourceType.Typography:\n resource = await fetchJson<Typography>(`/api/makeswift/typographies/${resourceId}`)\n break\n\n case APIResourceType.GlobalElement:\n resource = await fetchJson<GlobalElement>(`/api/makeswift/global-elements/${resourceId}`)\n break\n\n case APIResourceType.LocalizedGlobalElement: {\n if (locale == null) throw new Error('Locale is required to fetch LocalizedGlobalElement')\n\n // If `getLocalizedResourceId` returns null, it means we have tried to fetch the resource,\n // but the resource is not available. If we haven't fetched it yet, it'll return undefined.\n if (getLocalizedResourceId(state, locale, resourceId) === null) {\n return null\n }\n\n resource = await fetchJson<LocalizedGlobalElement>(\n `/api/makeswift/localized-global-elements/${resourceId}/${locale}`,\n )\n\n dispatch(\n setLocalizedResourceId({\n locale,\n resourceId,\n localizedResourceId: resource?.id ?? null,\n }),\n )\n\n break\n }\n\n case APIResourceType.PagePathnameSlice: {\n const url = new URL(`/api/makeswift/page-pathname-slices/${resourceId}`, 'http://n')\n\n if (locale != null) url.searchParams.set('locale', locale)\n\n resource = await fetchJson<PagePathnameSlice>(url.pathname + url.search)\n break\n }\n\n case APIResourceType.Table:\n resource = await fetchJson<Table>(`/api/makeswift/tables/${resourceId}`)\n break\n\n default:\n resource = null\n }\n\n dispatch(apiResourceFulfilled(resourceType, resourceId, resource, locale))\n\n return resource as Extract<APIResource, { __typename: T }> | null\n }\n}\n\n// FIXME: this middleware can be removed once we've upgraded the builder\n// to always provide the locale when dispatching resource actions\nfunction defaultLocaleMiddleware(\n defaultLocale: string | undefined,\n): ThunkMiddleware<State, UnknownAction> {\n return actionMiddleware(() => next => {\n return (action: Action) => {\n switch (action.type) {\n case ActionTypes.CHANGE_API_RESOURCE:\n case ActionTypes.EVICT_API_RESOURCE:\n case ActionTypes.SET_LOCALIZED_RESOURCE_ID: {\n const { locale } = action.payload\n return next({\n ...action,\n payload: { ...action.payload, locale: locale ?? defaultLocale },\n } as Action)\n }\n }\n\n return next(action)\n }\n })\n}\n\nexport function configureStore({\n defaultLocale,\n serializedState,\n}: {\n defaultLocale: string | undefined\n serializedState?: SerializedState\n}) {\n return configureReduxStore({\n reducer,\n preloadedState: {\n apiResources: APIResources.getInitialState(serializedState?.apiResources),\n localizedResourcesMap: LocalizedResourcesMap.getInitialState(\n serializedState?.localizedResourcesMap,\n ),\n },\n\n middleware: getDefaultMiddleware =>\n getDefaultMiddleware(middlewareOptions).concat(defaultLocaleMiddleware(defaultLocale)),\n\n devTools: devToolsConfig({\n name: `API client store (${new Date().toISOString()})`,\n actionsDenylist: [\n ActionTypes.BUILDER_POINTER_MOVE,\n ActionTypes.HANDLE_POINTER_MOVE,\n ActionTypes.ELEMENT_FROM_POINT_CHANGE,\n ],\n }),\n })\n}\n\nexport type Store = ReturnType<typeof configureStore>\n"],"mappings":"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","names":[]}
@@ -0,0 +1,80 @@
1
+ import * as PropControllerHandles from "../modules/prop-controller-handles";
2
+ import * as Builder from "../builder-api/actions";
3
+ import { ReadOnlyActionTypes } from "../actions/internal/read-only-actions";
4
+ import * as ReadOnly from "../actions/internal/read-only-actions";
5
+ import { actionMiddleware } from "../toolkit";
6
+ import { createPropController } from "../../prop-controllers/instances";
7
+ import { HostActionTypes } from "../host-api";
8
+ import * as ReadOnlyState from "../read-only-state";
9
+ function createAndRegisterPropControllers(documentKey, elementKey) {
10
+ return (dispatch, getState) => {
11
+ const descriptors = ReadOnlyState.getElementPropControllerDescriptors(
12
+ getState(),
13
+ documentKey,
14
+ elementKey
15
+ );
16
+ if (descriptors == null)
17
+ return null;
18
+ const propControllers = Object.entries(descriptors).reduce(
19
+ (acc, [propName, descriptor]) => {
20
+ const propController = createPropController(
21
+ descriptor,
22
+ (message) => dispatch(
23
+ Builder.messageBuilderPropController(documentKey, elementKey, propName, message)
24
+ )
25
+ );
26
+ return { ...acc, [propName]: propController };
27
+ },
28
+ {}
29
+ );
30
+ dispatch(ReadOnly.registerPropControllers(documentKey, elementKey, propControllers));
31
+ return propControllers;
32
+ };
33
+ }
34
+ function propControllerHandlesMiddleware() {
35
+ return actionMiddleware(({ dispatch, getState }) => (next) => {
36
+ return (action) => {
37
+ switch (action.type) {
38
+ case ReadOnlyActionTypes.REGISTER_COMPONENT_HANDLE: {
39
+ const { documentKey, elementKey, componentHandle } = action.payload;
40
+ const element = ReadOnlyState.getElement(getState(), documentKey, elementKey);
41
+ const propControllers = dispatch(
42
+ createAndRegisterPropControllers(documentKey, elementKey)
43
+ );
44
+ if (element != null && !ReadOnlyState.isElementReference(element) && PropControllerHandles.isPropControllersHandle(componentHandle)) {
45
+ dispatch(
46
+ ReadOnly.registerPropControllersHandle(documentKey, elementKey, componentHandle)
47
+ );
48
+ componentHandle.setPropControllers(propControllers);
49
+ }
50
+ break;
51
+ }
52
+ case ReadOnlyActionTypes.UNREGISTER_COMPONENT_HANDLE: {
53
+ const { documentKey, elementKey } = action.payload;
54
+ const handle = ReadOnlyState.getPropControllersHandle(getState(), {
55
+ documentKey,
56
+ elementKey
57
+ });
58
+ handle?.setPropControllers(null);
59
+ dispatch(ReadOnly.unregisterPropControllers(documentKey, elementKey));
60
+ break;
61
+ }
62
+ case HostActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {
63
+ const { documentKey, elementKey, propName, message } = action.payload;
64
+ const propController = ReadOnlyState.getPropController(getState(), {
65
+ documentKey,
66
+ elementKey,
67
+ propName
68
+ });
69
+ if (propController)
70
+ propController.recv(message);
71
+ }
72
+ }
73
+ return next(action);
74
+ };
75
+ });
76
+ }
77
+ export {
78
+ propControllerHandlesMiddleware
79
+ };
80
+ //# sourceMappingURL=prop-controller-handles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/middleware/prop-controller-handles.ts"],"sourcesContent":["import { type Middleware, type ThunkAction } from '@reduxjs/toolkit'\n\nimport { ControlInstance } from '@makeswift/controls'\n\nimport * as PropControllerHandles from '../modules/prop-controller-handles'\n\nimport { type Action } from '../actions'\n\nimport * as Builder from '../builder-api/actions'\n\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-actions'\nimport * as ReadOnly from '../actions/internal/read-only-actions'\n\nimport { actionMiddleware } from '../toolkit'\n\nimport { createPropController } from '../../prop-controllers/instances'\nimport { HostActionTypes } from '../host-api'\n\nimport * as ReadOnlyState from '../read-only-state'\nimport { type State, type Dispatch } from '../read-write-state'\n\nfunction createAndRegisterPropControllers(\n documentKey: string,\n elementKey: string,\n): ThunkAction<Record<string, ControlInstance> | null, State, unknown, Action> {\n return (dispatch, getState) => {\n const descriptors = ReadOnlyState.getElementPropControllerDescriptors(\n getState(),\n documentKey,\n elementKey,\n )\n\n if (descriptors == null) return null\n\n const propControllers = Object.entries(descriptors).reduce(\n (acc, [propName, descriptor]) => {\n const propController = createPropController(descriptor, message =>\n dispatch(\n Builder.messageBuilderPropController(documentKey, elementKey, propName, message),\n ),\n ) as ControlInstance\n\n return { ...acc, [propName]: propController }\n },\n {} as Record<string, ControlInstance>,\n )\n\n dispatch(ReadOnly.registerPropControllers(documentKey, elementKey, propControllers))\n\n return propControllers\n }\n}\n\nexport function propControllerHandlesMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return actionMiddleware(({ dispatch, getState }) => next => {\n return (action: Action) => {\n switch (action.type) {\n case ReadOnlyActionTypes.REGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey, componentHandle } = action.payload\n const element = ReadOnlyState.getElement(getState(), documentKey, elementKey)\n const propControllers = dispatch(\n createAndRegisterPropControllers(documentKey, elementKey),\n )\n\n if (\n element != null &&\n !ReadOnlyState.isElementReference(element) &&\n PropControllerHandles.isPropControllersHandle(componentHandle)\n ) {\n dispatch(\n ReadOnly.registerPropControllersHandle(documentKey, elementKey, componentHandle),\n )\n componentHandle.setPropControllers(propControllers)\n }\n\n break\n }\n\n case ReadOnlyActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey } = action.payload\n const handle = ReadOnlyState.getPropControllersHandle(getState(), {\n documentKey,\n elementKey,\n })\n\n handle?.setPropControllers(null)\n\n dispatch(ReadOnly.unregisterPropControllers(documentKey, elementKey))\n\n break\n }\n\n case HostActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {\n const { documentKey, elementKey, propName, message } = action.payload\n const propController = ReadOnlyState.getPropController(getState(), {\n documentKey,\n elementKey,\n propName,\n })\n\n if (propController) propController.recv(message)\n }\n }\n\n return next(action)\n }\n })\n}\n"],"mappings":"AAIA,YAAY,2BAA2B;AAIvC,YAAY,aAAa;AAEzB,SAAS,2BAA2B;AACpC,YAAY,cAAc;AAE1B,SAAS,wBAAwB;AAEjC,SAAS,4BAA4B;AACrC,SAAS,uBAAuB;AAEhC,YAAY,mBAAmB;AAG/B,SAAS,iCACP,aACA,YAC6E;AAC7E,SAAO,CAAC,UAAU,aAAa;AAC7B,UAAM,cAAc,cAAc;AAAA,MAChC,SAAS;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAEA,QAAI,eAAe;AAAM,aAAO;AAEhC,UAAM,kBAAkB,OAAO,QAAQ,WAAW,EAAE;AAAA,MAClD,CAAC,KAAK,CAAC,UAAU,UAAU,MAAM;AAC/B,cAAM,iBAAiB;AAAA,UAAqB;AAAA,UAAY,aACtD;AAAA,YACE,QAAQ,6BAA6B,aAAa,YAAY,UAAU,OAAO;AAAA,UACjF;AAAA,QACF;AAEA,eAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,GAAG,eAAe;AAAA,MAC9C;AAAA,MACA,CAAC;AAAA,IACH;AAEA,aAAS,SAAS,wBAAwB,aAAa,YAAY,eAAe,CAAC;AAEnF,WAAO;AAAA,EACT;AACF;AAEO,SAAS,kCAAyE;AACvF,SAAO,iBAAiB,CAAC,EAAE,UAAU,SAAS,MAAM,UAAQ;AAC1D,WAAO,CAAC,WAAmB;AACzB,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK,oBAAoB,2BAA2B;AAClD,gBAAM,EAAE,aAAa,YAAY,gBAAgB,IAAI,OAAO;AAC5D,gBAAM,UAAU,cAAc,WAAW,SAAS,GAAG,aAAa,UAAU;AAC5E,gBAAM,kBAAkB;AAAA,YACtB,iCAAiC,aAAa,UAAU;AAAA,UAC1D;AAEA,cACE,WAAW,QACX,CAAC,cAAc,mBAAmB,OAAO,KACzC,sBAAsB,wBAAwB,eAAe,GAC7D;AACA;AAAA,cACE,SAAS,8BAA8B,aAAa,YAAY,eAAe;AAAA,YACjF;AACA,4BAAgB,mBAAmB,eAAe;AAAA,UACpD;AAEA;AAAA,QACF;AAAA,QAEA,KAAK,oBAAoB,6BAA6B;AACpD,gBAAM,EAAE,aAAa,WAAW,IAAI,OAAO;AAC3C,gBAAM,SAAS,cAAc,yBAAyB,SAAS,GAAG;AAAA,YAChE;AAAA,YACA;AAAA,UACF,CAAC;AAED,kBAAQ,mBAAmB,IAAI;AAE/B,mBAAS,SAAS,0BAA0B,aAAa,UAAU,CAAC;AAEpE;AAAA,QACF;AAAA,QAEA,KAAK,gBAAgB,8BAA8B;AACjD,gBAAM,EAAE,aAAa,YAAY,UAAU,QAAQ,IAAI,OAAO;AAC9D,gBAAM,iBAAiB,cAAc,kBAAkB,SAAS,GAAG;AAAA,YACjE;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC;AAED,cAAI;AAAgB,2BAAe,KAAK,OAAO;AAAA,QACjD;AAAA,MACF;AAEA,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,28 @@
1
+ import { ActionTypes } from "../actions";
2
+ import { createElementTree, deleteElementTree } from "../actions/internal/read-only-actions";
3
+ import { actionMiddleware } from "../toolkit";
4
+ import { getPropControllerDescriptors } from "../read-only-state";
5
+ function readOnlyElementTreeMiddleware() {
6
+ return actionMiddleware(({ dispatch, getState }) => (next) => {
7
+ return (action) => {
8
+ switch (action.type) {
9
+ case ActionTypes.REGISTER_DOCUMENT:
10
+ dispatch(
11
+ createElementTree({
12
+ document: action.payload.document,
13
+ descriptors: getPropControllerDescriptors(getState())
14
+ })
15
+ );
16
+ break;
17
+ case ActionTypes.UNREGISTER_DOCUMENT:
18
+ dispatch(deleteElementTree(action.payload));
19
+ break;
20
+ }
21
+ return next(action);
22
+ };
23
+ });
24
+ }
25
+ export {
26
+ readOnlyElementTreeMiddleware
27
+ };
28
+ //# sourceMappingURL=read-only-element-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/middleware/read-only-element-tree.ts"],"sourcesContent":["import { type Middleware } from '@reduxjs/toolkit'\n\nimport { ActionTypes } from '../actions'\nimport { createElementTree, deleteElementTree } from '../actions/internal/read-only-actions'\n\nimport { actionMiddleware } from '../toolkit'\n\nimport { type Dispatch, type State, getPropControllerDescriptors } from '../read-only-state'\n\nexport function readOnlyElementTreeMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return actionMiddleware(({ dispatch, getState }) => next => {\n return action => {\n switch (action.type) {\n case ActionTypes.REGISTER_DOCUMENT:\n dispatch(\n createElementTree({\n document: action.payload.document,\n descriptors: getPropControllerDescriptors(getState()),\n }),\n )\n break\n\n case ActionTypes.UNREGISTER_DOCUMENT:\n dispatch(deleteElementTree(action.payload))\n break\n }\n\n return next(action)\n }\n })\n}\n"],"mappings":"AAEA,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB,yBAAyB;AAErD,SAAS,wBAAwB;AAEjC,SAAoC,oCAAoC;AAEjE,SAAS,gCAAuE;AACrF,SAAO,iBAAiB,CAAC,EAAE,UAAU,SAAS,MAAM,UAAQ;AAC1D,WAAO,YAAU;AACf,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK,YAAY;AACf;AAAA,YACE,kBAAkB;AAAA,cAChB,UAAU,OAAO,QAAQ;AAAA,cACzB,aAAa,6BAA6B,SAAS,CAAC;AAAA,YACtD,CAAC;AAAA,UACH;AACA;AAAA,QAEF,KAAK,YAAY;AACf,mBAAS,kBAAkB,OAAO,OAAO,CAAC;AAC1C;AAAA,MACJ;AAEA,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,16 @@
1
+ function getElementSize(element) {
2
+ return {
3
+ offsetWidth: element.offsetWidth,
4
+ offsetHeight: element.offsetHeight,
5
+ clientWidth: element.clientWidth,
6
+ clientHeight: element.clientHeight,
7
+ scrollWidth: element.scrollWidth,
8
+ scrollHeight: element.scrollHeight,
9
+ scrollTop: element.scrollTop,
10
+ scrollLeft: element.scrollLeft
11
+ };
12
+ }
13
+ export {
14
+ getElementSize
15
+ };
16
+ //# sourceMappingURL=element-size.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/state/middleware/read-write/builder-api/element-size.ts"],"sourcesContent":["export type ElementSize = {\n offsetWidth: number\n offsetHeight: number\n clientWidth: number\n clientHeight: number\n scrollWidth: number\n scrollHeight: number\n scrollTop: number\n scrollLeft: number\n}\n\nexport function getElementSize(element: HTMLElement): ElementSize {\n return {\n offsetWidth: element.offsetWidth,\n offsetHeight: element.offsetHeight,\n clientWidth: element.clientWidth,\n clientHeight: element.clientHeight,\n scrollWidth: element.scrollWidth,\n scrollHeight: element.scrollHeight,\n scrollTop: element.scrollTop,\n scrollLeft: element.scrollLeft,\n }\n}\n"],"mappings":"AAWO,SAAS,eAAe,SAAmC;AAChE,SAAO;AAAA,IACL,aAAa,QAAQ;AAAA,IACrB,cAAc,QAAQ;AAAA,IACtB,aAAa,QAAQ;AAAA,IACrB,cAAc,QAAQ;AAAA,IACtB,aAAa,QAAQ;AAAA,IACrB,cAAc,QAAQ;AAAA,IACtB,WAAW,QAAQ;AAAA,IACnB,YAAY,QAAQ;AAAA,EACtB;AACF;","names":[]}
@@ -0,0 +1,52 @@
1
+ import { BuilderActionTypes } from "../../../builder-api/actions";
2
+ import { actionMiddleware } from "../../../toolkit";
3
+ import { HostActionTypes } from "../../../host-api";
4
+ import { initializeBuilderConnection } from "./initialize-connection";
5
+ function builderAPIMiddleware(builderProxy) {
6
+ return actionMiddleware(({ dispatch }) => (next) => {
7
+ if (typeof window === "undefined")
8
+ return (action) => next(action);
9
+ let cleanUp = () => {
10
+ };
11
+ return (action) => {
12
+ switch (action.type) {
13
+ case BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS:
14
+ case BuilderActionTypes.MOUNT_COMPONENT:
15
+ case BuilderActionTypes.UNMOUNT_COMPONENT:
16
+ case BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:
17
+ case BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:
18
+ case BuilderActionTypes.HANDLE_WHEEL:
19
+ case BuilderActionTypes.HANDLE_POINTER_MOVE:
20
+ case BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE:
21
+ case BuilderActionTypes.SET_LOCALE:
22
+ case BuilderActionTypes.SET_BREAKPOINTS:
23
+ case BuilderActionTypes.REGISTER_BUILDER_DOCUMENT:
24
+ case BuilderActionTypes.UNREGISTER_BUILDER_DOCUMENT:
25
+ case BuilderActionTypes.REGISTER_BUILDER_COMPONENT:
26
+ case BuilderActionTypes.UNREGISTER_BUILDER_COMPONENT:
27
+ builderProxy.execute(action);
28
+ break;
29
+ case HostActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP:
30
+ window.document.documentElement.scrollTop = action.payload.scrollTop;
31
+ break;
32
+ case HostActionTypes.SCROLL_DOCUMENT_ELEMENT:
33
+ window.document.documentElement.scrollTop += action.payload.scrollTopDelta;
34
+ break;
35
+ case HostActionTypes.SET_BUILDER_EDIT_MODE:
36
+ window.getSelection()?.removeAllRanges();
37
+ break;
38
+ case HostActionTypes.INIT:
39
+ cleanUp = dispatch(initializeBuilderConnection(builderProxy));
40
+ break;
41
+ case HostActionTypes.CLEAN_UP:
42
+ cleanUp();
43
+ break;
44
+ }
45
+ return next(action);
46
+ };
47
+ });
48
+ }
49
+ export {
50
+ builderAPIMiddleware
51
+ };
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/state/middleware/read-write/builder-api/index.ts"],"sourcesContent":["import { type Middleware } from '@reduxjs/toolkit'\n\nimport { type Action } from '../../../actions'\n\nimport { BuilderActionTypes } from '../../../builder-api/actions'\n\nimport { actionMiddleware } from '../../../toolkit'\n\nimport { type BuilderAPIProxy } from '../../../builder-api/proxy'\nimport { HostActionTypes } from '../../../host-api'\n\nimport { type State, type Dispatch } from '../../../read-write-state'\nimport { initializeBuilderConnection } from './initialize-connection'\n\nexport function builderAPIMiddleware(\n builderProxy: BuilderAPIProxy,\n): Middleware<Dispatch, State, Dispatch> {\n return actionMiddleware(({ dispatch }) => next => {\n if (typeof window === 'undefined') return (action: Action) => next(action)\n\n let cleanUp = () => {}\n return (action: Action) => {\n switch (action.type) {\n case BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS:\n case BuilderActionTypes.MOUNT_COMPONENT:\n case BuilderActionTypes.UNMOUNT_COMPONENT:\n case BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:\n case BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:\n case BuilderActionTypes.HANDLE_WHEEL:\n case BuilderActionTypes.HANDLE_POINTER_MOVE:\n case BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE:\n case BuilderActionTypes.SET_LOCALE:\n case BuilderActionTypes.SET_BREAKPOINTS:\n case BuilderActionTypes.REGISTER_BUILDER_DOCUMENT:\n case BuilderActionTypes.UNREGISTER_BUILDER_DOCUMENT:\n case BuilderActionTypes.REGISTER_BUILDER_COMPONENT:\n case BuilderActionTypes.UNREGISTER_BUILDER_COMPONENT:\n builderProxy.execute(action)\n break\n\n case HostActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP:\n window.document.documentElement.scrollTop = action.payload.scrollTop\n break\n\n case HostActionTypes.SCROLL_DOCUMENT_ELEMENT:\n window.document.documentElement.scrollTop += action.payload.scrollTopDelta\n break\n\n case HostActionTypes.SET_BUILDER_EDIT_MODE:\n window.getSelection()?.removeAllRanges()\n break\n\n case HostActionTypes.INIT:\n // dispatched by the parent window after establishing the connection\n cleanUp = dispatch(initializeBuilderConnection(builderProxy))\n break\n\n case HostActionTypes.CLEAN_UP:\n // dispatched by the parent window on disconnect\n cleanUp()\n break\n }\n\n return next(action)\n }\n })\n}\n"],"mappings":"AAIA,SAAS,0BAA0B;AAEnC,SAAS,wBAAwB;AAGjC,SAAS,uBAAuB;AAGhC,SAAS,mCAAmC;AAErC,SAAS,qBACd,cACuC;AACvC,SAAO,iBAAiB,CAAC,EAAE,SAAS,MAAM,UAAQ;AAChD,QAAI,OAAO,WAAW;AAAa,aAAO,CAAC,WAAmB,KAAK,MAAM;AAEzE,QAAI,UAAU,MAAM;AAAA,IAAC;AACrB,WAAO,CAAC,WAAmB;AACzB,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK,mBAAmB;AAAA,QACxB,KAAK,mBAAmB;AAAA,QACxB,KAAK,mBAAmB;AAAA,QACxB,KAAK,mBAAmB;AAAA,QACxB,KAAK,mBAAmB;AAAA,QACxB,KAAK,mBAAmB;AAAA,QACxB,KAAK,mBAAmB;AAAA,QACxB,KAAK,mBAAmB;AAAA,QACxB,KAAK,mBAAmB;AAAA,QACxB,KAAK,mBAAmB;AAAA,QACxB,KAAK,mBAAmB;AAAA,QACxB,KAAK,mBAAmB;AAAA,QACxB,KAAK,mBAAmB;AAAA,QACxB,KAAK,mBAAmB;AACtB,uBAAa,QAAQ,MAAM;AAC3B;AAAA,QAEF,KAAK,gBAAgB;AACnB,iBAAO,SAAS,gBAAgB,YAAY,OAAO,QAAQ;AAC3D;AAAA,QAEF,KAAK,gBAAgB;AACnB,iBAAO,SAAS,gBAAgB,aAAa,OAAO,QAAQ;AAC5D;AAAA,QAEF,KAAK,gBAAgB;AACnB,iBAAO,aAAa,GAAG,gBAAgB;AACvC;AAAA,QAEF,KAAK,gBAAgB;AAEnB,oBAAU,SAAS,4BAA4B,YAAY,CAAC;AAC5D;AAAA,QAEF,KAAK,gBAAgB;AAEnB,kBAAQ;AACR;AAAA,MACJ;AAEA,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA,EACF,CAAC;AACH;","names":[]}