@makeswift/runtime 0.0.0-e0c0445 → 0.0.0-e76fc43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/box-model.js +1 -0
  2. package/components.js +1 -0
  3. package/dist/actions.cjs.js +73 -16
  4. package/dist/actions.cjs.js.map +1 -1
  5. package/dist/actions.es.js +67 -16
  6. package/dist/actions.es.js.map +1 -1
  7. package/dist/box-models.cjs.js +25 -15
  8. package/dist/box-models.cjs.js.map +1 -1
  9. package/dist/box-models.es.js +25 -15
  10. package/dist/box-models.es.js.map +1 -1
  11. package/dist/components.cjs.js +2012 -333
  12. package/dist/components.cjs.js.map +1 -1
  13. package/dist/components.es.js +1888 -219
  14. package/dist/components.es.js.map +1 -1
  15. package/dist/deepEqual.cjs.js +40 -0
  16. package/dist/deepEqual.cjs.js.map +1 -0
  17. package/dist/deepEqual.es.js +39 -0
  18. package/dist/deepEqual.es.js.map +1 -0
  19. package/dist/descriptors.cjs.js.map +1 -1
  20. package/dist/descriptors.es.js.map +1 -1
  21. package/dist/immutable.es.cjs.js +4459 -0
  22. package/dist/immutable.es.cjs.js.map +1 -0
  23. package/dist/immutable.es.es.js +4450 -0
  24. package/dist/immutable.es.es.js.map +1 -0
  25. package/dist/instances.cjs.js +89 -0
  26. package/dist/instances.cjs.js.map +1 -0
  27. package/dist/instances.es.js +87 -0
  28. package/dist/instances.es.js.map +1 -0
  29. package/dist/main.cjs.js +1 -0
  30. package/dist/main.cjs.js.map +1 -1
  31. package/dist/main.es.js +1 -1
  32. package/dist/prop-controllers.cjs.js +2 -0
  33. package/dist/prop-controllers.cjs.js.map +1 -1
  34. package/dist/prop-controllers.es.js +1 -0
  35. package/dist/prop-controllers.es.js.map +1 -1
  36. package/dist/react-builder-preview.cjs.js +172 -33
  37. package/dist/react-builder-preview.cjs.js.map +1 -1
  38. package/dist/react-builder-preview.es.js +180 -41
  39. package/dist/react-builder-preview.es.js.map +1 -1
  40. package/dist/react.cjs2.js +50 -14
  41. package/dist/react.cjs2.js.map +1 -1
  42. package/dist/react.es2.js +52 -17
  43. package/dist/react.es2.js.map +1 -1
  44. package/dist/shallowEqual.cjs.js +24 -0
  45. package/dist/shallowEqual.cjs.js.map +1 -0
  46. package/dist/shallowEqual.es.js +23 -0
  47. package/dist/shallowEqual.es.js.map +1 -0
  48. package/dist/types/components/builtin/Text/Text.d.ts +16 -0
  49. package/dist/types/components/builtin/Text/Text.d.ts.map +1 -0
  50. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +24 -0
  51. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -0
  52. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Link/index.d.ts +9 -0
  53. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Link/index.d.ts.map +1 -0
  54. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +25 -0
  55. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
  56. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts +13 -0
  57. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +1 -0
  58. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts +5 -0
  59. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -0
  60. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +3 -0
  61. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
  62. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +3 -0
  63. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
  64. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts +3 -0
  65. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
  66. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts +3 -0
  67. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +1 -0
  68. package/dist/types/components/builtin/Text/hooks/useRichText.d.ts +1 -0
  69. package/dist/types/components/builtin/Text/hooks/useRichText.d.ts.map +1 -0
  70. package/dist/types/components/builtin/Text/index.d.ts +2 -0
  71. package/dist/types/components/builtin/Text/index.d.ts.map +1 -0
  72. package/dist/types/components/builtin/Text/prop-controllers.d.ts +286 -0
  73. package/dist/types/components/builtin/Text/prop-controllers.d.ts.map +1 -0
  74. package/dist/types/components/builtin/index.d.ts +1 -0
  75. package/dist/types/components/builtin/index.d.ts.map +1 -1
  76. package/dist/types/components/hooks/useRichText.d.ts +18 -0
  77. package/dist/types/components/hooks/useRichText.d.ts.map +1 -0
  78. package/dist/types/components/hooks/useTypography.d.ts +24 -0
  79. package/dist/types/components/hooks/useTypography.d.ts.map +1 -0
  80. package/dist/types/components/index.d.ts +1 -0
  81. package/dist/types/components/index.d.ts.map +1 -1
  82. package/dist/types/components/shared/RichTextEditor/components/Block/index.d.ts +24 -0
  83. package/dist/types/components/shared/RichTextEditor/components/Block/index.d.ts.map +1 -0
  84. package/dist/types/components/shared/RichTextEditor/components/Link/index.d.ts +9 -0
  85. package/dist/types/components/shared/RichTextEditor/components/Link/index.d.ts.map +1 -0
  86. package/dist/types/components/shared/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +23 -0
  87. package/dist/types/components/shared/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
  88. package/dist/types/components/shared/RichTextEditor/components/Mark/index.d.ts +13 -0
  89. package/dist/types/components/shared/RichTextEditor/components/Mark/index.d.ts.map +1 -0
  90. package/dist/types/components/shared/RichTextEditor/index.d.ts +5 -0
  91. package/dist/types/components/shared/RichTextEditor/index.d.ts.map +1 -0
  92. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +3 -0
  93. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
  94. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +3 -0
  95. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
  96. package/dist/types/components/shared/RichTextEditor/plugins/Inlines.d.ts +3 -0
  97. package/dist/types/components/shared/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
  98. package/dist/types/components/shared/RichTextEditor/plugins/Link.d.ts +3 -0
  99. package/dist/types/components/shared/RichTextEditor/plugins/Link.d.ts.map +1 -0
  100. package/dist/types/components/utils/contants.d.ts +5 -0
  101. package/dist/types/components/utils/contants.d.ts.map +1 -0
  102. package/dist/types/components/utils/devices.d.ts +1 -0
  103. package/dist/types/components/utils/devices.d.ts.map +1 -1
  104. package/dist/types/components/utils/intersection.d.ts +4 -0
  105. package/dist/types/components/utils/intersection.d.ts.map +1 -0
  106. package/dist/types/components/utils/keys.d.ts +5 -0
  107. package/dist/types/components/utils/keys.d.ts.map +1 -0
  108. package/dist/types/components/utils/queries.d.ts +6 -4
  109. package/dist/types/components/utils/queries.d.ts.map +1 -1
  110. package/dist/types/index.d.ts +1 -1
  111. package/dist/types/index.d.ts.map +1 -1
  112. package/dist/types/prop-controllers/descriptors.d.ts +1 -1
  113. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  114. package/dist/types/prop-controllers/index.d.ts +2 -0
  115. package/dist/types/prop-controllers/index.d.ts.map +1 -1
  116. package/dist/types/prop-controllers/instances.d.ts +63 -4
  117. package/dist/types/prop-controllers/instances.d.ts.map +1 -1
  118. package/dist/types/runtimes/react.d.ts.map +1 -1
  119. package/dist/types/state/actions.d.ts +88 -13
  120. package/dist/types/state/actions.d.ts.map +1 -1
  121. package/dist/types/state/modules/box-models.d.ts +5 -5
  122. package/dist/types/state/modules/box-models.d.ts.map +1 -1
  123. package/dist/types/state/modules/prop-controller-handles.d.ts +4 -8
  124. package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -1
  125. package/dist/types/state/react-builder-preview.d.ts +2 -0
  126. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  127. package/dist/types/state/react-page.d.ts +1 -0
  128. package/dist/types/state/react-page.d.ts.map +1 -1
  129. package/dist/types/utils/coalesce.d.ts +3 -0
  130. package/dist/types/utils/coalesce.d.ts.map +1 -0
  131. package/dist/types/utils/constants.d.ts +6 -0
  132. package/dist/types/utils/constants.d.ts.map +1 -0
  133. package/dist/types/utils/intersection.d.ts +4 -0
  134. package/dist/types/utils/intersection.d.ts.map +1 -0
  135. package/dist/types/utils/keys.d.ts +5 -0
  136. package/dist/types/utils/keys.d.ts.map +1 -0
  137. package/dist/types/utils/shallowMerge.d.ts +2 -0
  138. package/dist/types/utils/shallowMerge.d.ts.map +1 -0
  139. package/package.json +35 -4
  140. package/prop-controllers.js +1 -0
  141. package/react.js +1 -0
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => {
5
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
+ return value;
7
+ };
8
+ var descriptors = require("./descriptors.cjs.js");
9
+ const BuilderEditMode = {
10
+ BUILD: "build",
11
+ CONTENT: "content"
12
+ };
13
+ const RichTextPropControllerMessageType = {
14
+ CHANGE_BUILDER_EDIT_MODE: "CHANGE_BUILDER_EDIT_MODE",
15
+ INITIALIZE_EDITOR: "INITIALIZE_EDITOR",
16
+ CHANGE_EDITOR_VALUE: "CHANGE_EDITOR_VALUE",
17
+ FOCUS: "FOCUS",
18
+ BLUR: "BLUR",
19
+ UNDO: "UNDO",
20
+ REDO: "REDO"
21
+ };
22
+ class PropController {
23
+ constructor(send) {
24
+ __publicField(this, "send");
25
+ this.send = send;
26
+ }
27
+ }
28
+ class DefaultPropController extends PropController {
29
+ recv(_message) {
30
+ }
31
+ }
32
+ class RichTextPropController extends PropController {
33
+ constructor() {
34
+ super(...arguments);
35
+ __publicField(this, "editor", null);
36
+ }
37
+ recv(message) {
38
+ var _a, _b;
39
+ switch (message.type) {
40
+ case RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE: {
41
+ switch (message.editMode) {
42
+ case BuilderEditMode.BUILD:
43
+ (_a = this.editor) == null ? void 0 : _a.deselect().blur();
44
+ break;
45
+ case BuilderEditMode.CONTENT:
46
+ (_b = this.editor) == null ? void 0 : _b.focus().moveToRangeOfDocument();
47
+ break;
48
+ }
49
+ break;
50
+ }
51
+ }
52
+ }
53
+ setSlateEditor(editor) {
54
+ this.editor = editor;
55
+ this.send({
56
+ type: RichTextPropControllerMessageType.INITIALIZE_EDITOR,
57
+ value: editor.value.toJSON({ preserveSelection: false })
58
+ });
59
+ }
60
+ onChange(change) {
61
+ this.send({
62
+ type: RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE,
63
+ value: change.value.toJSON({ preserveSelection: true })
64
+ });
65
+ }
66
+ focus() {
67
+ this.send({ type: RichTextPropControllerMessageType.FOCUS });
68
+ }
69
+ blur() {
70
+ this.send({ type: RichTextPropControllerMessageType.BLUR });
71
+ }
72
+ undo() {
73
+ this.send({ type: RichTextPropControllerMessageType.UNDO });
74
+ }
75
+ redo() {
76
+ this.send({ type: RichTextPropControllerMessageType.REDO });
77
+ }
78
+ }
79
+ function createPropController(descriptor, send) {
80
+ switch (descriptor.type) {
81
+ case descriptors.Types.RichText:
82
+ return new RichTextPropController(send);
83
+ default:
84
+ return new DefaultPropController(send);
85
+ }
86
+ }
87
+ exports.RichTextPropControllerMessageType = RichTextPropControllerMessageType;
88
+ exports.createPropController = createPropController;
89
+ //# sourceMappingURL=instances.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instances.cjs.js","sources":["../src/utils/constants.ts","../src/prop-controllers/instances.ts"],"sourcesContent":["export const BuilderEditMode = {\n BUILD: 'build',\n CONTENT: 'content',\n} as const\n\nexport type BuilderEditMode = typeof BuilderEditMode[keyof typeof BuilderEditMode]\n","import { Editor } from 'slate-react'\nimport { ValueJSON } from 'slate'\nimport { OnChangeParam } from 'slate-react'\nimport { Descriptor, RichTextDescriptor, Types } from './descriptors'\nimport { BuilderEditMode } from '../utils/constants'\n\nexport const RichTextPropControllerMessageType = {\n CHANGE_BUILDER_EDIT_MODE: 'CHANGE_BUILDER_EDIT_MODE',\n INITIALIZE_EDITOR: 'INITIALIZE_EDITOR',\n CHANGE_EDITOR_VALUE: 'CHANGE_EDITOR_VALUE',\n FOCUS: 'FOCUS',\n BLUR: 'BLUR',\n UNDO: 'UNDO',\n REDO: 'REDO',\n} as const\n\ntype ChangeBuilderEditModeRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE\n editMode: BuilderEditMode\n}\n\ntype InitializeEditorRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.INITIALIZE_EDITOR\n value: ValueJSON\n}\n\ntype ChangeEditorValueRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE\n value: ValueJSON\n}\n\ntype FocusRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.FOCUS }\n\ntype BlurRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.BLUR }\n\ntype UndoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.UNDO }\n\ntype RedoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.REDO }\n\nexport type RichTextPropControllerMessage =\n | ChangeBuilderEditModeRichTextPropControllerMessage\n | InitializeEditorRichTextPropControllerMessage\n | ChangeEditorValueRichTextPropControllerMessage\n | FocusRichTextPropControllerMessage\n | BlurRichTextPropControllerMessage\n | UndoRichTextPropControllerMessage\n | RedoRichTextPropControllerMessage\n\nexport type PropControllerMessage = RichTextPropControllerMessage\n\ntype Send<T = PropControllerMessage> = (message: T) => void\n\nexport abstract class PropController<T = PropControllerMessage> {\n protected send: Send<T>\n\n constructor(send: Send<T>) {\n this.send = send\n }\n\n abstract recv(message: T): void\n}\n\nclass DefaultPropController extends PropController {\n recv(_message: PropControllerMessage): void {\n // Do nothing.\n }\n}\n\nclass RichTextPropController extends PropController<RichTextPropControllerMessage> {\n private editor: Editor | null = null\n\n recv(message: RichTextPropControllerMessage): void {\n switch (message.type) {\n case RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE: {\n switch (message.editMode) {\n case BuilderEditMode.BUILD:\n this.editor?.deselect().blur()\n break\n\n case BuilderEditMode.CONTENT:\n this.editor?.focus().moveToRangeOfDocument()\n break\n }\n\n break\n }\n }\n }\n\n setSlateEditor(editor: Editor) {\n this.editor = editor\n\n this.send({\n type: RichTextPropControllerMessageType.INITIALIZE_EDITOR,\n value: editor.value.toJSON({ preserveSelection: false }),\n })\n }\n\n onChange(change: OnChangeParam) {\n this.send({\n type: RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE,\n value: change.value.toJSON({ preserveSelection: true }),\n })\n }\n\n focus() {\n this.send({ type: RichTextPropControllerMessageType.FOCUS })\n }\n\n blur() {\n this.send({ type: RichTextPropControllerMessageType.BLUR })\n }\n\n undo() {\n this.send({ type: RichTextPropControllerMessageType.UNDO })\n }\n\n redo() {\n this.send({ type: RichTextPropControllerMessageType.REDO })\n }\n}\n\ntype DescriptorPropController<T extends Descriptor> = T extends { type: typeof Types.RichText }\n ? RichTextPropController\n : DefaultPropController\n\nexport type DescriptorsPropControllers<T extends Record<string, Descriptor>> = {\n [K in keyof T]: undefined extends T[K]\n ? DescriptorPropController<Exclude<T[K], undefined>>\n : DescriptorPropController<T[K]>\n}\n\nexport function createPropController(\n descriptor: RichTextDescriptor,\n send: Send<RichTextPropControllerMessage>,\n): RichTextPropController\nexport function createPropController(descriptor: Descriptor, send: Send): PropController\nexport function createPropController(descriptor: Descriptor, send: Send): PropController {\n switch (descriptor.type) {\n case Types.RichText:\n return new RichTextPropController(send)\n\n default:\n return new DefaultPropController(send)\n }\n}\n"],"names":["Types"],"mappings":";;;;;;;;MAAa,kBAAkB;AAAA,EAC7B,OAAO;AAAA,EACP,SAAS;AAAA;MCIE,oCAAoC;AAAA,EAC/C,0BAA0B;AAAA,EAC1B,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA;qBAuCwD;AAAA,EAG9D,YAAY,MAAe;AAFjB;SAGH,OAAO;AAAA;AAAA;AAMhB,oCAAoC,eAAe;AAAA,EACjD,KAAK,UAAuC;AAAA;AAAA;AAK9C,qCAAqC,eAA8C;AAAA,EAAnF;AAAA;AACU,kCAAwB;AAAA;AAAA,EAEhC,KAAK,SAA8C;;YACzC,QAAQ;AAAA,WACT,kCAAkC,0BAA0B;gBACvD,QAAQ;AAAA,eACT,gBAAgB;uBACd,8BAAQ,WAAW;;eAGrB,gBAAgB;uBACd,8BAAQ,QAAQ;;;;;;;EAS/B,eAAe,QAAgB;SACxB,SAAS;SAET,KAAK;AAAA,MACR,MAAM,kCAAkC;AAAA,MACxC,OAAO,OAAO,MAAM,OAAO,EAAE,mBAAmB;AAAA;AAAA;AAAA,EAIpD,SAAS,QAAuB;SACzB,KAAK;AAAA,MACR,MAAM,kCAAkC;AAAA,MACxC,OAAO,OAAO,MAAM,OAAO,EAAE,mBAAmB;AAAA;AAAA;AAAA,EAIpD,QAAQ;SACD,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA,EAGtD,OAAO;SACA,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA,EAGtD,OAAO;SACA,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA,EAGtD,OAAO;SACA,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA;8BAmBnB,YAAwB,MAA4B;UAC/E,WAAW;AAAA,SACZA,kBAAM;aACF,IAAI,uBAAuB;AAAA;aAG3B,IAAI,sBAAsB;AAAA;AAAA;;;"}
@@ -0,0 +1,87 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import { T as Types } from "./descriptors.es.js";
8
+ const BuilderEditMode = {
9
+ BUILD: "build",
10
+ CONTENT: "content"
11
+ };
12
+ const RichTextPropControllerMessageType = {
13
+ CHANGE_BUILDER_EDIT_MODE: "CHANGE_BUILDER_EDIT_MODE",
14
+ INITIALIZE_EDITOR: "INITIALIZE_EDITOR",
15
+ CHANGE_EDITOR_VALUE: "CHANGE_EDITOR_VALUE",
16
+ FOCUS: "FOCUS",
17
+ BLUR: "BLUR",
18
+ UNDO: "UNDO",
19
+ REDO: "REDO"
20
+ };
21
+ class PropController {
22
+ constructor(send) {
23
+ __publicField(this, "send");
24
+ this.send = send;
25
+ }
26
+ }
27
+ class DefaultPropController extends PropController {
28
+ recv(_message) {
29
+ }
30
+ }
31
+ class RichTextPropController extends PropController {
32
+ constructor() {
33
+ super(...arguments);
34
+ __publicField(this, "editor", null);
35
+ }
36
+ recv(message) {
37
+ var _a, _b;
38
+ switch (message.type) {
39
+ case RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE: {
40
+ switch (message.editMode) {
41
+ case BuilderEditMode.BUILD:
42
+ (_a = this.editor) == null ? void 0 : _a.deselect().blur();
43
+ break;
44
+ case BuilderEditMode.CONTENT:
45
+ (_b = this.editor) == null ? void 0 : _b.focus().moveToRangeOfDocument();
46
+ break;
47
+ }
48
+ break;
49
+ }
50
+ }
51
+ }
52
+ setSlateEditor(editor) {
53
+ this.editor = editor;
54
+ this.send({
55
+ type: RichTextPropControllerMessageType.INITIALIZE_EDITOR,
56
+ value: editor.value.toJSON({ preserveSelection: false })
57
+ });
58
+ }
59
+ onChange(change) {
60
+ this.send({
61
+ type: RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE,
62
+ value: change.value.toJSON({ preserveSelection: true })
63
+ });
64
+ }
65
+ focus() {
66
+ this.send({ type: RichTextPropControllerMessageType.FOCUS });
67
+ }
68
+ blur() {
69
+ this.send({ type: RichTextPropControllerMessageType.BLUR });
70
+ }
71
+ undo() {
72
+ this.send({ type: RichTextPropControllerMessageType.UNDO });
73
+ }
74
+ redo() {
75
+ this.send({ type: RichTextPropControllerMessageType.REDO });
76
+ }
77
+ }
78
+ function createPropController(descriptor, send) {
79
+ switch (descriptor.type) {
80
+ case Types.RichText:
81
+ return new RichTextPropController(send);
82
+ default:
83
+ return new DefaultPropController(send);
84
+ }
85
+ }
86
+ export { RichTextPropControllerMessageType as R, createPropController as c };
87
+ //# sourceMappingURL=instances.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instances.es.js","sources":["../src/utils/constants.ts","../src/prop-controllers/instances.ts"],"sourcesContent":["export const BuilderEditMode = {\n BUILD: 'build',\n CONTENT: 'content',\n} as const\n\nexport type BuilderEditMode = typeof BuilderEditMode[keyof typeof BuilderEditMode]\n","import { Editor } from 'slate-react'\nimport { ValueJSON } from 'slate'\nimport { OnChangeParam } from 'slate-react'\nimport { Descriptor, RichTextDescriptor, Types } from './descriptors'\nimport { BuilderEditMode } from '../utils/constants'\n\nexport const RichTextPropControllerMessageType = {\n CHANGE_BUILDER_EDIT_MODE: 'CHANGE_BUILDER_EDIT_MODE',\n INITIALIZE_EDITOR: 'INITIALIZE_EDITOR',\n CHANGE_EDITOR_VALUE: 'CHANGE_EDITOR_VALUE',\n FOCUS: 'FOCUS',\n BLUR: 'BLUR',\n UNDO: 'UNDO',\n REDO: 'REDO',\n} as const\n\ntype ChangeBuilderEditModeRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE\n editMode: BuilderEditMode\n}\n\ntype InitializeEditorRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.INITIALIZE_EDITOR\n value: ValueJSON\n}\n\ntype ChangeEditorValueRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE\n value: ValueJSON\n}\n\ntype FocusRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.FOCUS }\n\ntype BlurRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.BLUR }\n\ntype UndoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.UNDO }\n\ntype RedoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.REDO }\n\nexport type RichTextPropControllerMessage =\n | ChangeBuilderEditModeRichTextPropControllerMessage\n | InitializeEditorRichTextPropControllerMessage\n | ChangeEditorValueRichTextPropControllerMessage\n | FocusRichTextPropControllerMessage\n | BlurRichTextPropControllerMessage\n | UndoRichTextPropControllerMessage\n | RedoRichTextPropControllerMessage\n\nexport type PropControllerMessage = RichTextPropControllerMessage\n\ntype Send<T = PropControllerMessage> = (message: T) => void\n\nexport abstract class PropController<T = PropControllerMessage> {\n protected send: Send<T>\n\n constructor(send: Send<T>) {\n this.send = send\n }\n\n abstract recv(message: T): void\n}\n\nclass DefaultPropController extends PropController {\n recv(_message: PropControllerMessage): void {\n // Do nothing.\n }\n}\n\nclass RichTextPropController extends PropController<RichTextPropControllerMessage> {\n private editor: Editor | null = null\n\n recv(message: RichTextPropControllerMessage): void {\n switch (message.type) {\n case RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE: {\n switch (message.editMode) {\n case BuilderEditMode.BUILD:\n this.editor?.deselect().blur()\n break\n\n case BuilderEditMode.CONTENT:\n this.editor?.focus().moveToRangeOfDocument()\n break\n }\n\n break\n }\n }\n }\n\n setSlateEditor(editor: Editor) {\n this.editor = editor\n\n this.send({\n type: RichTextPropControllerMessageType.INITIALIZE_EDITOR,\n value: editor.value.toJSON({ preserveSelection: false }),\n })\n }\n\n onChange(change: OnChangeParam) {\n this.send({\n type: RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE,\n value: change.value.toJSON({ preserveSelection: true }),\n })\n }\n\n focus() {\n this.send({ type: RichTextPropControllerMessageType.FOCUS })\n }\n\n blur() {\n this.send({ type: RichTextPropControllerMessageType.BLUR })\n }\n\n undo() {\n this.send({ type: RichTextPropControllerMessageType.UNDO })\n }\n\n redo() {\n this.send({ type: RichTextPropControllerMessageType.REDO })\n }\n}\n\ntype DescriptorPropController<T extends Descriptor> = T extends { type: typeof Types.RichText }\n ? RichTextPropController\n : DefaultPropController\n\nexport type DescriptorsPropControllers<T extends Record<string, Descriptor>> = {\n [K in keyof T]: undefined extends T[K]\n ? DescriptorPropController<Exclude<T[K], undefined>>\n : DescriptorPropController<T[K]>\n}\n\nexport function createPropController(\n descriptor: RichTextDescriptor,\n send: Send<RichTextPropControllerMessage>,\n): RichTextPropController\nexport function createPropController(descriptor: Descriptor, send: Send): PropController\nexport function createPropController(descriptor: Descriptor, send: Send): PropController {\n switch (descriptor.type) {\n case Types.RichText:\n return new RichTextPropController(send)\n\n default:\n return new DefaultPropController(send)\n }\n}\n"],"names":[],"mappings":";;;;;;;MAAa,kBAAkB;AAAA,EAC7B,OAAO;AAAA,EACP,SAAS;AAAA;MCIE,oCAAoC;AAAA,EAC/C,0BAA0B;AAAA,EAC1B,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA;qBAuCwD;AAAA,EAG9D,YAAY,MAAe;AAFjB;SAGH,OAAO;AAAA;AAAA;AAMhB,oCAAoC,eAAe;AAAA,EACjD,KAAK,UAAuC;AAAA;AAAA;AAK9C,qCAAqC,eAA8C;AAAA,EAAnF;AAAA;AACU,kCAAwB;AAAA;AAAA,EAEhC,KAAK,SAA8C;;YACzC,QAAQ;AAAA,WACT,kCAAkC,0BAA0B;gBACvD,QAAQ;AAAA,eACT,gBAAgB;uBACd,8BAAQ,WAAW;;eAGrB,gBAAgB;uBACd,8BAAQ,QAAQ;;;;;;;EAS/B,eAAe,QAAgB;SACxB,SAAS;SAET,KAAK;AAAA,MACR,MAAM,kCAAkC;AAAA,MACxC,OAAO,OAAO,MAAM,OAAO,EAAE,mBAAmB;AAAA;AAAA;AAAA,EAIpD,SAAS,QAAuB;SACzB,KAAK;AAAA,MACR,MAAM,kCAAkC;AAAA,MACxC,OAAO,OAAO,MAAM,OAAO,EAAE,mBAAmB;AAAA;AAAA;AAAA,EAIpD,QAAQ;SACD,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA,EAGtD,OAAO;SACA,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA,EAGtD,OAAO;SACA,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA,EAGtD,OAAO;SACA,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA;8BAmBnB,YAAwB,MAA4B;UAC/E,WAAW;AAAA,SACZ,MAAM;aACF,IAAI,uBAAuB;AAAA;aAG3B,IAAI,sBAAsB;AAAA;AAAA;;"}
package/dist/main.cjs.js CHANGED
@@ -5,4 +5,5 @@ var actions = require("./actions.cjs.js");
5
5
  exports.ActionTypes = actions.ActionTypes;
