@makeswift/runtime 0.9.11 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Box.cjs.js +4 -1
- package/dist/Box.cjs.js.map +1 -1
- package/dist/Box.es.js +5 -2
- package/dist/Box.es.js.map +1 -1
- package/dist/Button.cjs.js +4 -3
- package/dist/Button.cjs.js.map +1 -1
- package/dist/Button.es.js +5 -4
- package/dist/Button.es.js.map +1 -1
- package/dist/Carousel.cjs.js +4 -3
- package/dist/Carousel.cjs.js.map +1 -1
- package/dist/Carousel.es.js +5 -4
- package/dist/Carousel.es.js.map +1 -1
- package/dist/Countdown.cjs.js +4 -1
- package/dist/Countdown.cjs.js.map +1 -1
- package/dist/Countdown.es.js +5 -2
- package/dist/Countdown.es.js.map +1 -1
- package/dist/Divider.cjs.js +4 -1
- package/dist/Divider.cjs.js.map +1 -1
- package/dist/Divider.es.js +5 -2
- package/dist/Divider.es.js.map +1 -1
- package/dist/Embed.cjs.js +1 -0
- package/dist/Embed.cjs.js.map +1 -1
- package/dist/Embed.es.js +2 -1
- package/dist/Embed.es.js.map +1 -1
- package/dist/Form.cjs.js +14 -13
- package/dist/Form.cjs.js.map +1 -1
- package/dist/Form.es.js +6 -5
- package/dist/Form.es.js.map +1 -1
- package/dist/Image.cjs.js +12 -11
- package/dist/Image.cjs.js.map +1 -1
- package/dist/Image.es.js +12 -11
- package/dist/Image.es.js.map +1 -1
- package/dist/LiveProvider.cjs.js +4 -1
- package/dist/LiveProvider.cjs.js.map +1 -1
- package/dist/LiveProvider.es.js +6 -3
- package/dist/LiveProvider.es.js.map +1 -1
- package/dist/Navigation.cjs.js +12 -11
- package/dist/Navigation.cjs.js.map +1 -1
- package/dist/Navigation.es.js +12 -11
- package/dist/Navigation.es.js.map +1 -1
- package/dist/PreviewProvider.cjs.js +7 -4
- package/dist/PreviewProvider.cjs.js.map +1 -1
- package/dist/PreviewProvider.es.js +6 -3
- package/dist/PreviewProvider.es.js.map +1 -1
- package/dist/ReadOnlyText.cjs.js +34 -26
- package/dist/ReadOnlyText.cjs.js.map +1 -1
- package/dist/ReadOnlyText.es.js +30 -22
- package/dist/ReadOnlyText.es.js.map +1 -1
- package/dist/ReadOnlyTextV2.cjs.js +125 -246
- package/dist/ReadOnlyTextV2.cjs.js.map +1 -1
- package/dist/ReadOnlyTextV2.es.js +126 -246
- package/dist/ReadOnlyTextV2.es.js.map +1 -1
- package/dist/Root.cjs.js +4 -1
- package/dist/Root.cjs.js.map +1 -1
- package/dist/Root.es.js +5 -2
- package/dist/Root.es.js.map +1 -1
- package/dist/SocialLinks.cjs.js +7 -6
- package/dist/SocialLinks.cjs.js.map +1 -1
- package/dist/SocialLinks.es.js +8 -7
- package/dist/SocialLinks.es.js.map +1 -1
- package/dist/Text.cjs.js +12 -71
- package/dist/Text.cjs.js.map +1 -1
- package/dist/Text.es.js +13 -64
- package/dist/Text.es.js.map +1 -1
- package/dist/Video.cjs.js +1 -0
- package/dist/Video.cjs.js.map +1 -1
- package/dist/Video.es.js +2 -1
- package/dist/Video.es.js.map +1 -1
- package/dist/builder.cjs.js +2 -0
- package/dist/builder.cjs.js.map +1 -1
- package/dist/builder.es.js +2 -0
- package/dist/builder.es.js.map +1 -1
- package/dist/components.cjs.js +4 -3
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +4 -3
- package/dist/components.es.js.map +1 -1
- package/dist/control-serialization.es.js +1 -1
- package/dist/controls.cjs.js +31 -21
- package/dist/controls.cjs.js.map +1 -1
- package/dist/controls.es.js +4 -2
- package/dist/controls.es.js.map +1 -1
- package/dist/index.cjs.js +307 -243
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs2.js +3 -3
- package/dist/index.cjs2.js.map +1 -1
- package/dist/index.cjs3.js +21 -107
- package/dist/index.cjs3.js.map +1 -1
- package/dist/index.cjs4.js +16 -57
- package/dist/index.cjs4.js.map +1 -1
- package/dist/index.cjs5.js +53 -243
- package/dist/index.cjs5.js.map +1 -1
- package/dist/index.cjs6.js +16 -37
- package/dist/index.cjs6.js.map +1 -1
- package/dist/index.cjs7.js +376 -14
- package/dist/index.cjs7.js.map +1 -1
- package/dist/index.cjs8.js +276 -12
- package/dist/index.cjs8.js.map +1 -1
- package/dist/index.es.js +279 -215
- package/dist/index.es.js.map +1 -1
- package/dist/index.es2.js +2 -2
- package/dist/index.es3.js +22 -103
- package/dist/index.es3.js.map +1 -1
- package/dist/index.es4.js +16 -57
- package/dist/index.es4.js.map +1 -1
- package/dist/index.es5.js +53 -241
- package/dist/index.es5.js.map +1 -1
- package/dist/index.es6.js +16 -32
- package/dist/index.es6.js.map +1 -1
- package/dist/index.es7.js +372 -16
- package/dist/index.es7.js.map +1 -1
- package/dist/index.es8.js +271 -11
- package/dist/index.es8.js.map +1 -1
- package/dist/main.cjs.js +2 -0
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.es.js +2 -0
- package/dist/main.es.js.map +1 -1
- package/dist/next.cjs.js +4 -1
- package/dist/next.cjs.js.map +1 -1
- package/dist/next.es.js +5 -2
- package/dist/next.es.js.map +1 -1
- package/dist/prop-controllers.cjs.js +2 -0
- package/dist/prop-controllers.cjs.js.map +1 -1
- package/dist/prop-controllers.es.js +2 -0
- package/dist/prop-controllers.es.js.map +1 -1
- package/dist/react-page.cjs.js +1731 -183
- package/dist/react-page.cjs.js.map +1 -1
- package/dist/react-page.es.js +1694 -182
- package/dist/react-page.es.js.map +1 -1
- package/dist/react.cjs.js +4 -1
- package/dist/react.cjs.js.map +1 -1
- package/dist/react.es.js +4 -1
- package/dist/react.es.js.map +1 -1
- package/dist/slate.cjs.js +32 -377
- package/dist/slate.cjs.js.map +1 -1
- package/dist/slate.es.js +14 -363
- package/dist/slate.es.js.map +1 -1
- package/dist/text-input.cjs.js +26 -0
- package/dist/text-input.cjs.js.map +1 -0
- package/dist/text-input.es.js +18 -0
- package/dist/text-input.es.js.map +1 -0
- package/dist/types/src/components/builtin/Text/Text.d.ts +3 -4
- package/dist/types/src/components/builtin/Text/Text.d.ts.map +1 -1
- package/dist/types/src/components/builtin/Text/register.d.ts.map +1 -1
- package/dist/types/src/controls/list.d.ts +5 -2
- package/dist/types/src/controls/list.d.ts.map +1 -1
- package/dist/types/src/controls/rich-text/fixtures/v2-data-types.d.ts.map +1 -1
- package/dist/types/src/controls/rich-text/introspection.d.ts +5 -0
- package/dist/types/src/controls/rich-text/introspection.d.ts.map +1 -0
- package/dist/types/src/controls/rich-text/introspection.test.d.ts +2 -0
- package/dist/types/src/controls/rich-text/introspection.test.d.ts.map +1 -0
- package/dist/types/src/controls/rich-text/rich-text.d.ts +0 -1
- package/dist/types/src/controls/rich-text/rich-text.d.ts.map +1 -1
- package/dist/types/src/controls/rich-text/translation.d.ts.map +1 -1
- package/dist/types/src/controls/rich-text-v2/introspection.d.ts +5 -0
- package/dist/types/src/controls/rich-text-v2/introspection.d.ts.map +1 -0
- package/dist/types/src/controls/rich-text-v2/introspection.test.d.ts +2 -0
- package/dist/types/src/controls/rich-text-v2/introspection.test.d.ts.map +1 -0
- package/dist/types/src/controls/rich-text-v2/plugin.d.ts +29 -0
- package/dist/types/src/controls/rich-text-v2/plugin.d.ts.map +1 -0
- package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts +32 -34
- package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
- package/dist/types/src/controls/rich-text-v2/translation.d.ts +1 -1
- package/dist/types/src/controls/rich-text-v2/translation.d.ts.map +1 -1
- package/dist/types/src/controls/shape.d.ts +5 -2
- package/dist/types/src/controls/shape.d.ts.map +1 -1
- package/dist/types/src/controls/typography.d.ts +2 -0
- package/dist/types/src/controls/typography.d.ts.map +1 -1
- package/dist/types/src/next/client.d.ts.map +1 -1
- package/dist/types/src/prop-controllers/descriptors.d.ts +11 -1
- package/dist/types/src/prop-controllers/descriptors.d.ts.map +1 -1
- package/dist/types/src/prop-controllers/introspection.d.ts +0 -2
- package/dist/types/src/prop-controllers/introspection.d.ts.map +1 -1
- package/dist/types/src/runtimes/react/controls/control.d.ts +1 -1
- package/dist/types/src/runtimes/react/controls/control.d.ts.map +1 -1
- package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/editable-text.d.ts +4 -3
- package/dist/types/src/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +1 -0
- package/dist/types/src/runtimes/react/controls/rich-text/EditableText/index.d.ts.map +1 -0
- package/dist/types/src/runtimes/react/controls/rich-text/EditableText/useSyncDOMSelection.d.ts.map +1 -0
- package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/useSyncWithBuilder.d.ts +1 -1
- package/dist/types/src/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.d.ts.map +1 -0
- package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/ReadOnlyText.d.ts +2 -2
- package/dist/types/src/runtimes/react/controls/rich-text/ReadOnlyText.d.ts.map +1 -0
- package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/block.d.ts +1 -1
- package/dist/types/src/runtimes/react/controls/rich-text/components/Element/block.d.ts.map +1 -0
- package/dist/types/src/runtimes/react/controls/rich-text/components/Element/element.d.ts.map +1 -0
- package/dist/types/src/runtimes/react/controls/rich-text/components/Element/index.d.ts.map +1 -0
- package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/inline.d.ts +1 -1
- package/dist/types/src/runtimes/react/controls/rich-text/components/Element/inline.d.ts.map +1 -0
- package/dist/types/src/runtimes/react/controls/rich-text/components/Leaf/index.d.ts.map +1 -0
- package/dist/types/src/runtimes/react/controls/rich-text/components/Leaf/leaf.d.ts.map +1 -0
- package/dist/types/src/runtimes/react/controls/rich-text/components/index.d.ts.map +1 -0
- package/dist/types/src/runtimes/react/controls/rich-text/index.d.ts +2 -0
- package/dist/types/src/runtimes/react/controls/rich-text/index.d.ts.map +1 -0
- package/dist/types/src/runtimes/react/controls/{rich-text.d.ts → rich-text/rich-text.d.ts} +1 -1
- package/dist/types/src/runtimes/react/controls/rich-text/rich-text.d.ts.map +1 -0
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +1 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts +3 -2
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts.map +1 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts +2 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts.map +1 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.d.ts +4 -0
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.d.ts.map +1 -0
- package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +8 -16
- package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -1
- package/dist/types/src/slate/BlockPlugin/index.d.ts +3 -3
- package/dist/types/src/slate/BlockPlugin/index.d.ts.map +1 -1
- package/dist/types/src/slate/InlineModePlugin/index.d.ts +6 -4
- package/dist/types/src/slate/InlineModePlugin/index.d.ts.map +1 -1
- package/dist/types/src/slate/InlinePlugin/index.d.ts +3 -3
- package/dist/types/src/slate/InlinePlugin/index.d.ts.map +1 -1
- package/dist/types/src/slate/InlinePlugin/types.d.ts +1 -1
- package/dist/types/src/slate/InlinePlugin/types.d.ts.map +1 -1
- package/dist/types/src/slate/LinkPlugin/index.d.ts +3 -3
- package/dist/types/src/slate/LinkPlugin/index.d.ts.map +1 -1
- package/dist/types/src/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts +16 -0
- package/dist/types/src/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts.map +1 -0
- package/dist/types/src/slate/LocalChangesPlugin/index.d.ts +16 -0
- package/dist/types/src/slate/LocalChangesPlugin/index.d.ts.map +1 -0
- package/dist/types/src/slate/TextAlignPlugin/index.d.ts +3 -3
- package/dist/types/src/slate/TextAlignPlugin/index.d.ts.map +1 -1
- package/dist/types/src/slate/TypographyPlugin/index.d.ts +3 -3
- package/dist/types/src/slate/TypographyPlugin/index.d.ts.map +1 -1
- package/dist/types/src/slate/index.d.ts +1 -0
- package/dist/types/src/slate/index.d.ts.map +1 -1
- package/dist/types/src/slate/types.d.ts +3 -12
- package/dist/types/src/slate/types.d.ts.map +1 -1
- package/dist/types/src/slate/utils/element.d.ts.map +1 -1
- package/dist/types/src/state/modules/locales.d.ts.map +1 -1
- package/package.json +1 -2
- package/dist/index.cjs10.js +0 -390
- package/dist/index.cjs10.js.map +0 -1
- package/dist/index.cjs9.js +0 -299
- package/dist/index.cjs9.js.map +0 -1
- package/dist/index.es10.js +0 -383
- package/dist/index.es10.js.map +0 -1
- package/dist/index.es9.js +0 -292
- package/dist/index.es9.js.map +0 -1
- package/dist/types/src/components/builtin/Text/EditableText/editable-text.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Text/EditableText/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Text/EditableText/useSyncDOMSelection.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Text/EditableText/useSyncWithBuilder.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Text/components/Element/block.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Text/components/Element/element.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Text/components/Element/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Text/components/Element/inline.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Text/components/Leaf/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Text/components/index.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text.d.ts.map +0 -1
- package/dist/types.cjs2.js +0 -746
- package/dist/types.cjs2.js.map +0 -1
- package/dist/types.es2.js +0 -729
- package/dist/types.es2.js.map +0 -1
- package/dist/typography.cjs.js +0 -56
- package/dist/typography.cjs.js.map +0 -1
- package/dist/typography.es.js +0 -41
- package/dist/typography.es.js.map +0 -1
- /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/index.d.ts +0 -0
- /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/EditableText/useSyncDOMSelection.d.ts +0 -0
- /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/element.d.ts +0 -0
- /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Element/index.d.ts +0 -0
- /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Leaf/index.d.ts +0 -0
- /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/Leaf/leaf.d.ts +0 -0
- /package/dist/types/src/{components/builtin/Text → runtimes/react/controls/rich-text}/components/index.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreviewProvider.es.js","sources":["../src/state/modules/read-write-documents.ts","../src/state/modules/pointer.ts","../src/state/modules/element-imperative-handles.ts","../src/state/react-builder-preview.ts","../src/runtimes/react/components/PreviewProvider.tsx"],"sourcesContent":["import { Operation } from 'ot-json0'\nimport { removeIn, setIn } from 'immutable'\n\nimport * as ReadOnlyDocuments from './read-only-documents'\nimport { Action, ActionTypes } from '../actions'\n\nexport type { Document, Element, ElementData, ElementReference } from './read-only-documents'\nexport { isElementReference } from './read-only-documents'\nexport type { Operation }\n\nfunction apply(data: ReadOnlyDocuments.Element, operation: Operation): ReadOnlyDocuments.Element {\n let applied = data\n\n operation.forEach(component => {\n // @ts-expect-error: `ld` isn't in all possible values of `component`\n if (component.ld != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `od` isn't in all possible values of `component`\n if (component.od != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `li` isn't in all possible values of `component`\n if (component.li != null) applied = setIn(applied, component.p, component.li)\n\n // @ts-expect-error: `oi` isn't in all possible values of `component`\n if (component.oi != null) applied = setIn(applied, component.p, component.oi)\n })\n\n return applied\n}\n\nexport type State = ReadOnlyDocuments.State\n\nexport function getInitialState({\n rootElements,\n}: {\n rootElements?: Map<string, ReadOnlyDocuments.Element>\n} = {}): State {\n return ReadOnlyDocuments.getInitialState({ rootElements })\n}\n\nfunction getReadOnlyDocumentsStateSlice(state: State): ReadOnlyDocuments.State {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): ReadOnlyDocuments.Document | null {\n return ReadOnlyDocuments.getDocument(getReadOnlyDocumentsStateSlice(state), documentKey)\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n const nextState = ReadOnlyDocuments.reducer(state, action)\n\n switch (action.type) {\n case ActionTypes.CHANGE_DOCUMENT: {\n const currentRootElement = getDocument(nextState, action.payload.documentKey)?.rootElement\n\n if (currentRootElement == null) return nextState\n\n const nextRootElement = apply(currentRootElement, action.payload.operation)\n\n return currentRootElement === nextRootElement\n ? nextState\n : new Map(nextState).set(\n action.payload.documentKey,\n ReadOnlyDocuments.createDocument(action.payload.documentKey, nextRootElement),\n )\n }\n\n default:\n return nextState\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport type Point = { x: number; y: number }\n\ntype State = {\n pointer: Point | null\n}\n\nfunction getInitialState(): State {\n return { pointer: null }\n}\n\nexport function getPointer(state: State): Point | null {\n return state.pointer\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.BUILDER_POINTER_MOVE:\n return { ...state, pointer: action.payload.pointer }\n\n default:\n return state\n }\n}\n","import { ElementImperativeHandle } from '../../runtimes/react/element-imperative-handle'\nimport { Action, ActionTypes } from '../actions'\n\ntype State = Map<string, Map<string, ElementImperativeHandle>>\n\nexport function getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return state\n}\n\nfunction getInitialState(): State {\n return new Map()\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE:\n return new Map(state).set(\n action.payload.documentKey,\n new Map(new Map(state.get(action.payload.documentKey) ?? [])).set(\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const byElementKey = new Map(state.get(action.payload.documentKey) ?? [])\n\n const deleted = byElementKey.delete(action.payload.elementKey)\n\n if (!deleted) return state\n\n return new Map(state).set(action.payload.documentKey, byElementKey)\n }\n\n default:\n return state\n }\n}\n","import {\n applyMiddleware,\n combineReducers,\n createStore,\n Dispatch as ReduxDispatch,\n Middleware,\n MiddlewareAPI,\n PreloadedState,\n Store as ReduxStore,\n} from 'redux'\nimport thunk, { ThunkAction, ThunkDispatch } from 'redux-thunk'\nimport Router from 'next/router'\n\nimport deepEqual from '../utils/deepEqual'\n\nimport * as Documents from './modules/read-write-documents'\nimport * as ReactComponents from './modules/react-components'\nimport * as BoxModels from './modules/box-models'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as PropControllerHandles from './modules/prop-controller-handles'\nimport * as IsInBuilder from './modules/is-in-builder'\nimport * as IsPreview from './modules/is-preview'\nimport * as BuilderEditMode from './modules/builder-edit-mode'\nimport * as Pointer from './modules/pointer'\nimport * as ElementImperativeHandles from './modules/element-imperative-handles'\nimport * as Breakpoints from './modules/breakpoints'\nimport * as Locales from './modules/locales'\nimport * as ReactPage from './react-page'\nimport {\n Action,\n changeDocumentElementSize,\n changeElementBoxModels,\n messageBuilderPropController,\n registerBuilderComponent,\n registerMeasurable,\n registerPropControllers,\n registerPropControllersHandle,\n registerDocument,\n registerComponentHandle,\n unregisterBuilderComponent,\n unregisterMeasurable,\n unregisterPropControllers,\n setIsInBuilder,\n handleWheel,\n handlePointerMove,\n changePathnameStart,\n changePathnameComplete,\n elementFromPointChange,\n setBreakpoints,\n setLocales,\n setLocale,\n setDefaultLocale,\n} from './actions'\nimport { ActionTypes } from './actions'\nimport { createPropController } from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { serializeControls } from '../builder'\nimport { MakeswiftClient } from '../api/react'\nimport { ElementImperativeHandle } from '../runtimes/react/element-imperative-handle'\n\nexport type { Operation } from './modules/read-write-documents'\nexport type { BoxModelHandle } from './modules/box-models'\nexport { createBox, getBox, parse } from './modules/box-models'\n\nconst reducer = combineReducers({\n documents: Documents.reducer,\n reactComponents: ReactComponents.reducer,\n boxModels: BoxModels.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n propControllerHandles: PropControllerHandles.reducer,\n isInBuilder: IsInBuilder.reducer,\n isPreview: IsPreview.reducer,\n builderEditMode: BuilderEditMode.reducer,\n pointer: Pointer.reducer,\n elementImperativeHandles: ElementImperativeHandles.reducer,\n breakpoints: Breakpoints.reducer,\n locales: Locales.reducer,\n})\n\nexport type State = ReturnType<typeof reducer>\n\nfunction getBoxModelsStateSlice(state: State): BoxModels.State {\n return state.boxModels\n}\n\nfunction getMeasurables(state: State): Map<string, Map<string, BoxModels.Measurable>> {\n return BoxModels.getMeasurables(getBoxModelsStateSlice(state))\n}\n\nfunction getBoxModels(state: State): Map<string, Map<string, BoxModels.BoxModel>> {\n return BoxModels.getBoxModels(getBoxModelsStateSlice(state))\n}\n\nfunction getBoxModel(\n state: State,\n documentKey: string,\n elementKey: string,\n): BoxModels.BoxModel | null {\n return BoxModels.getBoxModel(getBoxModelsStateSlice(state), documentKey, elementKey)\n}\n\nfunction getComponentsMetaStateSlice(state: State): ComponentsMeta.State {\n return state.componentsMeta\n}\n\nfunction getComponentsMeta(state: State): Map<string, ComponentsMeta.ComponentMeta> {\n return ComponentsMeta.getComponentsMeta(getComponentsMetaStateSlice(state))\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nfunction getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n return PropControllers.getComponentPropControllerDescriptors(\n getPropControllersStateSlice(state),\n componentType,\n )\n}\n\nfunction getPropControllerHandlesStateSlice(state: State): PropControllerHandles.State {\n return state.propControllerHandles\n}\n\nfunction getPointer(state: State): Pointer.Point | null {\n return Pointer.getPointer(state.pointer)\n}\n\nfunction getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return ElementImperativeHandles.getElementImperativeHandles(state.elementImperativeHandles)\n}\n\nfunction getElementImperativeHandlesContainingElement(\n state: State,\n element: Element,\n): Map<string, Map<string, ElementImperativeHandle>> {\n const elementImperativeHandles = getElementImperativeHandles(state)\n const filteredElementImperativeHandles = new Map<string, Map<string, ElementImperativeHandle>>()\n\n for (const [documentKey, byElementKey] of elementImperativeHandles) {\n const filteredByElementKey = new Map<string, ElementImperativeHandle>()\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n const handleElement = elementImperativeHandle.getDomNode()\n\n if (handleElement?.contains(element)) {\n filteredByElementKey.set(elementKey, elementImperativeHandle)\n }\n }\n\n if (filteredByElementKey.size > 0) {\n filteredElementImperativeHandles.set(documentKey, filteredByElementKey)\n }\n }\n\n return filteredElementImperativeHandles\n}\n\nfunction measureElements(): ThunkAction<void, State, unknown, Action> {\n return (dispatch, getState) => {\n const measurables = getMeasurables(getState())\n const currentBoxModels = getBoxModels(getState())\n const measuredBoxModels = new Map<string, Map<string, BoxModels.BoxModel>>()\n\n measurables.forEach((documentMeasurables, documentKey) => {\n const measuredDocumentBoxModels = new Map<string, BoxModels.BoxModel>()\n\n documentMeasurables.forEach((measurable, elementKey) => {\n const boxModel = BoxModels.measure(measurable)\n\n if (boxModel != null) measuredDocumentBoxModels.set(elementKey, boxModel)\n })\n\n if (measuredDocumentBoxModels.size > 0) {\n measuredBoxModels.set(documentKey, measuredDocumentBoxModels)\n }\n })\n\n const changedBoxModels = new Map<string, Map<string, BoxModels.BoxModel | null>>()\n\n currentBoxModels.forEach((currentDocumentBoxModels, documentKey) => {\n const changedDocumentBoxModels = new Map<string, BoxModels.BoxModel | null>()\n\n currentDocumentBoxModels.forEach((_boxModel, elementKey) => {\n if (!measuredBoxModels.get(documentKey)?.has(elementKey)) {\n changedDocumentBoxModels.set(elementKey, null)\n }\n\n if (changedDocumentBoxModels.size > 0) {\n changedBoxModels.set(documentKey, changedDocumentBoxModels)\n }\n })\n })\n\n measuredBoxModels.forEach((measuredDocumentBoxModels, documentKey) => {\n const changedDocumentBoxModels = new Map<string, BoxModels.BoxModel | null>()\n\n measuredDocumentBoxModels.forEach((measuredBoxModel, elementKey) => {\n const currentBoxModel = getBoxModel(getState(), documentKey, elementKey)\n\n if (currentBoxModel == null || !deepEqual(currentBoxModel, measuredBoxModel)) {\n changedDocumentBoxModels.set(elementKey, measuredBoxModel)\n }\n })\n\n if (changedDocumentBoxModels.size > 0) {\n changedBoxModels.set(documentKey, changedDocumentBoxModels)\n }\n })\n\n if (changedBoxModels.size > 0) dispatch(changeElementBoxModels(changedBoxModels))\n }\n}\n\nexport function startMeasuringElements(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n dispatch(measureElements())\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nexport type Size = {\n offsetWidth: number\n offsetHeight: number\n clientWidth: number\n clientHeight: number\n scrollWidth: number\n scrollHeight: number\n scrollTop: number\n scrollLeft: number\n}\n\nfunction getElementSize(element: HTMLElement): Size {\n return {\n offsetWidth: element.offsetWidth,\n offsetHeight: element.offsetHeight,\n clientWidth: element.clientWidth,\n clientHeight: element.clientHeight,\n scrollWidth: element.scrollWidth,\n scrollHeight: element.scrollHeight,\n scrollTop: element.scrollTop,\n scrollLeft: element.scrollLeft,\n }\n}\n\nfunction lockDocumentScroll(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const lastDocumentOverflow = window.document.documentElement.style.overflow\n window.document.documentElement.style.overflow = 'hidden'\n\n window.document.documentElement.addEventListener('wheel', handleWheelEvent)\n\n return () => {\n window.document.documentElement.style.overflow = lastDocumentOverflow\n window.document.documentElement.removeEventListener('wheel', handleWheelEvent)\n }\n\n function handleWheelEvent({ deltaX, deltaY }: WheelEvent) {\n dispatch(handleWheel({ deltaX, deltaY }))\n }\n }\n}\n\nfunction startHandlingPointerMoveEvent(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n window.document.documentElement.addEventListener('pointermove', handlePointerMoveEvent)\n\n return () => {\n window.document.documentElement.removeEventListener('pointermove', handlePointerMoveEvent)\n }\n\n function handlePointerMoveEvent({ clientX, clientY }: PointerEvent) {\n dispatch(handlePointerMove({ clientX, clientY }))\n }\n }\n}\n\nfunction startHandlingFocusEvents(): 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 (ReactPage.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT) {\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 (ReactPage.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT) {\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: Size\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n const nextSize = getElementSize(window.document.documentElement)\n\n if (!deepEqual(lastSize, nextSize)) {\n lastSize = nextSize\n\n dispatch(changeDocumentElementSize(nextSize))\n }\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\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 acendingDepthDocumentKeys = ReactPage.getDocumentKeysSortedByDepth(getState())\n const descendingDepthDocumentKeys = acendingDepthDocumentKeys.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(elementFromPointChange(keys))\n }\n\n animationFrameRequestId = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nexport function initialize(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const stopMeasuringElements = dispatch(startMeasuringElements())\n const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement())\n const stopHandlingFocusEvent = dispatch(startHandlingFocusEvents())\n const unlockDocumentScroll = dispatch(lockDocumentScroll())\n const stopHandlingPointerMoveEvent = dispatch(startHandlingPointerMoveEvent())\n const stopPollingElementFromPoint = dispatch(startPollingElementFromPoint())\n dispatch(setIsInBuilder(true))\n\n return () => {\n stopMeasuringElements()\n stopMeasuringDocumentElement()\n stopHandlingFocusEvent()\n unlockDocumentScroll()\n stopHandlingPointerMoveEvent()\n stopPollingElementFromPoint()\n dispatch(setIsInBuilder(false))\n }\n }\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction measureBoxModelsMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch }: MiddlewareAPI<Dispatch>) =>\n (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE: {\n if (BoxModels.isMeasurable(action.payload.componentHandle)) {\n dispatch(\n registerMeasurable(\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n }\n\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE:\n dispatch(unregisterMeasurable(action.payload.documentKey, action.payload.elementKey))\n break\n }\n\n return next(action)\n }\n }\n}\n\nexport function messageChannelMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n let cleanUp = () => {}\n\n if (typeof window === 'undefined') return cleanUp\n\n const messageChannel = new window.MessageChannel()\n\n window.parent.postMessage(messageChannel.port2, '*', [messageChannel.port2])\n\n messageChannel.port1.onmessage = (event: MessageEvent<Action>) => dispatch(event.data)\n\n const state = getState()\n const registeredComponentsMeta = getComponentsMeta(state)\n\n registeredComponentsMeta.forEach((componentMeta, componentType) => {\n const propControllerDescriptors = getComponentPropControllerDescriptors(\n state,\n componentType,\n )\n\n if (propControllerDescriptors != null) {\n const [serializedControls, transferables] = serializeControls(propControllerDescriptors)\n\n messageChannel.port1.postMessage(\n registerBuilderComponent(componentType, componentMeta, serializedControls),\n transferables,\n )\n }\n })\n\n const breakpoints = ReactPage.getBreakpoints(state)\n messageChannel.port1.postMessage(setBreakpoints(breakpoints))\n\n const locales = ReactPage.getLocales(state)\n const defaultLocale = ReactPage.getDefaultLocale(state)\n const routerLocale = Router.locale\n if (locales.length > 0) messageChannel.port1.postMessage(setLocales(locales))\n if (defaultLocale != null) messageChannel.port1.postMessage(setDefaultLocale(defaultLocale))\n if (routerLocale != null && locales.some(locale => locale.toString() === routerLocale)) {\n messageChannel.port1.postMessage(setLocale(new Intl.Locale(routerLocale)))\n }\n\n Router.events.on('routeChangeStart', () => {\n messageChannel.port1.postMessage(changePathnameStart())\n })\n\n Router.events.on('routeChangeComplete', () => {\n messageChannel.port1.postMessage(changePathnameComplete())\n })\n\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.CHANGE_ELEMENT_BOX_MODELS:\n case ActionTypes.MOUNT_COMPONENT:\n case ActionTypes.UNMOUNT_COMPONENT:\n case ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:\n case ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:\n case ActionTypes.HANDLE_WHEEL:\n case ActionTypes.HANDLE_POINTER_MOVE:\n case ActionTypes.ELEMENT_FROM_POINT_CHANGE:\n messageChannel.port1.postMessage(action)\n break\n\n case ActionTypes.REGISTER_COMPONENT: {\n const { type, meta, propControllerDescriptors } = action.payload\n const [serializedControls, transferables] = serializeControls(propControllerDescriptors)\n\n messageChannel.port1.postMessage(\n registerBuilderComponent(type, meta, serializedControls),\n transferables,\n )\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT:\n messageChannel.port1.postMessage(unregisterBuilderComponent(action.payload.type))\n break\n\n case ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP:\n window.document.documentElement.scrollTop = action.payload.scrollTop\n break\n\n case ActionTypes.SCROLL_DOCUMENT_ELEMENT:\n window.document.documentElement.scrollTop += action.payload.scrollTopDelta\n break\n\n case ActionTypes.SET_BUILDER_EDIT_MODE:\n messageChannel.port1.postMessage(action)\n window.getSelection()?.removeAllRanges()\n break\n\n case ActionTypes.SET_LOCALE: {\n const { pathname, asPath, query } = Router\n\n Router.replace({ pathname, query }, asPath, { locale: action.payload.locale })\n break\n }\n\n case ActionTypes.CHANGE_PATHNAME: {\n const pathname = action.payload.pathname.replace(/^\\//, '/')\n const currentPathname = Router.asPath.replace(/^\\//, '/')\n\n if (pathname !== currentPathname) Router.push(pathname)\n break\n }\n\n case ActionTypes.INIT:\n cleanUp = dispatch(initialize())\n break\n\n case ActionTypes.CLEAN_UP:\n cleanUp()\n break\n }\n\n return next(action)\n }\n }\n}\n\nfunction createAndRegisterPropControllers(\n documentKey: string,\n elementKey: string,\n): ThunkAction<Record<string, PropController> | null, State, unknown, Action> {\n return (dispatch, getState) => {\n const descriptors = ReactPage.getElementPropControllerDescriptors(\n getState(),\n documentKey,\n elementKey,\n )\n\n if (descriptors == null) return null\n\n const propControllers = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {\n const propController = createPropController(descriptor, message =>\n dispatch(messageBuilderPropController(documentKey, elementKey, propName, message)),\n ) as PropController\n\n return { ...acc, [propName]: propController }\n }, {} as Record<string, PropController>)\n\n dispatch(registerPropControllers(documentKey, elementKey, propControllers))\n\n return propControllers\n }\n}\n\nfunction propControllerHandlesMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey, componentHandle } = action.payload\n const element = ReactPage.getElement(getState(), documentKey, elementKey)\n const propControllers = dispatch(\n createAndRegisterPropControllers(documentKey, elementKey),\n )\n\n if (\n element != null &&\n !ReactPage.isElementReference(element) &&\n PropControllerHandles.isPropControllersHandle(componentHandle)\n ) {\n dispatch(registerPropControllersHandle(documentKey, elementKey, componentHandle))\n componentHandle.setPropControllers(propControllers)\n }\n\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey } = action.payload\n const handle = PropControllerHandles.getPropControllersHandle(\n getPropControllerHandlesStateSlice(getState()),\n documentKey,\n elementKey,\n )\n\n handle?.setPropControllers(null)\n\n dispatch(unregisterPropControllers(documentKey, elementKey))\n\n break\n }\n\n case ActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {\n const propController = PropControllerHandles.getPropController(\n getPropControllerHandlesStateSlice(getState()),\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.propName,\n )\n\n if (propController) propController.recv(action.payload.message)\n }\n }\n\n return next(action)\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, it, fn, expect } = import.meta.vitest\n\n describe('propControllerHandlesMiddleware', () => {\n it('registers prop controllers for element data', () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { key: 'elementKey', type: 'type', props: {} }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const setPropControllers = fn()\n const handle = new ElementImperativeHandle()\n\n handle.callback(() => ({ setPropControllers }))\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(setPropControllers).toHaveBeenCalled()\n })\n\n it(\"doesn't register prop controllers for element references\", () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { type: 'reference', key: 'elementKey', value: 'value' }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const setPropControllers = fn()\n const handle = new ElementImperativeHandle()\n\n handle.callback(() => ({ setPropControllers }))\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(setPropControllers).not.toHaveBeenCalled()\n })\n })\n}\n\nfunction makeswiftApiClientSyncMiddleware(\n client: MakeswiftClient,\n): Middleware<Dispatch, State, Dispatch> {\n return () => (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n client.makeswiftApiClient.dispatch(action)\n\n return next(action)\n }\n }\n}\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n rootElements,\n preloadedState,\n client,\n}: {\n rootElements?: Map<string, Documents.Element>\n preloadedState?: PreloadedState<State>\n client: MakeswiftClient\n}): Store {\n const initialState: PreloadedState<State> = {\n ...preloadedState,\n documents: Documents.getInitialState({ rootElements }),\n isPreview: IsPreview.getInitialState(true),\n }\n\n return createStore(\n reducer,\n initialState,\n applyMiddleware(\n thunk,\n measureBoxModelsMiddleware(),\n messageChannelMiddleware(),\n propControllerHandlesMiddleware(),\n makeswiftApiClientSyncMiddleware(client),\n ),\n )\n}\n","import { ReactNode, useEffect, useMemo } from 'react'\n\nimport { StoreContext, ReactRuntime } from '..'\nimport * as ReactBuilderPreview from '../../../state/react-builder-preview'\nimport * as ReactPage from '../../../state/react-page'\nimport { MakeswiftProvider, MakeswiftClient } from '../../../api/react'\nimport { registerDocumentEffect } from '../../../state/actions'\n\ntype Props = {\n client: MakeswiftClient\n rootElements?: Map<string, ReactPage.Element>\n children?: ReactNode\n runtime?: ReactRuntime\n}\n\nexport default function PreviewProvider({\n client,\n children,\n rootElements,\n runtime,\n}: Props): JSX.Element {\n const store = useMemo(\n () =>\n ReactBuilderPreview.configureStore({\n preloadedState: runtime ? runtime.store.getState() : ReactRuntime.store.getState(),\n rootElements,\n client,\n }),\n [client, rootElements, runtime],\n )\n\n useEffect(() => {\n const unregisterDocuments = Array.from(rootElements?.entries() ?? []).map(\n ([documentKey, rootElement]) =>\n store.dispatch(registerDocumentEffect(ReactPage.createDocument(documentKey, rootElement))),\n )\n\n return () => {\n unregisterDocuments.forEach(unregisterDocument => {\n unregisterDocument()\n })\n }\n }, [store, rootElements])\n\n return (\n <StoreContext.Provider value={store}>\n <MakeswiftProvider client={client}>{children}</MakeswiftProvider>\n </StoreContext.Provider>\n )\n}\n"],"names":["ReadOnlyDocuments.getInitialState","ReadOnlyDocuments.getDocument","getInitialState","ReadOnlyDocuments.reducer","ReadOnlyDocuments.createDocument","Documents.reducer","ReactComponents.reducer","BoxModels.reducer","ComponentsMeta.reducer","PropControllers.reducer","PropControllerHandles.reducer","IsInBuilder.reducer","IsPreview.reducer","BuilderEditMode.reducer","Pointer.reducer","ElementImperativeHandles.reducer","Breakpoints.reducer","Locales.reducer","BoxModels.getMeasurables","BoxModels.getBoxModels","BoxModels.getBoxModel","ComponentsMeta.getComponentsMeta","PropControllers.getComponentPropControllerDescriptors","Pointer.getPointer","ElementImperativeHandles.getElementImperativeHandles","BoxModels.measure","ReactPage.getBuilderEditMode","BuilderEditMode.BuilderEditMode","ReactPage.getDocumentKeysSortedByDepth","BoxModels.isMeasurable","ReactPage.getBreakpoints","ReactPage.getLocales","ReactPage.getDefaultLocale","ReactPage.getElementPropControllerDescriptors","ReactPage.getElement","ReactPage.isElementReference","PropControllerHandles.isPropControllersHandle","PropControllerHandles.getPropControllersHandle","PropControllerHandles.getPropController","ReactPage.createDocument","Documents.getInitialState","IsPreview.getInitialState","client","children","rootElements","runtime","store","useMemo","ReactBuilderPreview","preloadedState","getState","ReactRuntime","useEffect","unregisterDocuments","Array","from","entries","map","documentKey","rootElement","dispatch","registerDocumentEffect","ReactPage","forEach","unregisterDocument","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,eAAe,MAAiC,WAAiD;AAC/F,MAAI,UAAU;AAEd,YAAU,QAAQ,CAAa,cAAA;AAE7B,QAAI,UAAU,MAAM;AAAgB,gBAAA,SAAS,SAAS,UAAU,CAAC;AAGjE,QAAI,UAAU,MAAM;AAAgB,gBAAA,SAAS,SAAS,UAAU,CAAC;AAGjE,QAAI,UAAU,MAAM;AAAM,gBAAU,MAAM,SAAS,UAAU,GAAG,UAAU,EAAE;AAG5E,QAAI,UAAU,MAAM;AAAM,gBAAU,MAAM,SAAS,UAAU,GAAG,UAAU,EAAE;AAAA,EAAA,CAC7E;AAEM,SAAA;AACT;AAIgC,2BAAA;AAAA,EAC9B;AAAA,IAGE,IAAW;AACb,SAAOA,kBAAkC,EAAE,aAAA,CAAc;AAC3D;AAEA,wCAAwC,OAAuC;AACtE,SAAA;AACT;AAEO,qBAAqB,OAAc,aAAwD;AAChG,SAAOC,cAA8B,+BAA+B,KAAK,GAAG,WAAW;AACzF;AAEwB,mBAAA,QAAeC,kBAAgB,GAAG,QAAuB;;AAC/E,QAAM,YAAYC,UAA0B,OAAO,MAAM;AAEzD,UAAQ,OAAO;AAAA,SACR,YAAY,iBAAiB;AAChC,YAAM,qBAAqB,kBAAY,WAAW,OAAO,QAAQ,WAAW,MAAjD,mBAAoD;AAE/E,UAAI,sBAAsB;AAAa,eAAA;AAEvC,YAAM,kBAAkB,MAAM,oBAAoB,OAAO,QAAQ,SAAS;AAE1E,aAAO,uBAAuB,kBAC1B,YACA,IAAI,IAAI,SAAS,EAAE,IACjB,OAAO,QAAQ,aACfC,eAAiC,OAAO,QAAQ,aAAa,eAAe,CAC9E;AAAA,IACN;AAAA;AAGS,aAAA;AAAA;AAEb;AC9DA,6BAAkC;AACzB,SAAA,EAAE,SAAS;AACpB;AAEO,sBAAoB,OAA4B;AACrD,SAAO,MAAM;AACf;AAEwB,mBAAA,QAAeF,kBAAgB,GAAG,QAAuB;AAC/E,UAAQ,OAAO;AAAA,SACR,YAAY;AACf,aAAO,iCAAK,QAAL,EAAY,SAAS,OAAO,QAAQ;;AAGpC,aAAA;AAAA;AAEb;ACnBO,uCACL,OACmD;AAC5C,SAAA;AACT;AAEA,2BAAkC;AAChC,6BAAW,IAAI;AACjB;AAEwB,mBAAA,QAAe,gBAAgB,GAAG,QAAuB;;AAC/E,UAAQ,OAAO;AAAA,SACR,YAAY;AACf,aAAO,IAAI,IAAI,KAAK,EAAE,IACpB,OAAO,QAAQ,aACf,IAAI,IAAI,IAAI,IAAI,YAAM,IAAI,OAAO,QAAQ,WAAW,MAApC,YAAyC,EAAE,CAAC,EAAE,IAC5D,OAAO,QAAQ,YACf,OAAO,QAAQ,eACjB,CACF;AAAA,SAEG,YAAY,6BAA6B;AACtC,YAAA,eAAe,IAAI,IAAI,YAAM,IAAI,OAAO,QAAQ,WAAW,MAApC,YAAyC,CAAA,CAAE;AAExE,YAAM,UAAU,aAAa,OAAO,OAAO,QAAQ,UAAU;AAE7D,UAAI,CAAC;AAAgB,eAAA;AAEd,aAAA,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,QAAQ,aAAa,YAAY;AAAA,IACpE;AAAA;AAGS,aAAA;AAAA;AAEb;AC0BA,MAAM,UAAU,gBAAgB;AAAA,EAC9B,WAAWG;AAAAA,EACX,iBAAiBC;AAAAA,EACjB,WAAWC;AAAAA,EACX,gBAAgBC;AAAAA,EAChB,iBAAiBC;AAAAA,EACjB,uBAAuBC;AAAAA,EACvB,aAAaC;AAAAA,EACb,WAAWC;AAAAA,EACX,iBAAiBC;AAAAA,EACjB,SAASC;AAAAA,EACT,0BAA0BC;AAAAA,EAC1B,aAAaC;AAAAA,EACb,SAASC;AACX,CAAC;AAID,gCAAgC,OAA+B;AAC7D,SAAO,MAAM;AACf;AAEA,wBAAwB,OAA8D;AACpF,SAAOC,iBAAyB,uBAAuB,KAAK,CAAC;AAC/D;AAEA,sBAAsB,OAA4D;AAChF,SAAOC,eAAuB,uBAAuB,KAAK,CAAC;AAC7D;AAEA,qBACE,OACA,aACA,YAC2B;AAC3B,SAAOC,cAAsB,uBAAuB,KAAK,GAAG,aAAa,UAAU;AACrF;AAEA,qCAAqC,OAAoC;AACvE,SAAO,MAAM;AACf;AAEA,2BAA2B,OAAyD;AAClF,SAAOC,oBAAiC,4BAA4B,KAAK,CAAC;AAC5E;AAEA,sCAAsC,OAAqC;AACzE,SAAO,MAAM;AACf;AAEA,+CACE,OACA,eACiE;AACjE,SAAOC,wCACL,6BAA6B,KAAK,GAClC,aACF;AACF;AAEA,4CAA4C,OAA2C;AACrF,SAAO,MAAM;AACf;AAEA,oBAAoB,OAAoC;AAC/C,SAAAC,aAAmB,MAAM,OAAO;AACzC;AAEA,qCACE,OACmD;AAC5C,SAAAC,8BAAqD,MAAM,wBAAwB;AAC5F;AAEA,sDACE,OACA,SACmD;AAC7C,QAAA,2BAA2B,4BAA4B,KAAK;AAC5D,QAAA,uDAAuC;AAElC,aAAA,CAAC,aAAa,iBAAiB,0BAA0B;AAC5D,UAAA,2CAA2B;AAEtB,eAAA,CAAC,YAAY,4BAA4B,cAAc;AAC1D,YAAA,gBAAgB,wBAAwB;AAE1C,UAAA,+CAAe,SAAS,UAAU;AACf,6BAAA,IAAI,YAAY,uBAAuB;AAAA,MAC9D;AAAA,IACF;AAEI,QAAA,qBAAqB,OAAO,GAAG;AACA,uCAAA,IAAI,aAAa,oBAAoB;AAAA,IACxE;AAAA,EACF;AAEO,SAAA;AACT;AAEA,2BAAsE;AAC7D,SAAA,CAAC,UAAU,aAAa;AACvB,UAAA,cAAc,eAAe,SAAA,CAAU;AACvC,UAAA,mBAAmB,aAAa,SAAA,CAAU;AAC1C,UAAA,wCAAwB;AAElB,gBAAA,QAAQ,CAAC,qBAAqB,gBAAgB;AAClD,YAAA,gDAAgC;AAElB,0BAAA,QAAQ,CAAC,YAAY,eAAe;AAChD,cAAA,WAAWC,QAAkB,UAAU;AAE7C,YAAI,YAAY;AAAgC,oCAAA,IAAI,YAAY,QAAQ;AAAA,MAAA,CACzE;AAEG,UAAA,0BAA0B,OAAO,GAAG;AACpB,0BAAA,IAAI,aAAa,yBAAyB;AAAA,MAC9D;AAAA,IAAA,CACD;AAEK,UAAA,uCAAuB;AAEZ,qBAAA,QAAQ,CAAC,0BAA0B,gBAAgB;AAC5D,YAAA,+CAA+B;AAEZ,+BAAA,QAAQ,CAAC,WAAW,eAAe;;AAC1D,YAAI,CAAC,yBAAkB,IAAI,WAAW,MAAjC,mBAAoC,IAAI,cAAa;AAC/B,mCAAA,IAAI,YAAY,IAAI;AAAA,QAC/C;AAEI,YAAA,yBAAyB,OAAO,GAAG;AACpB,2BAAA,IAAI,aAAa,wBAAwB;AAAA,QAC5D;AAAA,MAAA,CACD;AAAA,IAAA,CACF;AAEiB,sBAAA,QAAQ,CAAC,2BAA2B,gBAAgB;AAC9D,YAAA,+CAA+B;AAEX,gCAAA,QAAQ,CAAC,kBAAkB,eAAe;AAClE,cAAM,kBAAkB,YAAY,SAAS,GAAG,aAAa,UAAU;AAEvE,YAAI,mBAAmB,QAAQ,CAAC,UAAU,iBAAiB,gBAAgB,GAAG;AACnD,mCAAA,IAAI,YAAY,gBAAgB;AAAA,QAC3D;AAAA,MAAA,CACD;AAEG,UAAA,yBAAyB,OAAO,GAAG;AACpB,yBAAA,IAAI,aAAa,wBAAwB;AAAA,MAC5D;AAAA,IAAA,CACD;AAED,QAAI,iBAAiB,OAAO;AAAY,eAAA,uBAAuB,gBAAgB,CAAC;AAAA,EAAA;AAEpF;AAE0F,kCAAA;AACxF,SAAO,CAAY,aAAA;AACb,QAAA,uBAAuB,sBAAsB,2BAA2B;AAE5E,WAAO,MAAM;AACX,2BAAqB,oBAAoB;AAAA,IAAA;AAGJ,2CAAA;AACrC,eAAS,iBAAiB;AAE1B,6BAAuB,sBAAsB,2BAA2B;AAAA,IAC1E;AAAA,EAAA;AAEJ;AAaA,wBAAwB,SAA4B;AAC3C,SAAA;AAAA,IACL,aAAa,QAAQ;AAAA,IACrB,cAAc,QAAQ;AAAA,IACtB,aAAa,QAAQ;AAAA,IACrB,cAAc,QAAQ;AAAA,IACtB,aAAa,QAAQ;AAAA,IACrB,cAAc,QAAQ;AAAA,IACtB,WAAW,QAAQ;AAAA,IACnB,YAAY,QAAQ;AAAA,EAAA;AAExB;AAEA,8BAA+E;AAC7E,SAAO,CAAY,aAAA;AACjB,UAAM,uBAAuB,OAAO,SAAS,gBAAgB,MAAM;AAC5D,WAAA,SAAS,gBAAgB,MAAM,WAAW;AAEjD,WAAO,SAAS,gBAAgB,iBAAiB,SAAS,gBAAgB;AAE1E,WAAO,MAAM;AACJ,aAAA,SAAS,gBAAgB,MAAM,WAAW;AACjD,aAAO,SAAS,gBAAgB,oBAAoB,SAAS,gBAAgB;AAAA,IAAA;AAGrD,8BAAA,EAAE,QAAQ,UAAsB;AACxD,eAAS,YAAY,EAAE,QAAQ,OAAA,CAAQ,CAAC;AAAA,IAC1C;AAAA,EAAA;AAEJ;AAEA,yCAA0F;AACxF,SAAO,CAAY,aAAA;AACjB,WAAO,SAAS,gBAAgB,iBAAiB,eAAe,sBAAsB;AAEtF,WAAO,MAAM;AACX,aAAO,SAAS,gBAAgB,oBAAoB,eAAe,sBAAsB;AAAA,IAAA;AAG3D,oCAAA,EAAE,SAAS,WAAyB;AAClE,eAAS,kBAAkB,EAAE,SAAS,QAAA,CAAS,CAAC;AAAA,IAClD;AAAA,EAAA;AAEJ;AAEA,oCAAqF;AAC5E,SAAA,CAAC,WAAW,aAAa;AACvB,WAAA,iBAAiB,WAAW,aAAa;AACzC,WAAA,iBAAiB,YAAY,cAAc;AAElD,WAAO,MAAM;AACJ,aAAA,oBAAoB,WAAW,aAAa;AAC5C,aAAA,oBAAoB,YAAY,cAAc;AAAA,IAAA;AAGvD,2BAAuB,OAAmB;AACxC,UAAIC,mBAA6B,SAAA,CAAU,MAAMC,gBAAgC,UAAU;AACzF;AAAA,MACF;AAEI,UAAA,QAAQ,kBAAkB,OAAO,gBAAgB,CAAC,MAAM,OAAO,mBAAmB;AACpF,eAAO,OAAO;MAChB;AAAA,IACF;AAEA,4BAAwB,OAAmB;AACzC,UAAID,mBAA6B,SAAA,CAAU,MAAMC,gBAAgC,UAAU;AACzF;AAAA,MACF;AAGE,UAAA,QAAQ,yBAAyB,OAAO,gBACxC,CAAC,MAAM,cAAc,mBACrB;AACA,eAAO,OAAO;MAChB;AAAA,IACF;AAAA,EAAA;AAEJ;AAEA,yCAA4F;AAC1F,SAAO,CAAY,aAAA;AACb,QAAA,uBAAuB,sBAAsB,2BAA2B;AACxE,QAAA;AAEJ,WAAO,MAAM;AACX,2BAAqB,oBAAoB;AAAA,IAAA;AAGJ,2CAAA;AACrC,YAAM,WAAW,eAAe,OAAO,SAAS,eAAe;AAE/D,UAAI,CAAC,UAAU,UAAU,QAAQ,GAAG;AACvB,mBAAA;AAEF,iBAAA,0BAA0B,QAAQ,CAAC;AAAA,MAC9C;AAEA,6BAAuB,sBAAsB,2BAA2B;AAAA,IAC1E;AAAA,EAAA;AAEJ;AAEA,yCACE,kBACyF;AAClF,SAAA,CAAC,WAAW,aAAa;AAC9B,QAAI,oBAAoB;AAAa,aAAA;AAErC,UAAM,2BAA2B,6CAC/B,SAAS,GACT,gBACF;AACA,UAAM,4BAA4BC,6BAAuC,SAAA,CAAU;AACnF,UAAM,8BAA8B,0BAA0B,MAAM,EAAE,QAAQ;AAE9E,QAAI,iBAAiC;AACrC,QAAI,OAAO;AAEX,WAAO,kBAAkB,MAAM;AAC7B,iBAAW,eAAe,6BAA6B;AAC/C,cAAA,eAAe,yBAAyB,IAAI,WAAW;AAE7D,YAAI,gBAAgB;AAAM;AAEf,mBAAA,CAAC,YAAY,4BAA4B,cAAc;AAC5D,cAAA,wBAAwB,WAAW,MAAM,gBAAgB;AACpD,mBAAA,EAAE,aAAa;UACxB;AAAA,QACF;AAAA,MACF;AAEA,uBAAiB,eAAe;AAAA,IAClC;AAEO,WAAA;AAAA,EAAA;AAEX;AAEA,wCAAyF;AAChF,SAAA,CAAC,UAAU,aAAa;AAC7B,QAAI,uBAAuC;AACvC,QAAA,0BAA0B,sBAAsB,2BAA2B;AAE/E,WAAO,MAAM;AACX,2BAAqB,uBAAuB;AAAA,IAAA;AAGP,2CAAA;AAC/B,YAAA,UAAU,WAAW,SAAA,CAAU;AAC/B,YAAA,mBACJ,WAAW,OAAO,OAAO,SAAS,iBAAiB,QAAQ,GAAG,QAAQ,CAAC;AAEzE,UAAI,qBAAqB,sBAAsB;AACtB,+BAAA;AAEvB,cAAM,OAAO,SAAS,gCAAgC,gBAAgB,CAAC;AAE9D,iBAAA,uBAAuB,IAAI,CAAC;AAAA,MACvC;AAEA,gCAA0B,sBAAsB,2BAA2B;AAAA,IAC7E;AAAA,EAAA;AAEJ;AAE8E,sBAAA;AAC5E,SAAO,CAAY,aAAA;AACX,UAAA,wBAAwB,SAAS,uBAAA,CAAwB;AACzD,UAAA,+BAA+B,SAAS,8BAAA,CAA+B;AACvE,UAAA,yBAAyB,SAAS,yBAAA,CAA0B;AAC5D,UAAA,uBAAuB,SAAS,mBAAA,CAAoB;AACpD,UAAA,+BAA+B,SAAS,8BAAA,CAA+B;AACvE,UAAA,8BAA8B,SAAS,6BAAA,CAA8B;AAClE,aAAA,eAAe,IAAI,CAAC;AAE7B,WAAO,MAAM;AACW;AACO;AACN;AACF;AACQ;AACD;AACnB,eAAA,eAAe,KAAK,CAAC;AAAA,IAAA;AAAA,EAChC;AAEJ;AAIA,sCAA6E;AAC3E,SAAO,CAAC,EAAE,eACR,CAAC,SAAgC;AAC/B,WAAO,CAAC,WAA2B;AACjC,cAAQ,OAAO;AAAA,aACR,YAAY,2BAA2B;AAC1C,cAAIC,aAAuB,OAAO,QAAQ,eAAe,GAAG;AAExD,qBAAA,mBACE,OAAO,QAAQ,aACf,OAAO,QAAQ,YACf,OAAO,QAAQ,eACjB,CACF;AAAA,UACF;AAEA;AAAA,QACF;AAAA,aAEK,YAAY;AACf,mBAAS,qBAAqB,OAAO,QAAQ,aAAa,OAAO,QAAQ,UAAU,CAAC;AACpF;AAAA;AAGJ,aAAO,KAAK,MAAM;AAAA,IAAA;AAAA,EACpB;AAEN;AAEkF,oCAAA;AAChF,SAAO,CAAC,EAAE,UAAU,eAClB,CAAC,SAAgC;AAC/B,QAAI,UAAU,MAAM;AAAA,IAAA;AAEpB,QAAI,OAAO,WAAW;AAAoB,aAAA;AAEpC,UAAA,iBAAiB,IAAI,OAAO;AAE3B,WAAA,OAAO,YAAY,eAAe,OAAO,KAAK,CAAC,eAAe,KAAK,CAAC;AAE3E,mBAAe,MAAM,YAAY,CAAC,UAAgC,SAAS,MAAM,IAAI;AAErF,UAAM,QAAQ;AACR,UAAA,2BAA2B,kBAAkB,KAAK;AAE/B,6BAAA,QAAQ,CAAC,eAAe,kBAAkB;AAC3D,YAAA,4BAA4B,sCAChC,OACA,aACF;AAEA,UAAI,6BAA6B,MAAM;AACrC,cAAM,CAAC,oBAAoB,iBAAiB,kBAAkB,yBAAyB;AAEvF,uBAAe,MAAM,YACnB,yBAAyB,eAAe,eAAe,kBAAkB,GACzE,aACF;AAAA,MACF;AAAA,IAAA,CACD;AAEK,UAAA,cAAcC,eAAyB,KAAK;AAClD,mBAAe,MAAM,YAAY,eAAe,WAAW,CAAC;AAEtD,UAAA,UAAUC,WAAqB,KAAK;AACpC,UAAA,gBAAgBC,iBAA2B,KAAK;AACtD,UAAM,eAAe,OAAO;AAC5B,QAAI,QAAQ,SAAS;AAAG,qBAAe,MAAM,YAAY,WAAW,OAAO,CAAC;AAC5E,QAAI,iBAAiB;AAAM,qBAAe,MAAM,YAAY,iBAAiB,aAAa,CAAC;AACvF,QAAA,gBAAgB,QAAQ,QAAQ,KAAK,YAAU,OAAO,eAAe,YAAY,GAAG;AACvE,qBAAA,MAAM,YAAY,UAAU,IAAI,KAAK,OAAO,YAAY,CAAC,CAAC;AAAA,IAC3E;AAEO,WAAA,OAAO,GAAG,oBAAoB,MAAM;AAC1B,qBAAA,MAAM,YAAY,oBAAqB,CAAA;AAAA,IAAA,CACvD;AAEM,WAAA,OAAO,GAAG,uBAAuB,MAAM;AAC7B,qBAAA,MAAM,YAAY,uBAAwB,CAAA;AAAA,IAAA,CAC1D;AAED,WAAO,CAAC,WAA2B;;AACjC,cAAQ,OAAO;AAAA,aACR,YAAY;AAAA,aACZ,YAAY;AAAA,aACZ,YAAY;AAAA,aACZ,YAAY;AAAA,aACZ,YAAY;AAAA,aACZ,YAAY;AAAA,aACZ,YAAY;AAAA,aACZ,YAAY;AACA,yBAAA,MAAM,YAAY,MAAM;AACvC;AAAA,aAEG,YAAY,oBAAoB;AACnC,gBAAM,EAAE,MAAM,MAAM,8BAA8B,OAAO;AACzD,gBAAM,CAAC,oBAAoB,iBAAiB,kBAAkB,yBAAyB;AAEvF,yBAAe,MAAM,YACnB,yBAAyB,MAAM,MAAM,kBAAkB,GACvD,aACF;AACA;AAAA,QACF;AAAA,aAEK,YAAY;AACf,yBAAe,MAAM,YAAY,2BAA2B,OAAO,QAAQ,IAAI,CAAC;AAChF;AAAA,aAEG,YAAY;AACf,iBAAO,SAAS,gBAAgB,YAAY,OAAO,QAAQ;AAC3D;AAAA,aAEG,YAAY;AACf,iBAAO,SAAS,gBAAgB,aAAa,OAAO,QAAQ;AAC5D;AAAA,aAEG,YAAY;AACA,yBAAA,MAAM,YAAY,MAAM;AAChC,uBAAA,mBAAA,mBAAgB;AACvB;AAAA,aAEG,YAAY,YAAY;AACrB,gBAAA,EAAE,UAAU,QAAQ,UAAU;AAE7B,iBAAA,QAAQ,EAAE,UAAU,MAAM,GAAG,QAAQ,EAAE,QAAQ,OAAO,QAAQ,OAAQ,CAAA;AAC7E;AAAA,QACF;AAAA,aAEK,YAAY,iBAAiB;AAChC,gBAAM,WAAW,OAAO,QAAQ,SAAS,QAAQ,OAAO,GAAG;AAC3D,gBAAM,kBAAkB,OAAO,OAAO,QAAQ,OAAO,GAAG;AAExD,cAAI,aAAa;AAAiB,mBAAO,KAAK,QAAQ;AACtD;AAAA,QACF;AAAA,aAEK,YAAY;AACL,oBAAA,SAAS,YAAY;AAC/B;AAAA,aAEG,YAAY;AACP;AACR;AAAA;AAGJ,aAAO,KAAK,MAAM;AAAA,IAAA;AAAA,EACpB;AAEN;AAEA,0CACE,aACA,YAC4E;AACrE,SAAA,CAAC,UAAU,aAAa;AAC7B,UAAM,cAAcC,oCAClB,SAAS,GACT,aACA,UACF;AAEA,QAAI,eAAe;AAAa,aAAA;AAE1B,UAAA,kBAAkB,OAAO,QAAQ,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,gBAAgB;AACpF,YAAA,iBAAiB,qBAAqB,YAAY,CACtD,YAAA,SAAS,6BAA6B,aAAa,YAAY,UAAU,OAAO,CAAC,CACnF;AAEO,aAAA,iCAAK,MAAL,GAAW,WAAW,eAAe;AAAA,IAC9C,GAAG,CAAoC,CAAA;AAEvC,aAAS,wBAAwB,aAAa,YAAY,eAAe,CAAC;AAEnE,WAAA;AAAA,EAAA;AAEX;AAEA,2CAAkF;AAChF,SAAO,CAAC,EAAE,UAAU,eAClB,CAAC,SAAgC;AAC/B,WAAO,CAAC,WAA2B;AACjC,cAAQ,OAAO;AAAA,aACR,YAAY,2BAA2B;AAC1C,gBAAM,EAAE,aAAa,YAAY,oBAAoB,OAAO;AAC5D,gBAAM,UAAUC,WAAqB,SAAS,GAAG,aAAa,UAAU;AACxE,gBAAM,kBAAkB,SACtB,iCAAiC,aAAa,UAAU,CAC1D;AAGE,cAAA,WAAW,QACX,CAACC,mBAA6B,OAAO,KACrCC,wBAA8C,eAAe,GAC7D;AACA,qBAAS,8BAA8B,aAAa,YAAY,eAAe,CAAC;AAChF,4BAAgB,mBAAmB,eAAe;AAAA,UACpD;AAEA;AAAA,QACF;AAAA,aAEK,YAAY,6BAA6B;AACtC,gBAAA,EAAE,aAAa,eAAe,OAAO;AACrC,gBAAA,SAASC,yBACb,mCAAmC,UAAU,GAC7C,aACA,UACF;AAEA,2CAAQ,mBAAmB;AAElB,mBAAA,0BAA0B,aAAa,UAAU,CAAC;AAE3D;AAAA,QACF;AAAA,aAEK,YAAY,8BAA8B;AAC7C,gBAAM,iBAAiBC,kBACrB,mCAAmC,SAAU,CAAA,GAC7C,OAAO,QAAQ,aACf,OAAO,QAAQ,YACf,OAAO,QAAQ,QACjB;AAEI,cAAA;AAA+B,2BAAA,KAAK,OAAO,QAAQ,OAAO;AAAA,QAChE;AAAA;AAGF,aAAO,KAAK,MAAM;AAAA,IAAA;AAAA,EACpB;AAEN;AAEA,IAAI,YAAY,QAAQ;AACtB,QAAM,EAAE,UAAU,IAAI,IAAI,WAAW,YAAY;AAEjD,WAAS,mCAAmC,MAAM;AAChD,OAAG,+CAA+C,MAAM;AAEtD,YAAM,cAAc;AACd,YAAA,UAA6B,EAAE,KAAK,cAAc,MAAM,QAAQ,OAAO,CAAA;AAC7E,YAAM,QAAQ,YAAY,SAAS,gBAAgB,OAAO,gCAAiC,CAAA,CAAC;AAC5F,YAAM,qBAAqB;AACrB,YAAA,SAAS,IAAI;AAEnB,aAAO,SAAS,MAAS,GAAA,mBAAA,EAAqB;AAE9C,YAAM,SAAS,iBAAiBC,eAAyB,aAAa,OAAO,CAAC,CAAC;AAG/E,YAAM,SAAS,wBAAwB,aAAa,QAAQ,KAAK,MAAM,CAAC;AAGjE,aAAA,kBAAkB,EAAE;IAAiB,CAC7C;AAED,OAAG,4DAA4D,MAAM;AAEnE,YAAM,cAAc;AACpB,YAAM,UAA6B,EAAE,MAAM,aAAa,KAAK,cAAc,OAAO;AAClF,YAAM,QAAQ,YAAY,SAAS,gBAAgB,OAAO,gCAAiC,CAAA,CAAC;AAC5F,YAAM,qBAAqB;AACrB,YAAA,SAAS,IAAI;AAEnB,aAAO,SAAS,MAAS,GAAA,mBAAA,EAAqB;AAE9C,YAAM,SAAS,iBAAiBA,eAAyB,aAAa,OAAO,CAAC,CAAC;AAG/E,YAAM,SAAS,wBAAwB,aAAa,QAAQ,KAAK,MAAM,CAAC;AAGjE,aAAA,kBAAkB,EAAE,IAAI,iBAAiB;AAAA,IAAA,CACjD;AAAA,EAAA,CACF;AACH;AAEA,0CACE,QACuC;AAChC,SAAA,MAAM,CAAC,SAAgC;AAC5C,WAAO,CAAC,WAA2B;AAC1B,aAAA,mBAAmB,SAAS,MAAM;AAEzC,aAAO,KAAK,MAAM;AAAA,IAAA;AAAA,EACpB;AAEJ;AAI+B,wBAAA;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,GAKQ;AACR,QAAM,eAAsC,iCACvC,iBADuC;AAAA,IAE1C,WAAWC,kBAA0B,EAAE,cAAc;AAAA,IACrD,WAAWC,kBAA0B,IAAI;AAAA,EAAA;AAG3C,SAAO,YACL,SACA,cACA,gBACE,OACA,2BAA2B,GAC3B,yBAAyB,GACzB,gCAAgC,GAChC,iCAAiC,MAAM,CACzC,CACF;AACF;ACruBwC,yBAAA;AAAA,EACtCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,GACqB;AACfC,QAAAA,QAAQC,QACZ,MACEC,eAAmC;AAAA,IACjCC,gBAAgBJ,UAAUA,QAAQC,MAAMI,aAAaC,aAAaL,MAAMI,SADvC;AAAA,IAEjCN;AAAAA,IACAF;AAAAA,EAHF,CAAA,GAKF,CAACA,QAAQE,cAAcC,OAAvB,CAPmB;AAUrBO,YAAU,MAAM;;AACRC,UAAAA,sBAAsBC,MAAMC,KAAKX,mDAAcY,cAAdZ,YAA2B,CAAA,CAAtC,EAA0Ca,IACpE,CAAC,CAACC,aAAaC,iBACbb,MAAMc,SAASC,uBAAuBC,eAAyBJ,aAAaC,WAAtC,CAAD,CAArC,CAFwB;AAK5B,WAAO,MAAM;AACXN,0BAAoBU,QAAQC,CAAsB,uBAAA;AAC9B;MAAA,CADpB;AAAA,IAAA;AAAA,EADF,GAKC,CAAClB,OAAOF,YAAR,CAXM;AAcP,SAAAqB,oBAAC,aAAa,UAAd;AAAA,IAAuB,OAAOnB;AAAAA,IAA9B,8BACG,mBAAD;AAAA,MAAmB;AAAA,MAAiBH;AAAAA,IAAAA,CAApC;AAAA,EAAA,CAFJ;AAKD;;"}
|
|
1
|
+
{"version":3,"file":"PreviewProvider.es.js","sources":["../src/state/modules/read-write-documents.ts","../src/state/modules/pointer.ts","../src/state/modules/element-imperative-handles.ts","../src/state/react-builder-preview.ts","../src/runtimes/react/components/PreviewProvider.tsx"],"sourcesContent":["import { Operation } from 'ot-json0'\nimport { removeIn, setIn } from 'immutable'\n\nimport * as ReadOnlyDocuments from './read-only-documents'\nimport { Action, ActionTypes } from '../actions'\n\nexport type { Document, Element, ElementData, ElementReference } from './read-only-documents'\nexport { isElementReference } from './read-only-documents'\nexport type { Operation }\n\nfunction apply(data: ReadOnlyDocuments.Element, operation: Operation): ReadOnlyDocuments.Element {\n let applied = data\n\n operation.forEach(component => {\n // @ts-expect-error: `ld` isn't in all possible values of `component`\n if (component.ld != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `od` isn't in all possible values of `component`\n if (component.od != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `li` isn't in all possible values of `component`\n if (component.li != null) applied = setIn(applied, component.p, component.li)\n\n // @ts-expect-error: `oi` isn't in all possible values of `component`\n if (component.oi != null) applied = setIn(applied, component.p, component.oi)\n })\n\n return applied\n}\n\nexport type State = ReadOnlyDocuments.State\n\nexport function getInitialState({\n rootElements,\n}: {\n rootElements?: Map<string, ReadOnlyDocuments.Element>\n} = {}): State {\n return ReadOnlyDocuments.getInitialState({ rootElements })\n}\n\nfunction getReadOnlyDocumentsStateSlice(state: State): ReadOnlyDocuments.State {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): ReadOnlyDocuments.Document | null {\n return ReadOnlyDocuments.getDocument(getReadOnlyDocumentsStateSlice(state), documentKey)\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n const nextState = ReadOnlyDocuments.reducer(state, action)\n\n switch (action.type) {\n case ActionTypes.CHANGE_DOCUMENT: {\n const currentRootElement = getDocument(nextState, action.payload.documentKey)?.rootElement\n\n if (currentRootElement == null) return nextState\n\n const nextRootElement = apply(currentRootElement, action.payload.operation)\n\n return currentRootElement === nextRootElement\n ? nextState\n : new Map(nextState).set(\n action.payload.documentKey,\n ReadOnlyDocuments.createDocument(action.payload.documentKey, nextRootElement),\n )\n }\n\n default:\n return nextState\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport type Point = { x: number; y: number }\n\ntype State = {\n pointer: Point | null\n}\n\nfunction getInitialState(): State {\n return { pointer: null }\n}\n\nexport function getPointer(state: State): Point | null {\n return state.pointer\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.BUILDER_POINTER_MOVE:\n return { ...state, pointer: action.payload.pointer }\n\n default:\n return state\n }\n}\n","import { ElementImperativeHandle } from '../../runtimes/react/element-imperative-handle'\nimport { Action, ActionTypes } from '../actions'\n\ntype State = Map<string, Map<string, ElementImperativeHandle>>\n\nexport function getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return state\n}\n\nfunction getInitialState(): State {\n return new Map()\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE:\n return new Map(state).set(\n action.payload.documentKey,\n new Map(new Map(state.get(action.payload.documentKey) ?? [])).set(\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const byElementKey = new Map(state.get(action.payload.documentKey) ?? [])\n\n const deleted = byElementKey.delete(action.payload.elementKey)\n\n if (!deleted) return state\n\n return new Map(state).set(action.payload.documentKey, byElementKey)\n }\n\n default:\n return state\n }\n}\n","import {\n applyMiddleware,\n combineReducers,\n createStore,\n Dispatch as ReduxDispatch,\n Middleware,\n MiddlewareAPI,\n PreloadedState,\n Store as ReduxStore,\n} from 'redux'\nimport thunk, { ThunkAction, ThunkDispatch } from 'redux-thunk'\nimport Router from 'next/router'\n\nimport deepEqual from '../utils/deepEqual'\n\nimport * as Documents from './modules/read-write-documents'\nimport * as ReactComponents from './modules/react-components'\nimport * as BoxModels from './modules/box-models'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as PropControllerHandles from './modules/prop-controller-handles'\nimport * as IsInBuilder from './modules/is-in-builder'\nimport * as IsPreview from './modules/is-preview'\nimport * as BuilderEditMode from './modules/builder-edit-mode'\nimport * as Pointer from './modules/pointer'\nimport * as ElementImperativeHandles from './modules/element-imperative-handles'\nimport * as Breakpoints from './modules/breakpoints'\nimport * as Locales from './modules/locales'\nimport * as ReactPage from './react-page'\nimport {\n Action,\n changeDocumentElementSize,\n changeElementBoxModels,\n messageBuilderPropController,\n registerBuilderComponent,\n registerMeasurable,\n registerPropControllers,\n registerPropControllersHandle,\n registerDocument,\n registerComponentHandle,\n unregisterBuilderComponent,\n unregisterMeasurable,\n unregisterPropControllers,\n setIsInBuilder,\n handleWheel,\n handlePointerMove,\n changePathnameStart,\n changePathnameComplete,\n elementFromPointChange,\n setBreakpoints,\n setLocales,\n setLocale,\n setDefaultLocale,\n} from './actions'\nimport { ActionTypes } from './actions'\nimport { createPropController } from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { serializeControls } from '../builder'\nimport { MakeswiftClient } from '../api/react'\nimport { ElementImperativeHandle } from '../runtimes/react/element-imperative-handle'\n\nexport type { Operation } from './modules/read-write-documents'\nexport type { BoxModelHandle } from './modules/box-models'\nexport { createBox, getBox, parse } from './modules/box-models'\n\nconst reducer = combineReducers({\n documents: Documents.reducer,\n reactComponents: ReactComponents.reducer,\n boxModels: BoxModels.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n propControllerHandles: PropControllerHandles.reducer,\n isInBuilder: IsInBuilder.reducer,\n isPreview: IsPreview.reducer,\n builderEditMode: BuilderEditMode.reducer,\n pointer: Pointer.reducer,\n elementImperativeHandles: ElementImperativeHandles.reducer,\n breakpoints: Breakpoints.reducer,\n locales: Locales.reducer,\n})\n\nexport type State = ReturnType<typeof reducer>\n\nfunction getBoxModelsStateSlice(state: State): BoxModels.State {\n return state.boxModels\n}\n\nfunction getMeasurables(state: State): Map<string, Map<string, BoxModels.Measurable>> {\n return BoxModels.getMeasurables(getBoxModelsStateSlice(state))\n}\n\nfunction getBoxModels(state: State): Map<string, Map<string, BoxModels.BoxModel>> {\n return BoxModels.getBoxModels(getBoxModelsStateSlice(state))\n}\n\nfunction getBoxModel(\n state: State,\n documentKey: string,\n elementKey: string,\n): BoxModels.BoxModel | null {\n return BoxModels.getBoxModel(getBoxModelsStateSlice(state), documentKey, elementKey)\n}\n\nfunction getComponentsMetaStateSlice(state: State): ComponentsMeta.State {\n return state.componentsMeta\n}\n\nfunction getComponentsMeta(state: State): Map<string, ComponentsMeta.ComponentMeta> {\n return ComponentsMeta.getComponentsMeta(getComponentsMetaStateSlice(state))\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nfunction getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n return PropControllers.getComponentPropControllerDescriptors(\n getPropControllersStateSlice(state),\n componentType,\n )\n}\n\nfunction getPropControllerHandlesStateSlice(state: State): PropControllerHandles.State {\n return state.propControllerHandles\n}\n\nfunction getPointer(state: State): Pointer.Point | null {\n return Pointer.getPointer(state.pointer)\n}\n\nfunction getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return ElementImperativeHandles.getElementImperativeHandles(state.elementImperativeHandles)\n}\n\nfunction getElementImperativeHandlesContainingElement(\n state: State,\n element: Element,\n): Map<string, Map<string, ElementImperativeHandle>> {\n const elementImperativeHandles = getElementImperativeHandles(state)\n const filteredElementImperativeHandles = new Map<string, Map<string, ElementImperativeHandle>>()\n\n for (const [documentKey, byElementKey] of elementImperativeHandles) {\n const filteredByElementKey = new Map<string, ElementImperativeHandle>()\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n const handleElement = elementImperativeHandle.getDomNode()\n\n if (handleElement?.contains(element)) {\n filteredByElementKey.set(elementKey, elementImperativeHandle)\n }\n }\n\n if (filteredByElementKey.size > 0) {\n filteredElementImperativeHandles.set(documentKey, filteredByElementKey)\n }\n }\n\n return filteredElementImperativeHandles\n}\n\nfunction measureElements(): ThunkAction<void, State, unknown, Action> {\n return (dispatch, getState) => {\n const measurables = getMeasurables(getState())\n const currentBoxModels = getBoxModels(getState())\n const measuredBoxModels = new Map<string, Map<string, BoxModels.BoxModel>>()\n\n measurables.forEach((documentMeasurables, documentKey) => {\n const measuredDocumentBoxModels = new Map<string, BoxModels.BoxModel>()\n\n documentMeasurables.forEach((measurable, elementKey) => {\n const boxModel = BoxModels.measure(measurable)\n\n if (boxModel != null) measuredDocumentBoxModels.set(elementKey, boxModel)\n })\n\n if (measuredDocumentBoxModels.size > 0) {\n measuredBoxModels.set(documentKey, measuredDocumentBoxModels)\n }\n })\n\n const changedBoxModels = new Map<string, Map<string, BoxModels.BoxModel | null>>()\n\n currentBoxModels.forEach((currentDocumentBoxModels, documentKey) => {\n const changedDocumentBoxModels = new Map<string, BoxModels.BoxModel | null>()\n\n currentDocumentBoxModels.forEach((_boxModel, elementKey) => {\n if (!measuredBoxModels.get(documentKey)?.has(elementKey)) {\n changedDocumentBoxModels.set(elementKey, null)\n }\n\n if (changedDocumentBoxModels.size > 0) {\n changedBoxModels.set(documentKey, changedDocumentBoxModels)\n }\n })\n })\n\n measuredBoxModels.forEach((measuredDocumentBoxModels, documentKey) => {\n const changedDocumentBoxModels = new Map<string, BoxModels.BoxModel | null>()\n\n measuredDocumentBoxModels.forEach((measuredBoxModel, elementKey) => {\n const currentBoxModel = getBoxModel(getState(), documentKey, elementKey)\n\n if (currentBoxModel == null || !deepEqual(currentBoxModel, measuredBoxModel)) {\n changedDocumentBoxModels.set(elementKey, measuredBoxModel)\n }\n })\n\n if (changedDocumentBoxModels.size > 0) {\n changedBoxModels.set(documentKey, changedDocumentBoxModels)\n }\n })\n\n if (changedBoxModels.size > 0) dispatch(changeElementBoxModels(changedBoxModels))\n }\n}\n\nexport function startMeasuringElements(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n dispatch(measureElements())\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nexport type Size = {\n offsetWidth: number\n offsetHeight: number\n clientWidth: number\n clientHeight: number\n scrollWidth: number\n scrollHeight: number\n scrollTop: number\n scrollLeft: number\n}\n\nfunction getElementSize(element: HTMLElement): Size {\n return {\n offsetWidth: element.offsetWidth,\n offsetHeight: element.offsetHeight,\n clientWidth: element.clientWidth,\n clientHeight: element.clientHeight,\n scrollWidth: element.scrollWidth,\n scrollHeight: element.scrollHeight,\n scrollTop: element.scrollTop,\n scrollLeft: element.scrollLeft,\n }\n}\n\nfunction lockDocumentScroll(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const lastDocumentOverflow = window.document.documentElement.style.overflow\n window.document.documentElement.style.overflow = 'hidden'\n\n window.document.documentElement.addEventListener('wheel', handleWheelEvent)\n\n return () => {\n window.document.documentElement.style.overflow = lastDocumentOverflow\n window.document.documentElement.removeEventListener('wheel', handleWheelEvent)\n }\n\n function handleWheelEvent({ deltaX, deltaY }: WheelEvent) {\n dispatch(handleWheel({ deltaX, deltaY }))\n }\n }\n}\n\nfunction startHandlingPointerMoveEvent(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n window.document.documentElement.addEventListener('pointermove', handlePointerMoveEvent)\n\n return () => {\n window.document.documentElement.removeEventListener('pointermove', handlePointerMoveEvent)\n }\n\n function handlePointerMoveEvent({ clientX, clientY }: PointerEvent) {\n dispatch(handlePointerMove({ clientX, clientY }))\n }\n }\n}\n\nfunction startHandlingFocusEvents(): 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 (ReactPage.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT) {\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 (ReactPage.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT) {\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: Size\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n const nextSize = getElementSize(window.document.documentElement)\n\n if (!deepEqual(lastSize, nextSize)) {\n lastSize = nextSize\n\n dispatch(changeDocumentElementSize(nextSize))\n }\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\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 acendingDepthDocumentKeys = ReactPage.getDocumentKeysSortedByDepth(getState())\n const descendingDepthDocumentKeys = acendingDepthDocumentKeys.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(elementFromPointChange(keys))\n }\n\n animationFrameRequestId = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nexport function initialize(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const stopMeasuringElements = dispatch(startMeasuringElements())\n const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement())\n const stopHandlingFocusEvent = dispatch(startHandlingFocusEvents())\n const unlockDocumentScroll = dispatch(lockDocumentScroll())\n const stopHandlingPointerMoveEvent = dispatch(startHandlingPointerMoveEvent())\n const stopPollingElementFromPoint = dispatch(startPollingElementFromPoint())\n dispatch(setIsInBuilder(true))\n\n return () => {\n stopMeasuringElements()\n stopMeasuringDocumentElement()\n stopHandlingFocusEvent()\n unlockDocumentScroll()\n stopHandlingPointerMoveEvent()\n stopPollingElementFromPoint()\n dispatch(setIsInBuilder(false))\n }\n }\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction measureBoxModelsMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch }: MiddlewareAPI<Dispatch>) =>\n (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE: {\n if (BoxModels.isMeasurable(action.payload.componentHandle)) {\n dispatch(\n registerMeasurable(\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n }\n\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE:\n dispatch(unregisterMeasurable(action.payload.documentKey, action.payload.elementKey))\n break\n }\n\n return next(action)\n }\n }\n}\n\nexport function messageChannelMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n let cleanUp = () => {}\n\n if (typeof window === 'undefined') return cleanUp\n\n const messageChannel = new window.MessageChannel()\n\n window.parent.postMessage(messageChannel.port2, '*', [messageChannel.port2])\n\n messageChannel.port1.onmessage = (event: MessageEvent<Action>) => dispatch(event.data)\n\n const state = getState()\n const registeredComponentsMeta = getComponentsMeta(state)\n\n registeredComponentsMeta.forEach((componentMeta, componentType) => {\n const propControllerDescriptors = getComponentPropControllerDescriptors(\n state,\n componentType,\n )\n\n if (propControllerDescriptors != null) {\n const [serializedControls, transferables] = serializeControls(propControllerDescriptors)\n\n messageChannel.port1.postMessage(\n registerBuilderComponent(componentType, componentMeta, serializedControls),\n transferables,\n )\n }\n })\n\n const breakpoints = ReactPage.getBreakpoints(state)\n messageChannel.port1.postMessage(setBreakpoints(breakpoints))\n\n const locales = ReactPage.getLocales(state)\n const defaultLocale = ReactPage.getDefaultLocale(state)\n const routerLocale = Router.locale\n if (locales.length > 0) messageChannel.port1.postMessage(setLocales(locales))\n if (defaultLocale != null) messageChannel.port1.postMessage(setDefaultLocale(defaultLocale))\n if (routerLocale != null && locales.some(locale => locale.toString() === routerLocale)) {\n messageChannel.port1.postMessage(setLocale(new Intl.Locale(routerLocale)))\n }\n\n Router.events.on('routeChangeStart', () => {\n messageChannel.port1.postMessage(changePathnameStart())\n })\n\n Router.events.on('routeChangeComplete', () => {\n messageChannel.port1.postMessage(changePathnameComplete())\n })\n\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.CHANGE_ELEMENT_BOX_MODELS:\n case ActionTypes.MOUNT_COMPONENT:\n case ActionTypes.UNMOUNT_COMPONENT:\n case ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:\n case ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:\n case ActionTypes.HANDLE_WHEEL:\n case ActionTypes.HANDLE_POINTER_MOVE:\n case ActionTypes.ELEMENT_FROM_POINT_CHANGE:\n messageChannel.port1.postMessage(action)\n break\n\n case ActionTypes.REGISTER_COMPONENT: {\n const { type, meta, propControllerDescriptors } = action.payload\n const [serializedControls, transferables] = serializeControls(propControllerDescriptors)\n\n messageChannel.port1.postMessage(\n registerBuilderComponent(type, meta, serializedControls),\n transferables,\n )\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT:\n messageChannel.port1.postMessage(unregisterBuilderComponent(action.payload.type))\n break\n\n case ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP:\n window.document.documentElement.scrollTop = action.payload.scrollTop\n break\n\n case ActionTypes.SCROLL_DOCUMENT_ELEMENT:\n window.document.documentElement.scrollTop += action.payload.scrollTopDelta\n break\n\n case ActionTypes.SET_BUILDER_EDIT_MODE:\n messageChannel.port1.postMessage(action)\n window.getSelection()?.removeAllRanges()\n break\n\n case ActionTypes.SET_LOCALE: {\n const { pathname, asPath, query } = Router\n\n Router.replace({ pathname, query }, asPath, { locale: action.payload.locale })\n break\n }\n\n case ActionTypes.CHANGE_PATHNAME: {\n const pathname = action.payload.pathname.replace(/^\\//, '/')\n const currentPathname = Router.asPath.replace(/^\\//, '/')\n\n if (pathname !== currentPathname) Router.push(pathname)\n break\n }\n\n case ActionTypes.INIT:\n cleanUp = dispatch(initialize())\n break\n\n case ActionTypes.CLEAN_UP:\n cleanUp()\n break\n }\n\n return next(action)\n }\n }\n}\n\nfunction createAndRegisterPropControllers(\n documentKey: string,\n elementKey: string,\n): ThunkAction<Record<string, PropController> | null, State, unknown, Action> {\n return (dispatch, getState) => {\n const descriptors = ReactPage.getElementPropControllerDescriptors(\n getState(),\n documentKey,\n elementKey,\n )\n\n if (descriptors == null) return null\n\n const propControllers = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {\n const propController = createPropController(descriptor, message =>\n dispatch(messageBuilderPropController(documentKey, elementKey, propName, message)),\n ) as PropController\n\n return { ...acc, [propName]: propController }\n }, {} as Record<string, PropController>)\n\n dispatch(registerPropControllers(documentKey, elementKey, propControllers))\n\n return propControllers\n }\n}\n\nfunction propControllerHandlesMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey, componentHandle } = action.payload\n const element = ReactPage.getElement(getState(), documentKey, elementKey)\n const propControllers = dispatch(\n createAndRegisterPropControllers(documentKey, elementKey),\n )\n\n if (\n element != null &&\n !ReactPage.isElementReference(element) &&\n PropControllerHandles.isPropControllersHandle(componentHandle)\n ) {\n dispatch(registerPropControllersHandle(documentKey, elementKey, componentHandle))\n componentHandle.setPropControllers(propControllers)\n }\n\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey } = action.payload\n const handle = PropControllerHandles.getPropControllersHandle(\n getPropControllerHandlesStateSlice(getState()),\n documentKey,\n elementKey,\n )\n\n handle?.setPropControllers(null)\n\n dispatch(unregisterPropControllers(documentKey, elementKey))\n\n break\n }\n\n case ActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {\n const propController = PropControllerHandles.getPropController(\n getPropControllerHandlesStateSlice(getState()),\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.propName,\n )\n\n if (propController) propController.recv(action.payload.message)\n }\n }\n\n return next(action)\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, it, fn, expect } = import.meta.vitest\n\n describe('propControllerHandlesMiddleware', () => {\n it('registers prop controllers for element data', () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { key: 'elementKey', type: 'type', props: {} }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const setPropControllers = fn()\n const handle = new ElementImperativeHandle()\n\n handle.callback(() => ({ setPropControllers }))\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(setPropControllers).toHaveBeenCalled()\n })\n\n it(\"doesn't register prop controllers for element references\", () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { type: 'reference', key: 'elementKey', value: 'value' }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const setPropControllers = fn()\n const handle = new ElementImperativeHandle()\n\n handle.callback(() => ({ setPropControllers }))\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(setPropControllers).not.toHaveBeenCalled()\n })\n })\n}\n\nfunction makeswiftApiClientSyncMiddleware(\n client: MakeswiftClient,\n): Middleware<Dispatch, State, Dispatch> {\n return () => (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n client.makeswiftApiClient.dispatch(action)\n\n return next(action)\n }\n }\n}\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n rootElements,\n preloadedState,\n client,\n}: {\n rootElements?: Map<string, Documents.Element>\n preloadedState?: PreloadedState<State>\n client: MakeswiftClient\n}): Store {\n const initialState: PreloadedState<State> = {\n ...preloadedState,\n documents: Documents.getInitialState({ rootElements }),\n isPreview: IsPreview.getInitialState(true),\n }\n\n return createStore(\n reducer,\n initialState,\n applyMiddleware(\n thunk,\n measureBoxModelsMiddleware(),\n messageChannelMiddleware(),\n propControllerHandlesMiddleware(),\n makeswiftApiClientSyncMiddleware(client),\n ),\n )\n}\n","import { ReactNode, useEffect, useMemo } from 'react'\n\nimport { StoreContext, ReactRuntime } from '..'\nimport * as ReactBuilderPreview from '../../../state/react-builder-preview'\nimport * as ReactPage from '../../../state/react-page'\nimport { MakeswiftProvider, MakeswiftClient } from '../../../api/react'\nimport { registerDocumentEffect } from '../../../state/actions'\n\ntype Props = {\n client: MakeswiftClient\n rootElements?: Map<string, ReactPage.Element>\n children?: ReactNode\n runtime?: ReactRuntime\n}\n\nexport default function PreviewProvider({\n client,\n children,\n rootElements,\n runtime,\n}: Props): JSX.Element {\n const store = useMemo(\n () =>\n ReactBuilderPreview.configureStore({\n preloadedState: runtime ? runtime.store.getState() : ReactRuntime.store.getState(),\n rootElements,\n client,\n }),\n [client, rootElements, runtime],\n )\n\n useEffect(() => {\n const unregisterDocuments = Array.from(rootElements?.entries() ?? []).map(\n ([documentKey, rootElement]) =>\n store.dispatch(registerDocumentEffect(ReactPage.createDocument(documentKey, rootElement))),\n )\n\n return () => {\n unregisterDocuments.forEach(unregisterDocument => {\n unregisterDocument()\n })\n }\n }, [store, rootElements])\n\n return (\n <StoreContext.Provider value={store}>\n <MakeswiftProvider client={client}>{children}</MakeswiftProvider>\n </StoreContext.Provider>\n )\n}\n"],"names":["ReadOnlyDocuments.getInitialState","ReadOnlyDocuments.getDocument","getInitialState","ReadOnlyDocuments.reducer","ReadOnlyDocuments.createDocument","Documents.reducer","ReactComponents.reducer","BoxModels.reducer","ComponentsMeta.reducer","PropControllers.reducer","PropControllerHandles.reducer","IsInBuilder.reducer","IsPreview.reducer","BuilderEditMode.reducer","Pointer.reducer","ElementImperativeHandles.reducer","Breakpoints.reducer","Locales.reducer","BoxModels.getMeasurables","BoxModels.getBoxModels","BoxModels.getBoxModel","ComponentsMeta.getComponentsMeta","PropControllers.getComponentPropControllerDescriptors","Pointer.getPointer","ElementImperativeHandles.getElementImperativeHandles","BoxModels.measure","ReactPage.getBuilderEditMode","BuilderEditMode.BuilderEditMode","ReactPage.getDocumentKeysSortedByDepth","BoxModels.isMeasurable","ReactPage.getBreakpoints","ReactPage.getLocales","ReactPage.getDefaultLocale","ReactPage.getElementPropControllerDescriptors","ReactPage.getElement","ReactPage.isElementReference","PropControllerHandles.isPropControllersHandle","PropControllerHandles.getPropControllersHandle","PropControllerHandles.getPropController","ReactPage.createDocument","Documents.getInitialState","IsPreview.getInitialState","client","children","rootElements","runtime","store","useMemo","ReactBuilderPreview","preloadedState","getState","ReactRuntime","useEffect","unregisterDocuments","Array","from","entries","map","documentKey","rootElement","dispatch","registerDocumentEffect","ReactPage","forEach","unregisterDocument","_jsx"],"mappings":"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"}
|
package/dist/ReadOnlyText.cjs.js
CHANGED
|
@@ -2,31 +2,27 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
var css = require("@emotion/css");
|
|
4
4
|
var React = require("react");
|
|
5
|
-
var reactPage = require("./react-page.cjs.js");
|
|
6
|
-
var index = require("./index.cjs3.js");
|
|
7
5
|
var next = require("./index.cjs.js");
|
|
6
|
+
var reactPage = require("./react-page.cjs.js");
|
|
7
|
+
require("./actions.cjs.js");
|
|
8
8
|
require("slate");
|
|
9
9
|
require("./state/breakpoints.cjs.js");
|
|
10
|
-
require("./actions.cjs.js");
|
|
11
|
-
require("./types.cjs2.js");
|
|
12
10
|
require("is-hotkey");
|
|
13
|
-
require("slate-react");
|
|
14
11
|
var jsxRuntime = require("react/jsx-runtime");
|
|
15
|
-
require("
|
|
16
|
-
require("
|
|
17
|
-
require("@emotion/serialize");
|
|
18
|
-
require("@emotion/utils");
|
|
19
|
-
require("scroll-into-view-if-needed");
|
|
20
|
-
require("next/link");
|
|
12
|
+
require("slate-react");
|
|
13
|
+
require("uuid");
|
|
21
14
|
require("use-sync-external-store/shim/with-selector");
|
|
22
15
|
require("next/dynamic");
|
|
23
|
-
require("./
|
|
16
|
+
require("./text-input.cjs.js");
|
|
24
17
|
require("./combobox.cjs.js");
|
|
25
18
|
require("use-sync-external-store/shim");
|
|
19
|
+
require("redux");
|
|
20
|
+
require("redux-thunk");
|
|
26
21
|
require("./types.cjs.js");
|
|
27
22
|
require("./box-models.cjs.js");
|
|
28
23
|
require("css-box-model");
|
|
29
24
|
require("color");
|
|
25
|
+
require("scroll-into-view-if-needed");
|
|
30
26
|
require("react-dom");
|
|
31
27
|
require("html-react-parser");
|
|
32
28
|
require("next/head");
|
|
@@ -39,8 +35,10 @@ require("cookie");
|
|
|
39
35
|
require("http-proxy");
|
|
40
36
|
require("set-cookie-parser");
|
|
41
37
|
require("./constants.cjs.js");
|
|
42
|
-
require("uuid");
|
|
43
38
|
require("corporate-ipsum");
|
|
39
|
+
require("next/link");
|
|
40
|
+
require("@emotion/serialize");
|
|
41
|
+
require("@emotion/utils");
|
|
44
42
|
const ReadOnlyText = React.forwardRef(function ReadOnlyText2({
|
|
45
43
|
id,
|
|
46
44
|
text,
|
|
@@ -52,6 +50,11 @@ const ReadOnlyText = React.forwardRef(function ReadOnlyText2({
|
|
|
52
50
|
return /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
53
51
|
ref,
|
|
54
52
|
id,
|
|
53
|
+
style: {
|
|
54
|
+
position: "relative",
|
|
55
|
+
whiteSpace: "pre-wrap",
|
|
56
|
+
wordWrap: "break-word"
|
|
57
|
+
},
|
|
55
58
|
className: css.cx(width, margin),
|
|
56
59
|
children: descendantsAsString === "" ? /* @__PURE__ */ jsxRuntime.jsx(Placeholder, {}) : /* @__PURE__ */ jsxRuntime.jsx(Descendants, {
|
|
57
60
|
descendants
|
|
@@ -110,7 +113,7 @@ function InlineElement({
|
|
|
110
113
|
})
|
|
111
114
|
});
|
|
112
115
|
case reactPage.InlineType.Link:
|
|
113
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
116
|
+
return /* @__PURE__ */ jsxRuntime.jsx(next.Link, {
|
|
114
117
|
className: linkClassName,
|
|
115
118
|
link: (_a = descendant.link) != null ? _a : void 0,
|
|
116
119
|
children: /* @__PURE__ */ jsxRuntime.jsx(Descendants, {
|
|
@@ -134,13 +137,7 @@ function BlockElement({
|
|
|
134
137
|
borderLeft: "5px solid rgba(0, 0, 0, 0.1)"
|
|
135
138
|
});
|
|
136
139
|
switch (descendant.type) {
|
|
137
|
-
case reactPage.BlockType.
|
|
138
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", {
|
|
139
|
-
className: css.cx(...blockStyles),
|
|
140
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Descendants, {
|
|
141
|
-
descendants: descendant.children
|
|
142
|
-
})
|
|
143
|
-
});
|
|
140
|
+
case reactPage.BlockType.Default:
|
|
144
141
|
case reactPage.BlockType.Paragraph:
|
|
145
142
|
return /* @__PURE__ */ jsxRuntime.jsx("p", {
|
|
146
143
|
className: css.cx(...blockStyles),
|
|
@@ -244,11 +241,11 @@ function Descendants({
|
|
|
244
241
|
descendants
|
|
245
242
|
}) {
|
|
246
243
|
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
247
|
-
children: descendants.map((descendant,
|
|
244
|
+
children: descendants.map((descendant, index) => {
|
|
248
245
|
if (isText(descendant)) {
|
|
249
246
|
return /* @__PURE__ */ jsxRuntime.jsx(TextElement, {
|
|
250
247
|
descendant
|
|
251
|
-
},
|
|
248
|
+
}, index);
|
|
252
249
|
}
|
|
253
250
|
switch (descendant.type) {
|
|
254
251
|
case reactPage.InlineType.Link:
|
|
@@ -257,20 +254,23 @@ function Descendants({
|
|
|
257
254
|
case reactPage.InlineType.SuperScript:
|
|
258
255
|
return /* @__PURE__ */ jsxRuntime.jsx(InlineElement, {
|
|
259
256
|
descendant
|
|
260
|
-
},
|
|
257
|
+
}, index);
|
|
261
258
|
case reactPage.BlockType.Heading1:
|
|
262
259
|
case reactPage.BlockType.Heading2:
|
|
263
260
|
case reactPage.BlockType.Heading3:
|
|
261
|
+
case reactPage.BlockType.Heading4:
|
|
262
|
+
case reactPage.BlockType.Heading5:
|
|
263
|
+
case reactPage.BlockType.Heading6:
|
|
264
264
|
case reactPage.BlockType.BlockQuote:
|
|
265
|
-
case reactPage.BlockType.Text:
|
|
266
265
|
case reactPage.BlockType.Paragraph:
|
|
266
|
+
case reactPage.BlockType.Default:
|
|
267
267
|
case reactPage.BlockType.OrderedList:
|
|
268
268
|
case reactPage.BlockType.UnorderedList:
|
|
269
269
|
case reactPage.BlockType.ListItem:
|
|
270
270
|
case reactPage.BlockType.ListItemChild:
|
|
271
271
|
return /* @__PURE__ */ jsxRuntime.jsx(BlockElement, {
|
|
272
272
|
descendant
|
|
273
|
-
},
|
|
273
|
+
}, index);
|
|
274
274
|
default:
|
|
275
275
|
return null;
|
|
276
276
|
}
|
|
@@ -284,8 +284,12 @@ function isBlock(descendant) {
|
|
|
284
284
|
case reactPage.BlockType.Heading1:
|
|
285
285
|
case reactPage.BlockType.Heading2:
|
|
286
286
|
case reactPage.BlockType.Heading3:
|
|
287
|
+
case reactPage.BlockType.Heading4:
|
|
288
|
+
case reactPage.BlockType.Heading5:
|
|
289
|
+
case reactPage.BlockType.Heading6:
|
|
287
290
|
case reactPage.BlockType.BlockQuote:
|
|
288
291
|
case reactPage.BlockType.Paragraph:
|
|
292
|
+
case reactPage.BlockType.Default:
|
|
289
293
|
case reactPage.BlockType.OrderedList:
|
|
290
294
|
case reactPage.BlockType.UnorderedList:
|
|
291
295
|
case reactPage.BlockType.ListItem:
|
|
@@ -309,8 +313,12 @@ function getTextByDescendant(descendant) {
|
|
|
309
313
|
case reactPage.BlockType.Heading1:
|
|
310
314
|
case reactPage.BlockType.Heading2:
|
|
311
315
|
case reactPage.BlockType.Heading3:
|
|
316
|
+
case reactPage.BlockType.Heading4:
|
|
317
|
+
case reactPage.BlockType.Heading5:
|
|
318
|
+
case reactPage.BlockType.Heading6:
|
|
312
319
|
case reactPage.BlockType.BlockQuote:
|
|
313
320
|
case reactPage.BlockType.Paragraph:
|
|
321
|
+
case reactPage.BlockType.Default:
|
|
314
322
|
case reactPage.BlockType.OrderedList:
|
|
315
323
|
case reactPage.BlockType.UnorderedList:
|
|
316
324
|
case reactPage.BlockType.ListItem:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadOnlyText.cjs.js","sources":["../src/components/builtin/Text/ReadOnlyText.tsx"],"sourcesContent":["import { cx } from '@emotion/css'\nimport { ForwardedRef, forwardRef } from 'react'\nimport { Descendant, Text } from 'slate'\n\nimport type { ElementIDValue, RichTextValue } from '../../../prop-controllers/descriptors'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { Link } from '../../shared/Link'\nimport { useResponsiveStyle } from '../../utils/responsive-style'\nimport { Inline, InlineType, Block, BlockType } from '../../../slate'\nimport { richTextDTOtoDAO } from '../../../controls'\nimport useEnhancedTypography, {\n useTypographyClassName,\n} from '../../../runtimes/react/controls/typography'\n\ntype Props = {\n id?: ElementIDValue\n text?: RichTextValue\n width?: string\n margin?: string\n}\n\nconst ReadOnlyText = forwardRef(function ReadOnlyText(\n { id, text, width, margin }: Props,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const descendants = text == null ? [] : richTextDTOtoDAO(text)\n const descendantsAsString = getText(descendants)\n\n return (\n <div ref={ref} id={id} className={cx(width, margin)}>\n {descendantsAsString === '' ? <Placeholder /> : <Descendants descendants={descendants} />}\n </div>\n )\n})\n\nexport default ReadOnlyText\n\nfunction Placeholder({ text = 'Write some text...' }: { text?: string }) {\n return (\n <span\n className={useStyle({\n display: 'inline-block',\n width: 0,\n maxWidth: '100%',\n whiteSpace: 'nowrap',\n opacity: 0.333,\n verticalAlign: 'text-top',\n })}\n >\n {text}\n </span>\n )\n}\n\nexport interface TextProps {\n descendant: Text\n}\n\nexport function TextElement({ descendant }: TextProps) {\n const enhancedTypography = useEnhancedTypography(descendant.typography)\n const typographyClassName = useTypographyClassName(enhancedTypography)\n\n return (\n <span className={typographyClassName}>\n {descendant.text === '' ? '\\uFEFF' : descendant.text}\n </span>\n )\n}\n\nexport interface InlineProps {\n descendant: Inline\n}\n\nfunction InlineElement({ descendant }: InlineProps) {\n const linkClassName = useStyle({ textDecoration: 'none' })\n\n switch (descendant.type) {\n case InlineType.Code:\n return (\n <code>\n <Descendants descendants={descendant.children} />\n </code>\n )\n\n case InlineType.SuperScript:\n return (\n <sup>\n <Descendants descendants={descendant.children} />\n </sup>\n )\n\n case InlineType.SubScript:\n return (\n <sub>\n <Descendants descendants={descendant.children} />\n </sub>\n )\n\n case InlineType.Link:\n return (\n <Link className={linkClassName} link={descendant.link ?? undefined}>\n <Descendants descendants={descendant.children} />\n </Link>\n )\n }\n}\n\nexport interface BlockProps {\n descendant: Block\n}\n\nexport function BlockElement({ descendant }: BlockProps) {\n const blockStyles = [\n useStyle({ margin: 0 }),\n useStyle(useResponsiveStyle([descendant.textAlign], ([textAlign = 'left']) => ({ textAlign }))),\n ]\n const quoteStyle = useStyle({\n padding: '0.5em 10px',\n fontSize: '1.25em',\n fontWeight: '300',\n borderLeft: '5px solid rgba(0, 0, 0, 0.1)',\n })\n\n switch (descendant.type) {\n case BlockType.Text:\n return (\n <span className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </span>\n )\n case BlockType.Paragraph:\n return (\n <p className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </p>\n )\n case BlockType.Heading1:\n return (\n <h1 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h1>\n )\n case BlockType.Heading2:\n return (\n <h2 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h2>\n )\n case BlockType.Heading3:\n return (\n <h3 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h3>\n )\n case BlockType.Heading4:\n return (\n <h4 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h4>\n )\n case BlockType.Heading5:\n return (\n <h5 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h5>\n )\n case BlockType.Heading6:\n return (\n <h6 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h6>\n )\n case BlockType.BlockQuote:\n return (\n <blockquote className={cx(...blockStyles, quoteStyle)}>\n <Descendants descendants={descendant.children} />\n </blockquote>\n )\n case BlockType.OrderedList:\n return (\n <ol className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n <Descendants descendants={descendant.children} />\n </ol>\n )\n case BlockType.UnorderedList:\n return (\n <ul className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n <Descendants descendants={descendant.children} />\n </ul>\n )\n case BlockType.ListItem:\n return (\n <li className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </li>\n )\n case BlockType.ListItemChild:\n return (\n <span className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </span>\n )\n default:\n return null\n }\n}\n\n// reimplemented from slate source for code splitting\nfunction isText(node: any): node is Text {\n if (typeof node === 'object' && 'text' in node) return true\n\n return false\n}\n\nfunction Descendants({ descendants }: { descendants: Descendant[] }) {\n return (\n <>\n {descendants.map((descendant, index) => {\n if (isText(descendant)) {\n return <TextElement key={index} descendant={descendant} />\n }\n\n switch (descendant.type) {\n case InlineType.Link:\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return <InlineElement key={index} descendant={descendant} />\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.BlockQuote:\n case BlockType.Text:\n case BlockType.Paragraph:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return <BlockElement key={index} descendant={descendant} />\n default:\n return null\n }\n })}\n </>\n )\n}\n\nfunction isBlock(descendant: Descendant): descendant is Block {\n if ('text' in descendant) return false\n\n switch (descendant.type) {\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.BlockQuote:\n case BlockType.Paragraph:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return true\n\n default:\n return false\n }\n}\n\nfunction getTextByDescendant(descendant: Descendant): string {\n if ('text' in descendant) {\n return descendant.text ?? ''\n }\n\n switch (descendant.type) {\n case InlineType.Link:\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return descendant.children.map(descendant => getTextByDescendant(descendant)).join('') ?? ''\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.BlockQuote:\n case BlockType.Paragraph:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return (\n descendant.children\n .map(descendant => getTextByDescendant(descendant))\n .join(descendant.children.every(isBlock) ? '\\n' : '') ?? ''\n )\n default:\n return ''\n }\n}\n\nfunction getText(descendant: Descendant[]): string {\n return descendant.map(getTextByDescendant).join('\\n')\n}\n"],"names":["ReadOnlyText","forwardRef","id","text","width","margin","ref","descendants","richTextDTOtoDAO","descendantsAsString","getText","cx","_jsx","useStyle","display","maxWidth","whiteSpace","opacity","verticalAlign","descendant","enhancedTypography","useEnhancedTypography","typography","typographyClassName","useTypographyClassName","linkClassName","textDecoration","type","InlineType","Code","children","SuperScript","SubScript","Link","link","undefined","blockStyles","useResponsiveStyle","textAlign","quoteStyle","padding","fontSize","fontWeight","borderLeft","BlockType","Text","Paragraph","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","BlockQuote","OrderedList","listStylePosition","UnorderedList","ListItem","ListItemChild","node","_Fragment","map","index","isText","getTextByDescendant","join","every","isBlock"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReadOnlyText.cjs.js","sources":["../src/runtimes/react/controls/rich-text/ReadOnlyText.tsx"],"sourcesContent":["import { cx } from '@emotion/css'\nimport { ForwardedRef, forwardRef } from 'react'\nimport { Descendant, Text } from 'slate'\nimport { useResponsiveStyle } from '../../../../components/utils/responsive-style'\nimport { richTextDTOtoDAO } from '../../../../controls'\nimport type { ElementIDValue, RichTextValue } from '../../../../prop-controllers/descriptors'\nimport { Inline, InlineType, Block, BlockType } from '../../../../slate'\nimport { useStyle } from '../../use-style'\nimport useEnhancedTypography, { useTypographyClassName } from '../typography'\nimport { Link } from '../../../../components/shared/Link'\n\ntype Props = {\n id?: ElementIDValue\n text?: RichTextValue\n width?: string\n margin?: string\n}\n\nconst ReadOnlyText = forwardRef(function ReadOnlyText(\n { id, text, width, margin }: Props,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const descendants = text == null ? [] : richTextDTOtoDAO(text)\n const descendantsAsString = getText(descendants)\n\n return (\n <div\n ref={ref}\n id={id}\n style={{\n /**\n * These are the default styles that Slate uses for its editable div.\n * https://github.com/ianstormtaylor/slate/blob/4bd15ed3950e3a0871f5d0ecb391bb637c05e59d/packages/slate-react/src/components/editable.tsx\n * Search for `disableDefaultStyles`\n */\n position: 'relative',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n }}\n className={cx(width, margin)}\n >\n {descendantsAsString === '' ? <Placeholder /> : <Descendants descendants={descendants} />}\n </div>\n )\n})\n\nexport default ReadOnlyText\n\nfunction Placeholder({ text = 'Write some text...' }: { text?: string }) {\n return (\n <span\n className={useStyle({\n display: 'inline-block',\n width: 0,\n maxWidth: '100%',\n whiteSpace: 'nowrap',\n opacity: 0.333,\n verticalAlign: 'text-top',\n })}\n >\n {text}\n </span>\n )\n}\n\nexport interface TextProps {\n descendant: Text\n}\n\nexport function TextElement({ descendant }: TextProps) {\n const enhancedTypography = useEnhancedTypography(descendant.typography)\n const typographyClassName = useTypographyClassName(enhancedTypography)\n\n return (\n <span className={typographyClassName}>\n {descendant.text === '' ? '\\uFEFF' : descendant.text}\n </span>\n )\n}\n\nexport interface InlineProps {\n descendant: Inline\n}\n\nfunction InlineElement({ descendant }: InlineProps) {\n const linkClassName = useStyle({ textDecoration: 'none' })\n\n switch (descendant.type) {\n case InlineType.Code:\n return (\n <code>\n <Descendants descendants={descendant.children} />\n </code>\n )\n\n case InlineType.SuperScript:\n return (\n <sup>\n <Descendants descendants={descendant.children} />\n </sup>\n )\n\n case InlineType.SubScript:\n return (\n <sub>\n <Descendants descendants={descendant.children} />\n </sub>\n )\n\n case InlineType.Link:\n return (\n <Link className={linkClassName} link={descendant.link ?? undefined}>\n <Descendants descendants={descendant.children} />\n </Link>\n )\n }\n}\n\nexport interface BlockProps {\n descendant: Block\n}\n\nexport function BlockElement({ descendant }: BlockProps) {\n const blockStyles = [\n useStyle({ margin: 0 }),\n useStyle(useResponsiveStyle([descendant.textAlign], ([textAlign = 'left']) => ({ textAlign }))),\n ]\n const quoteStyle = useStyle({\n padding: '0.5em 10px',\n fontSize: '1.25em',\n fontWeight: '300',\n borderLeft: '5px solid rgba(0, 0, 0, 0.1)',\n })\n\n switch (descendant.type) {\n case BlockType.Default:\n case BlockType.Paragraph:\n return (\n <p className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </p>\n )\n case BlockType.Heading1:\n return (\n <h1 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h1>\n )\n case BlockType.Heading2:\n return (\n <h2 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h2>\n )\n case BlockType.Heading3:\n return (\n <h3 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h3>\n )\n case BlockType.Heading4:\n return (\n <h4 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h4>\n )\n case BlockType.Heading5:\n return (\n <h5 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h5>\n )\n case BlockType.Heading6:\n return (\n <h6 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h6>\n )\n case BlockType.BlockQuote:\n return (\n <blockquote className={cx(...blockStyles, quoteStyle)}>\n <Descendants descendants={descendant.children} />\n </blockquote>\n )\n case BlockType.OrderedList:\n return (\n <ol className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n <Descendants descendants={descendant.children} />\n </ol>\n )\n case BlockType.UnorderedList:\n return (\n <ul className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n <Descendants descendants={descendant.children} />\n </ul>\n )\n case BlockType.ListItem:\n return (\n <li className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </li>\n )\n case BlockType.ListItemChild:\n return (\n <span className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </span>\n )\n default:\n return null\n }\n}\n\n// reimplemented from slate source for code splitting\nfunction isText(node: any): node is Text {\n if (typeof node === 'object' && 'text' in node) return true\n\n return false\n}\n\nfunction Descendants({ descendants }: { descendants: Descendant[] }) {\n return (\n <>\n {descendants.map((descendant, index) => {\n if (isText(descendant)) {\n return <TextElement key={index} descendant={descendant} />\n }\n\n switch (descendant.type) {\n case InlineType.Link:\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return <InlineElement key={index} descendant={descendant} />\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.Heading4:\n case BlockType.Heading5:\n case BlockType.Heading6:\n case BlockType.BlockQuote:\n case BlockType.Paragraph:\n case BlockType.Default:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return <BlockElement key={index} descendant={descendant} />\n default:\n return null\n }\n })}\n </>\n )\n}\n\nfunction isBlock(descendant: Descendant): descendant is Block {\n if ('text' in descendant) return false\n\n switch (descendant.type) {\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.Heading4:\n case BlockType.Heading5:\n case BlockType.Heading6:\n case BlockType.BlockQuote:\n case BlockType.Paragraph:\n case BlockType.Default:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return true\n\n default:\n return false\n }\n}\n\nfunction getTextByDescendant(descendant: Descendant): string {\n if ('text' in descendant) {\n return descendant.text ?? ''\n }\n\n switch (descendant.type) {\n case InlineType.Link:\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return descendant.children.map(descendant => getTextByDescendant(descendant)).join('') ?? ''\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.Heading4:\n case BlockType.Heading5:\n case BlockType.Heading6:\n case BlockType.BlockQuote:\n case BlockType.Paragraph:\n case BlockType.Default:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return (\n descendant.children\n .map(descendant => getTextByDescendant(descendant))\n .join(descendant.children.every(isBlock) ? '\\n' : '') ?? ''\n )\n default:\n return ''\n }\n}\n\nfunction getText(descendant: Descendant[]): string {\n return descendant.map(getTextByDescendant).join('\\n')\n}\n"],"names":["ReadOnlyText","forwardRef","id","text","width","margin","ref","descendants","richTextDTOtoDAO","descendantsAsString","getText","position","whiteSpace","wordWrap","cx","_jsx","useStyle","display","maxWidth","opacity","verticalAlign","descendant","enhancedTypography","useEnhancedTypography","typography","typographyClassName","useTypographyClassName","linkClassName","textDecoration","type","InlineType","Code","children","SuperScript","SubScript","Link","link","undefined","blockStyles","useResponsiveStyle","textAlign","quoteStyle","padding","fontSize","fontWeight","borderLeft","BlockType","Default","Paragraph","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","BlockQuote","OrderedList","listStylePosition","UnorderedList","ListItem","ListItemChild","node","_Fragment","map","index","isText","getTextByDescendant","join","every","isBlock"],"mappings":"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"}
|
package/dist/ReadOnlyText.es.js
CHANGED
|
@@ -1,30 +1,26 @@
|
|
|
1
1
|
import { cx } from "@emotion/css";
|
|
2
2
|
import { forwardRef } from "react";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
3
|
+
import { J as useEnhancedTypography, K as useTypographyClassName, n as useResponsiveStyle, L as Link } from "./index.es.js";
|
|
4
|
+
import { bn as richTextDTOtoDAO, _ as useStyle, Y as BlockType, bM as InlineType } from "./react-page.es.js";
|
|
5
|
+
import "./actions.es.js";
|
|
6
6
|
import "slate";
|
|
7
7
|
import "./state/breakpoints.es.js";
|
|
8
|
-
import "./actions.es.js";
|
|
9
|
-
import "./types.es2.js";
|
|
10
8
|
import "is-hotkey";
|
|
11
|
-
import "slate-react";
|
|
12
9
|
import { jsx, Fragment } from "react/jsx-runtime";
|
|
13
|
-
import "
|
|
14
|
-
import "
|
|
15
|
-
import "@emotion/serialize";
|
|
16
|
-
import "@emotion/utils";
|
|
17
|
-
import "scroll-into-view-if-needed";
|
|
18
|
-
import "next/link";
|
|
10
|
+
import "slate-react";
|
|
11
|
+
import "uuid";
|
|
19
12
|
import "use-sync-external-store/shim/with-selector";
|
|
20
13
|
import "next/dynamic";
|
|
21
|
-
import "./
|
|
14
|
+
import "./text-input.es.js";
|
|
22
15
|
import "./combobox.es.js";
|
|
23
16
|
import "use-sync-external-store/shim";
|
|
17
|
+
import "redux";
|
|
18
|
+
import "redux-thunk";
|
|
24
19
|
import "./types.es.js";
|
|
25
20
|
import "./box-models.es.js";
|
|
26
21
|
import "css-box-model";
|
|
27
22
|
import "color";
|
|
23
|
+
import "scroll-into-view-if-needed";
|
|
28
24
|
import "react-dom";
|
|
29
25
|
import "html-react-parser";
|
|
30
26
|
import "next/head";
|
|
@@ -37,8 +33,10 @@ import "cookie";
|
|
|
37
33
|
import "http-proxy";
|
|
38
34
|
import "set-cookie-parser";
|
|
39
35
|
import "./constants.es.js";
|
|
40
|
-
import "uuid";
|
|
41
36
|
import "corporate-ipsum";
|
|
37
|
+
import "next/link";
|
|
38
|
+
import "@emotion/serialize";
|
|
39
|
+
import "@emotion/utils";
|
|
42
40
|
const ReadOnlyText = forwardRef(function ReadOnlyText2({
|
|
43
41
|
id,
|
|
44
42
|
text,
|
|
@@ -50,6 +48,11 @@ const ReadOnlyText = forwardRef(function ReadOnlyText2({
|
|
|
50
48
|
return /* @__PURE__ */ jsx("div", {
|
|
51
49
|
ref,
|
|
52
50
|
id,
|
|
51
|
+
style: {
|
|
52
|
+
position: "relative",
|
|
53
|
+
whiteSpace: "pre-wrap",
|
|
54
|
+
wordWrap: "break-word"
|
|
55
|
+
},
|
|
53
56
|
className: cx(width, margin),
|
|
54
57
|
children: descendantsAsString === "" ? /* @__PURE__ */ jsx(Placeholder, {}) : /* @__PURE__ */ jsx(Descendants, {
|
|
55
58
|
descendants
|
|
@@ -132,13 +135,7 @@ function BlockElement({
|
|
|
132
135
|
borderLeft: "5px solid rgba(0, 0, 0, 0.1)"
|
|
133
136
|
});
|
|
134
137
|
switch (descendant.type) {
|
|
135
|
-
case BlockType.
|
|
136
|
-
return /* @__PURE__ */ jsx("span", {
|
|
137
|
-
className: cx(...blockStyles),
|
|
138
|
-
children: /* @__PURE__ */ jsx(Descendants, {
|
|
139
|
-
descendants: descendant.children
|
|
140
|
-
})
|
|
141
|
-
});
|
|
138
|
+
case BlockType.Default:
|
|
142
139
|
case BlockType.Paragraph:
|
|
143
140
|
return /* @__PURE__ */ jsx("p", {
|
|
144
141
|
className: cx(...blockStyles),
|
|
@@ -259,9 +256,12 @@ function Descendants({
|
|
|
259
256
|
case BlockType.Heading1:
|
|
260
257
|
case BlockType.Heading2:
|
|
261
258
|
case BlockType.Heading3:
|
|
259
|
+
case BlockType.Heading4:
|
|
260
|
+
case BlockType.Heading5:
|
|
261
|
+
case BlockType.Heading6:
|
|
262
262
|
case BlockType.BlockQuote:
|
|
263
|
-
case BlockType.Text:
|
|
264
263
|
case BlockType.Paragraph:
|
|
264
|
+
case BlockType.Default:
|
|
265
265
|
case BlockType.OrderedList:
|
|
266
266
|
case BlockType.UnorderedList:
|
|
267
267
|
case BlockType.ListItem:
|
|
@@ -282,8 +282,12 @@ function isBlock(descendant) {
|
|
|
282
282
|
case BlockType.Heading1:
|
|
283
283
|
case BlockType.Heading2:
|
|
284
284
|
case BlockType.Heading3:
|
|
285
|
+
case BlockType.Heading4:
|
|
286
|
+
case BlockType.Heading5:
|
|
287
|
+
case BlockType.Heading6:
|
|
285
288
|
case BlockType.BlockQuote:
|
|
286
289
|
case BlockType.Paragraph:
|
|
290
|
+
case BlockType.Default:
|
|
287
291
|
case BlockType.OrderedList:
|
|
288
292
|
case BlockType.UnorderedList:
|
|
289
293
|
case BlockType.ListItem:
|
|
@@ -307,8 +311,12 @@ function getTextByDescendant(descendant) {
|
|
|
307
311
|
case BlockType.Heading1:
|
|
308
312
|
case BlockType.Heading2:
|
|
309
313
|
case BlockType.Heading3:
|
|
314
|
+
case BlockType.Heading4:
|
|
315
|
+
case BlockType.Heading5:
|
|
316
|
+
case BlockType.Heading6:
|
|
310
317
|
case BlockType.BlockQuote:
|
|
311
318
|
case BlockType.Paragraph:
|
|
319
|
+
case BlockType.Default:
|
|
312
320
|
case BlockType.OrderedList:
|
|
313
321
|
case BlockType.UnorderedList:
|
|
314
322
|
case BlockType.ListItem:
|