UNPKG

@atlaskit/adf-schema

Version:

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

53 lines 1.77 kB
import { $onePlus, $or, $zeroPlus, adfNode } from '@atlaskit/adf-schema-generator'; import { inlineContentGroup } from '../groups/inlineContentGroup'; import { inlineGroup } from '../groups/inlineGroup'; import { unsupportedMark } from '../marks/unsupportedMark'; import { unsupportedNodeAttribute } from '../marks/unsupportedNodeAttribute'; import { unsupportedBlock } from './unsupportedBlock'; import { paragraph } from './paragraph'; import { extension } from './extension'; export const taskItem = adfNode('taskItem'); export const taskList = adfNode('taskList'); export const blockTaskItem = adfNode('blockTaskItem'); const commonTaskItemProps = { defining: true, selectable: false, marks: [unsupportedMark, unsupportedNodeAttribute], allowAnyChildMark: true, attrs: { localId: { type: 'string', default: '' }, state: { type: 'enum', values: ['TODO', 'DONE'], default: 'TODO' } } }; taskItem.define({ ...commonTaskItemProps, content: [$zeroPlus($or(inlineGroup, inlineContentGroup))] }); blockTaskItem.define({ ...commonTaskItemProps, marks: [unsupportedMark, unsupportedNodeAttribute], allowAnyChildMark: false, // Override the commonTaskItemProps setting contentMinItems: 1, content: [$or(paragraph.use('with_no_marks'), extension.use('with_marks')), $zeroPlus($or(paragraph.use('with_no_marks'), extension.use('with_marks')))] }); taskList.define({ defining: true, selectable: false, marks: [unsupportedMark, unsupportedNodeAttribute], attrs: { localId: { type: 'string', default: '' } }, contentMinItems: 1, content: [$onePlus($or(taskItem, unsupportedBlock, blockTaskItem)), $zeroPlus($or(taskItem, taskList, unsupportedBlock, blockTaskItem))] });