6
6
  exports.changeDocument = actions.changeDocument;
7
7
  exports.changeDocumentElementScrollTop = actions.changeDocumentElementScrollTop;
8
+ exports.messageHostPropController = actions.messageHostPropController;
8
9
  //# sourceMappingURL=main.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"main.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
package/dist/main.es.js CHANGED
@@ -1,2 +1,2 @@
1
- export { A as ActionTypes, c as changeDocument, a as changeDocumentElementScrollTop } from "./actions.es.js";
1
+ export { A as ActionTypes, c as changeDocument, a as changeDocumentElementScrollTop, m as messageHostPropController } from "./actions.es.js";
2
2
  //# sourceMappingURL=main.es.js.map
@@ -2,5 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports[Symbol.toStringTag] = "Module";
4
4
  var descriptors = require("./descriptors.cjs.js");
5
+ var instances = require("./instances.cjs.js");
5
6
  exports.Props = descriptors.descriptors;
7
+ exports.RichTextPropControllerMessageType = instances.RichTextPropControllerMessageType;
6
8
  //# sourceMappingURL=prop-controllers.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prop-controllers.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"prop-controllers.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,2 +1,3 @@
1
1
  export { d as Props } from "./descriptors.es.js";
2
+ export { R as RichTextPropControllerMessageType } from "./instances.es.js";
2
3
  //# sourceMappingURL=prop-controllers.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prop-controllers.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"prop-controllers.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,8 +1,28 @@
