@makeswift/runtime 0.26.0-canary.9 → 0.26.1-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/builder/breakpoints/package.json +5 -0
- package/builder/core/package.json +5 -0
- package/dist/cjs/api-handler/handlers/manifest.js +1 -1
- package/dist/cjs/{box-model.js → builder/breakpoints/index.js} +11 -11
- package/dist/cjs/builder/breakpoints/index.js.map +1 -0
- package/dist/cjs/builder/core/index.js.map +1 -0
- package/dist/cjs/builder/index.js +44 -18
- package/dist/cjs/builder/index.js.map +1 -1
- package/dist/cjs/builder/serialization/control-serialization.js +38 -34
- package/dist/cjs/builder/serialization/control-serialization.js.map +1 -1
- package/dist/cjs/components/builtin/Box/Box.js +14 -14
- package/dist/cjs/components/builtin/Box/Box.js.map +1 -1
- package/dist/cjs/components/builtin/Box/animations.js.map +1 -1
- package/dist/cjs/components/builtin/Form/Form.js +2 -2
- package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
- package/dist/cjs/components/hooks/useBackgrounds.js +4 -4
- package/dist/cjs/components/hooks/useBackgrounds.js.map +1 -1
- package/dist/cjs/components/hooks/useBorder.js +2 -2
- package/dist/cjs/components/hooks/useBorder.js.map +1 -1
- package/dist/cjs/components/hooks/useBoxShadow.js.map +1 -1
- package/dist/cjs/components/hooks/useTableFormFieldRefs.js +3 -3
- package/dist/cjs/components/hooks/useTableFormFieldRefs.js.map +1 -1
- package/dist/cjs/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
- package/dist/cjs/components/shared/grid-item.js.map +1 -1
- package/dist/cjs/controls/control.js +2 -2
- package/dist/cjs/controls/control.js.map +1 -1
- package/dist/cjs/controls/rich-text-v2/control.js.map +1 -1
- package/dist/cjs/controls/rich-text-v2/rich-text-v2.js +0 -21
- package/dist/cjs/controls/rich-text-v2/rich-text-v2.js.map +1 -1
- package/dist/cjs/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.js +72 -0
- package/dist/cjs/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.js.map +1 -0
- package/dist/cjs/controls/visitors/message-port-serializer/function-serialization.js +79 -0
- package/dist/cjs/controls/visitors/message-port-serializer/function-serialization.js.map +1 -0
- package/dist/cjs/controls/visitors/message-port-serializer/index.js +36 -0
- package/dist/cjs/controls/visitors/message-port-serializer/index.js.map +1 -0
- package/dist/cjs/next/hooks/use-router-locale-sync.js +2 -2
- package/dist/cjs/next/hooks/use-router-locale-sync.js.map +1 -1
- package/dist/cjs/react/index.js +5 -2
- package/dist/cjs/react/index.js.map +1 -1
- package/dist/cjs/runtimes/react/components/ElementRegistration.js +4 -3
- package/dist/cjs/runtimes/react/components/ElementRegistration.js.map +1 -1
- package/dist/cjs/runtimes/react/components/hooks/use-builder-connection-ping.js +5 -10
- package/dist/cjs/runtimes/react/components/hooks/use-builder-connection-ping.js.map +1 -1
- package/dist/cjs/runtimes/react/element-imperative-handle.js +2 -2
- package/dist/cjs/runtimes/react/element-imperative-handle.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-cache-data.js +2 -2
- package/dist/cjs/runtimes/react/hooks/use-cache-data.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-register-document.js +5 -4
- package/dist/cjs/runtimes/react/hooks/use-register-document.js.map +1 -1
- package/dist/cjs/runtimes/react/react-runtime-core.js +4 -3
- package/dist/cjs/runtimes/react/react-runtime-core.js.map +1 -1
- package/dist/cjs/state/actions/index.js +42 -0
- package/dist/cjs/state/actions/index.js.map +1 -0
- package/dist/cjs/state/actions/internal.js +174 -0
- package/dist/cjs/state/actions/internal.js.map +1 -0
- package/dist/cjs/state/builder-api.js +150 -0
- package/dist/cjs/state/builder-api.js.map +1 -0
- package/dist/cjs/state/host-api.js +103 -0
- package/dist/cjs/state/host-api.js.map +1 -0
- package/dist/cjs/state/makeswift-api-client.js +4 -2
- package/dist/cjs/state/makeswift-api-client.js.map +1 -1
- package/dist/cjs/state/modules/element-trees.js +14 -4
- package/dist/cjs/state/modules/element-trees.js.map +1 -1
- package/dist/cjs/state/modules/prop-controllers.js.map +1 -1
- package/dist/cjs/state/react-builder-preview.js +21 -18
- package/dist/cjs/state/react-builder-preview.js.map +1 -1
- package/dist/cjs/state/react-page.js +5 -4
- package/dist/cjs/state/react-page.js.map +1 -1
- package/dist/cjs/state/shared-api.js +117 -0
- package/dist/cjs/state/shared-api.js.map +1 -0
- package/dist/cjs/state/translations/merge.js.map +1 -1
- package/dist/esm/api-handler/handlers/manifest.js +1 -1
- package/dist/esm/builder/breakpoints/index.js +11 -0
- package/dist/esm/builder/breakpoints/index.js.map +1 -0
- package/dist/esm/builder/core/index.js.map +1 -0
- package/dist/esm/builder/index.js +21 -9
- package/dist/esm/builder/index.js.map +1 -1
- package/dist/esm/builder/serialization/control-serialization.js +10 -3
- package/dist/esm/builder/serialization/control-serialization.js.map +1 -1
- package/dist/esm/components/builtin/Box/Box.js +1 -1
- package/dist/esm/components/builtin/Box/Box.js.map +1 -1
- package/dist/esm/components/builtin/Box/animations.js.map +1 -1
- package/dist/esm/components/builtin/Form/Form.js +1 -1
- package/dist/esm/components/builtin/Form/Form.js.map +1 -1
- package/dist/esm/components/hooks/useBackgrounds.js.map +1 -1
- package/dist/esm/components/hooks/useBorder.js.map +1 -1
- package/dist/esm/components/hooks/useBoxShadow.js.map +1 -1
- package/dist/esm/components/hooks/useTableFormFieldRefs.js +1 -1
- package/dist/esm/components/hooks/useTableFormFieldRefs.js.map +1 -1
- package/dist/esm/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
- package/dist/esm/components/shared/grid-item.js.map +1 -1
- package/dist/esm/controls/control.js +1 -1
- package/dist/esm/controls/control.js.map +1 -1
- package/dist/esm/controls/rich-text-v2/control.js.map +1 -1
- package/dist/esm/controls/rich-text-v2/rich-text-v2.js +0 -22
- package/dist/esm/controls/rich-text-v2/rich-text-v2.js.map +1 -1
- package/dist/esm/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.js +53 -0
- package/dist/esm/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.js.map +1 -0
- package/dist/esm/controls/visitors/message-port-serializer/function-serialization.js +52 -0
- package/dist/esm/controls/visitors/message-port-serializer/function-serialization.js.map +1 -0
- package/dist/esm/controls/visitors/message-port-serializer/index.js +13 -0
- package/dist/esm/controls/visitors/message-port-serializer/index.js.map +1 -0
- package/dist/esm/next/hooks/use-router-locale-sync.js +1 -1
- package/dist/esm/next/hooks/use-router-locale-sync.js.map +1 -1
- package/dist/esm/react/index.js +3 -1
- package/dist/esm/react/index.js.map +1 -1
- package/dist/esm/runtimes/react/components/ElementRegistration.js +2 -1
- package/dist/esm/runtimes/react/components/ElementRegistration.js.map +1 -1
- package/dist/esm/runtimes/react/components/hooks/use-builder-connection-ping.js +5 -10
- package/dist/esm/runtimes/react/components/hooks/use-builder-connection-ping.js.map +1 -1
- package/dist/esm/runtimes/react/element-imperative-handle.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-cache-data.js +1 -1
- package/dist/esm/runtimes/react/hooks/use-cache-data.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-register-document.js +2 -5
- package/dist/esm/runtimes/react/hooks/use-register-document.js.map +1 -1
- package/dist/esm/runtimes/react/react-runtime-core.js +2 -1
- package/dist/esm/runtimes/react/react-runtime-core.js.map +1 -1
- package/dist/esm/state/actions/index.js +17 -0
- package/dist/esm/state/actions/index.js.map +1 -0
- package/dist/esm/state/actions/internal.js +135 -0
- package/dist/esm/state/actions/internal.js.map +1 -0
- package/dist/esm/state/builder-api.js +110 -0
- package/dist/esm/state/builder-api.js.map +1 -0
- package/dist/esm/state/host-api.js +68 -0
- package/dist/esm/state/host-api.js.map +1 -0
- package/dist/esm/state/makeswift-api-client.js +3 -1
- package/dist/esm/state/makeswift-api-client.js.map +1 -1
- package/dist/esm/state/modules/element-trees.js +1 -1
- package/dist/esm/state/modules/element-trees.js.map +1 -1
- package/dist/esm/state/modules/prop-controllers.js.map +1 -1
- package/dist/esm/state/react-builder-preview.js +10 -8
- package/dist/esm/state/react-builder-preview.js.map +1 -1
- package/dist/esm/state/react-page.js +3 -7
- package/dist/esm/state/react-page.js.map +1 -1
- package/dist/esm/state/shared-api.js +83 -0
- package/dist/esm/state/shared-api.js.map +1 -0
- package/dist/esm/state/translations/merge.js.map +1 -1
- package/dist/types/builder/breakpoints/index.d.ts +2 -0
- package/dist/types/builder/breakpoints/index.d.ts.map +1 -0
- package/dist/types/builder/core/index.d.ts +2 -0
- package/dist/types/builder/core/index.d.ts.map +1 -0
- package/dist/types/builder/index.d.ts +10 -2
- package/dist/types/builder/index.d.ts.map +1 -1
- package/dist/types/builder/serialization/control-serialization.d.ts +2 -2
- package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -1
- package/dist/types/client/index.d.ts +27 -27
- package/dist/types/components/builtin/Box/Box.d.ts +1 -1
- package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
- package/dist/types/components/builtin/Box/animations.d.ts +1 -1
- package/dist/types/components/builtin/Box/animations.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/Form.d.ts +1 -1
- package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
- package/dist/types/components/hooks/useBackgrounds.d.ts +1 -1
- package/dist/types/components/hooks/useBackgrounds.d.ts.map +1 -1
- package/dist/types/components/hooks/useBorder.d.ts +1 -1
- package/dist/types/components/hooks/useBorder.d.ts.map +1 -1
- package/dist/types/components/hooks/useBoxShadow.d.ts +1 -1
- package/dist/types/components/hooks/useBoxShadow.d.ts.map +1 -1
- package/dist/types/components/shared/grid-item.d.ts +1 -1
- package/dist/types/components/shared/grid-item.d.ts.map +1 -1
- package/dist/types/controls/control.d.ts +1 -2
- package/dist/types/controls/control.d.ts.map +1 -1
- package/dist/types/controls/rich-text-v2/control.d.ts +1 -2
- package/dist/types/controls/rich-text-v2/control.d.ts.map +1 -1
- package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +1 -2
- package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
- package/dist/types/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.d.ts +9 -0
- package/dist/types/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.d.ts.map +1 -0
- package/dist/types/controls/visitors/message-port-serializer/function-serialization.d.ts +16 -0
- package/dist/types/controls/visitors/message-port-serializer/function-serialization.d.ts.map +1 -0
- package/dist/types/controls/visitors/message-port-serializer/function-serialization.test.d.ts +2 -0
- package/dist/types/controls/visitors/message-port-serializer/function-serialization.test.d.ts.map +1 -0
- package/dist/types/controls/visitors/message-port-serializer/index.d.ts +3 -0
- package/dist/types/controls/visitors/message-port-serializer/index.d.ts.map +1 -0
- package/dist/types/locale.d.ts +1 -1
- package/dist/types/react/index.d.ts +1 -0
- package/dist/types/react/index.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/Document.d.ts +1 -1
- package/dist/types/runtimes/react/components/Document.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/DocumentRoot.d.ts +1 -1
- package/dist/types/runtimes/react/components/DocumentRoot.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/Element.d.ts +1 -1
- package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/ElementReference.d.ts +1 -1
- package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/ElementRegistration.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/hooks/use-builder-connection-ping.d.ts.map +1 -1
- package/dist/types/runtimes/react/element-imperative-handle.d.ts +2 -1
- package/dist/types/runtimes/react/element-imperative-handle.d.ts.map +1 -1
- package/dist/types/runtimes/react/hooks/use-register-document.d.ts.map +1 -1
- package/dist/types/runtimes/react/hooks/use-store.d.ts +1 -1
- package/dist/types/runtimes/react/react-runtime-core.d.ts.map +1 -1
- package/dist/types/slate/LinkPlugin/getValue.d.ts.map +1 -1
- package/dist/types/slate/LinkPlugin/index.d.ts.map +1 -1
- package/dist/types/slate/TypographyPlugin/getValue.d.ts.map +1 -1
- package/dist/types/slate/TypographyPlugin/index.d.ts.map +1 -1
- package/dist/types/state/actions/index.d.ts +58 -0
- package/dist/types/state/actions/index.d.ts.map +1 -0
- package/dist/types/state/actions/internal.d.ts +154 -0
- package/dist/types/state/actions/internal.d.ts.map +1 -0
- package/dist/types/state/builder-api.d.ts +163 -0
- package/dist/types/state/builder-api.d.ts.map +1 -0
- package/dist/types/state/host-api.d.ts +109 -0
- package/dist/types/state/host-api.d.ts.map +1 -0
- package/dist/types/state/makeswift-api-client.d.ts.map +1 -1
- package/dist/types/state/modules/prop-controllers.d.ts +1 -1
- package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
- package/dist/types/state/react-builder-preview.d.ts.map +1 -1
- package/dist/types/state/react-page.d.ts.map +1 -1
- package/dist/types/state/shared-api.d.ts +104 -0
- package/dist/types/state/shared-api.d.ts.map +1 -0
- package/dist/types/state/translations/merge.d.ts +1 -1
- package/dist/types/state/translations/merge.d.ts.map +1 -1
- package/package.json +70 -85
- package/box-model/package.json +0 -5
- package/core/package.json +0 -5
- package/dist/cjs/box-model.js.map +0 -1
- package/dist/cjs/core/index.js.map +0 -1
- package/dist/cjs/prop-controllers/index.js +0 -48
- package/dist/cjs/prop-controllers/index.js.map +0 -1
- package/dist/cjs/state/actions.js +0 -423
- package/dist/cjs/state/actions.js.map +0 -1
- package/dist/esm/box-model.js +0 -7
- package/dist/esm/box-model.js.map +0 -1
- package/dist/esm/core/index.js.map +0 -1
- package/dist/esm/prop-controllers/index.js +0 -11
- package/dist/esm/prop-controllers/index.js.map +0 -1
- package/dist/esm/state/actions.js +0 -349
- package/dist/esm/state/actions.js.map +0 -1
- package/dist/types/box-model.d.ts +0 -3
- package/dist/types/box-model.d.ts.map +0 -1
- package/dist/types/core/index.d.ts +0 -2
- package/dist/types/core/index.d.ts.map +0 -1
- package/dist/types/prop-controllers/index.d.ts +0 -8
- package/dist/types/prop-controllers/index.d.ts.map +0 -1
- package/dist/types/state/actions.d.ts +0 -461
- package/dist/types/state/actions.d.ts.map +0 -1
- package/prop-controllers/package.json +0 -5
- package/slate/package.json +0 -5
- package/state/breakpoints/package.json +0 -5
- /package/dist/cjs/{core → builder/core}/index.js +0 -0
- /package/dist/esm/{core → builder/core}/index.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/controls/rich-text-v2/rich-text-v2.ts"],"sourcesContent":["import { ReactNode } from 'react'\nimport { z } from 'zod'\n// @ts-expect-error: there are no types for 'corporate-ipsum'\nimport ipsum from 'corporate-ipsum'\n\nimport {\n RichTextDefinition as BaseRichTextDefinition,\n isNotNil,\n ControlDefinition,\n SerializationSchema,\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/controls/rich-text-v2/rich-text-v2.ts"],"sourcesContent":["import { ReactNode } from 'react'\nimport { z } from 'zod'\n// @ts-expect-error: there are no types for 'corporate-ipsum'\nimport ipsum from 'corporate-ipsum'\n\nimport {\n RichTextDefinition as BaseRichTextDefinition,\n isNotNil,\n ControlDefinition,\n SerializationSchema,\n StableValue,\n type Data,\n type Resolvable,\n type SendMessage,\n type DeserializedRecord,\n type SchemaType,\n type SchemaTypeAny,\n type RichTextPluginControl,\n type ResourceResolver,\n type Stylesheet,\n type RichTextMode,\n} from '@makeswift/controls'\n\nimport { LinkPlugin } from '../../slate/LinkPlugin'\nimport { InlinePlugin } from '../../slate/InlinePlugin'\nimport { TextAlignPlugin } from '../../slate/TextAlignPlugin'\nimport { BlockPlugin } from '../../slate/BlockPlugin'\nimport { TypographyPlugin } from '../../slate/TypographyPlugin'\nimport { InlineModePlugin } from '../../slate/InlineModePlugin'\nimport { toText } from '../../slate/utils'\n\nimport { renderRichTextV2 } from '../../runtimes/react/controls/rich-text-v2'\n\nimport { RichTextV2Plugin, Plugin } from './plugin'\nimport { RichTextV2Control } from './control'\nimport { getTranslatableData } from './translations/get-translations'\n\ntype DataType = z.infer<typeof Definition.schema.data>\ntype DataV2Type = z.infer<typeof Definition.schema.dataV2>\ntype InstanceType = RichTextV2Control\ntype UserConfig = z.infer<typeof Definition.schema.userConfig>\ntype Config = UserConfig & {\n defaultValue: string\n plugins: RichTextV2Plugin[]\n}\n\nclass Definition extends BaseRichTextDefinition<ReactNode, Config, InstanceType> {\n constructor({ mode, defaultValue }: UserConfig, plugins?: RichTextV2Plugin[]) {\n super({\n mode,\n defaultValue:\n defaultValue ??\n (mode === Definition.Mode.Inline ? 'Edit this text' : Definition.generateParagraph()),\n plugins:\n plugins ??\n (mode === Definition.Mode.Inline\n ? [InlineModePlugin()]\n : [BlockPlugin(), TypographyPlugin(), TextAlignPlugin(), InlinePlugin(), LinkPlugin()]),\n })\n }\n\n static generateParagraph(): string {\n return ipsum(3)\n }\n\n static deserialize(\n data: DeserializedRecord,\n deserializeCallback: (r: DeserializedRecord) => ControlDefinition,\n ): RichTextV2Definition {\n if (data.type !== Definition.type) {\n throw new Error(`RichText: expected type ${Definition.type}, got ${data.type}`)\n }\n\n const { config } = Definition.fullSchema({\n pluginDef: SerializationSchema.deserializedRecord,\n }).definition.parse(data)\n\n const { plugins, ...userConfig } = config\n\n return new RichTextV2Definition(\n userConfig,\n plugins.map(({ control }) =>\n control ? { control: { definition: deserializeCallback(control?.definition) } } : {},\n ),\n )\n }\n\n static fullSchema<S extends SchemaTypeAny>({ pluginDef }: { pluginDef: S }) {\n const baseSchema = super.schema\n const plugin = z.object({\n control: z\n .object({\n definition: pluginDef,\n })\n .optional(),\n })\n\n const config = baseSchema.userConfig.extend({\n defaultValue: z.string(),\n plugins: z.array(plugin),\n })\n\n return {\n ...baseSchema,\n config,\n definition: z.object({\n type: baseSchema.type,\n config,\n }),\n }\n }\n\n get configSchema(): SchemaType<Config> {\n return Definition.fullSchema({ pluginDef: z.any() as SchemaType<ControlDefinition> }).config\n }\n\n createInstance(sendMessage: SendMessage): InstanceType {\n return new RichTextV2Control(sendMessage, this)\n }\n\n resolveValue(\n data: DataType | undefined,\n _resolver: ResourceResolver,\n _stylesheet: Stylesheet,\n control?: InstanceType,\n ): Resolvable<ReactNode | undefined> {\n const stableValue = StableValue({\n name: Definition.type,\n read: () => renderRichTextV2(data, this, control ?? null),\n })\n\n return {\n ...stableValue,\n triggerResolve: async () => {},\n }\n }\n\n getTranslatableData(data: DataType | undefined): Data {\n if (data == null) return null\n return getTranslatableData(Definition.dataToNodes(data), this.config.plugins)\n }\n\n get pluginControls(): RichTextPluginControl[] {\n return this.config.plugins.map(plugin => plugin.control).filter(isNotNil)\n }\n\n pluginControlAt(index: number): RichTextPluginControl | undefined {\n return this.pluginControls[index]\n }\n\n toText(data: DataType | undefined): string {\n if (data == null) return ''\n return toText(Definition.dataToNodes(data), this.config.mode ?? Definition.Mode.Block)\n }\n}\n\nexport class RichTextV2Definition extends Definition {}\n\nexport function RichText(config?: UserConfig): RichTextV2Definition {\n return new RichTextV2Definition(config ?? {})\n}\n\nRichText.Mode = Definition.Mode\nRichText.isV1Data = Definition.isV1Data\nRichText.dataToNodes = Definition.dataToNodes\nRichText.Plugin = Plugin\n\nexport { RichTextMode as RichTextV2Mode, type DataV2Type as RichTextDataV2, RichTextV2Control }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,iBAAkB;AAElB,6BAAkB;AAElB,sBAgBO;AAEP,wBAA2B;AAC3B,0BAA6B;AAC7B,6BAAgC;AAChC,yBAA4B;AAC5B,8BAAiC;AACjC,8BAAiC;AACjC,mBAAuB;AAEvB,0BAAiC;AAEjC,oBAAyC;AACzC,qBAAkC;AAClC,8BAAoC;AAWpC,MAAM,mBAAmB,gBAAAA,mBAAwD;AAAA,EAC/E,YAAY,EAAE,MAAM,aAAa,GAAe,SAA8B;AAC5E,UAAM;AAAA,MACJ;AAAA,MACA,cACE,iBACC,SAAS,WAAW,KAAK,SAAS,mBAAmB,WAAW,kBAAkB;AAAA,MACrF,SACE,YACC,SAAS,WAAW,KAAK,SACtB,KAAC,0CAAiB,CAAC,IACnB,KAAC,gCAAY,OAAG,0CAAiB,OAAG,wCAAgB,OAAG,kCAAa,OAAG,8BAAW,CAAC;AAAA,IAC3F,CAAC;AAAA,EACH;AAAA,EAEA,OAAO,oBAA4B;AACjC,eAAO,uBAAAC,SAAM,CAAC;AAAA,EAChB;AAAA,EAEA,OAAO,YACL,MACA,qBACsB;AACtB,QAAI,KAAK,SAAS,WAAW,MAAM;AACjC,YAAM,IAAI,MAAM,2BAA2B,WAAW,IAAI,SAAS,KAAK,IAAI,EAAE;AAAA,IAChF;AAEA,UAAM,EAAE,OAAO,IAAI,WAAW,WAAW;AAAA,MACvC,WAAW,oCAAoB;AAAA,IACjC,CAAC,EAAE,WAAW,MAAM,IAAI;AAExB,UAAM,EAAE,SAAS,GAAG,WAAW,IAAI;AAEnC,WAAO,IAAI;AAAA,MACT;AAAA,MACA,QAAQ;AAAA,QAAI,CAAC,EAAE,QAAQ,MACrB,UAAU,EAAE,SAAS,EAAE,YAAY,oBAAoB,SAAS,UAAU,EAAE,EAAE,IAAI,CAAC;AAAA,MACrF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO,WAAoC,EAAE,UAAU,GAAqB;AAC1E,UAAM,aAAa,MAAM;AACzB,UAAM,SAAS,aAAE,OAAO;AAAA,MACtB,SAAS,aACN,OAAO;AAAA,QACN,YAAY;AAAA,MACd,CAAC,EACA,SAAS;AAAA,IACd,CAAC;AAED,UAAM,SAAS,WAAW,WAAW,OAAO;AAAA,MAC1C,cAAc,aAAE,OAAO;AAAA,MACvB,SAAS,aAAE,MAAM,MAAM;AAAA,IACzB,CAAC;AAED,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA,YAAY,aAAE,OAAO;AAAA,QACnB,MAAM,WAAW;AAAA,QACjB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,IAAI,eAAmC;AACrC,WAAO,WAAW,WAAW,EAAE,WAAW,aAAE,IAAI,EAAmC,CAAC,EAAE;AAAA,EACxF;AAAA,EAEA,eAAe,aAAwC;AACrD,WAAO,IAAI,iCAAkB,aAAa,IAAI;AAAA,EAChD;AAAA,EAEA,aACE,MACA,WACA,aACA,SACmC;AACnC,UAAM,kBAAc,6BAAY;AAAA,MAC9B,MAAM,WAAW;AAAA,MACjB,MAAM,UAAM,sCAAiB,MAAM,MAAM,WAAW,IAAI;AAAA,IAC1D,CAAC;AAED,WAAO;AAAA,MACL,GAAG;AAAA,MACH,gBAAgB,YAAY;AAAA,MAAC;AAAA,IAC/B;AAAA,EACF;AAAA,EAEA,oBAAoB,MAAkC;AACpD,QAAI,QAAQ;AAAM,aAAO;AACzB,eAAO,6CAAoB,WAAW,YAAY,IAAI,GAAG,KAAK,OAAO,OAAO;AAAA,EAC9E;AAAA,EAEA,IAAI,iBAA0C;AAC5C,WAAO,KAAK,OAAO,QAAQ,IAAI,YAAU,OAAO,OAAO,EAAE,OAAO,wBAAQ;AAAA,EAC1E;AAAA,EAEA,gBAAgB,OAAkD;AAChE,WAAO,KAAK,eAAe,KAAK;AAAA,EAClC;AAAA,EAEA,OAAO,MAAoC;AACzC,QAAI,QAAQ;AAAM,aAAO;AACzB,eAAO,qBAAO,WAAW,YAAY,IAAI,GAAG,KAAK,OAAO,QAAQ,WAAW,KAAK,KAAK;AAAA,EACvF;AACF;AAEO,MAAM,6BAA6B,WAAW;AAAC;AAE/C,SAAS,SAAS,QAA2C;AAClE,SAAO,IAAI,qBAAqB,UAAU,CAAC,CAAC;AAC9C;AAEA,SAAS,OAAO,WAAW;AAC3B,SAAS,WAAW,WAAW;AAC/B,SAAS,cAAc,WAAW;AAClC,SAAS,SAAS;","names":["BaseRichTextDefinition","ipsum"]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var client_message_port_serialization_visitor_exports = {};
|
|
20
|
+
__export(client_message_port_serialization_visitor_exports, {
|
|
21
|
+
ClientMessagePortSerializationVisitor: () => ClientMessagePortSerializationVisitor
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(client_message_port_serialization_visitor_exports);
|
|
24
|
+
var import_controls = require("@makeswift/controls");
|
|
25
|
+
var import_rich_text_v2 = require("../../rich-text-v2");
|
|
26
|
+
var import_function_serialization = require("./function-serialization");
|
|
27
|
+
class ClientMessagePortSerializationVisitor extends import_controls.ControlSerializationVisitor {
|
|
28
|
+
transferables = [];
|
|
29
|
+
constructor() {
|
|
30
|
+
const serializeFunctionPlugin = {
|
|
31
|
+
match: import_controls.isFunction,
|
|
32
|
+
serialize: (val) => {
|
|
33
|
+
const r = (0, import_function_serialization.serializeFunction)(val);
|
|
34
|
+
this.transferables.push(r);
|
|
35
|
+
return r;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const serializeDefinitionPlugin = {
|
|
39
|
+
match: (val) => val instanceof import_controls.ControlDefinition,
|
|
40
|
+
serialize: (val) => val.accept(this)
|
|
41
|
+
};
|
|
42
|
+
super([serializeFunctionPlugin, serializeDefinitionPlugin]);
|
|
43
|
+
}
|
|
44
|
+
getTransferables() {
|
|
45
|
+
return [...this.transferables];
|
|
46
|
+
}
|
|
47
|
+
visitRichTextV2(def) {
|
|
48
|
+
const { plugins, ...config } = def.config;
|
|
49
|
+
const pluginDefs = plugins.map(
|
|
50
|
+
({ control }) => control ? {
|
|
51
|
+
control: {
|
|
52
|
+
definition: control.definition,
|
|
53
|
+
// FIXME: remove getValue/onChange stubs once we released a version of the builder
|
|
54
|
+
// built against the runtime where these can be optional
|
|
55
|
+
getValue: () => void 0,
|
|
56
|
+
onChange: () => {
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
} : {}
|
|
60
|
+
);
|
|
61
|
+
const serialized = (0, import_controls.serializeObject)(
|
|
62
|
+
{ config: { ...config, plugins: pluginDefs } },
|
|
63
|
+
this.serializationPlugins
|
|
64
|
+
);
|
|
65
|
+
return { ...serialized, type: import_rich_text_v2.RichTextV2Definition.type };
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
69
|
+
0 && (module.exports = {
|
|
70
|
+
ClientMessagePortSerializationVisitor
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=client-message-port-serialization-visitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.ts"],"sourcesContent":["import {\n AnyFunction,\n ControlDefinition,\n SerializedRecord,\n serializeObject,\n SerializationPlugin,\n ControlSerializationVisitor,\n isFunction,\n} from '@makeswift/controls'\n\nimport { RichTextV2Definition } from '../../rich-text-v2'\n\nimport { serializeFunction } from './function-serialization'\n\nexport class ClientMessagePortSerializationVisitor extends ControlSerializationVisitor {\n private transferables: Transferable[] = []\n\n constructor() {\n const serializeFunctionPlugin: SerializationPlugin<AnyFunction> = {\n match: isFunction,\n serialize: (val: AnyFunction) => {\n const r = serializeFunction(val)\n this.transferables.push(r)\n return r\n },\n }\n\n const serializeDefinitionPlugin: SerializationPlugin<ControlDefinition> = {\n match: (val: unknown) => val instanceof ControlDefinition,\n serialize: (val: ControlDefinition) => val.accept(this),\n }\n\n super([serializeFunctionPlugin, serializeDefinitionPlugin])\n }\n\n getTransferables(): Transferable[] {\n return [...this.transferables]\n }\n\n visitRichTextV2(def: RichTextV2Definition): SerializedRecord {\n const { plugins, ...config } = def.config\n\n // serialize only the plugin control definition, if any\n const pluginDefs = plugins.map(({ control }) =>\n control\n ? {\n control: {\n definition: control.definition,\n // FIXME: remove getValue/onChange stubs once we released a version of the builder\n // built against the runtime where these can be optional\n getValue: () => undefined,\n onChange: () => {},\n },\n }\n : {},\n )\n\n const serialized = serializeObject(\n { config: { ...config, plugins: pluginDefs } },\n this.serializationPlugins,\n ) as SerializedRecord\n\n return { ...serialized, type: RichTextV2Definition.type }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAQO;AAEP,0BAAqC;AAErC,oCAAkC;AAE3B,MAAM,8CAA8C,4CAA4B;AAAA,EAC7E,gBAAgC,CAAC;AAAA,EAEzC,cAAc;AACZ,UAAM,0BAA4D;AAAA,MAChE,OAAO;AAAA,MACP,WAAW,CAAC,QAAqB;AAC/B,cAAM,QAAI,iDAAkB,GAAG;AAC/B,aAAK,cAAc,KAAK,CAAC;AACzB,eAAO;AAAA,MACT;AAAA,IACF;AAEA,UAAM,4BAAoE;AAAA,MACxE,OAAO,CAAC,QAAiB,eAAe;AAAA,MACxC,WAAW,CAAC,QAA2B,IAAI,OAAO,IAAI;AAAA,IACxD;AAEA,UAAM,CAAC,yBAAyB,yBAAyB,CAAC;AAAA,EAC5D;AAAA,EAEA,mBAAmC;AACjC,WAAO,CAAC,GAAG,KAAK,aAAa;AAAA,EAC/B;AAAA,EAEA,gBAAgB,KAA6C;AAC3D,UAAM,EAAE,SAAS,GAAG,OAAO,IAAI,IAAI;AAGnC,UAAM,aAAa,QAAQ;AAAA,MAAI,CAAC,EAAE,QAAQ,MACxC,UACI;AAAA,QACE,SAAS;AAAA,UACP,YAAY,QAAQ;AAAA;AAAA;AAAA,UAGpB,UAAU,MAAM;AAAA,UAChB,UAAU,MAAM;AAAA,UAAC;AAAA,QACnB;AAAA,MACF,IACA,CAAC;AAAA,IACP;AAEA,UAAM,iBAAa;AAAA,MACjB,EAAE,QAAQ,EAAE,GAAG,QAAQ,SAAS,WAAW,EAAE;AAAA,MAC7C,KAAK;AAAA,IACP;AAEA,WAAO,EAAE,GAAG,YAAY,MAAM,yCAAqB,KAAK;AAAA,EAC1D;AACF;","names":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var function_serialization_exports = {};
|
|
20
|
+
__export(function_serialization_exports, {
|
|
21
|
+
deserializeFunction: () => deserializeFunction,
|
|
22
|
+
functionDeserializationPlugin: () => functionDeserializationPlugin,
|
|
23
|
+
isSerializedFunction: () => isSerializedFunction,
|
|
24
|
+
serializeFunction: () => serializeFunction
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(function_serialization_exports);
|
|
27
|
+
function isSerializedFunction(value) {
|
|
28
|
+
return value instanceof MessagePort;
|
|
29
|
+
}
|
|
30
|
+
function serializeFunction(func) {
|
|
31
|
+
const messageChannel = new MessageChannel();
|
|
32
|
+
messageChannel.port1.onmessage = ({ data: [callId, args] }) => {
|
|
33
|
+
Promise.resolve().then(() => func.apply(null, args)).then((result) => messageChannel.port1.postMessage([callId, result]));
|
|
34
|
+
};
|
|
35
|
+
return messageChannel.port2;
|
|
36
|
+
}
|
|
37
|
+
function onmessageHandler() {
|
|
38
|
+
let nextCallId = 0;
|
|
39
|
+
const calls = /* @__PURE__ */ new Map();
|
|
40
|
+
const result = ({ data: [callId, result2] }) => {
|
|
41
|
+
calls.get(callId)?.(result2);
|
|
42
|
+
calls.delete(callId);
|
|
43
|
+
};
|
|
44
|
+
result.newCall = (resolve) => {
|
|
45
|
+
const callId = nextCallId++;
|
|
46
|
+
calls.set(callId, resolve);
|
|
47
|
+
return callId;
|
|
48
|
+
};
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
function deserializeFunction(serializedFunction) {
|
|
52
|
+
if (serializedFunction.onmessage == null) {
|
|
53
|
+
serializedFunction.onmessage = onmessageHandler();
|
|
54
|
+
}
|
|
55
|
+
return function deserializedFunction(...args) {
|
|
56
|
+
return new Promise((resolve) => {
|
|
57
|
+
const { newCall } = serializedFunction.onmessage;
|
|
58
|
+
if (newCall == null) {
|
|
59
|
+
throw new Error(
|
|
60
|
+
`Deserialized function call failed: 'onmessage' handler is missing 'newCall' method`
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
const callId = newCall(resolve);
|
|
64
|
+
serializedFunction.postMessage([callId, args]);
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
const functionDeserializationPlugin = {
|
|
69
|
+
match: isSerializedFunction,
|
|
70
|
+
deserialize: (value) => deserializeFunction(value)
|
|
71
|
+
};
|
|
72
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
73
|
+
0 && (module.exports = {
|
|
74
|
+
deserializeFunction,
|
|
75
|
+
functionDeserializationPlugin,
|
|
76
|
+
isSerializedFunction,
|
|
77
|
+
serializeFunction
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=function-serialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/controls/visitors/message-port-serializer/function-serialization.ts"],"sourcesContent":["import {\n DeserializationPlugin,\n type AnyFunction,\n type SerializedFunctionReturnType,\n type DeserializedFunction,\n} from '@makeswift/controls'\n\ndeclare const SerializedFunctionTag: unique symbol\n\ntype ResolveCallPromise<T extends AnyFunction> = (value: SerializedFunctionReturnType<T>) => void\n\ntype OnMessageHandler<T extends AnyFunction> = MessagePort['onmessage'] & {\n newCall?(resolve: ResolveCallPromise<T>): number\n}\n\nexport type SerializedFunction<T extends AnyFunction> = MessagePort & {\n onmessage: OnMessageHandler<T>\n readonly [SerializedFunctionTag]: T\n}\n\nexport function isSerializedFunction(value: any): value is SerializedFunction<AnyFunction> {\n return value instanceof MessagePort\n}\n\ntype CallID = number\n\nexport function serializeFunction<T extends AnyFunction>(func: T): SerializedFunction<T> {\n type CallMessageEvent = MessageEvent<[CallID, Parameters<T>]>\n\n const messageChannel = new MessageChannel()\n\n messageChannel.port1.onmessage = ({ data: [callId, args] }: CallMessageEvent) => {\n Promise.resolve()\n .then(() => func.apply(null, args))\n .then(result => messageChannel.port1.postMessage([callId, result]))\n }\n\n return messageChannel.port2 as SerializedFunction<T>\n}\n\nfunction onmessageHandler<T extends AnyFunction>(): OnMessageHandler<T> {\n type ResultMessageEvent = MessageEvent<[CallID, SerializedFunctionReturnType<T>]>\n let nextCallId = 0\n const calls = new Map<CallID, ResolveCallPromise<T>>()\n\n const result: OnMessageHandler<T> = ({ data: [callId, result] }: ResultMessageEvent) => {\n calls.get(callId)?.(result)\n calls.delete(callId)\n }\n\n result.newCall = (resolve: ResolveCallPromise<T>) => {\n const callId = nextCallId++\n calls.set(callId, resolve)\n return callId\n }\n\n return result\n}\n\nexport function deserializeFunction<T extends AnyFunction>(\n serializedFunction: SerializedFunction<T>,\n): DeserializedFunction<T> {\n if (serializedFunction.onmessage == null) {\n serializedFunction.onmessage = onmessageHandler<T>()\n }\n\n return function deserializedFunction(...args) {\n return new Promise(resolve => {\n const { newCall } = serializedFunction.onmessage\n if (newCall == null) {\n throw new Error(\n `Deserialized function call failed: 'onmessage' handler is missing 'newCall' method`,\n )\n }\n\n const callId = newCall(resolve)\n serializedFunction.postMessage([callId, args])\n })\n }\n}\n\nexport const functionDeserializationPlugin: DeserializationPlugin<\n SerializedFunction<AnyFunction>,\n DeserializedFunction<AnyFunction>\n> = {\n match: isSerializedFunction,\n deserialize: value => deserializeFunction(value),\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBO,SAAS,qBAAqB,OAAsD;AACzF,SAAO,iBAAiB;AAC1B;AAIO,SAAS,kBAAyC,MAAgC;AAGvF,QAAM,iBAAiB,IAAI,eAAe;AAE1C,iBAAe,MAAM,YAAY,CAAC,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,MAAwB;AAC/E,YAAQ,QAAQ,EACb,KAAK,MAAM,KAAK,MAAM,MAAM,IAAI,CAAC,EACjC,KAAK,YAAU,eAAe,MAAM,YAAY,CAAC,QAAQ,MAAM,CAAC,CAAC;AAAA,EACtE;AAEA,SAAO,eAAe;AACxB;AAEA,SAAS,mBAA+D;AAEtE,MAAI,aAAa;AACjB,QAAM,QAAQ,oBAAI,IAAmC;AAErD,QAAM,SAA8B,CAAC,EAAE,MAAM,CAAC,QAAQA,OAAM,EAAE,MAA0B;AACtF,UAAM,IAAI,MAAM,IAAIA,OAAM;AAC1B,UAAM,OAAO,MAAM;AAAA,EACrB;AAEA,SAAO,UAAU,CAAC,YAAmC;AACnD,UAAM,SAAS;AACf,UAAM,IAAI,QAAQ,OAAO;AACzB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEO,SAAS,oBACd,oBACyB;AACzB,MAAI,mBAAmB,aAAa,MAAM;AACxC,uBAAmB,YAAY,iBAAoB;AAAA,EACrD;AAEA,SAAO,SAAS,wBAAwB,MAAM;AAC5C,WAAO,IAAI,QAAQ,aAAW;AAC5B,YAAM,EAAE,QAAQ,IAAI,mBAAmB;AACvC,UAAI,WAAW,MAAM;AACnB,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAEA,YAAM,SAAS,QAAQ,OAAO;AAC9B,yBAAmB,YAAY,CAAC,QAAQ,IAAI,CAAC;AAAA,IAC/C,CAAC;AAAA,EACH;AACF;AAEO,MAAM,gCAGT;AAAA,EACF,OAAO;AAAA,EACP,aAAa,WAAS,oBAAoB,KAAK;AACjD;","names":["result"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var message_port_serializer_exports = {};
|
|
20
|
+
__export(message_port_serializer_exports, {
|
|
21
|
+
ClientMessagePortSerializationVisitor: () => import_client_message_port_serialization_visitor.ClientMessagePortSerializationVisitor,
|
|
22
|
+
deserializeFunction: () => import_function_serialization.deserializeFunction,
|
|
23
|
+
functionDeserializationPlugin: () => import_function_serialization.functionDeserializationPlugin,
|
|
24
|
+
serializeFunction: () => import_function_serialization.serializeFunction
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(message_port_serializer_exports);
|
|
27
|
+
var import_client_message_port_serialization_visitor = require("./client-message-port-serialization-visitor");
|
|
28
|
+
var import_function_serialization = require("./function-serialization");
|
|
29
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
30
|
+
0 && (module.exports = {
|
|
31
|
+
ClientMessagePortSerializationVisitor,
|
|
32
|
+
deserializeFunction,
|
|
33
|
+
functionDeserializationPlugin,
|
|
34
|
+
serializeFunction
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/controls/visitors/message-port-serializer/index.ts"],"sourcesContent":["export { ClientMessagePortSerializationVisitor } from './client-message-port-serialization-visitor'\nexport {\n serializeFunction,\n deserializeFunction,\n functionDeserializationPlugin,\n} from './function-serialization'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uDAAsD;AACtD,oCAIO;","names":[]}
|
|
@@ -24,7 +24,7 @@ module.exports = __toCommonJS(use_router_locale_sync_exports);
|
|
|
24
24
|
var import_router = require("next/router");
|
|
25
25
|
var import_ts_pattern = require("ts-pattern");
|
|
26
26
|
var import_react = require("react");
|
|
27
|
-
var
|
|
27
|
+
var import_shared_api = require("../../state/shared-api");
|
|
28
28
|
var import_use_dispatch = require("../../runtimes/react/hooks/use-dispatch");
|
|
29
29
|
function useRouter() {
|
|
30
30
|
try {
|
|
@@ -38,7 +38,7 @@ const useRouterLocaleSync = () => {
|
|
|
38
38
|
const router = useRouter();
|
|
39
39
|
const dispatch = (0, import_use_dispatch.useDispatch)();
|
|
40
40
|
(0, import_react.useEffect)(() => {
|
|
41
|
-
(0, import_ts_pattern.match)(router).with({ locale: import_ts_pattern.P.string }, ({ locale }) => dispatch((0,
|
|
41
|
+
(0, import_ts_pattern.match)(router).with({ locale: import_ts_pattern.P.string }, ({ locale }) => dispatch((0, import_shared_api.setLocale)(new Intl.Locale(locale)))).otherwise(() => {
|
|
42
42
|
});
|
|
43
43
|
}, [router]);
|
|
44
44
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/next/hooks/use-router-locale-sync.ts"],"sourcesContent":["import { useRouter as usePagesRouter } from 'next/router'\nimport { P, match } from 'ts-pattern'\nimport { useEffect } from 'react'\n\nimport { setLocale } from '../../state/
|
|
1
|
+
{"version":3,"sources":["../../../../src/next/hooks/use-router-locale-sync.ts"],"sourcesContent":["import { useRouter as usePagesRouter } from 'next/router'\nimport { P, match } from 'ts-pattern'\nimport { useEffect } from 'react'\n\nimport { setLocale } from '../../state/shared-api'\nimport { useDispatch } from '../../runtimes/react/hooks/use-dispatch'\n\nfunction useRouter() {\n try {\n const router = usePagesRouter()\n\n return router\n } catch (e) {\n return\n }\n}\n\nexport const useRouterLocaleSync = () => {\n const router = useRouter()\n const dispatch = useDispatch()\n\n useEffect(() => {\n match(router)\n .with({ locale: P.string }, ({ locale }) => dispatch(setLocale(new Intl.Locale(locale))))\n .otherwise(() => {})\n }, [router])\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA4C;AAC5C,wBAAyB;AACzB,mBAA0B;AAE1B,wBAA0B;AAC1B,0BAA4B;AAE5B,SAAS,YAAY;AACnB,MAAI;AACF,UAAM,aAAS,cAAAA,WAAe;AAE9B,WAAO;AAAA,EACT,SAAS,GAAG;AACV;AAAA,EACF;AACF;AAEO,MAAM,sBAAsB,MAAM;AACvC,QAAM,SAAS,UAAU;AACzB,QAAM,eAAW,iCAAY;AAE7B,8BAAU,MAAM;AACd,iCAAM,MAAM,EACT,KAAK,EAAE,QAAQ,oBAAE,OAAO,GAAG,CAAC,EAAE,OAAO,MAAM,aAAS,6BAAU,IAAI,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC,EACvF,UAAU,MAAM;AAAA,IAAC,CAAC;AAAA,EACvB,GAAG,CAAC,MAAM,CAAC;AACb;","names":["usePagesRouter"]}
|
package/dist/cjs/react/index.js
CHANGED
|
@@ -18,12 +18,15 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var react_exports = {};
|
|
20
20
|
__export(react_exports, {
|
|
21
|
-
ReactRuntime: () => import_react.ReactRuntime
|
|
21
|
+
ReactRuntime: () => import_react.ReactRuntime,
|
|
22
|
+
useIsInBuilder: () => import_use_is_in_builder.useIsInBuilder
|
|
22
23
|
});
|
|
23
24
|
module.exports = __toCommonJS(react_exports);
|
|
24
25
|
var import_react = require("../runtimes/react");
|
|
26
|
+
var import_use_is_in_builder = require("../runtimes/react/hooks/use-is-in-builder");
|
|
25
27
|
// Annotate the CommonJS export names for ESM import in node:
|
|
26
28
|
0 && (module.exports = {
|
|
27
|
-
ReactRuntime
|
|
29
|
+
ReactRuntime,
|
|
30
|
+
useIsInBuilder
|
|
28
31
|
});
|
|
29
32
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/react/index.ts"],"sourcesContent":["export { ReactRuntime } from '../runtimes/react'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA6B;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/react/index.ts"],"sourcesContent":["export { ReactRuntime } from '../runtimes/react'\nexport { useIsInBuilder } from '../runtimes/react/hooks/use-is-in-builder'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA6B;AAC7B,+BAA+B;","names":[]}
|
|
@@ -27,7 +27,8 @@ var import_react = require("react");
|
|
|
27
27
|
var import_use_dispatch = require("../hooks/use-dispatch");
|
|
28
28
|
var import_use_document_context = require("../hooks/use-document-context");
|
|
29
29
|
var import_use_disable_register_element = require("../hooks/use-disable-register-element");
|
|
30
|
-
var
|
|
30
|
+
var import_builder_api = require("../../../state/builder-api");
|
|
31
|
+
var import_internal = require("../../../state/actions/internal");
|
|
31
32
|
const ElementRegistration = (0, import_react.memo)(function ElementRegistration2({
|
|
32
33
|
elementKey,
|
|
33
34
|
componentHandle,
|
|
@@ -39,12 +40,12 @@ const ElementRegistration = (0, import_react.memo)(function ElementRegistration2
|
|
|
39
40
|
(0, import_react.useEffect)(() => {
|
|
40
41
|
if (documentKey == null || isRegisterElementDisabled)
|
|
41
42
|
return;
|
|
42
|
-
return dispatch((0,
|
|
43
|
+
return dispatch((0, import_internal.registerComponentHandleEffect)(documentKey, elementKey, componentHandle));
|
|
43
44
|
}, [dispatch, documentKey, elementKey, isRegisterElementDisabled]);
|
|
44
45
|
(0, import_react.useEffect)(() => {
|
|
45
46
|
if (documentKey == null || isRegisterElementDisabled)
|
|
46
47
|
return;
|
|
47
|
-
return dispatch((0,
|
|
48
|
+
return dispatch((0, import_builder_api.mountComponentEffect)(documentKey, elementKey));
|
|
48
49
|
}, [dispatch, documentKey, elementKey, isRegisterElementDisabled]);
|
|
49
50
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
|
|
50
51
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/components/ElementRegistration.tsx"],"sourcesContent":["'use client'\n\nimport { ReactNode, memo, useEffect } from 'react'\nimport { ElementImperativeHandle } from '../element-imperative-handle'\nimport { useDispatch } from '../hooks/use-dispatch'\nimport { useDocumentKey } from '../hooks/use-document-context'\nimport { useDisableRegisterElement } from '../hooks/use-disable-register-element'\nimport { mountComponentEffect
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/components/ElementRegistration.tsx"],"sourcesContent":["'use client'\n\nimport { ReactNode, memo, useEffect } from 'react'\nimport { ElementImperativeHandle } from '../element-imperative-handle'\nimport { useDispatch } from '../hooks/use-dispatch'\nimport { useDocumentKey } from '../hooks/use-document-context'\nimport { useDisableRegisterElement } from '../hooks/use-disable-register-element'\nimport { mountComponentEffect } from '../../../state/builder-api'\nimport { registerComponentHandleEffect } from '../../../state/actions/internal'\n\ntype RegisterChildrenAsElementProps = {\n elementKey: string\n componentHandle: ElementImperativeHandle\n children?: ReactNode\n}\n\nexport const ElementRegistration = memo(function ElementRegistration({\n elementKey,\n componentHandle,\n children,\n}: RegisterChildrenAsElementProps): JSX.Element {\n const dispatch = useDispatch()\n const documentKey = useDocumentKey()\n\n const isRegisterElementDisabled = useDisableRegisterElement()\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(registerComponentHandleEffect(documentKey, elementKey, componentHandle))\n }, [dispatch, documentKey, elementKey, isRegisterElementDisabled])\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(mountComponentEffect(documentKey, elementKey))\n }, [dispatch, documentKey, elementKey, isRegisterElementDisabled])\n\n return <>{children}</>\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAsCS;AApCT,mBAA2C;AAE3C,0BAA4B;AAC5B,kCAA+B;AAC/B,0CAA0C;AAC1C,yBAAqC;AACrC,sBAA8C;AAQvC,MAAM,0BAAsB,mBAAK,SAASA,qBAAoB;AAAA,EACnE;AAAA,EACA;AAAA,EACA;AACF,GAAgD;AAC9C,QAAM,eAAW,iCAAY;AAC7B,QAAM,kBAAc,4CAAe;AAEnC,QAAM,gCAA4B,+DAA0B;AAE5D,8BAAU,MAAM;AACd,QAAI,eAAe,QAAQ;AAA2B;AAEtD,WAAO,aAAS,+CAA8B,aAAa,YAAY,eAAe,CAAC;AAAA,EACzF,GAAG,CAAC,UAAU,aAAa,YAAY,yBAAyB,CAAC;AAEjE,8BAAU,MAAM;AACd,QAAI,eAAe,QAAQ;AAA2B;AAEtD,WAAO,aAAS,yCAAqB,aAAa,UAAU,CAAC;AAAA,EAC/D,GAAG,CAAC,UAAU,aAAa,YAAY,yBAAyB,CAAC;AAEjE,SAAO,2EAAG,UAAS;AACrB,CAAC;","names":["ElementRegistration"]}
|
|
@@ -22,17 +22,15 @@ __export(use_builder_connection_ping_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(use_builder_connection_ping_exports);
|
|
24
24
|
var import_react = require("react");
|
|
25
|
-
var
|
|
25
|
+
var import_builder_api = require("../../../../state/builder-api");
|
|
26
|
+
var import_shared_api = require("../../../../state/shared-api");
|
|
26
27
|
const CONNECTION_PING_INTERVAL_MS = 20;
|
|
27
28
|
function useBuilderConnectionPing({ appOrigin }) {
|
|
28
29
|
(0, import_react.useEffect)(() => {
|
|
29
30
|
let connectionInterval;
|
|
30
31
|
if (window.parent !== window) {
|
|
31
32
|
window.addEventListener("message", messageHandler);
|
|
32
|
-
window.parent.postMessage(
|
|
33
|
-
{ type: import_actions.ActionTypes.MAKESWIFT_CONNECTION_INIT },
|
|
34
|
-
{ targetOrigin: appOrigin }
|
|
35
|
-
);
|
|
33
|
+
window.parent.postMessage((0, import_shared_api.makeswiftConnectionInit)(), { targetOrigin: appOrigin });
|
|
36
34
|
}
|
|
37
35
|
return () => {
|
|
38
36
|
window.removeEventListener("message", messageHandler);
|
|
@@ -42,17 +40,14 @@ function useBuilderConnectionPing({ appOrigin }) {
|
|
|
42
40
|
}
|
|
43
41
|
};
|
|
44
42
|
function messageHandler(event) {
|
|
45
|
-
if (event.origin === appOrigin && event.data.type ===
|
|
43
|
+
if (event.origin === appOrigin && event.data.type === import_shared_api.SharedActionTypes.MAKESWIFT_CONNECTION_INIT) {
|
|
46
44
|
if (connectionInterval != null) {
|
|
47
45
|
window.clearInterval(connectionInterval);
|
|
48
46
|
connectionInterval = null;
|
|
49
47
|
}
|
|
50
48
|
connectionInterval = window.setInterval(() => {
|
|
51
49
|
window.parent.postMessage(
|
|
52
|
-
{
|
|
53
|
-
type: import_actions.ActionTypes.MAKESWIFT_CONNECTION_CHECK,
|
|
54
|
-
payload: { currentUrl: window.location.href }
|
|
55
|
-
},
|
|
50
|
+
(0, import_builder_api.makeswiftConnectionCheck)({ currentUrl: window.location.href }),
|
|
56
51
|
{ targetOrigin: appOrigin }
|
|
57
52
|
);
|
|
58
53
|
}, CONNECTION_PING_INTERVAL_MS);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/runtimes/react/components/hooks/use-builder-connection-ping.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/runtimes/react/components/hooks/use-builder-connection-ping.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { makeswiftConnectionCheck } from '../../../../state/builder-api'\nimport { SharedActionTypes, makeswiftConnectionInit } from '../../../../state/shared-api'\n\nconst CONNECTION_PING_INTERVAL_MS = 20\n\nexport function useBuilderConnectionPing({ appOrigin }: { appOrigin: string }) {\n useEffect(() => {\n let connectionInterval: number | null\n\n if (window.parent !== window) {\n window.addEventListener('message', messageHandler)\n window.parent.postMessage(makeswiftConnectionInit(), { targetOrigin: appOrigin })\n }\n\n return () => {\n window.removeEventListener('message', messageHandler)\n if (connectionInterval != null) {\n window.clearInterval(connectionInterval)\n connectionInterval = null\n }\n }\n\n function messageHandler(event: MessageEvent): void {\n if (\n event.origin === appOrigin &&\n event.data.type === SharedActionTypes.MAKESWIFT_CONNECTION_INIT\n ) {\n if (connectionInterval != null) {\n window.clearInterval(connectionInterval)\n connectionInterval = null\n }\n\n connectionInterval = window.setInterval(() => {\n window.parent.postMessage(\n makeswiftConnectionCheck({ currentUrl: window.location.href }),\n { targetOrigin: appOrigin },\n )\n }, CONNECTION_PING_INTERVAL_MS)\n }\n }\n }, [appOrigin])\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAC1B,yBAAyC;AACzC,wBAA2D;AAE3D,MAAM,8BAA8B;AAE7B,SAAS,yBAAyB,EAAE,UAAU,GAA0B;AAC7E,8BAAU,MAAM;AACd,QAAI;AAEJ,QAAI,OAAO,WAAW,QAAQ;AAC5B,aAAO,iBAAiB,WAAW,cAAc;AACjD,aAAO,OAAO,gBAAY,2CAAwB,GAAG,EAAE,cAAc,UAAU,CAAC;AAAA,IAClF;AAEA,WAAO,MAAM;AACX,aAAO,oBAAoB,WAAW,cAAc;AACpD,UAAI,sBAAsB,MAAM;AAC9B,eAAO,cAAc,kBAAkB;AACvC,6BAAqB;AAAA,MACvB;AAAA,IACF;AAEA,aAAS,eAAe,OAA2B;AACjD,UACE,MAAM,WAAW,aACjB,MAAM,KAAK,SAAS,oCAAkB,2BACtC;AACA,YAAI,sBAAsB,MAAM;AAC9B,iBAAO,cAAc,kBAAkB;AACvC,+BAAqB;AAAA,QACvB;AAEA,6BAAqB,OAAO,YAAY,MAAM;AAC5C,iBAAO,OAAO;AAAA,gBACZ,6CAAyB,EAAE,YAAY,OAAO,SAAS,KAAK,CAAC;AAAA,YAC7D,EAAE,cAAc,UAAU;AAAA,UAC5B;AAAA,QACF,GAAG,2BAA2B;AAAA,MAChC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,CAAC;AAChB;","names":[]}
|
|
@@ -22,7 +22,7 @@ __export(element_imperative_handle_exports, {
|
|
|
22
22
|
isDomNodeHandle: () => isDomNodeHandle
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(element_imperative_handle_exports);
|
|
25
|
-
var
|
|
25
|
+
var import_box_models2 = require("../../state/modules/box-models");
|
|
26
26
|
var import_prop_controller_handles = require("../../state/modules/prop-controller-handles");
|
|
27
27
|
class ElementImperativeHandle {
|
|
28
28
|
getCurrent = () => null;
|
|
@@ -37,7 +37,7 @@ class ElementImperativeHandle {
|
|
|
37
37
|
}
|
|
38
38
|
getBoxModel() {
|
|
39
39
|
const current = this.getCurrent();
|
|
40
|
-
return (0,
|
|
40
|
+
return (0, import_box_models2.isMeasurable)(current) ? (0, import_box_models2.measure)(current) : null;
|
|
41
41
|
}
|
|
42
42
|
setPropControllers(propControllers) {
|
|
43
43
|
const current = this.getCurrent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/react/element-imperative-handle.ts"],"sourcesContent":["import { BoxModel
|
|
1
|
+
{"version":3,"sources":["../../../../src/runtimes/react/element-imperative-handle.ts"],"sourcesContent":["import { BoxModel } from '@makeswift/controls'\nimport { BoxModelHandle } from '../../state/modules/box-models'\nimport { Descriptor } from '../../prop-controllers/descriptors'\nimport { DescriptorsPropControllers } from '../../prop-controllers/instances'\nimport { isMeasurable, measure } from '../../state/modules/box-models'\nimport {\n isPropControllersHandle,\n PropControllersHandle,\n} from '../../state/modules/prop-controller-handles'\n\nexport class ElementImperativeHandle<\n T extends Record<string, Descriptor> = Record<string, Descriptor>,\n >\n implements BoxModelHandle, PropControllersHandle<T>\n{\n private getCurrent: () => unknown = () => null\n private lastPropControllers: DescriptorsPropControllers<T> | null = null\n\n callback(getCurrent: () => unknown) {\n const current = this.getCurrent()\n\n if (current === null) this.setPropControllers(null)\n\n this.getCurrent = getCurrent\n\n if (this.lastPropControllers !== null) this.setPropControllers(this.lastPropControllers)\n }\n\n getBoxModel(): BoxModel | null {\n const current = this.getCurrent()\n\n return isMeasurable(current) ? measure(current) : null\n }\n\n setPropControllers(propControllers: DescriptorsPropControllers<T> | null): void {\n const current = this.getCurrent()\n\n if (isPropControllersHandle(current)) current.setPropControllers(propControllers)\n\n this.lastPropControllers = propControllers\n }\n\n getDomNode(): Element | null {\n const current = this.getCurrent()\n\n if (isDomNodeHandle(current)) return current.getDomNode()\n\n return current instanceof Element ? current : null\n }\n}\n\ntype DomNodeHandle = {\n getDomNode(): Element | null\n}\n\nexport function isDomNodeHandle(value: unknown): value is DomNodeHandle {\n if (\n typeof value === 'object' &&\n value !== null &&\n 'getDomNode' in value &&\n typeof (value as { getDomNode: unknown }).getDomNode === 'function'\n ) {\n return true\n }\n\n return false\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,IAAAA,qBAAsC;AACtC,qCAGO;AAEA,MAAM,wBAIb;AAAA,EACU,aAA4B,MAAM;AAAA,EAClC,sBAA4D;AAAA,EAEpE,SAAS,YAA2B;AAClC,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,YAAY;AAAM,WAAK,mBAAmB,IAAI;AAElD,SAAK,aAAa;AAElB,QAAI,KAAK,wBAAwB;AAAM,WAAK,mBAAmB,KAAK,mBAAmB;AAAA,EACzF;AAAA,EAEA,cAA+B;AAC7B,UAAM,UAAU,KAAK,WAAW;AAEhC,eAAO,iCAAa,OAAO,QAAI,4BAAQ,OAAO,IAAI;AAAA,EACpD;AAAA,EAEA,mBAAmB,iBAA6D;AAC9E,UAAM,UAAU,KAAK,WAAW;AAEhC,YAAI,wDAAwB,OAAO;AAAG,cAAQ,mBAAmB,eAAe;AAEhF,SAAK,sBAAsB;AAAA,EAC7B;AAAA,EAEA,aAA6B;AAC3B,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,gBAAgB,OAAO;AAAG,aAAO,QAAQ,WAAW;AAExD,WAAO,mBAAmB,UAAU,UAAU;AAAA,EAChD;AACF;AAMO,SAAS,gBAAgB,OAAwC;AACtE,MACE,OAAO,UAAU,YACjB,UAAU,QACV,gBAAgB,SAChB,OAAQ,MAAkC,eAAe,YACzD;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":["import_box_models"]}
|
|
@@ -22,11 +22,11 @@ __export(use_cache_data_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(use_cache_data_exports);
|
|
24
24
|
var import_react = require("react");
|
|
25
|
-
var
|
|
25
|
+
var import_internal = require("../../../state/actions/internal");
|
|
26
26
|
var import_host_api_client = require("../host-api-client");
|
|
27
27
|
function useCacheData(cacheData) {
|
|
28
28
|
const { makeswiftApiClient: apiStore } = (0, import_host_api_client.useMakeswiftHostApiClient)();
|
|
29
|
-
(0, import_react.useMemo)(() => apiStore.dispatch((0,
|
|
29
|
+
(0, import_react.useMemo)(() => apiStore.dispatch((0, import_internal.updateAPIClientCache)(cacheData)), [cacheData]);
|
|
30
30
|
}
|
|
31
31
|
// Annotate the CommonJS export names for ESM import in node:
|
|
32
32
|
0 && (module.exports = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-cache-data.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { type CacheData } from '../../../api/react'\nimport { updateAPIClientCache } from '../../../state/actions'\n\nimport { useMakeswiftHostApiClient } from '../host-api-client'\n\nexport function useCacheData(cacheData: CacheData) {\n const { makeswiftApiClient: apiStore } = useMakeswiftHostApiClient()\n\n // We perform cache hydration immediately on render - this is safe to do per\n // render because updating the API cache is idempotent. For precedence, see:\n //\n // https://github.com/TanStack/query/blob/8f9f183f11df3709a1a38c4efce1452788041f88/packages/react-query/src/HydrationBoundary.tsx#L41\n useMemo(() => apiStore.dispatch(updateAPIClientCache(cacheData)), [cacheData])\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAwB;AAExB,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-cache-data.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { type CacheData } from '../../../api/react'\nimport { updateAPIClientCache } from '../../../state/actions/internal'\n\nimport { useMakeswiftHostApiClient } from '../host-api-client'\n\nexport function useCacheData(cacheData: CacheData) {\n const { makeswiftApiClient: apiStore } = useMakeswiftHostApiClient()\n\n // We perform cache hydration immediately on render - this is safe to do per\n // render because updating the API cache is idempotent. For precedence, see:\n //\n // https://github.com/TanStack/query/blob/8f9f183f11df3709a1a38c4efce1452788041f88/packages/react-query/src/HydrationBoundary.tsx#L41\n useMemo(() => apiStore.dispatch(updateAPIClientCache(cacheData)), [cacheData])\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAwB;AAExB,sBAAqC;AAErC,6BAA0C;AAEnC,SAAS,aAAa,WAAsB;AACjD,QAAM,EAAE,oBAAoB,SAAS,QAAI,kDAA0B;AAMnE,4BAAQ,MAAM,SAAS,aAAS,sCAAqB,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;AAC/E;","names":[]}
|
|
@@ -24,22 +24,23 @@ module.exports = __toCommonJS(use_register_document_exports);
|
|
|
24
24
|
var import_react = require("react");
|
|
25
25
|
var import_use_dispatch = require("./use-dispatch");
|
|
26
26
|
var import_use_is_in_builder = require("./use-is-in-builder");
|
|
27
|
-
var
|
|
27
|
+
var import_shared_api = require("../../../state/shared-api");
|
|
28
|
+
var import_builder_api = require("../../../state/builder-api");
|
|
28
29
|
var import_is_server = require("../../../utils/is-server");
|
|
29
30
|
var import_useIsomorphicLayoutEffect = require("../../../components/hooks/useIsomorphicLayoutEffect");
|
|
30
31
|
function useRegisterDocument(document) {
|
|
31
32
|
const isInBuilder = (0, import_use_is_in_builder.useIsInBuilder)();
|
|
32
33
|
const dispatch = (0, import_use_dispatch.useDispatch)();
|
|
33
34
|
if ((0, import_is_server.isServer)()) {
|
|
34
|
-
dispatch((0,
|
|
35
|
+
dispatch((0, import_shared_api.registerDocument)(document));
|
|
35
36
|
}
|
|
36
37
|
(0, import_useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(() => {
|
|
37
|
-
return dispatch((0,
|
|
38
|
+
return dispatch((0, import_shared_api.registerDocumentsEffect)([document]));
|
|
38
39
|
}, [dispatch, document]);
|
|
39
40
|
(0, import_react.useEffect)(() => {
|
|
40
41
|
if (!isInBuilder)
|
|
41
42
|
return;
|
|
42
|
-
return dispatch((0,
|
|
43
|
+
return dispatch((0, import_builder_api.registerBuilderDocumentsEffect)([document]));
|
|
43
44
|
}, [isInBuilder, document]);
|
|
44
45
|
}
|
|
45
46
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { type Document } from '../../../state/react-page'\nimport { useDispatch } from './use-dispatch'\nimport { useIsInBuilder } from './use-is-in-builder'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { type Document } from '../../../state/react-page'\nimport { useDispatch } from './use-dispatch'\nimport { useIsInBuilder } from './use-is-in-builder'\nimport { registerDocument, registerDocumentsEffect } from '../../../state/shared-api'\nimport { registerBuilderDocumentsEffect } from '../../../state/builder-api'\n\nimport { isServer } from '../../../utils/is-server'\nimport { useIsomorphicLayoutEffect } from '../../../components/hooks/useIsomorphicLayoutEffect'\n\n/**\n * @param document Document to register\n */\nexport function useRegisterDocument(document: Document): void {\n const isInBuilder = useIsInBuilder()\n const dispatch = useDispatch()\n\n if (isServer()) {\n dispatch(registerDocument(document))\n }\n\n /*\n Layout effect is to ensure that the document registration happens prior to the\n attempted creation/registration of prop controllers in child components.\n */\n useIsomorphicLayoutEffect(() => {\n return dispatch(registerDocumentsEffect([document]))\n }, [dispatch, document])\n\n // TODO: Decide whether to do this via middleware or via explicit action (like\n // what we're doing below)\n useEffect(() => {\n if (!isInBuilder) return\n return dispatch(registerBuilderDocumentsEffect([document]))\n }, [isInBuilder, document])\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAE1B,0BAA4B;AAC5B,+BAA+B;AAC/B,wBAA0D;AAC1D,yBAA+C;AAE/C,uBAAyB;AACzB,uCAA0C;AAKnC,SAAS,oBAAoB,UAA0B;AAC5D,QAAM,kBAAc,yCAAe;AACnC,QAAM,eAAW,iCAAY;AAE7B,UAAI,2BAAS,GAAG;AACd,iBAAS,oCAAiB,QAAQ,CAAC;AAAA,EACrC;AAMA,kEAA0B,MAAM;AAC9B,WAAO,aAAS,2CAAwB,CAAC,QAAQ,CAAC,CAAC;AAAA,EACrD,GAAG,CAAC,UAAU,QAAQ,CAAC;AAIvB,8BAAU,MAAM;AACd,QAAI,CAAC;AAAa;AAClB,WAAO,aAAS,mDAA+B,CAAC,QAAQ,CAAC,CAAC;AAAA,EAC5D,GAAG,CAAC,aAAa,QAAQ,CAAC;AAC5B;","names":[]}
|
|
@@ -21,7 +21,8 @@ __export(react_runtime_core_exports, {
|
|
|
21
21
|
ReactRuntimeCore: () => ReactRuntimeCore
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(react_runtime_core_exports);
|
|
24
|
-
var
|
|
24
|
+
var import_shared_api = require("../../state/shared-api");
|
|
25
|
+
var import_internal = require("../../state/actions/internal");
|
|
25
26
|
var import_components_meta = require("../../state/modules/components-meta");
|
|
26
27
|
var import_runtime_core = require("./runtime-core");
|
|
27
28
|
function validateComponentType(type, component) {
|
|
@@ -44,14 +45,14 @@ class ReactRuntimeCore extends import_runtime_core.RuntimeCore {
|
|
|
44
45
|
}) {
|
|
45
46
|
validateComponentType(type, component);
|
|
46
47
|
const unregisterComponent = this.store.dispatch(
|
|
47
|
-
(0,
|
|
48
|
+
(0, import_shared_api.registerComponentEffect)(
|
|
48
49
|
type,
|
|
49
50
|
{ label, icon, hidden, description, builtinSuspense },
|
|
50
51
|
props ?? {}
|
|
51
52
|
)
|
|
52
53
|
);
|
|
53
54
|
const unregisterReactComponent = this.store.dispatch(
|
|
54
|
-
(0,
|
|
55
|
+
(0, import_internal.registerReactComponentEffect)(type, component)
|
|
55
56
|
);
|
|
56
57
|
return () => {
|
|
57
58
|
unregisterComponent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/react/react-runtime-core.ts"],"sourcesContent":["import { ControlDefinition as UnifiedControlDefinition } from '@makeswift/controls'\n\nimport { type LegacyDescriptor, type DescriptorValueType } from '../../prop-controllers/descriptors'\n\nimport { registerComponentEffect
|
|
1
|
+
{"version":3,"sources":["../../../../src/runtimes/react/react-runtime-core.ts"],"sourcesContent":["import { ControlDefinition as UnifiedControlDefinition } from '@makeswift/controls'\n\nimport { type LegacyDescriptor, type DescriptorValueType } from '../../prop-controllers/descriptors'\n\nimport { registerComponentEffect } from '../../state/shared-api'\nimport { registerReactComponentEffect } from '../../state/actions/internal'\n\nimport { BreakpointsInput } from '../../state/modules/breakpoints'\nimport { ComponentIcon } from '../../state/modules/components-meta'\nimport type { ComponentType } from '../../state/react-page'\n\nimport { RuntimeCore } from './runtime-core'\n\nfunction validateComponentType(type: string, component?: ComponentType): void {\n const componentName = component?.name ?? 'Component'\n if (typeof type !== 'string' || type === '') {\n throw new Error(\n `${componentName}: A non-empty string \\`type\\` is required for component registration, got ${type}`,\n )\n }\n}\n\nexport class ReactRuntimeCore extends RuntimeCore {\n registerComponent<\n ControlDef extends UnifiedControlDefinition,\n P extends Record<string, LegacyDescriptor | ControlDef>,\n C extends ComponentType<{ [K in keyof P]: DescriptorValueType<P[K]> }>,\n >(\n component: C,\n {\n type,\n label,\n icon = ComponentIcon.Cube,\n hidden = false,\n description,\n builtinSuspense,\n props,\n }: {\n type: string\n label: string\n icon?: ComponentIcon\n hidden?: boolean\n description?: string\n builtinSuspense?: boolean\n props?: P\n },\n ): () => void {\n validateComponentType(type, component as unknown as ComponentType)\n\n const unregisterComponent = this.store.dispatch(\n registerComponentEffect(\n type,\n { label, icon, hidden, description, builtinSuspense },\n props ?? {},\n ),\n )\n\n const unregisterReactComponent = this.store.dispatch(\n registerReactComponentEffect(type, component as unknown as ComponentType),\n )\n\n return () => {\n unregisterComponent()\n unregisterReactComponent()\n }\n }\n\n constructor({ breakpoints }: { breakpoints?: BreakpointsInput } = {}) {\n super({ breakpoints })\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,wBAAwC;AACxC,sBAA6C;AAG7C,6BAA8B;AAG9B,0BAA4B;AAE5B,SAAS,sBAAsB,MAAc,WAAiC;AAC5E,QAAM,gBAAgB,WAAW,QAAQ;AACzC,MAAI,OAAO,SAAS,YAAY,SAAS,IAAI;AAC3C,UAAM,IAAI;AAAA,MACR,GAAG,aAAa,6EAA6E,IAAI;AAAA,IACnG;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB,gCAAY;AAAA,EAChD,kBAKE,WACA;AAAA,IACE;AAAA,IACA;AAAA,IACA,OAAO,qCAAc;AAAA,IACrB,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EACF,GASY;AACZ,0BAAsB,MAAM,SAAqC;AAEjE,UAAM,sBAAsB,KAAK,MAAM;AAAA,UACrC;AAAA,QACE;AAAA,QACA,EAAE,OAAO,MAAM,QAAQ,aAAa,gBAAgB;AAAA,QACpD,SAAS,CAAC;AAAA,MACZ;AAAA,IACF;AAEA,UAAM,2BAA2B,KAAK,MAAM;AAAA,UAC1C,8CAA6B,MAAM,SAAqC;AAAA,IAC1E;AAEA,WAAO,MAAM;AACX,0BAAoB;AACpB,+BAAyB;AAAA,IAC3B;AAAA,EACF;AAAA,EAEA,YAAY,EAAE,YAAY,IAAwC,CAAC,GAAG;AACpE,UAAM,EAAE,YAAY,CAAC;AAAA,EACvB;AACF;","names":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var actions_exports = {};
|
|
20
|
+
__export(actions_exports, {
|
|
21
|
+
ActionTypes: () => ActionTypes,
|
|
22
|
+
isKnownAction: () => isKnownAction
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(actions_exports);
|
|
25
|
+
var import_toolkit = require("@reduxjs/toolkit");
|
|
26
|
+
var import_builder_api = require("../builder-api");
|
|
27
|
+
var import_host_api = require("../host-api");
|
|
28
|
+
var import_internal = require("./internal");
|
|
29
|
+
const ActionTypes = {
|
|
30
|
+
...import_host_api.HostActionTypes,
|
|
31
|
+
...import_builder_api.BuilderActionTypes,
|
|
32
|
+
...import_internal.InternalActionTypes
|
|
33
|
+
};
|
|
34
|
+
function isKnownAction(action) {
|
|
35
|
+
return (0, import_toolkit.isAction)(action) && Object.hasOwn(ActionTypes, action.type);
|
|
36
|
+
}
|
|
37
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
38
|
+
0 && (module.exports = {
|
|
39
|
+
ActionTypes,
|
|
40
|
+
isKnownAction
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/state/actions/index.ts"],"sourcesContent":["import { isAction } from '@reduxjs/toolkit'\n\nimport { type BuilderAction, BuilderActionTypes } from '../builder-api'\nimport { type HostAction, HostActionTypes } from '../host-api'\n\nimport { type InternalAction, InternalActionTypes } from './internal'\n\nexport { type UnknownAction } from '@reduxjs/toolkit'\nexport { type DocumentPayload } from '../shared-api'\n\nexport const ActionTypes = {\n ...HostActionTypes,\n ...BuilderActionTypes,\n ...InternalActionTypes,\n} as const\n\nexport type Action = HostAction | BuilderAction | InternalAction\n\nexport function isKnownAction(action: unknown): action is Action {\n return isAction(action) && Object.hasOwn(ActionTypes, action.type)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAyB;AAEzB,yBAAuD;AACvD,sBAAiD;AAEjD,sBAAyD;AAKlD,MAAM,cAAc;AAAA,EACzB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAIO,SAAS,cAAc,QAAmC;AAC/D,aAAO,yBAAS,MAAM,KAAK,OAAO,OAAO,aAAa,OAAO,IAAI;AACnE;","names":[]}
|