@atlaskit/adf-schema
Version:
Shared package that contains the ADF-schema (json) and ProseMirror node/mark specs
41 lines • 2.06 kB
JavaScript
import { $onePlus, $or, $zeroPlus, adfNode } from '@atlaskit/adf-schema-generator';
import { unsupportedMark } from '../marks/unsupportedMark';
import { unsupportedNodeAttribute } from '../marks/unsupportedNodeAttribute';
import { codeBlock } from './codeBlock';
import { mediaSingle } from './mediaSingle';
import { paragraph } from './paragraph';
import { taskList } from './task';
import { unsupportedBlock } from './unsupportedBlock';
import { decisionList } from './decisionList';
import { extension } from './extension';
export const orderedList = adfNode('orderedList');
export const bulletList = adfNode('bulletList');
const listItem = adfNode('listItem').define({
defining: true,
selectable: false,
marks: [unsupportedMark, unsupportedNodeAttribute],
contentMinItems: 1,
content: [$or(paragraph.use('with_no_marks'), mediaSingle.use('caption'), mediaSingle.use('full'), codeBlock, unsupportedBlock, extension.use('with_marks')), $zeroPlus($or(paragraph.use('with_no_marks'), bulletList, orderedList, taskList, mediaSingle.use('caption'), mediaSingle.use('full'), codeBlock, unsupportedBlock, extension.use('with_marks')))]
}).variant('with_nested_decision', {
content: [$or(paragraph.use('with_no_marks'), mediaSingle.use('caption'), mediaSingle.use('full'), codeBlock, unsupportedBlock, decisionList, extension.use('with_marks')), $zeroPlus($or(paragraph.use('with_no_marks'), bulletList, orderedList, taskList, mediaSingle.use('caption'), mediaSingle.use('full'), codeBlock, unsupportedBlock, decisionList, extension.use('with_marks')))],
noExtend: true,
stage0: true
});
orderedList.define({
selectable: false,
marks: [unsupportedMark, unsupportedNodeAttribute],
attrs: {
order: {
type: 'number',
minimum: 0,
default: 1,
optional: true
}
},
content: [$onePlus($or(listItem, listItem.use('with_nested_decision')))]
});
bulletList.define({
selectable: false,
marks: [unsupportedMark, unsupportedNodeAttribute],
content: [$onePlus($or(listItem, listItem.use('with_nested_decision')))]
});