@atlaskit/adf-schema
Version:
Shared package that contains the ADF-schema (json) and ProseMirror node/mark specs
75 lines • 2.41 kB
JavaScript
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import { TableSideEffectHandler } from './table';
import { RowsSideEffectHandler } from './rows';
export var SideEffectsHandler = /*#__PURE__*/function () {
function SideEffectsHandler(sideEffects) {
_classCallCheck(this, SideEffectsHandler);
this.table = new TableSideEffectHandler(sideEffects && sideEffects.table);
this.rows = new RowsSideEffectHandler(sideEffects && sideEffects.rows);
}
_createClass(SideEffectsHandler, [{
key: "getTableMap",
value: function getTableMap(isDelete) {
return this.table.getTableMap(isDelete);
}
}, {
key: "map",
value: function map(mapping) {
var sideEffects = {};
var tableSideEffect = this.table.map(mapping);
var rowsSideEffect = this.rows.map(mapping);
if (tableSideEffect) {
sideEffects.table = tableSideEffect;
}
if (rowsSideEffect) {
sideEffects.rows = rowsSideEffect;
}
return sideEffects;
}
}, {
key: "invert",
value: function invert(originalDoc, isDelete, map) {
var sideEffects = {};
var tableSideEffect = this.table.invert(originalDoc);
if (tableSideEffect) {
sideEffects.table = tableSideEffect;
}
var rowsSideEffect = this.rows.invert(originalDoc, isDelete, map);
if (rowsSideEffect) {
sideEffects.rows = rowsSideEffect;
}
return sideEffects;
}
}, {
key: "toJSON",
value: function toJSON() {
var tableSideEffectJson = this.table.toJSON();
var rowsSideEffectJson = this.rows.toJSON();
if (!tableSideEffectJson && !rowsSideEffectJson) {
return;
}
var sideEffectsJSON = {};
if (tableSideEffectJson) {
sideEffectsJSON.table = tableSideEffectJson;
}
if (rowsSideEffectJson) {
sideEffectsJSON.rows = rowsSideEffectJson;
}
return sideEffectsJSON;
}
}], [{
key: "fromJSON",
value: function fromJSON(schema, json) {
var sideEffects = {};
if (json.table) {
sideEffects.table = TableSideEffectHandler.fromJSON(schema, json.table);
}
if (json.rows) {
sideEffects.rows = RowsSideEffectHandler.fromJSON(schema, json.rows);
}
return sideEffects;
}
}]);
return SideEffectsHandler;
}();