@atlaskit/adf-schema
Version:
Shared package that contains the ADF-schema (json) and ProseMirror node/mark specs
41 lines (38 loc) • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.allowCustomPanel = void 0;
exports.createSchema = createSchema;
Object.defineProperty(exports, "getNodesAndMarksMap", {
enumerable: true,
get: function get() {
return _getNodesAndMarksMap.getNodesAndMarksMap;
}
});
var _model = require("@atlaskit/editor-prosemirror/model");
var _addItems = require("./add-items");
var _markGroupDeclarationsNames = require("./mark-group-declarations-names");
var _marksInOrder = require("./marks-in-order");
var _nodesInOrder = require("./nodes-in-order");
var _sanitizeNodes = require("./sanitizeNodes");
var _getNodesAndMarksMap = require("./get-nodes-and-marks-map");
/* eslint-disable @atlaskit/editor/no-re-export -- VOLTC-139 tracks removal of these deprecated compatibility re-export shims. */
/**
* Creates a schema preserving order of marks and nodes.
*/
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.markGroupDeclarationsNames);
var nodes = (0, _addItems.addItems)(_nodesInOrder.nodesInOrder, nodesConfig, customNodeSpecs);
var marks = (0, _addItems.addItems)(_marksInOrder.marksInOrder, marksConfig, customMarkSpecs);
nodes = (0, _sanitizeNodes.sanitizeNodes)(nodes, marks);
return new _model.Schema({
nodes: nodes,
marks: marks
});
}
var allowCustomPanel = exports.allowCustomPanel = true;
// eslint-disable-next-line @atlaskit/volt-strict-mode/no-re-exports -- Public compatibility re-export.