@makeswift/runtime 0.26.4 → 0.26.5

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 (353) hide show
  1. package/dist/cjs/api/client.js +252 -0
  2. package/dist/cjs/api/client.js.map +1 -0
  3. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  4. package/dist/cjs/api-handler/handlers/webhook/diff-projection.js +62 -0
  5. package/dist/cjs/api-handler/handlers/webhook/diff-projection.js.map +1 -0
  6. package/dist/cjs/builder/serialization.js +78 -0
  7. package/dist/cjs/builder/serialization.js.map +1 -0
  8. package/dist/cjs/client/index.js +3 -3
  9. package/dist/cjs/controls/serialization/base/index.js +78 -0
  10. package/dist/cjs/controls/serialization/base/index.js.map +1 -0
  11. package/dist/cjs/controls/serialization/base/visitor.js +59 -0
  12. package/dist/cjs/controls/serialization/base/visitor.js.map +1 -0
  13. package/dist/cjs/controls/serialization/index.js +55 -0
  14. package/dist/cjs/controls/serialization/index.js.map +1 -0
  15. package/dist/cjs/controls/serialization/message-port/function-serialization.js +79 -0
  16. package/dist/cjs/controls/serialization/message-port/function-serialization.js.map +1 -0
  17. package/dist/cjs/controls/serialization/message-port/index.js +25 -0
  18. package/dist/cjs/controls/serialization/message-port/index.js.map +1 -0
  19. package/dist/cjs/controls/serialization/message-port/visitor.js +48 -0
  20. package/dist/cjs/controls/serialization/message-port/visitor.js.map +1 -0
  21. package/dist/cjs/next/api-handler/config/pages-router.js +1 -1
  22. package/dist/cjs/next/api-handler/config/pages-router.js.map +1 -1
  23. package/dist/cjs/next/fetch.js +30 -0
  24. package/dist/cjs/next/fetch.js.map +1 -0
  25. package/dist/cjs/next/runtime.js +35 -0
  26. package/dist/cjs/next/runtime.js.map +1 -0
  27. package/dist/cjs/next/testing/react-runtime.js +29 -0
  28. package/dist/cjs/next/testing/react-runtime.js.map +1 -0
  29. package/dist/cjs/prop-controllers/serialization.js +355 -0
  30. package/dist/cjs/prop-controllers/serialization.js.map +1 -0
  31. package/dist/cjs/runtimes/react/components/GoogleFontLink.js +55 -0
  32. package/dist/cjs/runtimes/react/components/GoogleFontLink.js.map +1 -0
  33. package/dist/cjs/runtimes/react/components/MakeswiftFonts.js +33 -0
  34. package/dist/cjs/runtimes/react/components/MakeswiftFonts.js.map +1 -0
  35. package/dist/cjs/runtimes/react/hooks/use-async-effect.js +55 -0
  36. package/dist/cjs/runtimes/react/hooks/use-async-effect.js.map +1 -0
  37. package/dist/cjs/runtimes/react/hooks/use-current-breakpoint.js +39 -0
  38. package/dist/cjs/runtimes/react/hooks/use-current-breakpoint.js.map +1 -0
  39. package/dist/cjs/runtimes/react/hooks/use-is-read-only.js +33 -0
  40. package/dist/cjs/runtimes/react/hooks/use-is-read-only.js.map +1 -0
  41. package/dist/cjs/runtimes/react/lib/resolved-style-to-css.js +59 -0
  42. package/dist/cjs/runtimes/react/lib/resolved-style-to-css.js.map +1 -0
  43. package/dist/cjs/runtimes/react/testing/react-runtime.js +33 -0
  44. package/dist/cjs/runtimes/react/testing/react-runtime.js.map +1 -0
  45. package/dist/cjs/runtimes/react/utils/google-fonts-url.js +49 -0
  46. package/dist/cjs/runtimes/react/utils/google-fonts-url.js.map +1 -0
  47. package/dist/cjs/state/actions/internal/index.js +34 -0
  48. package/dist/cjs/state/actions/internal/index.js.map +1 -0
  49. package/dist/cjs/state/actions/internal/read-only-actions.js +195 -0
  50. package/dist/cjs/state/actions/internal/read-only-actions.js.map +1 -0
  51. package/dist/cjs/state/actions/internal/read-write-actions.js +76 -0
  52. package/dist/cjs/state/actions/internal/read-write-actions.js.map +1 -0
  53. package/dist/cjs/state/builder-api/api.js +17 -0
  54. package/dist/cjs/state/builder-api/api.js.map +1 -0
  55. package/dist/cjs/state/builder-api/navigation-listener.js +110 -0
  56. package/dist/cjs/state/builder-api/navigation-listener.js.map +1 -0
  57. package/dist/cjs/state/middleware/makeswift-api-client-sync.js +37 -0
  58. package/dist/cjs/state/middleware/makeswift-api-client-sync.js.map +1 -0
  59. package/dist/cjs/state/middleware/read-only-element-tree.js +52 -0
  60. package/dist/cjs/state/middleware/read-only-element-tree.js.map +1 -0
  61. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js +40 -0
  62. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js.map +1 -0
  63. package/dist/cjs/state/middleware/read-write/builder-api/index.js +85 -0
  64. package/dist/cjs/state/middleware/read-write/builder-api/index.js.map +1 -0
  65. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js +281 -0
  66. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -0
  67. package/dist/cjs/state/middleware/read-write/index.js +40 -0
  68. package/dist/cjs/state/middleware/read-write/index.js.map +1 -0
  69. package/dist/cjs/state/middleware/read-write/measure-box-models.js +71 -0
  70. package/dist/cjs/state/middleware/read-write/measure-box-models.js.map +1 -0
  71. package/dist/cjs/state/middleware/read-write/prop-controller-handles.js +114 -0
  72. package/dist/cjs/state/middleware/read-write/prop-controller-handles.js.map +1 -0
  73. package/dist/cjs/state/middleware/read-write/update-element-tree.js +59 -0
  74. package/dist/cjs/state/middleware/read-write/update-element-tree.js.map +1 -0
  75. package/dist/cjs/state/mixins/breakpoint-watch.js +72 -0
  76. package/dist/cjs/state/mixins/breakpoint-watch.js.map +1 -0
  77. package/dist/cjs/state/modules/is-read-only.js +50 -0
  78. package/dist/cjs/state/modules/is-read-only.js.map +1 -0
  79. package/dist/cjs/state/modules/locale.js +50 -0
  80. package/dist/cjs/state/modules/locale.js.map +1 -0
  81. package/dist/cjs/state/modules/read-write/box-models.js +144 -0
  82. package/dist/cjs/state/modules/read-write/box-models.js.map +1 -0
  83. package/dist/cjs/state/modules/read-write/element-imperative-handles.js +61 -0
  84. package/dist/cjs/state/modules/read-write/element-imperative-handles.js.map +1 -0
  85. package/dist/cjs/state/modules/read-write/pointer.js +48 -0
  86. package/dist/cjs/state/modules/read-write/pointer.js.map +1 -0
  87. package/dist/cjs/state/modules/read-write/read-write-documents.js +98 -0
  88. package/dist/cjs/state/modules/read-write/read-write-documents.js.map +1 -0
  89. package/dist/cjs/state/modules/site-version.js +47 -0
  90. package/dist/cjs/state/modules/site-version.js.map +1 -0
  91. package/dist/cjs/state/ops/copy-element-tree.js +67 -0
  92. package/dist/cjs/state/ops/copy-element-tree.js.map +1 -0
  93. package/dist/cjs/state/ops/merge-element.js +73 -0
  94. package/dist/cjs/state/ops/merge-element.js.map +1 -0
  95. package/dist/cjs/state/read-only-state.js +231 -0
  96. package/dist/cjs/state/read-only-state.js.map +1 -0
  97. package/dist/cjs/state/read-write-state.js +128 -0
  98. package/dist/cjs/state/read-write-state.js.map +1 -0
  99. package/dist/cjs/state/store.js +219 -0
  100. package/dist/cjs/state/store.js.map +1 -0
  101. package/dist/cjs/state/unified-state.js +17 -0
  102. package/dist/cjs/state/unified-state.js.map +1 -0
  103. package/dist/cjs/translations/index.js +32 -0
  104. package/dist/cjs/translations/index.js.map +1 -0
  105. package/dist/cjs/utils/deferred.js +39 -0
  106. package/dist/cjs/utils/deferred.js.map +1 -0
  107. package/dist/cjs/utils/ref-counted-map.js +120 -0
  108. package/dist/cjs/utils/ref-counted-map.js.map +1 -0
  109. package/dist/esm/api/client.js +219 -0
  110. package/dist/esm/api/client.js.map +1 -0
  111. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  112. package/dist/esm/api-handler/handlers/webhook/diff-projection.js +38 -0
  113. package/dist/esm/api-handler/handlers/webhook/diff-projection.js.map +1 -0
  114. package/dist/esm/builder/serialization.js +59 -0
  115. package/dist/esm/builder/serialization.js.map +1 -0
  116. package/dist/esm/client/index.js +3 -3
  117. package/dist/esm/controls/serialization/base/index.js +78 -0
  118. package/dist/esm/controls/serialization/base/index.js.map +1 -0
  119. package/dist/esm/controls/serialization/base/visitor.js +39 -0
  120. package/dist/esm/controls/serialization/base/visitor.js.map +1 -0
  121. package/dist/esm/controls/serialization/index.js +30 -0
  122. package/dist/esm/controls/serialization/index.js.map +1 -0
  123. package/dist/esm/controls/serialization/message-port/function-serialization.js +52 -0
  124. package/dist/esm/controls/serialization/message-port/function-serialization.js.map +1 -0
  125. package/dist/esm/controls/serialization/message-port/index.js +3 -0
  126. package/dist/esm/controls/serialization/message-port/index.js.map +1 -0
  127. package/dist/esm/controls/serialization/message-port/visitor.js +24 -0
  128. package/dist/esm/controls/serialization/message-port/visitor.js.map +1 -0
  129. package/dist/esm/next/api-handler/config/pages-router.js +1 -1
  130. package/dist/esm/next/api-handler/config/pages-router.js.map +1 -1
  131. package/dist/esm/next/fetch.js +6 -0
  132. package/dist/esm/next/fetch.js.map +1 -0
  133. package/dist/esm/next/runtime.js +11 -0
  134. package/dist/esm/next/runtime.js.map +1 -0
  135. package/dist/esm/next/testing/react-runtime.js +5 -0
  136. package/dist/esm/next/testing/react-runtime.js.map +1 -0
  137. package/dist/esm/prop-controllers/serialization.js +338 -0
  138. package/dist/esm/prop-controllers/serialization.js.map +1 -0
  139. package/dist/esm/runtimes/react/components/GoogleFontLink.js +35 -0
  140. package/dist/esm/runtimes/react/components/GoogleFontLink.js.map +1 -0
  141. package/dist/esm/runtimes/react/components/MakeswiftFonts.js +9 -0
  142. package/dist/esm/runtimes/react/components/MakeswiftFonts.js.map +1 -0
  143. package/dist/esm/runtimes/react/hooks/use-async-effect.js +31 -0
  144. package/dist/esm/runtimes/react/hooks/use-async-effect.js.map +1 -0
  145. package/dist/esm/runtimes/react/hooks/use-current-breakpoint.js +15 -0
  146. package/dist/esm/runtimes/react/hooks/use-current-breakpoint.js.map +1 -0
  147. package/dist/esm/runtimes/react/hooks/use-is-read-only.js +9 -0
  148. package/dist/esm/runtimes/react/hooks/use-is-read-only.js.map +1 -0
  149. package/dist/esm/runtimes/react/lib/resolved-style-to-css.js +38 -0
  150. package/dist/esm/runtimes/react/lib/resolved-style-to-css.js.map +1 -0
  151. package/dist/esm/runtimes/react/testing/react-runtime.js +9 -0
  152. package/dist/esm/runtimes/react/testing/react-runtime.js.map +1 -0
  153. package/dist/esm/runtimes/react/utils/google-fonts-url.js +23 -0
  154. package/dist/esm/runtimes/react/utils/google-fonts-url.js.map +1 -0
  155. package/dist/esm/state/actions/internal/index.js +10 -0
  156. package/dist/esm/state/actions/internal/index.js.map +1 -0
  157. package/dist/esm/state/actions/internal/read-only-actions.js +153 -0
  158. package/dist/esm/state/actions/internal/read-only-actions.js.map +1 -0
  159. package/dist/esm/state/actions/internal/read-write-actions.js +46 -0
  160. package/dist/esm/state/actions/internal/read-write-actions.js.map +1 -0
  161. package/dist/esm/state/builder-api/api.js +1 -0
  162. package/dist/esm/state/builder-api/api.js.map +1 -0
  163. package/dist/esm/state/builder-api/navigation-listener.js +86 -0
  164. package/dist/esm/state/builder-api/navigation-listener.js.map +1 -0
  165. package/dist/esm/state/middleware/makeswift-api-client-sync.js +13 -0
  166. package/dist/esm/state/middleware/makeswift-api-client-sync.js.map +1 -0
  167. package/dist/esm/state/middleware/read-only-element-tree.js +28 -0
  168. package/dist/esm/state/middleware/read-only-element-tree.js.map +1 -0
  169. package/dist/esm/state/middleware/read-write/builder-api/element-size.js +16 -0
  170. package/dist/esm/state/middleware/read-write/builder-api/element-size.js.map +1 -0
  171. package/dist/esm/state/middleware/read-write/builder-api/index.js +61 -0
  172. package/dist/esm/state/middleware/read-write/builder-api/index.js.map +1 -0
  173. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js +254 -0
  174. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -0
  175. package/dist/esm/state/middleware/read-write/index.js +16 -0
  176. package/dist/esm/state/middleware/read-write/index.js.map +1 -0
  177. package/dist/esm/state/middleware/read-write/measure-box-models.js +37 -0
  178. package/dist/esm/state/middleware/read-write/measure-box-models.js.map +1 -0
  179. package/dist/esm/state/middleware/read-write/prop-controller-handles.js +80 -0
  180. package/dist/esm/state/middleware/read-write/prop-controller-handles.js.map +1 -0
  181. package/dist/esm/state/middleware/read-write/update-element-tree.js +35 -0
  182. package/dist/esm/state/middleware/read-write/update-element-tree.js.map +1 -0
  183. package/dist/esm/state/mixins/breakpoint-watch.js +48 -0
  184. package/dist/esm/state/mixins/breakpoint-watch.js.map +1 -0
  185. package/dist/esm/state/modules/is-read-only.js +24 -0
  186. package/dist/esm/state/modules/is-read-only.js.map +1 -0
  187. package/dist/esm/state/modules/locale.js +24 -0
  188. package/dist/esm/state/modules/locale.js.map +1 -0
  189. package/dist/esm/state/modules/read-write/box-models.js +114 -0
  190. package/dist/esm/state/modules/read-write/box-models.js.map +1 -0
  191. package/dist/esm/state/modules/read-write/element-imperative-handles.js +36 -0
  192. package/dist/esm/state/modules/read-write/element-imperative-handles.js.map +1 -0
  193. package/dist/esm/state/modules/read-write/pointer.js +23 -0
  194. package/dist/esm/state/modules/read-write/pointer.js.map +1 -0
  195. package/dist/esm/state/modules/read-write/read-write-documents.js +60 -0
  196. package/dist/esm/state/modules/read-write/read-write-documents.js.map +1 -0
  197. package/dist/esm/state/modules/site-version.js +21 -0
  198. package/dist/esm/state/modules/site-version.js.map +1 -0
  199. package/dist/esm/state/ops/copy-element-tree.js +37 -0
  200. package/dist/esm/state/ops/copy-element-tree.js.map +1 -0
  201. package/dist/esm/state/ops/merge-element.js +39 -0
  202. package/dist/esm/state/ops/merge-element.js.map +1 -0
  203. package/dist/esm/state/read-only-state.js +176 -0
  204. package/dist/esm/state/read-only-state.js.map +1 -0
  205. package/dist/esm/state/read-write-state.js +82 -0
  206. package/dist/esm/state/read-write-state.js.map +1 -0
  207. package/dist/esm/state/store.js +188 -0
  208. package/dist/esm/state/store.js.map +1 -0
  209. package/dist/esm/state/unified-state.js +1 -0
  210. package/dist/esm/state/unified-state.js.map +1 -0
  211. package/dist/esm/translations/index.js +7 -0
  212. package/dist/esm/translations/index.js.map +1 -0
  213. package/dist/esm/utils/deferred.js +15 -0
  214. package/dist/esm/utils/deferred.js.map +1 -0
  215. package/dist/esm/utils/ref-counted-map.js +96 -0
  216. package/dist/esm/utils/ref-counted-map.js.map +1 -0
  217. package/dist/types/api/client.d.ts +81 -0
  218. package/dist/types/api/client.d.ts.map +1 -0
  219. package/dist/types/api-handler/handlers/webhook/diff-projection.d.ts +201 -0
  220. package/dist/types/api-handler/handlers/webhook/diff-projection.d.ts.map +1 -0
  221. package/dist/types/builder/serialization.d.ts +23 -0
  222. package/dist/types/builder/serialization.d.ts.map +1 -0
  223. package/dist/types/builder/serialization.test.d.ts +2 -0
  224. package/dist/types/builder/serialization.test.d.ts.map +1 -0
  225. package/dist/types/client/tests/client.get-component-snapshots.test.d.ts +2 -0
  226. package/dist/types/client/tests/client.get-component-snapshots.test.d.ts.map +1 -0
  227. package/dist/types/client/tests/client.get-fonts.test.d.ts +2 -0
  228. package/dist/types/client/tests/client.get-fonts.test.d.ts.map +1 -0
  229. package/dist/types/client/tests/client.introspect-many.test.d.ts +2 -0
  230. package/dist/types/client/tests/client.introspect-many.test.d.ts.map +1 -0
  231. package/dist/types/components/hooks/__tests__/useMediaQuery.test.d.ts +3 -0
  232. package/dist/types/components/hooks/__tests__/useMediaQuery.test.d.ts.map +1 -0
  233. package/dist/types/controls/serialization/base/index.d.ts +10 -0
  234. package/dist/types/controls/serialization/base/index.d.ts.map +1 -0
  235. package/dist/types/controls/serialization/base/visitor.d.ts +7 -0
  236. package/dist/types/controls/serialization/base/visitor.d.ts.map +1 -0
  237. package/dist/types/controls/serialization/index.d.ts +10 -0
  238. package/dist/types/controls/serialization/index.d.ts.map +1 -0
  239. package/dist/types/controls/serialization/message-port/function-serialization.d.ts +16 -0
  240. package/dist/types/controls/serialization/message-port/function-serialization.d.ts.map +1 -0
  241. package/dist/types/controls/serialization/message-port/function-serialization.test.d.ts +2 -0
  242. package/dist/types/controls/serialization/message-port/function-serialization.test.d.ts.map +1 -0
  243. package/dist/types/controls/serialization/message-port/index.d.ts +3 -0
  244. package/dist/types/controls/serialization/message-port/index.d.ts.map +1 -0
  245. package/dist/types/controls/serialization/message-port/visitor.d.ts +7 -0
  246. package/dist/types/controls/serialization/message-port/visitor.d.ts.map +1 -0
  247. package/dist/types/next/api-handler/config/pages-router.test.d.ts +2 -0
  248. package/dist/types/next/api-handler/config/pages-router.test.d.ts.map +1 -0
  249. package/dist/types/next/components/tests/controls/code-control.test.d.ts +2 -0
  250. package/dist/types/next/components/tests/controls/code-control.test.d.ts.map +1 -0
  251. package/dist/types/next/fetch.d.ts +3 -0
  252. package/dist/types/next/fetch.d.ts.map +1 -0
  253. package/dist/types/next/runtime.d.ts +10 -0
  254. package/dist/types/next/runtime.d.ts.map +1 -0
  255. package/dist/types/next/testing/react-runtime.d.ts +2 -0
  256. package/dist/types/next/testing/react-runtime.d.ts.map +1 -0
  257. package/dist/types/prop-controllers/serialization.d.ts +228 -0
  258. package/dist/types/prop-controllers/serialization.d.ts.map +1 -0
  259. package/dist/types/runtimes/react/components/GoogleFontLink.d.ts +14 -0
  260. package/dist/types/runtimes/react/components/GoogleFontLink.d.ts.map +1 -0
  261. package/dist/types/runtimes/react/components/MakeswiftFonts.d.ts +7 -0
  262. package/dist/types/runtimes/react/components/MakeswiftFonts.d.ts.map +1 -0
  263. package/dist/types/runtimes/react/hooks/__tests__/use-async-effect.test.d.ts +2 -0
  264. package/dist/types/runtimes/react/hooks/__tests__/use-async-effect.test.d.ts.map +1 -0
  265. package/dist/types/runtimes/react/hooks/use-async-effect.d.ts +3 -0
  266. package/dist/types/runtimes/react/hooks/use-async-effect.d.ts.map +1 -0
  267. package/dist/types/runtimes/react/hooks/use-current-breakpoint.d.ts +3 -0
  268. package/dist/types/runtimes/react/hooks/use-current-breakpoint.d.ts.map +1 -0
  269. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts +2 -0
  270. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts.map +1 -0
  271. package/dist/types/runtimes/react/lib/resolved-style-to-css.d.ts +4 -0
  272. package/dist/types/runtimes/react/lib/resolved-style-to-css.d.ts.map +1 -0
  273. package/dist/types/runtimes/react/testing/react-runtime.d.ts +6 -0
  274. package/dist/types/runtimes/react/testing/react-runtime.d.ts.map +1 -0
  275. package/dist/types/runtimes/react/utils/google-fonts-url.d.ts +6 -0
  276. package/dist/types/runtimes/react/utils/google-fonts-url.d.ts.map +1 -0
  277. package/dist/types/state/__tests__/fixtures/serialized-descriptors-from-builder.d.ts +5 -0
  278. package/dist/types/state/__tests__/fixtures/serialized-descriptors-from-builder.d.ts.map +1 -0
  279. package/dist/types/state/__tests__/fixtures/translatable-content-sample.d.ts +3 -0
  280. package/dist/types/state/__tests__/fixtures/translatable-content-sample.d.ts.map +1 -0
  281. package/dist/types/state/__tests__/get-translatable-content.test.d.ts +2 -0
  282. package/dist/types/state/__tests__/get-translatable-content.test.d.ts.map +1 -0
  283. package/dist/types/state/__tests__/merge-element.test.d.ts +2 -0
  284. package/dist/types/state/__tests__/merge-element.test.d.ts.map +1 -0
  285. package/dist/types/state/__tests__/store.read-write-state.test.d.ts +2 -0
  286. package/dist/types/state/__tests__/store.read-write-state.test.d.ts.map +1 -0
  287. package/dist/types/state/__tests__/test-store.d.ts +31 -0
  288. package/dist/types/state/__tests__/test-store.d.ts.map +1 -0
  289. package/dist/types/state/actions/internal/index.d.ts +29 -0
  290. package/dist/types/state/actions/internal/index.d.ts.map +1 -0
  291. package/dist/types/state/actions/internal/read-only-actions.d.ts +171 -0
  292. package/dist/types/state/actions/internal/read-only-actions.d.ts.map +1 -0
  293. package/dist/types/state/actions/internal/read-write-actions.d.ts +53 -0
  294. package/dist/types/state/actions/internal/read-write-actions.d.ts.map +1 -0
  295. package/dist/types/state/builder-api/api.d.ts +9 -0
  296. package/dist/types/state/builder-api/api.d.ts.map +1 -0
  297. package/dist/types/state/builder-api/navigation-listener.d.ts +3 -0
  298. package/dist/types/state/builder-api/navigation-listener.d.ts.map +1 -0
  299. package/dist/types/state/middleware/makeswift-api-client-sync.d.ts +5 -0
  300. package/dist/types/state/middleware/makeswift-api-client-sync.d.ts.map +1 -0
  301. package/dist/types/state/middleware/read-only-element-tree.d.ts +4 -0
  302. package/dist/types/state/middleware/read-only-element-tree.d.ts.map +1 -0
  303. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts +12 -0
  304. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts.map +1 -0
  305. package/dist/types/state/middleware/read-write/builder-api/index.d.ts +5 -0
  306. package/dist/types/state/middleware/read-write/builder-api/index.d.ts.map +1 -0
  307. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts +6 -0
  308. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts.map +1 -0
  309. package/dist/types/state/middleware/read-write/index.d.ts +5 -0
  310. package/dist/types/state/middleware/read-write/index.d.ts.map +1 -0
  311. package/dist/types/state/middleware/read-write/measure-box-models.d.ts +4 -0
  312. package/dist/types/state/middleware/read-write/measure-box-models.d.ts.map +1 -0
  313. package/dist/types/state/middleware/read-write/prop-controller-handles.d.ts +4 -0
  314. package/dist/types/state/middleware/read-write/prop-controller-handles.d.ts.map +1 -0
  315. package/dist/types/state/middleware/read-write/update-element-tree.d.ts +4 -0
  316. package/dist/types/state/middleware/read-write/update-element-tree.d.ts.map +1 -0
  317. package/dist/types/state/mixins/breakpoint-watch.d.ts +11 -0
  318. package/dist/types/state/mixins/breakpoint-watch.d.ts.map +1 -0
  319. package/dist/types/state/modules/is-read-only.d.ts +6 -0
  320. package/dist/types/state/modules/is-read-only.d.ts.map +1 -0
  321. package/dist/types/state/modules/locale.d.ts +6 -0
  322. package/dist/types/state/modules/locale.d.ts.map +1 -0
  323. package/dist/types/state/modules/read-write/box-models.d.ts +26 -0
  324. package/dist/types/state/modules/read-write/box-models.d.ts.map +1 -0
  325. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts +6 -0
  326. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts.map +1 -0
  327. package/dist/types/state/modules/read-write/pointer.d.ts +11 -0
  328. package/dist/types/state/modules/read-write/pointer.d.ts.map +1 -0
  329. package/dist/types/state/modules/read-write/read-write-documents.d.ts +14 -0
  330. package/dist/types/state/modules/read-write/read-write-documents.d.ts.map +1 -0
  331. package/dist/types/state/modules/site-version.d.ts +7 -0
  332. package/dist/types/state/modules/site-version.d.ts.map +1 -0
  333. package/dist/types/state/ops/copy-element-tree.d.ts +37 -0
  334. package/dist/types/state/ops/copy-element-tree.d.ts.map +1 -0
  335. package/dist/types/state/ops/merge-element.d.ts +4 -0
  336. package/dist/types/state/ops/merge-element.d.ts.map +1 -0
  337. package/dist/types/state/read-only-state.d.ts +131 -0
  338. package/dist/types/state/read-only-state.d.ts.map +1 -0
  339. package/dist/types/state/read-write-state.d.ts +62 -0
  340. package/dist/types/state/read-write-state.d.ts.map +1 -0
  341. package/dist/types/state/store.d.ts +86 -0
  342. package/dist/types/state/store.d.ts.map +1 -0
  343. package/dist/types/state/unified-state.d.ts +9 -0
  344. package/dist/types/state/unified-state.d.ts.map +1 -0
  345. package/dist/types/translations/index.d.ts +6 -0
  346. package/dist/types/translations/index.d.ts.map +1 -0
  347. package/dist/types/utils/__tests__/ref-counted-map.test.d.ts +2 -0
  348. package/dist/types/utils/__tests__/ref-counted-map.test.d.ts.map +1 -0
  349. package/dist/types/utils/deferred.d.ts +7 -0
  350. package/dist/types/utils/deferred.d.ts.map +1 -0
  351. package/dist/types/utils/ref-counted-map.d.ts +32 -0
  352. package/dist/types/utils/ref-counted-map.d.ts.map +1 -0
  353. package/package.json +2 -2
