@makeswift/runtime 0.2.8 → 0.2.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"slot.cjs.js","sources":["../src/utils/constants.ts","../src/prop-controllers/instances.ts","../src/controls/slot.ts"],"sourcesContent":["export const BuilderEditMode = {\n BUILD: 'build',\n CONTENT: 'content',\n} as const\n\nexport type BuilderEditMode = typeof BuilderEditMode[keyof typeof BuilderEditMode]\n","import { Editor } from 'slate-react'\nimport { ValueJSON } from 'slate'\nimport { OnChangeParam } from 'slate-react'\nimport { Descriptor, RichTextDescriptor, TableFormFieldsDescriptor, Types } from './descriptors'\nimport { BuilderEditMode } from '../utils/constants'\nimport { BoxModel } from '../state/modules/box-models'\nimport { SlotControl, SlotControlMessage, SlotControlType } from '../controls'\n\nexport const RichTextPropControllerMessageType = {\n CHANGE_BUILDER_EDIT_MODE: 'CHANGE_BUILDER_EDIT_MODE',\n INITIALIZE_EDITOR: 'INITIALIZE_EDITOR',\n CHANGE_EDITOR_VALUE: 'CHANGE_EDITOR_VALUE',\n FOCUS: 'FOCUS',\n BLUR: 'BLUR',\n UNDO: 'UNDO',\n REDO: 'REDO',\n} as const\n\ntype ChangeBuilderEditModeRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE\n editMode: BuilderEditMode\n}\n\ntype InitializeEditorRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.INITIALIZE_EDITOR\n value: ValueJSON\n}\n\ntype ChangeEditorValueRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE\n value: ValueJSON\n}\n\ntype FocusRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.FOCUS }\n\ntype BlurRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.BLUR }\n\ntype UndoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.UNDO }\n\ntype RedoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.REDO }\n\nexport type RichTextPropControllerMessage =\n | ChangeBuilderEditModeRichTextPropControllerMessage\n | InitializeEditorRichTextPropControllerMessage\n | ChangeEditorValueRichTextPropControllerMessage\n | FocusRichTextPropControllerMessage\n | BlurRichTextPropControllerMessage\n | UndoRichTextPropControllerMessage\n | RedoRichTextPropControllerMessage\n\nexport type PropControllerMessage =\n | RichTextPropControllerMessage\n | TableFormFieldsMessage\n | SlotControlMessage\n\nexport type Send<T = PropControllerMessage> = (message: T) => void\n\nexport abstract class PropController<T = PropControllerMessage> {\n protected send: Send<T>\n\n constructor(send: Send<T>) {\n this.send = send\n }\n\n abstract recv(message: T): void\n}\n\nclass DefaultPropController extends PropController {\n recv(_message: PropControllerMessage): void {\n // Do nothing.\n }\n}\n\nclass RichTextPropController extends PropController<RichTextPropControllerMessage> {\n private editor: Editor | null = null\n\n recv(message: RichTextPropControllerMessage): void {\n switch (message.type) {\n case RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE: {\n switch (message.editMode) {\n case BuilderEditMode.BUILD:\n this.editor?.deselect().blur()\n break\n\n case BuilderEditMode.CONTENT:\n this.editor?.focus().moveToRangeOfDocument()\n break\n }\n\n break\n }\n }\n }\n\n setSlateEditor(editor: Editor) {\n this.editor = editor\n\n this.send({\n type: RichTextPropControllerMessageType.INITIALIZE_EDITOR,\n value: editor.value.toJSON({ preserveSelection: false }),\n })\n }\n\n onChange(change: OnChangeParam) {\n this.send({\n type: RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE,\n value: change.value.toJSON({ preserveSelection: true }),\n })\n }\n\n focus() {\n this.send({ type: RichTextPropControllerMessageType.FOCUS })\n }\n\n blur() {\n this.send({ type: RichTextPropControllerMessageType.BLUR })\n }\n\n undo() {\n this.send({ type: RichTextPropControllerMessageType.UNDO })\n }\n\n redo() {\n this.send({ type: RichTextPropControllerMessageType.REDO })\n }\n}\n\nexport const TableFormFieldsMessageType = {\n TABLE_FORM_LAYOUT_CHANGE: 'TABLE_FORM_LAYOUT_CHANGE',\n TABLE_FORM_FIELD_LAYOUT_CHANGE: 'TABLE_FORM_FIELD_LAYOUT_CHANGE',\n} as const\n\ntype TableLayoutTableFormFieldsMessage = {\n type: typeof TableFormFieldsMessageType.TABLE_FORM_LAYOUT_CHANGE\n payload: { layout: BoxModel }\n}\n\ntype TableFieldLayoutTableFormFieldsMessage = {\n type: typeof TableFormFieldsMessageType.TABLE_FORM_FIELD_LAYOUT_CHANGE\n payload: { layout: BoxModel; index: number }\n}\n\nexport type TableFormFieldsMessage =\n | TableLayoutTableFormFieldsMessage\n | TableFieldLayoutTableFormFieldsMessage\n\nexport class TableFormFieldsPropController extends PropController<TableFormFieldsMessage> {\n recv(): void {}\n\n tableFormLayoutChange(payload: { layout: BoxModel }) {\n this.send({ type: TableFormFieldsMessageType.TABLE_FORM_LAYOUT_CHANGE, payload })\n }\n\n tableFormFieldLayoutChange(payload: { layout: BoxModel; index: number }) {\n this.send({ type: TableFormFieldsMessageType.TABLE_FORM_FIELD_LAYOUT_CHANGE, payload })\n }\n}\n\ntype DescriptorPropController<T extends Descriptor> = T extends { type: typeof Types.RichText }\n ? RichTextPropController\n : T extends { type: typeof Types.TableFormFields }\n ? TableFormFieldsPropController\n : DefaultPropController\n\nexport type DescriptorsPropControllers<T extends Record<string, Descriptor>> = {\n [K in keyof T]: undefined extends T[K]\n ? DescriptorPropController<Exclude<T[K], undefined>>\n : DescriptorPropController<T[K]>\n}\n\ntype AnyPropController =\n | DefaultPropController\n | RichTextPropController\n | TableFormFieldsPropController\n | SlotControl\n\nexport function createPropController(\n descriptor: RichTextDescriptor,\n send: Send<RichTextPropControllerMessage>,\n): RichTextPropController\nexport function createPropController(\n descriptor: TableFormFieldsDescriptor,\n send: Send<TableFormFieldsMessage>,\n): TableFormFieldsPropController\nexport function createPropController(descriptor: Descriptor, send: Send): DefaultPropController\nexport function createPropController<T extends PropControllerMessage>(\n descriptor: Descriptor,\n send: Send<T>,\n): AnyPropController {\n switch (descriptor.type) {\n case Types.RichText:\n return new RichTextPropController(send as Send<RichTextPropControllerMessage>)\n\n case Types.TableFormFields:\n return new TableFormFieldsPropController(send as Send<TableFormFieldsMessage>)\n\n case SlotControlType:\n return new SlotControl(send as Send<SlotControlMessage>)\n\n default:\n return new DefaultPropController(send as Send)\n }\n}\n","import { PropController } from '../prop-controllers/instances'\nimport { BoxModel } from '../state/modules/box-models'\nimport { Element } from '../state/react-page'\nimport { ResponsiveValue } from './types'\n\ntype SlotControlColumnData = { count: number; spans: number[][] }\n\nexport type SlotControlData = {\n elements: Element[]\n columns: ResponsiveValue<SlotControlColumnData>\n}\n\nexport const SlotControlType = 'makeswift::controls::slot'\n\nexport type SlotControlDefinition = {\n type: typeof SlotControlType\n}\n\nexport function Slot(): SlotControlDefinition {\n return { type: SlotControlType }\n}\n\nexport const SlotControlMessageType = {\n CONTAINER_BOX_MODEL_CHANGE: 'makeswift::controls::slot::message::container-box-model-change',\n ITEM_BOX_MODEL_CHANGE: 'makeswift::controls::slot::message::item-box-model-change',\n} as const\n\ntype SlotControlContainerBoxModelChangeMessage = {\n type: typeof SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE\n payload: { boxModel: BoxModel }\n}\n\ntype SlotControlItemBoxModelChangeMessage = {\n type: typeof SlotControlMessageType.ITEM_BOX_MODEL_CHANGE\n payload: { index: number; boxModel: BoxModel }\n}\n\nexport type SlotControlMessage =\n | SlotControlContainerBoxModelChangeMessage\n | SlotControlItemBoxModelChangeMessage\n\nexport class SlotControl extends PropController<SlotControlMessage> {\n recv(): void {}\n\n changeContainerBoxModel(boxModel: BoxModel): void {\n this.send({ type: SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE, payload: { boxModel } })\n }\n\n changeItemBoxModel(index: number, boxModel: BoxModel): void {\n this.send({ type: SlotControlMessageType.ITEM_BOX_MODEL_CHANGE, payload: { index, boxModel } })\n }\n}\n"],"names":["Types"],"mappings":"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"}
1
+ {"version":3,"file":"slot.cjs.js","sources":["../src/utils/constants.ts","../src/prop-controllers/instances.ts","../src/controls/slot.ts"],"sourcesContent":["export const BuilderEditMode = {\n BUILD: 'build',\n CONTENT: 'content',\n} as const\n\nexport type BuilderEditMode = typeof BuilderEditMode[keyof typeof BuilderEditMode]\n","import { Editor } from 'slate-react'\nimport { ValueJSON } from 'slate'\nimport { OnChangeParam } from 'slate-react'\nimport { Descriptor, RichTextDescriptor, TableFormFieldsDescriptor, Types } from './descriptors'\nimport { BuilderEditMode } from '../utils/constants'\nimport { BoxModel } from '../state/modules/box-models'\nimport { SlotControl, SlotControlMessage, SlotControlType } from '../controls'\n\nexport const RichTextPropControllerMessageType = {\n CHANGE_BUILDER_EDIT_MODE: 'CHANGE_BUILDER_EDIT_MODE',\n INITIALIZE_EDITOR: 'INITIALIZE_EDITOR',\n CHANGE_EDITOR_VALUE: 'CHANGE_EDITOR_VALUE',\n FOCUS: 'FOCUS',\n BLUR: 'BLUR',\n UNDO: 'UNDO',\n REDO: 'REDO',\n} as const\n\ntype ChangeBuilderEditModeRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE\n editMode: BuilderEditMode\n}\n\ntype InitializeEditorRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.INITIALIZE_EDITOR\n value: ValueJSON\n}\n\ntype ChangeEditorValueRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE\n value: ValueJSON\n}\n\ntype FocusRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.FOCUS }\n\ntype BlurRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.BLUR }\n\ntype UndoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.UNDO }\n\ntype RedoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.REDO }\n\nexport type RichTextPropControllerMessage =\n | ChangeBuilderEditModeRichTextPropControllerMessage\n | InitializeEditorRichTextPropControllerMessage\n | ChangeEditorValueRichTextPropControllerMessage\n | FocusRichTextPropControllerMessage\n | BlurRichTextPropControllerMessage\n | UndoRichTextPropControllerMessage\n | RedoRichTextPropControllerMessage\n\nexport type PropControllerMessage =\n | RichTextPropControllerMessage\n | TableFormFieldsMessage\n | SlotControlMessage\n\nexport type Send<T = PropControllerMessage> = (message: T) => void\n\nexport abstract class PropController<T = PropControllerMessage> {\n protected send: Send<T>\n\n constructor(send: Send<T>) {\n this.send = send\n }\n\n abstract recv(message: T): void\n}\n\nclass DefaultPropController extends PropController {\n recv(_message: PropControllerMessage): void {\n // Do nothing.\n }\n}\n\nclass RichTextPropController extends PropController<RichTextPropControllerMessage> {\n private editor: Editor | null = null\n\n recv(message: RichTextPropControllerMessage): void {\n switch (message.type) {\n case RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE: {\n switch (message.editMode) {\n case BuilderEditMode.BUILD:\n this.editor?.deselect().blur()\n break\n\n case BuilderEditMode.CONTENT:\n this.editor?.focus().moveToRangeOfDocument()\n break\n }\n\n break\n }\n }\n }\n\n setSlateEditor(editor: Editor) {\n this.editor = editor\n\n this.send({\n type: RichTextPropControllerMessageType.INITIALIZE_EDITOR,\n value: editor.value.toJSON({ preserveSelection: false }),\n })\n }\n\n onChange(change: OnChangeParam) {\n this.send({\n type: RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE,\n value: change.value.toJSON({ preserveSelection: true }),\n })\n }\n\n focus() {\n this.send({ type: RichTextPropControllerMessageType.FOCUS })\n }\n\n blur() {\n this.send({ type: RichTextPropControllerMessageType.BLUR })\n }\n\n undo() {\n this.send({ type: RichTextPropControllerMessageType.UNDO })\n }\n\n redo() {\n this.send({ type: RichTextPropControllerMessageType.REDO })\n }\n}\n\nexport const TableFormFieldsMessageType = {\n TABLE_FORM_LAYOUT_CHANGE: 'TABLE_FORM_LAYOUT_CHANGE',\n TABLE_FORM_FIELD_LAYOUT_CHANGE: 'TABLE_FORM_FIELD_LAYOUT_CHANGE',\n} as const\n\ntype TableLayoutTableFormFieldsMessage = {\n type: typeof TableFormFieldsMessageType.TABLE_FORM_LAYOUT_CHANGE\n payload: { layout: BoxModel }\n}\n\ntype TableFieldLayoutTableFormFieldsMessage = {\n type: typeof TableFormFieldsMessageType.TABLE_FORM_FIELD_LAYOUT_CHANGE\n payload: { layout: BoxModel; index: number }\n}\n\nexport type TableFormFieldsMessage =\n | TableLayoutTableFormFieldsMessage\n | TableFieldLayoutTableFormFieldsMessage\n\nexport class TableFormFieldsPropController extends PropController<TableFormFieldsMessage> {\n recv(): void {}\n\n tableFormLayoutChange(payload: { layout: BoxModel }) {\n this.send({ type: TableFormFieldsMessageType.TABLE_FORM_LAYOUT_CHANGE, payload })\n }\n\n tableFormFieldLayoutChange(payload: { layout: BoxModel; index: number }) {\n this.send({ type: TableFormFieldsMessageType.TABLE_FORM_FIELD_LAYOUT_CHANGE, payload })\n }\n}\n\ntype DescriptorPropController<T extends Descriptor> = T extends { type: typeof Types.RichText }\n ? RichTextPropController\n : T extends { type: typeof Types.TableFormFields }\n ? TableFormFieldsPropController\n : DefaultPropController\n\nexport type DescriptorsPropControllers<T extends Record<string, Descriptor>> = {\n [K in keyof T]: undefined extends T[K]\n ? DescriptorPropController<Exclude<T[K], undefined>>\n : DescriptorPropController<T[K]>\n}\n\ntype AnyPropController =\n | DefaultPropController\n | RichTextPropController\n | TableFormFieldsPropController\n | SlotControl\n\nexport function createPropController(\n descriptor: RichTextDescriptor,\n send: Send<RichTextPropControllerMessage>,\n): RichTextPropController\nexport function createPropController(\n descriptor: TableFormFieldsDescriptor,\n send: Send<TableFormFieldsMessage>,\n): TableFormFieldsPropController\nexport function createPropController(descriptor: Descriptor, send: Send): DefaultPropController\nexport function createPropController<T extends PropControllerMessage>(\n descriptor: Descriptor,\n send: Send<T>,\n): AnyPropController {\n switch (descriptor.type) {\n case Types.RichText:\n return new RichTextPropController(send as Send<RichTextPropControllerMessage>)\n\n case Types.TableFormFields:\n return new TableFormFieldsPropController(send as Send<TableFormFieldsMessage>)\n\n case SlotControlType:\n return new SlotControl(send as Send<SlotControlMessage>)\n\n default:\n return new DefaultPropController(send as Send)\n }\n}\n","import { PropController } from '../prop-controllers/instances'\nimport { BoxModel } from '../state/modules/box-models'\nimport { Element } from '../state/react-page'\nimport { ResponsiveValue } from './types'\n\ntype SlotControlColumnData = { count: number; spans: number[][] }\n\nexport type SlotControlData = {\n elements: Element[]\n columns: ResponsiveValue<SlotControlColumnData>\n}\n\nexport const SlotControlType = 'makeswift::controls::slot'\n\nexport type SlotControlDefinition = {\n type: typeof SlotControlType\n}\n\nexport function Slot(): SlotControlDefinition {\n return { type: SlotControlType }\n}\n\nexport const SlotControlMessageType = {\n CONTAINER_BOX_MODEL_CHANGE: 'makeswift::controls::slot::message::container-box-model-change',\n ITEM_BOX_MODEL_CHANGE: 'makeswift::controls::slot::message::item-box-model-change',\n} as const\n\ntype SlotControlContainerBoxModelChangeMessage = {\n type: typeof SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE\n payload: { boxModel: BoxModel | null }\n}\n\ntype SlotControlItemBoxModelChangeMessage = {\n type: typeof SlotControlMessageType.ITEM_BOX_MODEL_CHANGE\n payload: { index: number; boxModel: BoxModel | null }\n}\n\nexport type SlotControlMessage =\n | SlotControlContainerBoxModelChangeMessage\n | SlotControlItemBoxModelChangeMessage\n\nexport class SlotControl extends PropController<SlotControlMessage> {\n recv(): void {}\n\n changeContainerBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE, payload: { boxModel } })\n }\n\n changeItemBoxModel(index: number, boxModel: BoxModel | null): void {\n this.send({ type: SlotControlMessageType.ITEM_BOX_MODEL_CHANGE, payload: { index, boxModel } })\n }\n}\n"],"names":["Types"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"slot.es.js","sources":["../src/utils/constants.ts","../src/prop-controllers/instances.ts","../src/controls/slot.ts"],"sourcesContent":["export const BuilderEditMode = {\n BUILD: 'build',\n CONTENT: 'content',\n} as const\n\nexport type BuilderEditMode = typeof BuilderEditMode[keyof typeof BuilderEditMode]\n","import { Editor } from 'slate-react'\nimport { ValueJSON } from 'slate'\nimport { OnChangeParam } from 'slate-react'\nimport { Descriptor, RichTextDescriptor, TableFormFieldsDescriptor, Types } from './descriptors'\nimport { BuilderEditMode } from '../utils/constants'\nimport { BoxModel } from '../state/modules/box-models'\nimport { SlotControl, SlotControlMessage, SlotControlType } from '../controls'\n\nexport const RichTextPropControllerMessageType = {\n CHANGE_BUILDER_EDIT_MODE: 'CHANGE_BUILDER_EDIT_MODE',\n INITIALIZE_EDITOR: 'INITIALIZE_EDITOR',\n CHANGE_EDITOR_VALUE: 'CHANGE_EDITOR_VALUE',\n FOCUS: 'FOCUS',\n BLUR: 'BLUR',\n UNDO: 'UNDO',\n REDO: 'REDO',\n} as const\n\ntype ChangeBuilderEditModeRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE\n editMode: BuilderEditMode\n}\n\ntype InitializeEditorRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.INITIALIZE_EDITOR\n value: ValueJSON\n}\n\ntype ChangeEditorValueRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE\n value: ValueJSON\n}\n\ntype FocusRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.FOCUS }\n\ntype BlurRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.BLUR }\n\ntype UndoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.UNDO }\n\ntype RedoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.REDO }\n\nexport type RichTextPropControllerMessage =\n | ChangeBuilderEditModeRichTextPropControllerMessage\n | InitializeEditorRichTextPropControllerMessage\n | ChangeEditorValueRichTextPropControllerMessage\n | FocusRichTextPropControllerMessage\n | BlurRichTextPropControllerMessage\n | UndoRichTextPropControllerMessage\n | RedoRichTextPropControllerMessage\n\nexport type PropControllerMessage =\n | RichTextPropControllerMessage\n | TableFormFieldsMessage\n | SlotControlMessage\n\nexport type Send<T = PropControllerMessage> = (message: T) => void\n\nexport abstract class PropController<T = PropControllerMessage> {\n protected send: Send<T>\n\n constructor(send: Send<T>) {\n this.send = send\n }\n\n abstract recv(message: T): void\n}\n\nclass DefaultPropController extends PropController {\n recv(_message: PropControllerMessage): void {\n // Do nothing.\n }\n}\n\nclass RichTextPropController extends PropController<RichTextPropControllerMessage> {\n private editor: Editor | null = null\n\n recv(message: RichTextPropControllerMessage): void {\n switch (message.type) {\n case RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE: {\n switch (message.editMode) {\n case BuilderEditMode.BUILD:\n this.editor?.deselect().blur()\n break\n\n case BuilderEditMode.CONTENT:\n this.editor?.focus().moveToRangeOfDocument()\n break\n }\n\n break\n }\n }\n }\n\n setSlateEditor(editor: Editor) {\n this.editor = editor\n\n this.send({\n type: RichTextPropControllerMessageType.INITIALIZE_EDITOR,\n value: editor.value.toJSON({ preserveSelection: false }),\n })\n }\n\n onChange(change: OnChangeParam) {\n this.send({\n type: RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE,\n value: change.value.toJSON({ preserveSelection: true }),\n })\n }\n\n focus() {\n this.send({ type: RichTextPropControllerMessageType.FOCUS })\n }\n\n blur() {\n this.send({ type: RichTextPropControllerMessageType.BLUR })\n }\n\n undo() {\n this.send({ type: RichTextPropControllerMessageType.UNDO })\n }\n\n redo() {\n this.send({ type: RichTextPropControllerMessageType.REDO })\n }\n}\n\nexport const TableFormFieldsMessageType = {\n TABLE_FORM_LAYOUT_CHANGE: 'TABLE_FORM_LAYOUT_CHANGE',\n TABLE_FORM_FIELD_LAYOUT_CHANGE: 'TABLE_FORM_FIELD_LAYOUT_CHANGE',\n} as const\n\ntype TableLayoutTableFormFieldsMessage = {\n type: typeof TableFormFieldsMessageType.TABLE_FORM_LAYOUT_CHANGE\n payload: { layout: BoxModel }\n}\n\ntype TableFieldLayoutTableFormFieldsMessage = {\n type: typeof TableFormFieldsMessageType.TABLE_FORM_FIELD_LAYOUT_CHANGE\n payload: { layout: BoxModel; index: number }\n}\n\nexport type TableFormFieldsMessage =\n | TableLayoutTableFormFieldsMessage\n | TableFieldLayoutTableFormFieldsMessage\n\nexport class TableFormFieldsPropController extends PropController<TableFormFieldsMessage> {\n recv(): void {}\n\n tableFormLayoutChange(payload: { layout: BoxModel }) {\n this.send({ type: TableFormFieldsMessageType.TABLE_FORM_LAYOUT_CHANGE, payload })\n }\n\n tableFormFieldLayoutChange(payload: { layout: BoxModel; index: number }) {\n this.send({ type: TableFormFieldsMessageType.TABLE_FORM_FIELD_LAYOUT_CHANGE, payload })\n }\n}\n\ntype DescriptorPropController<T extends Descriptor> = T extends { type: typeof Types.RichText }\n ? RichTextPropController\n : T extends { type: typeof Types.TableFormFields }\n ? TableFormFieldsPropController\n : DefaultPropController\n\nexport type DescriptorsPropControllers<T extends Record<string, Descriptor>> = {\n [K in keyof T]: undefined extends T[K]\n ? DescriptorPropController<Exclude<T[K], undefined>>\n : DescriptorPropController<T[K]>\n}\n\ntype AnyPropController =\n | DefaultPropController\n | RichTextPropController\n | TableFormFieldsPropController\n | SlotControl\n\nexport function createPropController(\n descriptor: RichTextDescriptor,\n send: Send<RichTextPropControllerMessage>,\n): RichTextPropController\nexport function createPropController(\n descriptor: TableFormFieldsDescriptor,\n send: Send<TableFormFieldsMessage>,\n): TableFormFieldsPropController\nexport function createPropController(descriptor: Descriptor, send: Send): DefaultPropController\nexport function createPropController<T extends PropControllerMessage>(\n descriptor: Descriptor,\n send: Send<T>,\n): AnyPropController {\n switch (descriptor.type) {\n case Types.RichText:\n return new RichTextPropController(send as Send<RichTextPropControllerMessage>)\n\n case Types.TableFormFields:\n return new TableFormFieldsPropController(send as Send<TableFormFieldsMessage>)\n\n case SlotControlType:\n return new SlotControl(send as Send<SlotControlMessage>)\n\n default:\n return new DefaultPropController(send as Send)\n }\n}\n","import { PropController } from '../prop-controllers/instances'\nimport { BoxModel } from '../state/modules/box-models'\nimport { Element } from '../state/react-page'\nimport { ResponsiveValue } from './types'\n\ntype SlotControlColumnData = { count: number; spans: number[][] }\n\nexport type SlotControlData = {\n elements: Element[]\n columns: ResponsiveValue<SlotControlColumnData>\n}\n\nexport const SlotControlType = 'makeswift::controls::slot'\n\nexport type SlotControlDefinition = {\n type: typeof SlotControlType\n}\n\nexport function Slot(): SlotControlDefinition {\n return { type: SlotControlType }\n}\n\nexport const SlotControlMessageType = {\n CONTAINER_BOX_MODEL_CHANGE: 'makeswift::controls::slot::message::container-box-model-change',\n ITEM_BOX_MODEL_CHANGE: 'makeswift::controls::slot::message::item-box-model-change',\n} as const\n\ntype SlotControlContainerBoxModelChangeMessage = {\n type: typeof SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE\n payload: { boxModel: BoxModel }\n}\n\ntype SlotControlItemBoxModelChangeMessage = {\n type: typeof SlotControlMessageType.ITEM_BOX_MODEL_CHANGE\n payload: { index: number; boxModel: BoxModel }\n}\n\nexport type SlotControlMessage =\n | SlotControlContainerBoxModelChangeMessage\n | SlotControlItemBoxModelChangeMessage\n\nexport class SlotControl extends PropController<SlotControlMessage> {\n recv(): void {}\n\n changeContainerBoxModel(boxModel: BoxModel): void {\n this.send({ type: SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE, payload: { boxModel } })\n }\n\n changeItemBoxModel(index: number, boxModel: BoxModel): void {\n this.send({ type: SlotControlMessageType.ITEM_BOX_MODEL_CHANGE, payload: { index, boxModel } })\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slot.es.js","sources":["../src/utils/constants.ts","../src/prop-controllers/instances.ts","../src/controls/slot.ts"],"sourcesContent":["export const BuilderEditMode = {\n BUILD: 'build',\n CONTENT: 'content',\n} as const\n\nexport type BuilderEditMode = typeof BuilderEditMode[keyof typeof BuilderEditMode]\n","import { Editor } from 'slate-react'\nimport { ValueJSON } from 'slate'\nimport { OnChangeParam } from 'slate-react'\nimport { Descriptor, RichTextDescriptor, TableFormFieldsDescriptor, Types } from './descriptors'\nimport { BuilderEditMode } from '../utils/constants'\nimport { BoxModel } from '../state/modules/box-models'\nimport { SlotControl, SlotControlMessage, SlotControlType } from '../controls'\n\nexport const RichTextPropControllerMessageType = {\n CHANGE_BUILDER_EDIT_MODE: 'CHANGE_BUILDER_EDIT_MODE',\n INITIALIZE_EDITOR: 'INITIALIZE_EDITOR',\n CHANGE_EDITOR_VALUE: 'CHANGE_EDITOR_VALUE',\n FOCUS: 'FOCUS',\n BLUR: 'BLUR',\n UNDO: 'UNDO',\n REDO: 'REDO',\n} as const\n\ntype ChangeBuilderEditModeRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE\n editMode: BuilderEditMode\n}\n\ntype InitializeEditorRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.INITIALIZE_EDITOR\n value: ValueJSON\n}\n\ntype ChangeEditorValueRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE\n value: ValueJSON\n}\n\ntype FocusRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.FOCUS }\n\ntype BlurRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.BLUR }\n\ntype UndoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.UNDO }\n\ntype RedoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.REDO }\n\nexport type RichTextPropControllerMessage =\n | ChangeBuilderEditModeRichTextPropControllerMessage\n | InitializeEditorRichTextPropControllerMessage\n | ChangeEditorValueRichTextPropControllerMessage\n | FocusRichTextPropControllerMessage\n | BlurRichTextPropControllerMessage\n | UndoRichTextPropControllerMessage\n | RedoRichTextPropControllerMessage\n\nexport type PropControllerMessage =\n | RichTextPropControllerMessage\n | TableFormFieldsMessage\n | SlotControlMessage\n\nexport type Send<T = PropControllerMessage> = (message: T) => void\n\nexport abstract class PropController<T = PropControllerMessage> {\n protected send: Send<T>\n\n constructor(send: Send<T>) {\n this.send = send\n }\n\n abstract recv(message: T): void\n}\n\nclass DefaultPropController extends PropController {\n recv(_message: PropControllerMessage): void {\n // Do nothing.\n }\n}\n\nclass RichTextPropController extends PropController<RichTextPropControllerMessage> {\n private editor: Editor | null = null\n\n recv(message: RichTextPropControllerMessage): void {\n switch (message.type) {\n case RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE: {\n switch (message.editMode) {\n case BuilderEditMode.BUILD:\n this.editor?.deselect().blur()\n break\n\n case BuilderEditMode.CONTENT:\n this.editor?.focus().moveToRangeOfDocument()\n break\n }\n\n break\n }\n }\n }\n\n setSlateEditor(editor: Editor) {\n this.editor = editor\n\n this.send({\n type: RichTextPropControllerMessageType.INITIALIZE_EDITOR,\n value: editor.value.toJSON({ preserveSelection: false }),\n })\n }\n\n onChange(change: OnChangeParam) {\n this.send({\n type: RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE,\n value: change.value.toJSON({ preserveSelection: true }),\n })\n }\n\n focus() {\n this.send({ type: RichTextPropControllerMessageType.FOCUS })\n }\n\n blur() {\n this.send({ type: RichTextPropControllerMessageType.BLUR })\n }\n\n undo() {\n this.send({ type: RichTextPropControllerMessageType.UNDO })\n }\n\n redo() {\n this.send({ type: RichTextPropControllerMessageType.REDO })\n }\n}\n\nexport const TableFormFieldsMessageType = {\n TABLE_FORM_LAYOUT_CHANGE: 'TABLE_FORM_LAYOUT_CHANGE',\n TABLE_FORM_FIELD_LAYOUT_CHANGE: 'TABLE_FORM_FIELD_LAYOUT_CHANGE',\n} as const\n\ntype TableLayoutTableFormFieldsMessage = {\n type: typeof TableFormFieldsMessageType.TABLE_FORM_LAYOUT_CHANGE\n payload: { layout: BoxModel }\n}\n\ntype TableFieldLayoutTableFormFieldsMessage = {\n type: typeof TableFormFieldsMessageType.TABLE_FORM_FIELD_LAYOUT_CHANGE\n payload: { layout: BoxModel; index: number }\n}\n\nexport type TableFormFieldsMessage =\n | TableLayoutTableFormFieldsMessage\n | TableFieldLayoutTableFormFieldsMessage\n\nexport class TableFormFieldsPropController extends PropController<TableFormFieldsMessage> {\n recv(): void {}\n\n tableFormLayoutChange(payload: { layout: BoxModel }) {\n this.send({ type: TableFormFieldsMessageType.TABLE_FORM_LAYOUT_CHANGE, payload })\n }\n\n tableFormFieldLayoutChange(payload: { layout: BoxModel; index: number }) {\n this.send({ type: TableFormFieldsMessageType.TABLE_FORM_FIELD_LAYOUT_CHANGE, payload })\n }\n}\n\ntype DescriptorPropController<T extends Descriptor> = T extends { type: typeof Types.RichText }\n ? RichTextPropController\n : T extends { type: typeof Types.TableFormFields }\n ? TableFormFieldsPropController\n : DefaultPropController\n\nexport type DescriptorsPropControllers<T extends Record<string, Descriptor>> = {\n [K in keyof T]: undefined extends T[K]\n ? DescriptorPropController<Exclude<T[K], undefined>>\n : DescriptorPropController<T[K]>\n}\n\ntype AnyPropController =\n | DefaultPropController\n | RichTextPropController\n | TableFormFieldsPropController\n | SlotControl\n\nexport function createPropController(\n descriptor: RichTextDescriptor,\n send: Send<RichTextPropControllerMessage>,\n): RichTextPropController\nexport function createPropController(\n descriptor: TableFormFieldsDescriptor,\n send: Send<TableFormFieldsMessage>,\n): TableFormFieldsPropController\nexport function createPropController(descriptor: Descriptor, send: Send): DefaultPropController\nexport function createPropController<T extends PropControllerMessage>(\n descriptor: Descriptor,\n send: Send<T>,\n): AnyPropController {\n switch (descriptor.type) {\n case Types.RichText:\n return new RichTextPropController(send as Send<RichTextPropControllerMessage>)\n\n case Types.TableFormFields:\n return new TableFormFieldsPropController(send as Send<TableFormFieldsMessage>)\n\n case SlotControlType:\n return new SlotControl(send as Send<SlotControlMessage>)\n\n default:\n return new DefaultPropController(send as Send)\n }\n}\n","import { PropController } from '../prop-controllers/instances'\nimport { BoxModel } from '../state/modules/box-models'\nimport { Element } from '../state/react-page'\nimport { ResponsiveValue } from './types'\n\ntype SlotControlColumnData = { count: number; spans: number[][] }\n\nexport type SlotControlData = {\n elements: Element[]\n columns: ResponsiveValue<SlotControlColumnData>\n}\n\nexport const SlotControlType = 'makeswift::controls::slot'\n\nexport type SlotControlDefinition = {\n type: typeof SlotControlType\n}\n\nexport function Slot(): SlotControlDefinition {\n return { type: SlotControlType }\n}\n\nexport const SlotControlMessageType = {\n CONTAINER_BOX_MODEL_CHANGE: 'makeswift::controls::slot::message::container-box-model-change',\n ITEM_BOX_MODEL_CHANGE: 'makeswift::controls::slot::message::item-box-model-change',\n} as const\n\ntype SlotControlContainerBoxModelChangeMessage = {\n type: typeof SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE\n payload: { boxModel: BoxModel | null }\n}\n\ntype SlotControlItemBoxModelChangeMessage = {\n type: typeof SlotControlMessageType.ITEM_BOX_MODEL_CHANGE\n payload: { index: number; boxModel: BoxModel | null }\n}\n\nexport type SlotControlMessage =\n | SlotControlContainerBoxModelChangeMessage\n | SlotControlItemBoxModelChangeMessage\n\nexport class SlotControl extends PropController<SlotControlMessage> {\n recv(): void {}\n\n changeContainerBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE, payload: { boxModel } })\n }\n\n changeItemBoxModel(index: number, boxModel: BoxModel | null): void {\n this.send({ type: SlotControlMessageType.ITEM_BOX_MODEL_CHANGE, payload: { index, boxModel } })\n }\n}\n"],"names":[],"mappings":"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"}
@@ -22,21 +22,21 @@ export declare const SlotControlMessageType: {
22
22
  declare type SlotControlContainerBoxModelChangeMessage = {
23
23
  type: typeof SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE;
24
24
  payload: {
25
- boxModel: BoxModel;
25
+ boxModel: BoxModel | null;
26
26
  };
27
27
  };
28
28
  declare type SlotControlItemBoxModelChangeMessage = {
29
29
  type: typeof SlotControlMessageType.ITEM_BOX_MODEL_CHANGE;
30
30
  payload: {
31
31
  index: number;
32
- boxModel: BoxModel;
32
+ boxModel: BoxModel | null;
33
33
  };
34
34
  };
35
35
  export declare type SlotControlMessage = SlotControlContainerBoxModelChangeMessage | SlotControlItemBoxModelChangeMessage;
36
36
  export declare class SlotControl extends PropController<SlotControlMessage> {
37
37
  recv(): void;
38
- changeContainerBoxModel(boxModel: BoxModel): void;
39
- changeItemBoxModel(index: number, boxModel: BoxModel): void;
38
+ changeContainerBoxModel(boxModel: BoxModel | null): void;
39
+ changeItemBoxModel(index: number, boxModel: BoxModel | null): void;
40
40
  }
41
41
  export {};
42
42
  //# sourceMappingURL=slot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../../../../src/controls/slot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,aAAK,qBAAqB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,CAAA;AAEjE,oBAAY,eAAe,GAAG;IAC5B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,OAAO,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAA;CAChD,CAAA;AAED,eAAO,MAAM,eAAe,8BAA8B,CAAA;AAE1D,oBAAY,qBAAqB,GAAG;IAClC,IAAI,EAAE,OAAO,eAAe,CAAA;CAC7B,CAAA;AAED,wBAAgB,IAAI,IAAI,qBAAqB,CAE5C;AAED,eAAO,MAAM,sBAAsB;;;CAGzB,CAAA;AAEV,aAAK,yCAAyC,GAAG;IAC/C,IAAI,EAAE,OAAO,sBAAsB,CAAC,0BAA0B,CAAA;IAC9D,OAAO,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAA;KAAE,CAAA;CAChC,CAAA;AAED,aAAK,oCAAoC,GAAG;IAC1C,IAAI,EAAE,OAAO,sBAAsB,CAAC,qBAAqB,CAAA;IACzD,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,CAAA;CAC/C,CAAA;AAED,oBAAY,kBAAkB,GAC1B,yCAAyC,GACzC,oCAAoC,CAAA;AAExC,qBAAa,WAAY,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IACjE,IAAI,IAAI,IAAI;IAEZ,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIjD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAG5D"}
1
+ {"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../../../../src/controls/slot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,aAAK,qBAAqB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,CAAA;AAEjE,oBAAY,eAAe,GAAG;IAC5B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,OAAO,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAA;CAChD,CAAA;AAED,eAAO,MAAM,eAAe,8BAA8B,CAAA;AAE1D,oBAAY,qBAAqB,GAAG;IAClC,IAAI,EAAE,OAAO,eAAe,CAAA;CAC7B,CAAA;AAED,wBAAgB,IAAI,IAAI,qBAAqB,CAE5C;AAED,eAAO,MAAM,sBAAsB;;;CAGzB,CAAA;AAEV,aAAK,yCAAyC,GAAG;IAC/C,IAAI,EAAE,OAAO,sBAAsB,CAAC,0BAA0B,CAAA;IAC9D,OAAO,EAAE;QAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;KAAE,CAAA;CACvC,CAAA;AAED,aAAK,oCAAoC,GAAG;IAC1C,IAAI,EAAE,OAAO,sBAAsB,CAAC,qBAAqB,CAAA;IACzD,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;KAAE,CAAA;CACtD,CAAA;AAED,oBAAY,kBAAkB,GAC1B,yCAAyC,GACzC,oCAAoC,CAAA;AAExC,qBAAa,WAAY,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IACjE,IAAI,IAAI,IAAI;IAEZ,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAIxD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;CAGnE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@makeswift/runtime",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "license": "MIT",
5
5
  "main": "dist/main.cjs",
6
6
  "module": "dist/main.es",