1
1
  "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __spreadValues = (a, b) => {
10
+ for (var prop in b || (b = {}))
11
+ if (__hasOwnProp.call(b, prop))
12
+ __defNormalProp(a, prop, b[prop]);
13
+ if (__getOwnPropSymbols)
14
+ for (var prop of __getOwnPropSymbols(b)) {
15
+ if (__propIsEnum.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ }
18
+ return a;
19
+ };
20
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2
21
  exports[Symbol.toStringTag] = "Module";
3
22
  var react = require("./react.cjs2.js");
4
23
  var actions = require("./actions.cjs.js");
5
24
  var boxModels = require("./box-models.cjs.js");
25
+ var instances = require("./instances.cjs.js");
6
26
  require("react");
7
27
  require("./descriptors.cjs.js");
8
28
  require("react/jsx-runtime");
@@ -688,9 +708,9 @@ function nextHash() {
688
708
  var usingWeakMap = typeof WeakMap === "function";
689
709
  var weakMap;
690
710
  if (usingWeakMap) {
691
- weakMap = new WeakMap();
711
+ weakMap = /* @__PURE__ */ new WeakMap();
692
712
  }
693
- var symbolMap = Object.create(null);
713
+ var symbolMap = /* @__PURE__ */ Object.create(null);
694
714
  var _objHashUID = 0;
695
715
  var UID_HASH_KEY = "__immutablehash__";
696
716
  if (typeof Symbol === "function") {
@@ -4104,7 +4124,7 @@ function apply(data, operation) {
4104
4124
  });
4105
4125
  return applied;
4106
4126
  }