@@ -0,0 +1,254 @@
1
+ import deepEqual from "../../../../utils/deepEqual";
2
+ import * as BoxModels from "../../../modules/read-write/box-models";
3
+ import * as BuilderEditMode from "../../../modules/builder-edit-mode";
4
+ import * as ReadOnly from "../../../actions/internal/read-only-actions";
5
+ import * as Builder from "../../../builder-api/actions";
6
+ import { serializeControls } from "../../../../builder";
7
+ import * as ReadOnlyState from "../../../read-only-state";
8
+ import {
9
+ getDocuments,
10
+ getMeasurables,
11
+ getBoxModels,
12
+ getBoxModel,
13
+ getElementImperativeHandlesContainingElement,
14
+ getPointer
15
+ } from "../../../read-write-state";
16
+ import { getElementSize } from "./element-size";
17
+ function measureElements() {
18
+ return (dispatch, getState) => {
19
+ const measurables = getMeasurables(getState());
20
+ const currentBoxModels = getBoxModels(getState());
21
+ const measuredBoxModels = /* @__PURE__ */ new Map();
22
+ measurables.forEach((documentMeasurables, documentKey) => {
23
+ const measuredDocumentBoxModels = /* @__PURE__ */ new Map();
24
+ documentMeasurables.forEach((measurable, elementKey) => {
25
+ const boxModel = BoxModels.measure(measurable);
26
+ if (boxModel != null)
27
+ measuredDocumentBoxModels.set(elementKey, boxModel);
28
+ });
29
+ if (measuredDocumentBoxModels.size > 0) {
30
+ measuredBoxModels.set(documentKey, measuredDocumentBoxModels);
31
+ }
32
+ });
33
+ const changedBoxModels = /* @__PURE__ */ new Map();
34
+ currentBoxModels.forEach((currentDocumentBoxModels, documentKey) => {
35
+ const changedDocumentBoxModels = /* @__PURE__ */ new Map();
36
+ currentDocumentBoxModels.forEach((_boxModel, elementKey) => {
37
+ if (!measuredBoxModels.get(documentKey)?.has(elementKey)) {
38
+ changedDocumentBoxModels.set(elementKey, null);
39
+ }
40
+ if (changedDocumentBoxModels.size > 0) {
41
+ changedBoxModels.set(documentKey, changedDocumentBoxModels);
42
+ }
43
+ });
44
+ });
45
+ measuredBoxModels.forEach((measuredDocumentBoxModels, documentKey) => {
46
+ const changedDocumentBoxModels = /* @__PURE__ */ new Map();
47
+ measuredDocumentBoxModels.forEach((measuredBoxModel, elementKey) => {
48
+ const currentBoxModel = getBoxModel(getState(), documentKey, elementKey);
49
+ if (currentBoxModel == null || !deepEqual(currentBoxModel, measuredBoxModel)) {
50
+ changedDocumentBoxModels.set(elementKey, measuredBoxModel);
51
+ }
52
+ });
53
+ if (changedDocumentBoxModels.size > 0) {
54
+ changedBoxModels.set(documentKey, changedDocumentBoxModels);
55
+ }
56
+ });
57
+ if (changedBoxModels.size > 0)
58
+ dispatch(Builder.changeElementBoxModels(changedBoxModels));
59
+ };
60
+ }
61
+ function startMeasuringElements() {
62
+ return (dispatch) => {
63
+ let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest);
64
+ return () => {
65
+ cancelAnimationFrame(animationFrameHandle);
66
+ };
67
+ function handleAnimationFrameRequest() {
68
+ dispatch(measureElements());
69
+ animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest);
70
+ }
71
+ };
72
+ }
73
+ function lockDocumentScroll() {
74
+ return (dispatch) => {
75
+ const lastDocumentOverflow = window.document.documentElement.style.overflow;
76
+ window.document.documentElement.style.overflow = "hidden";
77
+ window.document.documentElement.addEventListener("wheel", handleWheelEvent);
78
+ return () => {
79
+ window.document.documentElement.style.overflow = lastDocumentOverflow;
80
+ window.document.documentElement.removeEventListener("wheel", handleWheelEvent);
81
+ };
82
+ function handleWheelEvent({ deltaX, deltaY }) {
83
+ dispatch(Builder.handleWheel({ deltaX, deltaY }));
84
+ }
85
+ };
86
+ }
87
+ function startHandlingPointerMoveEvent() {
88
+ return (dispatch) => {
89
+ window.document.documentElement.addEventListener("pointermove", handlePointerMoveEvent);
90
+ return () => {
91
+ window.document.documentElement.removeEventListener("pointermove", handlePointerMoveEvent);
92
+ };
93
+ function handlePointerMoveEvent({ clientX, clientY }) {
94
+ dispatch(Builder.handlePointerMove({ clientX, clientY }));
95
+ }
96
+ };
97
+ }
98
+ function startHandlingFocusEvents() {
99
+ return (_dispatch, getState) => {
100
+ window.addEventListener("focusin", handleFocusIn);
101
+ window.addEventListener("focusout", handleFocusOut);
102
+ return () => {
103
+ window.removeEventListener("focusin", handleFocusIn);
104
+ window.removeEventListener("focusout", handleFocusOut);
105
+ };
106
+ function handleFocusIn(event) {
107
+ if (ReadOnlyState.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT) {
108
+ return;
109
+ }
110
+ if (!(event.target instanceof window.HTMLElement) || !event.target.isContentEditable) {
111
+ window.parent.focus();
112
+ }
113
+ }
114
+ function handleFocusOut(event) {
115
+ if (ReadOnlyState.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT) {
116
+ return;
117
+ }
118
+ if (!(event.relatedTarget instanceof window.HTMLElement) || !event.relatedTarget.isContentEditable) {
119
+ window.parent.focus();
120
+ }
121
+ }
122
+ };
123
+ }
124
+ function startMeasuringDocumentElement() {
125
+ return (dispatch) => {
126
+ let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest);
127
+ let lastSize;
128
+ return () => {
129
+ cancelAnimationFrame(animationFrameHandle);
130
+ };
131
+ function handleAnimationFrameRequest() {
132
+ const nextSize = getElementSize(window.document.documentElement);
133
+ if (!deepEqual(lastSize, nextSize)) {
134
+ lastSize = nextSize;
135
+ dispatch(Builder.changeDocumentElementSize(nextSize));
136
+ }
137
+ animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest);
138
+ }
139
+ };
140
+ }
141
+ function elementKeysFromElementFromPoint(elementFromPoint) {
142
+ return (_dispatch, getState) => {
143
+ if (elementFromPoint == null)
144
+ return null;
145
+ const elementImperativeHandles = getElementImperativeHandlesContainingElement(
146
+ getState(),
147
+ elementFromPoint
148
+ );
149
+ const ascendingDepthDocumentKeys = ReadOnlyState.getDocumentKeysSortedByDepth(getState());
150
+ const descendingDepthDocumentKeys = ascendingDepthDocumentKeys.slice().reverse();
151
+ let currentElement = elementFromPoint;
152
+ let keys = null;
153
+ while (currentElement != null) {
154
+ for (const documentKey of descendingDepthDocumentKeys) {
155
+ const byElementKey = elementImperativeHandles.get(documentKey);
156
+ if (byElementKey == null)
157
+ continue;
158
+ for (const [elementKey, elementImperativeHandle] of byElementKey) {
159
+ if (elementImperativeHandle.getDomNode() === currentElement) {
160
+ return { documentKey, elementKey };
161
+ }
162
+ }
163
+ }
164
+ currentElement = currentElement.parentElement;
165
+ }
166
+ return keys;
167
+ };
168
+ }
169
+ function startPollingElementFromPoint() {
170
+ return (dispatch, getState) => {
171
+ let lastElementFromPoint = null;
172
+ let animationFrameRequestId = requestAnimationFrame(handleAnimationFrameRequest);
173
+ return () => {
174
+ cancelAnimationFrame(animationFrameRequestId);
175
+ };
176
+ function handleAnimationFrameRequest() {
177
+ const pointer = getPointer(getState());
178
+ const elementFromPoint = pointer == null ? null : document.elementFromPoint(pointer.x, pointer.y);
179
+ if (elementFromPoint !== lastElementFromPoint) {
180
+ lastElementFromPoint = elementFromPoint;
181
+ const keys = dispatch(elementKeysFromElementFromPoint(elementFromPoint));
182
+ dispatch(Builder.elementFromPointChange(keys));
183
+ }
184
+ animationFrameRequestId = requestAnimationFrame(handleAnimationFrameRequest);
185
+ }
186
+ };
187
+ }
188
+ function registerBuilderComponents() {
189
+ return (dispatch, getState) => {
190
+ const state = getState();
191
+ const componentsMeta = ReadOnlyState.getComponentsMeta(state);
192
+ componentsMeta.forEach((meta, type) => {
193
+ const descriptors = ReadOnlyState.getComponentPropControllerDescriptors(state, type);
194
+ if (descriptors != null) {
195
+ const [serializedControls, transferables] = serializeControls(descriptors);
196
+ dispatch(
197
+ Builder.registerBuilderComponent({ type, meta, serializedControls }, transferables)
198
+ );
199
+ }
200
+ });
201
+ return () => {
202
+ componentsMeta.forEach((_, type) => {
203
+ dispatch(Builder.unregisterBuilderComponent({ type }));
204
+ });
205
+ };
206
+ };
207
+ }
208
+ function registerBuilderDocuments() {
209
+ return (dispatch, getState) => {
210
+ const documents = getDocuments(getState());
211
+ documents.forEach((document2) => {
212
+ dispatch(Builder.registerBuilderDocument(document2));
213
+ });
214
+ return () => {
215
+ documents.forEach((_document, documentKey) => {
216
+ dispatch(Builder.unregisterBuilderDocument(documentKey));
217
+ });
218
+ };
219
+ };
220
+ }
221
+ function initializeBuilderConnection(builderProxy) {
222
+ return (dispatch, getState) => {
223
+ const unregisterBuilderDocuments = dispatch(registerBuilderDocuments());
224
+ const stopMeasuringElements = dispatch(startMeasuringElements());
225
+ const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement());
226
+ const stopHandlingFocusEvent = dispatch(startHandlingFocusEvents());
227
+ const unlockDocumentScroll = dispatch(lockDocumentScroll());
228
+ const stopHandlingPointerMoveEvent = dispatch(startHandlingPointerMoveEvent());
229
+ const stopPollingElementFromPoint = dispatch(startPollingElementFromPoint());
230
+ const unregisterBuilderComponents = dispatch(registerBuilderComponents());
231
+ const breakpoints = ReadOnlyState.getBreakpoints(getState());
232
+ dispatch(Builder.setBreakpoints(breakpoints));
233
+ const locale = ReadOnlyState.getLocale(getState());
234
+ if (locale != null)
235
+ dispatch(Builder.setLocale(new Intl.Locale(locale)));
236
+ dispatch(ReadOnly.setIsInBuilder(true));
237
+ builderProxy.dispatchBuffered();
238
+ return () => {
239
+ unregisterBuilderDocuments();
240
+ stopMeasuringElements();
241
+ stopMeasuringDocumentElement();
242
+ stopHandlingFocusEvent();
243
+ unlockDocumentScroll();
244
+ stopHandlingPointerMoveEvent();
245
+ stopPollingElementFromPoint();
246
+ unregisterBuilderComponents();
247
+ dispatch(ReadOnly.setIsInBuilder(false));
248
+ };
249
+ };
250
+ }
251
+ export {
252
+ initializeBuilderConnection
253
+ };
254
+ //# sourceMappingURL=initialize-connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/state/middleware/read-write/builder-api/initialize-connection.ts"],"sourcesContent":["import { type ThunkAction } from '@reduxjs/toolkit'\n\nimport deepEqual from '../../../../utils/deepEqual'\n\nimport * as BoxModels from '../../../modules/read-write/box-models'\nimport * as BuilderEditMode from '../../../modules/builder-edit-mode'\n\nimport { type Action } from '../../../actions'\n\nimport * as ReadOnly from '../../../actions/internal/read-only-actions'\nimport * as Builder from '../../../builder-api/actions'\n\nimport { serializeControls } from '../../../../builder'\nimport { type BuilderAPIProxy } from '../../../builder-api/proxy'\n\nimport * as ReadOnlyState from '../../../read-only-state'\nimport {\n type State,\n getDocuments,\n getMeasurables,\n getBoxModels,\n getBoxModel,\n getElementImperativeHandlesContainingElement,\n getPointer,\n} from '../../../read-write-state'\n\nimport { type ElementSize, getElementSize } from './element-size'\n\nfunction measureElements(): ThunkAction<void, State, unknown, Action> {\n return (dispatch, getState) => {\n const measurables = getMeasurables(getState())\n const currentBoxModels = getBoxModels(getState())\n const measuredBoxModels = new Map<string, Map<string, BoxModels.BoxDisplayModel>>()\n\n measurables.forEach((documentMeasurables, documentKey) => {\n const measuredDocumentBoxModels = new Map<string, BoxModels.BoxDisplayModel>()\n\n documentMeasurables.forEach((measurable, elementKey) => {\n const boxModel = BoxModels.measure(measurable)\n\n if (boxModel != null) measuredDocumentBoxModels.set(elementKey, boxModel)\n })\n\n if (measuredDocumentBoxModels.size > 0) {\n measuredBoxModels.set(documentKey, measuredDocumentBoxModels)\n }\n })\n\n const changedBoxModels = new Map<string, Map<string, BoxModels.BoxDisplayModel | null>>()\n\n currentBoxModels.forEach((currentDocumentBoxModels, documentKey) => {\n const changedDocumentBoxModels = new Map<string, BoxModels.BoxDisplayModel | null>()\n\n currentDocumentBoxModels.forEach((_boxModel, elementKey) => {\n if (!measuredBoxModels.get(documentKey)?.has(elementKey)) {\n changedDocumentBoxModels.set(elementKey, null)\n }\n\n if (changedDocumentBoxModels.size > 0) {\n changedBoxModels.set(documentKey, changedDocumentBoxModels)\n }\n })\n })\n\n measuredBoxModels.forEach((measuredDocumentBoxModels, documentKey) => {\n const changedDocumentBoxModels = new Map<string, BoxModels.BoxDisplayModel | null>()\n\n measuredDocumentBoxModels.forEach((measuredBoxModel, elementKey) => {\n const currentBoxModel = getBoxModel(getState(), documentKey, elementKey)\n\n if (currentBoxModel == null || !deepEqual(currentBoxModel, measuredBoxModel)) {\n changedDocumentBoxModels.set(elementKey, measuredBoxModel)\n }\n })\n\n if (changedDocumentBoxModels.size > 0) {\n changedBoxModels.set(documentKey, changedDocumentBoxModels)\n }\n })\n\n if (changedBoxModels.size > 0) dispatch(Builder.changeElementBoxModels(changedBoxModels))\n }\n}\n\nfunction startMeasuringElements(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n dispatch(measureElements())\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nfunction lockDocumentScroll(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const lastDocumentOverflow = window.document.documentElement.style.overflow\n window.document.documentElement.style.overflow = 'hidden'\n\n window.document.documentElement.addEventListener('wheel', handleWheelEvent)\n\n return () => {\n window.document.documentElement.style.overflow = lastDocumentOverflow\n window.document.documentElement.removeEventListener('wheel', handleWheelEvent)\n }\n\n function handleWheelEvent({ deltaX, deltaY }: WheelEvent) {\n dispatch(Builder.handleWheel({ deltaX, deltaY }))\n }\n }\n}\n\nfunction startHandlingPointerMoveEvent(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n window.document.documentElement.addEventListener('pointermove', handlePointerMoveEvent)\n\n return () => {\n window.document.documentElement.removeEventListener('pointermove', handlePointerMoveEvent)\n }\n\n function handlePointerMoveEvent({ clientX, clientY }: PointerEvent) {\n dispatch(Builder.handlePointerMove({ clientX, clientY }))\n }\n }\n}\n\nfunction startHandlingFocusEvents(): ThunkAction<() => void, State, unknown, Action> {\n return (_dispatch, getState) => {\n window.addEventListener('focusin', handleFocusIn)\n window.addEventListener('focusout', handleFocusOut)\n\n return () => {\n window.removeEventListener('focusin', handleFocusIn)\n window.removeEventListener('focusout', handleFocusOut)\n }\n\n function handleFocusIn(event: FocusEvent) {\n if (\n ReadOnlyState.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT\n ) {\n return\n }\n\n if (!(event.target instanceof window.HTMLElement) || !event.target.isContentEditable) {\n window.parent.focus()\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (\n ReadOnlyState.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT\n ) {\n return\n }\n\n if (\n !(event.relatedTarget instanceof window.HTMLElement) ||\n !event.relatedTarget.isContentEditable\n ) {\n window.parent.focus()\n }\n }\n }\n}\n\nfunction startMeasuringDocumentElement(): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n let lastSize: ElementSize\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n const nextSize = getElementSize(window.document.documentElement)\n\n if (!deepEqual(lastSize, nextSize)) {\n lastSize = nextSize\n\n dispatch(Builder.changeDocumentElementSize(nextSize))\n }\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nfunction elementKeysFromElementFromPoint(\n elementFromPoint: Element | null,\n): ThunkAction<{ documentKey: string; elementKey: string } | null, State, unknown, Action> {\n return (_dispatch, getState) => {\n if (elementFromPoint == null) return null\n\n const elementImperativeHandles = getElementImperativeHandlesContainingElement(\n getState(),\n elementFromPoint,\n )\n const ascendingDepthDocumentKeys = ReadOnlyState.getDocumentKeysSortedByDepth(getState())\n const descendingDepthDocumentKeys = ascendingDepthDocumentKeys.slice().reverse()\n\n let currentElement: Element | null = elementFromPoint\n let keys = null\n\n while (currentElement != null) {\n for (const documentKey of descendingDepthDocumentKeys) {\n const byElementKey = elementImperativeHandles.get(documentKey)\n\n if (byElementKey == null) continue\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n if (elementImperativeHandle.getDomNode() === currentElement) {\n return { documentKey, elementKey }\n }\n }\n }\n\n currentElement = currentElement.parentElement\n }\n\n return keys\n }\n}\n\nfunction startPollingElementFromPoint(): ThunkAction<() => void, State, unknown, Action> {\n return (dispatch, getState) => {\n let lastElementFromPoint: Element | null = null\n let animationFrameRequestId = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameRequestId)\n }\n\n function handleAnimationFrameRequest() {\n const pointer = getPointer(getState())\n const elementFromPoint =\n pointer == null ? null : document.elementFromPoint(pointer.x, pointer.y)\n\n if (elementFromPoint !== lastElementFromPoint) {\n lastElementFromPoint = elementFromPoint\n\n const keys = dispatch(elementKeysFromElementFromPoint(elementFromPoint))\n\n dispatch(Builder.elementFromPointChange(keys))\n }\n\n animationFrameRequestId = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nfunction registerBuilderComponents(): ThunkAction<() => void, State, unknown, Action> {\n return (dispatch, getState) => {\n const state = getState()\n const componentsMeta = ReadOnlyState.getComponentsMeta(state)\n\n componentsMeta.forEach((meta, type) => {\n const descriptors = ReadOnlyState.getComponentPropControllerDescriptors(state, type)\n if (descriptors != null) {\n const [serializedControls, transferables] = serializeControls(descriptors)\n dispatch(\n Builder.registerBuilderComponent({ type, meta, serializedControls }, transferables),\n )\n }\n })\n\n return () => {\n componentsMeta.forEach((_, type) => {\n dispatch(Builder.unregisterBuilderComponent({ type }))\n })\n }\n }\n}\n\nfunction registerBuilderDocuments(): ThunkAction<() => void, State, unknown, Action> {\n return (dispatch, getState) => {\n const documents = getDocuments(getState())\n\n documents.forEach(document => {\n dispatch(Builder.registerBuilderDocument(document))\n })\n\n return () => {\n documents.forEach((_document, documentKey) => {\n dispatch(Builder.unregisterBuilderDocument(documentKey))\n })\n }\n }\n}\n\nexport function initializeBuilderConnection(\n builderProxy: BuilderAPIProxy,\n): ThunkAction<() => void, State, unknown, Action> {\n return (dispatch, getState) => {\n const unregisterBuilderDocuments = dispatch(registerBuilderDocuments())\n const stopMeasuringElements = dispatch(startMeasuringElements())\n const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement())\n const stopHandlingFocusEvent = dispatch(startHandlingFocusEvents())\n const unlockDocumentScroll = dispatch(lockDocumentScroll())\n const stopHandlingPointerMoveEvent = dispatch(startHandlingPointerMoveEvent())\n const stopPollingElementFromPoint = dispatch(startPollingElementFromPoint())\n const unregisterBuilderComponents = dispatch(registerBuilderComponents())\n\n const breakpoints = ReadOnlyState.getBreakpoints(getState())\n dispatch(Builder.setBreakpoints(breakpoints))\n\n const locale = ReadOnlyState.getLocale(getState())\n if (locale != null) dispatch(Builder.setLocale(new Intl.Locale(locale)))\n\n dispatch(ReadOnly.setIsInBuilder(true))\n builderProxy.dispatchBuffered()\n\n return () => {\n unregisterBuilderDocuments()\n stopMeasuringElements()\n stopMeasuringDocumentElement()\n stopHandlingFocusEvent()\n unlockDocumentScroll()\n stopHandlingPointerMoveEvent()\n stopPollingElementFromPoint()\n unregisterBuilderComponents()\n dispatch(ReadOnly.setIsInBuilder(false))\n }\n }\n}\n"],"mappings":"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","names":["document"]}
@@ -0,0 +1,16 @@
1
+ import { updateElementTreeMiddleware } from "./update-element-tree";
2
+ import { measureBoxModelsMiddleware } from "./measure-box-models";
3
+ import { builderAPIMiddleware } from "./builder-api";
4
+ import { propControllerHandlesMiddleware } from "./prop-controller-handles";
5
+ function createReadWriteMiddleware({ builderProxy }) {
6
+ return [
7
+ updateElementTreeMiddleware(),
8
+ measureBoxModelsMiddleware(),
9
+ builderAPIMiddleware(builderProxy),
10
+ propControllerHandlesMiddleware()
11
+ ];
12
+ }
13
+ export {
14
+ createReadWriteMiddleware
15
+ };
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/state/middleware/read-write/index.ts"],"sourcesContent":["import { type BuilderAPIProxy } from '../../builder-api/proxy'\n\nimport { updateElementTreeMiddleware } from './update-element-tree'\nimport { measureBoxModelsMiddleware } from './measure-box-models'\nimport { builderAPIMiddleware } from './builder-api'\nimport { propControllerHandlesMiddleware } from './prop-controller-handles'\n\nexport function createReadWriteMiddleware({ builderProxy }: { builderProxy: BuilderAPIProxy }) {\n return [\n updateElementTreeMiddleware(),\n measureBoxModelsMiddleware(),\n builderAPIMiddleware(builderProxy),\n propControllerHandlesMiddleware(),\n ]\n}\n"],"mappings":"AAEA,SAAS,mCAAmC;AAC5C,SAAS,kCAAkC;AAC3C,SAAS,4BAA4B;AACrC,SAAS,uCAAuC;AAEzC,SAAS,0BAA0B,EAAE,aAAa,GAAsC;AAC7F,SAAO;AAAA,IACL,4BAA4B;AAAA,IAC5B,2BAA2B;AAAA,IAC3B,qBAAqB,YAAY;AAAA,IACjC,gCAAgC;AAAA,EAClC;AACF;","names":[]}
@@ -0,0 +1,37 @@
1
+ import * as BoxModels from "../../modules/read-write/box-models";
2
+ import { ReadOnlyActionTypes } from "../../actions/internal/read-only-actions";
3
+ import * as ReadWriteActions from "../../actions/internal/read-write-actions";
4
+ import { actionMiddleware } from "../../toolkit";
5
+ function measureBoxModelsMiddleware() {
6
+ return actionMiddleware(({ dispatch }) => (next) => {
7
+ return (action) => {
8
+ switch (action.type) {
9
+ case ReadOnlyActionTypes.REGISTER_COMPONENT_HANDLE: {
10
+ if (BoxModels.isMeasurable(action.payload.componentHandle)) {
11
+ dispatch(
12
+ ReadWriteActions.registerMeasurable(
13
+ action.payload.documentKey,
14
+ action.payload.elementKey,
15
+ action.payload.componentHandle
16
+ )
17
+ );
18
+ }
19
+ break;
20
+ }
21
+ case ReadOnlyActionTypes.UNREGISTER_COMPONENT_HANDLE:
22
+ dispatch(
23
+ ReadWriteActions.unregisterMeasurable(
24
+ action.payload.documentKey,
25
+ action.payload.elementKey
26
+ )
27
+ );
28
+ break;
29
+ }
30
+ return next(action);
31
+ };
32
+ });
33
+ }
34
+ export {
35
+ measureBoxModelsMiddleware
36
+ };
37
+ //# sourceMappingURL=measure-box-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/state/middleware/read-write/measure-box-models.ts"],"sourcesContent":["import { type Middleware } from '@reduxjs/toolkit'\n\nimport * as BoxModels from '../../modules/read-write/box-models'\nimport { type Action } from '../../actions'\n\nimport { ReadOnlyActionTypes } from '../../actions/internal/read-only-actions'\nimport * as ReadWriteActions from '../../actions/internal/read-write-actions'\n\nimport { actionMiddleware } from '../../toolkit'\n\nimport { type State, type Dispatch } from '../../read-write-state'\n\nexport function measureBoxModelsMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return actionMiddleware(({ dispatch }) => next => {\n return (action: Action) => {\n switch (action.type) {\n case ReadOnlyActionTypes.REGISTER_COMPONENT_HANDLE: {\n if (BoxModels.isMeasurable(action.payload.componentHandle)) {\n dispatch(\n ReadWriteActions.registerMeasurable(\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n }\n\n break\n }\n\n case ReadOnlyActionTypes.UNREGISTER_COMPONENT_HANDLE:\n dispatch(\n ReadWriteActions.unregisterMeasurable(\n action.payload.documentKey,\n action.payload.elementKey,\n ),\n )\n break\n }\n\n return next(action)\n }\n })\n}\n"],"mappings":"AAEA,YAAY,eAAe;AAG3B,SAAS,2BAA2B;AACpC,YAAY,sBAAsB;AAElC,SAAS,wBAAwB;AAI1B,SAAS,6BAAoE;AAClF,SAAO,iBAAiB,CAAC,EAAE,SAAS,MAAM,UAAQ;AAChD,WAAO,CAAC,WAAmB;AACzB,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK,oBAAoB,2BAA2B;AAClD,cAAI,UAAU,aAAa,OAAO,QAAQ,eAAe,GAAG;AAC1D;AAAA,cACE,iBAAiB;AAAA,gBACf,OAAO,QAAQ;AAAA,gBACf,OAAO,QAAQ;AAAA,gBACf,OAAO,QAAQ;AAAA,cACjB;AAAA,YACF;AAAA,UACF;AAEA;AAAA,QACF;AAAA,QAEA,KAAK,oBAAoB;AACvB;AAAA,YACE,iBAAiB;AAAA,cACf,OAAO,QAAQ;AAAA,cACf,OAAO,QAAQ;AAAA,YACjB;AAAA,UACF;AACA;AAAA,MACJ;AAEA,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA,EACF,CAAC;AACH;","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/read-write/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,35 @@
1
+ import { HostActionTypes } from "../../host-api";
2
+ import { changeElementTree } from "../../actions/internal/read-write-actions";
3
+ import { actionMiddleware } from "../../toolkit";
4
+ import { getDocument } from "../../read-write-state";
5
+ import { getPropControllerDescriptors } from "../../read-only-state";
6
+ function updateElementTreeMiddleware() {
7
+ return actionMiddleware(({ dispatch, getState }) => (next) => {
8
+ return (action) => {
9
+ switch (action.type) {
10
+ case HostActionTypes.CHANGE_DOCUMENT: {
11
+ const { documentKey, operation } = action.payload;
12
+ const oldDocument = getDocument(getState(), documentKey);
13
+ const result = next(action);
14
+ const newDocument = getDocument(getState(), documentKey);
15
+ if (oldDocument != null && newDocument != null && newDocument !== oldDocument) {
16
+ dispatch(
17
+ changeElementTree({
18
+ oldDocument,
19
+ newDocument,
20
+ descriptors: getPropControllerDescriptors(getState()),
21
+ operation
22
+ })
23
+ );
24
+ }
25
+ return result;
26
+ }
27
+ }
28
+ return next(action);
29
+ };
30
+ });
31
+ }
32
+ export {
33
+ updateElementTreeMiddleware
34
+ };
35
+ //# sourceMappingURL=update-element-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/state/middleware/read-write/update-element-tree.ts"],"sourcesContent":["import { type Middleware } from '@reduxjs/toolkit'\n\nimport { HostActionTypes } from '../../host-api'\nimport { changeElementTree } from '../../actions/internal/read-write-actions'\n\nimport { actionMiddleware } from '../../toolkit'\n\nimport { type Dispatch, type State, getDocument } from '../../read-write-state'\nimport { getPropControllerDescriptors } from '../../read-only-state'\n\nexport function updateElementTreeMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return actionMiddleware(({ dispatch, getState }) => next => {\n return action => {\n switch (action.type) {\n case HostActionTypes.CHANGE_DOCUMENT: {\n const { documentKey, operation } = action.payload\n\n const oldDocument = getDocument(getState(), documentKey)\n const result = next(action)\n const newDocument = getDocument(getState(), documentKey)\n\n if (oldDocument != null && newDocument != null && newDocument !== oldDocument) {\n dispatch(\n changeElementTree({\n oldDocument,\n newDocument,\n descriptors: getPropControllerDescriptors(getState()),\n operation,\n }),\n )\n }\n\n return result\n }\n }\n\n return next(action)\n }\n })\n}\n"],"mappings":"AAEA,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAElC,SAAS,wBAAwB;AAEjC,SAAoC,mBAAmB;AACvD,SAAS,oCAAoC;AAEtC,SAAS,8BAAqE;AACnF,SAAO,iBAAiB,CAAC,EAAE,UAAU,SAAS,MAAM,UAAQ;AAC1D,WAAO,YAAU;AACf,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK,gBAAgB,iBAAiB;AACpC,gBAAM,EAAE,aAAa,UAAU,IAAI,OAAO;AAE1C,gBAAM,cAAc,YAAY,SAAS,GAAG,WAAW;AACvD,gBAAM,SAAS,KAAK,MAAM;AAC1B,gBAAM,cAAc,YAAY,SAAS,GAAG,WAAW;AAEvD,cAAI,eAAe,QAAQ,eAAe,QAAQ,gBAAgB,aAAa;AAC7E;AAAA,cACE,kBAAkB;AAAA,gBAChB;AAAA,gBACA;AAAA,gBACA,aAAa,6BAA6B,SAAS,CAAC;AAAA,gBACpD;AAAA,cACF,CAAC;AAAA,YACH;AAAA,UACF;AAEA,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,48 @@
1
+ import { updateClientBreakpoint } from "../actions/internal/read-only-actions";
2
+ import { getDeviceQueries } from "../modules/breakpoints";
3
+ import { getBreakpoints } from "../read-only-state";
4
+ function breakpointWatchMixin({
5
+ dispatch,
6
+ getState,
7
+ subscribe: storeSubscribe
8
+ }) {
9
+ let mediaQueryUnsubscribes = [];
10
+ let storeUnsubscribe = null;
11
+ let watchedBreakpoints = [];
12
+ const startWatch = (breakpoints) => {
13
+ mediaQueryUnsubscribes.forEach((fn) => fn());
14
+ const updateState = () => dispatch(updateClientBreakpoint());
15
+ mediaQueryUnsubscribes = getDeviceQueries(breakpoints).map((q) => {
16
+ const mediaQueryList = window.matchMedia(q.query);
17
+ mediaQueryList.addEventListener("change", updateState);
18
+ return () => mediaQueryList.removeEventListener("change", updateState);
19
+ });
20
+ watchedBreakpoints = breakpoints;
21
+ updateState();
22
+ };
23
+ return {
24
+ startBreakpointWatch: () => {
25
+ if (storeUnsubscribe !== null) {
26
+ console.warn("Unexpected `BreakpointWatch.startBreakpointWatch` call, already watching");
27
+ return;
28
+ }
29
+ startWatch(getBreakpoints(getState()));
30
+ storeUnsubscribe = storeSubscribe(() => {
31
+ const breakpoints = getBreakpoints(getState());
32
+ if (breakpoints !== watchedBreakpoints) {
33
+ startWatch(breakpoints);
34
+ }
35
+ });
36
+ },
37
+ stopBreakpointWatch: () => {
38
+ mediaQueryUnsubscribes.forEach((fn) => fn());
39
+ mediaQueryUnsubscribes = [];
40
+ storeUnsubscribe?.();
41
+ storeUnsubscribe = null;
42
+ }
43
+ };
44
+ }
45
+ export {
46
+ breakpointWatchMixin
47
+ };
48
+ //# sourceMappingURL=breakpoint-watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/mixins/breakpoint-watch.ts"],"sourcesContent":["import { updateClientBreakpoint } from '../actions/internal/read-only-actions'\nimport { Breakpoints, getDeviceQueries } from '../modules/breakpoints'\n\nimport { type State, type Dispatch } from '../unified-state'\nimport { getBreakpoints } from '../read-only-state'\n\nexport interface BreakpointWatch {\n startBreakpointWatch(): void\n stopBreakpointWatch(): void\n}\n\nexport function breakpointWatchMixin({\n dispatch,\n getState,\n subscribe: storeSubscribe,\n}: {\n dispatch: Dispatch\n getState: () => State\n subscribe: (listener: VoidFunction) => VoidFunction\n}): BreakpointWatch {\n let mediaQueryUnsubscribes: VoidFunction[] = []\n let storeUnsubscribe: VoidFunction | null = null\n let watchedBreakpoints: Breakpoints = []\n\n // client-side breakpoint watch\n const startWatch = (breakpoints: Breakpoints) => {\n mediaQueryUnsubscribes.forEach(fn => fn())\n\n const updateState = () => dispatch(updateClientBreakpoint())\n\n mediaQueryUnsubscribes = getDeviceQueries(breakpoints).map(q => {\n const mediaQueryList = window.matchMedia(q.query)\n mediaQueryList.addEventListener('change', updateState)\n return () => mediaQueryList.removeEventListener('change', updateState)\n })\n\n watchedBreakpoints = breakpoints\n\n // reconcile the store with the current client breakpoint after subscribing;\n // this heals any stale breakpoint state from changes that happened\n // after the store was created or updated but before the listeners were attached\n updateState()\n }\n\n return {\n startBreakpointWatch: () => {\n if (storeUnsubscribe !== null) {\n console.warn('Unexpected `BreakpointWatch.startBreakpointWatch` call, already watching')\n return\n }\n\n startWatch(getBreakpoints(getState()))\n\n storeUnsubscribe = storeSubscribe(() => {\n const breakpoints = getBreakpoints(getState())\n if (breakpoints !== watchedBreakpoints) {\n startWatch(breakpoints)\n }\n })\n },\n\n stopBreakpointWatch: () => {\n mediaQueryUnsubscribes.forEach(fn => fn())\n mediaQueryUnsubscribes = []\n\n storeUnsubscribe?.()\n storeUnsubscribe = null\n },\n }\n}\n"],"mappings":"AAAA,SAAS,8BAA8B;AACvC,SAAsB,wBAAwB;AAG9C,SAAS,sBAAsB;AAOxB,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA,WAAW;AACb,GAIoB;AAClB,MAAI,yBAAyC,CAAC;AAC9C,MAAI,mBAAwC;AAC5C,MAAI,qBAAkC,CAAC;AAGvC,QAAM,aAAa,CAAC,gBAA6B;AAC/C,2BAAuB,QAAQ,QAAM,GAAG,CAAC;AAEzC,UAAM,cAAc,MAAM,SAAS,uBAAuB,CAAC;AAE3D,6BAAyB,iBAAiB,WAAW,EAAE,IAAI,OAAK;AAC9D,YAAM,iBAAiB,OAAO,WAAW,EAAE,KAAK;AAChD,qBAAe,iBAAiB,UAAU,WAAW;AACrD,aAAO,MAAM,eAAe,oBAAoB,UAAU,WAAW;AAAA,IACvE,CAAC;AAED,yBAAqB;AAKrB,gBAAY;AAAA,EACd;AAEA,SAAO;AAAA,IACL,sBAAsB,MAAM;AAC1B,UAAI,qBAAqB,MAAM;AAC7B,gBAAQ,KAAK,0EAA0E;AACvF;AAAA,MACF;AAEA,iBAAW,eAAe,SAAS,CAAC,CAAC;AAErC,yBAAmB,eAAe,MAAM;AACtC,cAAM,cAAc,eAAe,SAAS,CAAC;AAC7C,YAAI,gBAAgB,oBAAoB;AACtC,qBAAW,WAAW;AAAA,QACxB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEA,qBAAqB,MAAM;AACzB,6BAAuB,QAAQ,QAAM,GAAG,CAAC;AACzC,+BAAyB,CAAC;AAE1B,yBAAmB;AACnB,yBAAmB;AAAA,IACrB;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,24 @@
1
+ import { isKnownAction } from "../actions";
2
+ import { ReadOnlyActionTypes } from "../actions/internal/read-only-actions";
3
+ function getInitialState(isReadOnly = true) {
4
+ return isReadOnly;
5
+ }
6
+ function getIsReadOnly(state) {
7
+ return state;
8
+ }
9
+ function reducer(state = getInitialState(), action) {
10
+ if (!isKnownAction(action))
11
+ return state;
12
+ switch (action.type) {
13
+ case ReadOnlyActionTypes.SET_IS_READ_ONLY:
14
+ return action.payload;
15
+ default:
16
+ return state;
17
+ }
18
+ }
19
+ export {
20
+ getInitialState,
21
+ getIsReadOnly,
22
+ reducer
23
+ };
24
+ //# sourceMappingURL=is-read-only.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/modules/is-read-only.ts"],"sourcesContent":["import { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-actions'\n\nexport type State = boolean\n\nexport function getInitialState(isReadOnly = true): State {\n return isReadOnly\n}\n\nexport function getIsReadOnly(state: State): boolean {\n return state\n}\n\nexport function reducer(state = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadOnlyActionTypes.SET_IS_READ_ONLY:\n return action.payload\n\n default:\n return state\n }\n}\n"],"mappings":"AAAA,SAA0C,qBAAqB;AAC/D,SAAS,2BAA2B;AAI7B,SAAS,gBAAgB,aAAa,MAAa;AACxD,SAAO;AACT;AAEO,SAAS,cAAc,OAAuB;AACnD,SAAO;AACT;AAEO,SAAS,QAAQ,QAAQ,gBAAgB,GAAG,QAAuC;AACxF,MAAI,CAAC,cAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,oBAAoB;AACvB,aAAO,OAAO;AAAA,IAEhB;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -0,0 +1,24 @@
1
+ import { isKnownAction } from "../actions";
2
+ import { ReadOnlyActionTypes } from "../actions/internal/read-only-actions";
3
+ function getInitialState(locale = null) {
4
+ return locale;
5
+ }
6
+ function getLocale(state) {
7
+ return state;
8
+ }
9
+ function reducer(state = getInitialState(), action) {
10
+ if (!isKnownAction(action))
11
+ return state;
12
+ switch (action.type) {
13
+ case ReadOnlyActionTypes.SET_LOCALE:
14
+ return action.payload.locale;
15
+ default:
16
+ return state;
17
+ }
18
+ }
19
+ export {
20
+ getInitialState,
21
+ getLocale,
22
+ reducer
23
+ };
24
+ //# sourceMappingURL=locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/modules/locale.ts"],"sourcesContent":["import { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-actions'\n\nexport type State = string | null\n\nexport function getInitialState(locale: string | null = null): State {\n return locale\n}\n\nexport function getLocale(state: State): string | null {\n return state\n}\n\nexport function reducer(state = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadOnlyActionTypes.SET_LOCALE:\n return action.payload.locale\n\n default:\n return state\n }\n}\n"],"mappings":"AAAA,SAA0C,qBAAqB;AAC/D,SAAS,2BAA2B;AAI7B,SAAS,gBAAgB,SAAwB,MAAa;AACnE,SAAO;AACT;AAEO,SAAS,UAAU,OAA6B;AACrD,SAAO;AACT;AAEO,SAAS,QAAQ,QAAQ,gBAAgB,GAAG,QAAuC;AACxF,MAAI,CAAC,cAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,oBAAoB;AACvB,aAAO,OAAO,QAAQ;AAAA,IAExB;AACE,aAAO;AAAA,EACX;AACF;","names":[]}