UNPKG

@atlaskit/adf-schema

Version:

Shared package that contains the ADF-schema (json) and ProseMirror node/mark specs

57 lines (53 loc) 1.61 kB
import { getExtensionAttrs } from '../../utils/extensions'; import { multiBodiedExtensionStage0 as multiBodiedExtensionStage0Factory } from '../../next-schema/generated/nodeTypes'; import { extensionFrameStage0 as extensionFrameStage0Factory } from '../../next-schema/generated/nodeTypes'; /** * @stage 0 * @name extensionFrame_node * @description Wraps the block content */ /** * @returns NodeSpec for ExtensionFrameDefinition */ export const extensionFrame = extensionFrameStage0Factory({ parseDOM: [{ context: 'extensionFrame//', tag: 'div[data-extension-frame]', skip: true }, { tag: 'div[data-extension-frame]' }], toDOM() { const attrs = { 'data-extension-frame': 'true' }; return ['div', attrs, 0]; } }); /** * @stage 0 * @name multiBodiedExtension_node * @description Wraps multiple extensionFrame objects. */ export const multiBodiedExtension = multiBodiedExtensionStage0Factory({ parseDOM: [{ context: 'multiBodiedExtension//', tag: '[data-node-type="multi-bodied-extension"]', skip: true }, { tag: '[data-node-type="multi-bodied-extension"]', getAttrs: domNode => getExtensionAttrs(domNode) }], toDOM(node) { const attrs = { 'data-node-type': 'multi-bodied-extension', 'data-extension-type': node.attrs.extensionType, 'data-extension-key': node.attrs.extensionKey, 'data-text': node.attrs.text, 'data-parameters': JSON.stringify(node.attrs.parameters), 'data-layout': node.attrs.layout, 'data-local-id:': node.attrs.localId }; return ['div', attrs, 0]; } });