@atlaskit/adf-schema
Version:
Shared package that contains the ADF-schema (json) and ProseMirror node/mark specs
89 lines (88 loc) • 3.87 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.overrideDocumentStepType = exports.OverrideDocumentStep = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _transform = require("@atlaskit/editor-prosemirror/transform");
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
var overrideDocumentStepType = exports.overrideDocumentStepType = 'override-document';
var OverrideDocumentStep = exports.OverrideDocumentStep = /*#__PURE__*/function (_Step) {
function OverrideDocumentStep(opts) {
var _this;
(0, _classCallCheck2.default)(this, OverrideDocumentStep);
_this = _callSuper(this, OverrideDocumentStep);
(0, _defineProperty2.default)(_this, "inverted", false);
(0, _defineProperty2.default)(_this, "oldDocumentSize", 0);
var inverted = opts.inverted,
nextDocument = opts.nextDocument;
if (nextDocument.type.name !== 'doc') {
throw new Error('nextDocument should be the entire prosemirror doc node and not only its content.');
}
_this.nextDocument = nextDocument;
_this.inverted = Boolean(inverted);
return _this;
}
(0, _inherits2.default)(OverrideDocumentStep, _Step);
return (0, _createClass2.default)(OverrideDocumentStep, [{
key: "apply",
value: function apply(doc) {
this.oldDocumentSize = doc.content.size;
return _transform.StepResult.ok(this.nextDocument);
}
}, {
key: "map",
value: function map() {
return new OverrideDocumentStep({
nextDocument: this.nextDocument,
inverted: this.inverted
});
}
}, {
key: "getMap",
value: function getMap() {
if (!this.nextDocument || !this.oldDocumentSize) {
return new _transform.StepMap([0, 0, 0]);
}
var oldSize = this.oldDocumentSize;
var nextDocumentSize = this.nextDocument.content.size;
return new _transform.StepMap([0, oldSize, nextDocumentSize]);
}
}, {
key: "invert",
value: function invert(doc) {
return new OverrideDocumentStep({
nextDocument: doc,
inverted: true
});
}
}, {
key: "toJSON",
value: function toJSON() {
return {
stepType: overrideDocumentStepType,
inverted: this.inverted,
nextDocument: this.nextDocument.toJSON()
};
}
}], [{
key: "fromJSON",
value: function fromJSON(schema, json) {
if (!json || json.stepType !== overrideDocumentStepType) {
throw new RangeError('Invalid overrideDocument step OverrideDocumentStep.fromJSON');
}
return new OverrideDocumentStep({
inverted: json.inverted,
nextDocument: schema.nodeFromJSON(json.nextDocument)
});
}
}]);
}(_transform.Step);
_transform.Step.jsonID(overrideDocumentStepType, OverrideDocumentStep);
;