4107
- function getInitialState({
4127
+ function getInitialState$1({
4108
4128
  rootElements
4109
4129
  } = {}) {
4110
4130
  return react.getInitialState({ rootElements });
@@ -4115,7 +4135,7 @@ function getReadOnlyDocumentsStateSlice(state) {
4115
4135
  function getDocumentRootElement(state, documentKey) {
4116
4136
  return react.getDocumentRootElement(getReadOnlyDocumentsStateSlice(state), documentKey);
4117
4137
  }
4118
- function reducer$1(state = getInitialState(), action) {
4138
+ function reducer$2(state = getInitialState$1(), action) {
4119
4139
  switch (action.type) {
4120
4140
  case actions.ActionTypes.CHANGE_DOCUMENT: {
4121
4141
  const currentRootElement = getDocumentRootElement(state, action.payload.documentKey);
@@ -4128,13 +4148,62 @@ function reducer$1(state = getInitialState(), action) {
4128
4148
  return state;
4129
4149
  }
4130
4150
  }
4151
+ function isPropControllersHandle(value) {
4152
+ if (typeof value === "object" && value !== null && "setPropControllers" in value && typeof value.setPropControllers === "function") {
4153
+ return true;
4154
+ }
4155
+ return false;
4156
+ }
4157
+ function getInitialState() {
4158
+ return { handles: /* @__PURE__ */ new Map(), instances: /* @__PURE__ */ new Map() };
4159
+ }
4160
+ function getPropControllersHandle(state, documentKey, elementKey) {
4161
+ var _a, _b;
4162
+ return (_b = (_a = state.handles.get(documentKey)) == null ? void 0 : _a.get(elementKey)) != null ? _b : null;
4163
+ }
4164
+ function getPropController(state, documentKey, elementKey, propName) {
4165
+ var _a, _b, _c;
4166
+ return (_c = (_b = (_a = state.instances.get(documentKey)) == null ? void 0 : _a.get(elementKey)) == null ? void 0 : _b[propName]) != null ? _c : null;
4167
+ }
4168
+ function reducer$1(state = getInitialState(), action) {
4169
+ var _a, _b, _c, _d;
4170
+ switch (action.type) {
4171
+ case actions.ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE: {
4172
+ const { documentKey, elementKey, handle } = action.payload;
4173
+ return __spreadProps(__spreadValues({}, state), {
4174
+ handles: new Map(state.handles).set(documentKey, new Map((_a = state.handles.get(documentKey)) != null ? _a : []).set(elementKey, handle))
4175
+ });
4176
+ }
4177
+ case actions.ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE: {
4178
+ const { documentKey, elementKey } = action.payload;
4179
+ const nextHandles = new Map((_b = state.handles.get(documentKey)) != null ? _b : []);
4180
+ const deleted = nextHandles.delete(elementKey);
4181
+ return deleted ? __spreadProps(__spreadValues({}, state), { handles: new Map(state.handles).set(documentKey, nextHandles) }) : state;
4182
+ }
4183
+ case actions.ActionTypes.REGISTER_PROP_CONTROLLERS: {
4184
+ const { documentKey, elementKey, propControllers } = action.payload;
4185
+ return __spreadProps(__spreadValues({}, state), {
4186
+ instances: new Map(state.instances).set(documentKey, new Map((_c = state.instances.get(documentKey)) != null ? _c : []).set(elementKey, propControllers))
4187
+ });
4188
+ }
4189
+ case actions.ActionTypes.UNREGISTER_PROP_CONTROLLERS: {
4190
+ const { documentKey, elementKey } = action.payload;
4191
+ const nextInstances = new Map((_d = state.instances.get(documentKey)) != null ? _d : []);
4192
+ const deleted = nextInstances.delete(elementKey);
4193
+ return deleted ? __spreadProps(__spreadValues({}, state), { instances: new Map(state.instances).set(documentKey, nextInstances) }) : state;
4194
+ }
4195
+ default:
4196
+ return state;
4197
+ }
4198
+ }
4131
4199
  const reducer = react.combineReducers({
4132
- documents: reducer$1,
4200
+ documents: reducer$2,
4133
4201
  reactComponents: react.reducer,
4134
4202
  boxModels: boxModels.reducer,
4135
4203
  componentsMeta: react.reducer$1,
4136
4204
  propControllers: react.reducer$2,
4137
- isInBuilder: (state = true, _action) => state
4205
+ propControllerHandles: reducer$1,
4206
+ isInBuilder: (_state = true, _action) => true
4138
4207
  });
4139
4208
  function getBoxModelsStateSlice(state) {
4140
4209
  return state.boxModels;
@@ -4145,8 +4214,8 @@ function getMeasurables(state) {
4145
4214
  function getBoxModels(state) {
4146
4215
  return boxModels.getBoxModels(getBoxModelsStateSlice(state));
4147
4216
  }
4148
- function getBoxModel(state, elementKey) {
4149
- return boxModels.getBoxModel(getBoxModelsStateSlice(state), elementKey);
4217
+ function getBoxModel(state, documentKey, elementKey) {
4218
+ return boxModels.getBoxModel(getBoxModelsStateSlice(state), documentKey, elementKey);
4150
4219
  }
4151
4220
  function getComponentsMetaStateSlice(state) {
4152
4221
  return state.componentsMeta;
@@ -4160,31 +4229,52 @@ function getPropControllersStateSlice(state) {
4160
4229
  function getComponentPropControllerDescriptors(state, componentType) {
4161
4230
  return react.getComponentPropControllerDescriptors(getPropControllersStateSlice(state), componentType);
4162
4231
  }
4232
+ function getPropControllerHandlesStateSlice(state) {
4233
+ return state.propControllerHandles;
4234
+ }
4163
4235
  function measureElements() {
4164
4236
  return (dispatch, getState) => {
4165
4237
  const measurables = getMeasurables(getState());
4166
4238
  const currentBoxModels = getBoxModels(getState());
4167
- const measuredBoxModels = new Map(Array.from(measurables.entries()).map(([elementKey, measurable]) => {
4168
- const boxModel = boxModels.measure(measurable);
4169
- return boxModel ? [elementKey, boxModel] : null;
4170
- }).filter((entry) => entry != null));
4171
- const changedBoxModels = new Map();
4172
- currentBoxModels.forEach((_boxModel, elementKey) => {
4173
- if (!measuredBoxModels.has(elementKey))
4174
- changedBoxModels.set(elementKey, null);
4175
- });
4176
- measuredBoxModels.forEach((measuredBoxModel, elementKey) => {
4177
- const currentBoxModel = getBoxModel(getState(), elementKey);
4178
- if (currentBoxModel == null || !deepEqual$1(currentBoxModel, measuredBoxModel)) {
4179
- changedBoxModels.set(elementKey, measuredBoxModel);
4239
+ const measuredBoxModels = /* @__PURE__ */ new Map();
4240
+ measurables.forEach((documentMeasurables, documentKey) => {
4241
+ const measuredDocumentBoxModels = /* @__PURE__ */ new Map();
4242
+ documentMeasurables.forEach((measurable, elementKey) => {
4243
+ const boxModel = boxModels.measure(measurable);
4244
+ if (boxModel != null)
4245
+ measuredDocumentBoxModels.set(elementKey, boxModel);
4246
+ });
4247
+ if (measuredDocumentBoxModels.size > 0) {
4248
+ measuredBoxModels.set(documentKey, measuredDocumentBoxModels);
4180
4249
  }
4181
4250
  });
4182
- if (changedBoxModels.size > 0) {
4183
- dispatch({
4184
- type: actions.ActionTypes.CHANGE_ELEMENT_BOX_MODELS,
4185
- payload: { changedElementBoxModels: changedBoxModels }
4251
+ const changedBoxModels = /* @__PURE__ */ new Map();
4252
+ currentBoxModels.forEach((currentDocumentBoxModels, documentKey) => {
4253
+ currentDocumentBoxModels.forEach((_boxModel, elementKey) => {
4254
+ var _a;
4255
+ const changedDocumentBoxModels = /* @__PURE__ */ new Map();
4256
+ if (!((_a = measuredBoxModels.get(documentKey)) == null ? void 0 : _a.has(elementKey))) {
4257
+ changedDocumentBoxModels.set(elementKey, null);
4258
+ }
4259
+ if (changedDocumentBoxModels.size > 0) {
4260
+ changedBoxModels.set(documentKey, changedDocumentBoxModels);
4261
+ }
4186
4262
  });
4187
- }
4263
+ });
4264
+ measuredBoxModels.forEach((measuredDocumentBoxModels, documentKey) => {
4265
+ const changedDocumentBoxModels = /* @__PURE__ */ new Map();
4266
+ measuredDocumentBoxModels.forEach((measuredBoxModel, elementKey) => {
4267
+ const currentBoxModel = getBoxModel(getState(), documentKey, elementKey);
4268
+ if (currentBoxModel == null || !deepEqual$1(currentBoxModel, measuredBoxModel)) {
4269
+ changedDocumentBoxModels.set(elementKey, measuredBoxModel);
4270
+ }
4271
+ });
4272
+ if (changedDocumentBoxModels.size > 0) {
4273
+ changedBoxModels.set(documentKey, changedDocumentBoxModels);
4274
+ }
4275
+ });
4276
+ if (changedBoxModels.size > 0)
4277
+ dispatch(actions.changeElementBoxModels(changedBoxModels));
4188
4278
  };
4189
4279
  }
4190
4280
  function startMeasuringElements() {
@@ -4242,16 +4332,14 @@ function measureBoxModelsMiddleware() {
4242
4332
  return ({ dispatch }) => (next) => {
4243
4333
  return (action) => {
4244
4334
  switch (action.type) {
4245
- case actions.ActionTypes.CHANGE_COMPONENT_HANDLE: {
4335
+ case actions.ActionTypes.REGISTER_COMPONENT_HANDLE: {
4246
4336
  if (boxModels.isMeasurable(action.payload.componentHandle)) {
4247
- dispatch(actions.registerMeasurable(action.payload.elementKey, action.payload.componentHandle));
4248
- } else {
4249
- dispatch(actions.unregisterMeasurable(action.payload.elementKey));
4337
+ dispatch(actions.registerMeasurable(action.payload.documentKey, action.payload.elementKey, action.payload.componentHandle));
4250
4338
  }
4251
4339
  break;
4252
4340
  }
4253
- case actions.ActionTypes.UNMOUNT_COMPONENT:
4254
- dispatch(actions.unregisterMeasurable(action.payload.elementKey));
4341
+ case actions.ActionTypes.UNREGISTER_COMPONENT_HANDLE:
4342
+ dispatch(actions.unregisterMeasurable(action.payload.documentKey, action.payload.elementKey));
4255
4343
  break;
4256
4344
  }
4257
4345
  return next(action);
@@ -4279,6 +4367,7 @@ function messageChannelMiddleware() {
4279
4367
  case actions.ActionTypes.REGISTER_COMPONENT:
4280
4368
  case actions.ActionTypes.UNREGISTER_COMPONENT:
4281
4369
  case actions.ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:
4370
+ case actions.ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:
4282
4371
  messageChannel.port1.postMessage(action);
4283
4372
  break;
4284
4373
  case actions.ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP:
@@ -4289,10 +4378,60 @@ function messageChannelMiddleware() {
4289
4378
  };
4290
4379
  };
4291
4380
  }
4381
+ function createAndRegisterPropControllers(documentKey, elementKey) {
4382
+ return (dispatch, getState) => {
4383
+ const descriptors = react.getElementPropControllerDescriptors(getState(), documentKey, elementKey);
4384
+ if (descriptors == null)
4385
+ return null;
4386
+ const propControllers = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {
4387
+ const propController = instances.createPropController(descriptor, (message) => dispatch(actions.messageBuilderPropController(documentKey, elementKey, propName, message)));
4388
+ return __spreadProps(__spreadValues({}, acc), { [propName]: propController });
4389
+ }, {});
4390
+ dispatch(actions.registerPropControllers(documentKey, elementKey, propControllers));
4391
+ return propControllers;
4392
+ };
4393
+ }
4394
+ function registerAndSetPropControllersHandle(documentKey, elementKey, handle) {
4395
+ return (dispatch) => {
4396
+ dispatch(actions.registerPropControllersHandle(documentKey, elementKey, handle));
4397
+ const propControllers = dispatch(createAndRegisterPropControllers(documentKey, elementKey));
4398
+ handle.setPropControllers(propControllers);
4399
+ };
4400
+ }
4401
+ function unregisterAndUnsetPropControllersHandle(documentKey, elementKey) {
4402
+ return (dispatch, getState) => {
4403
+ const handle = getPropControllersHandle(getPropControllerHandlesStateSlice(getState()), documentKey, elementKey);
4404
+ handle == null ? void 0 : handle.setPropControllers(null);
4405
+ dispatch(actions.unregisterPropControllers(documentKey, elementKey));
4406
+ };
4407
+ }
4408
+ function propControllerHandlesMiddleware() {
4409
+ return ({ dispatch, getState }) => (next) => {
4410
+ return (action) => {
4411
+ switch (action.type) {
4412
+ case actions.ActionTypes.REGISTER_COMPONENT_HANDLE: {
4413
+ if (isPropControllersHandle(action.payload.componentHandle)) {
4414
+ dispatch(registerAndSetPropControllersHandle(action.payload.documentKey, action.payload.elementKey, action.payload.componentHandle));
4415
+ }
4416
+ break;
4417
+ }
4418
+ case actions.ActionTypes.UNREGISTER_COMPONENT_HANDLE:
4419
+ dispatch(unregisterAndUnsetPropControllersHandle(action.payload.documentKey, action.payload.elementKey));
4420
+ break;
4421
+ case actions.ActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {
4422
+ const propController = getPropController(getPropControllerHandlesStateSlice(getState()), action.payload.documentKey, action.payload.elementKey, action.payload.propName);
4423
+ if (propController)
4424
+ propController.recv(action.payload.message);
4425
+ }
4426
+ }
4427
+ return next(action);
4428
+ };
4429
+ };
4430
+ }
4292
4431
  function configureStore({
4293
4432
  preloadedState
4294
4433
  } = {}) {
4295
- return react.createStore(reducer, preloadedState, react.applyMiddleware(react.thunk, measureBoxModelsMiddleware(), messageChannelMiddleware()));
4434
+ return react.createStore(reducer, preloadedState, react.applyMiddleware(react.thunk, measureBoxModelsMiddleware(), messageChannelMiddleware(), propControllerHandlesMiddleware()));
4296
4435
  }
4297
4436
  exports.createBox = boxModels.createBox;
4298
4437
  exports.getBox = boxModels.getBox;