@atlaskit/adf-schema
Version:
Shared package that contains the ADF-schema (json) and ProseMirror node/mark specs
29 lines (26 loc) • 1.3 kB
JavaScript
/* eslint-disable @atlaskit/editor/no-re-export -- VOLTC-139 tracks removal of these deprecated compatibility re-export shims. */
import { Schema } from '@atlaskit/editor-prosemirror/model';
import { addItems } from './add-items';
import { markGroupDeclarationsNames } from './mark-group-declarations-names';
import { marksInOrder } from './marks-in-order';
import { nodesInOrder } from './nodes-in-order';
import { sanitizeNodes } from './sanitizeNodes';
/**
* Creates a schema preserving order of marks and nodes.
*/
export function createSchema(config) {
var customNodeSpecs = config.customNodeSpecs,
customMarkSpecs = config.customMarkSpecs;
var nodesConfig = Object.keys(customNodeSpecs || {}).concat(config.nodes);
var marksConfig = Object.keys(customMarkSpecs || {}).concat(config.marks || []).concat(markGroupDeclarationsNames);
var nodes = addItems(nodesInOrder, nodesConfig, customNodeSpecs);
var marks = addItems(marksInOrder, marksConfig, customMarkSpecs);
nodes = sanitizeNodes(nodes, marks);
return new Schema({
nodes: nodes,
marks: marks
});
}
export var allowCustomPanel = true;
// eslint-disable-next-line @atlaskit/volt-strict-mode/no-re-exports -- Public compatibility re-export.
export { getNodesAndMarksMap } from './get-nodes-and-marks-map';