@slate-sheikah/bridge
Version:
slate-sheikah bridge: Bridge components for slate-sheikah. Slate + Automerge + Sockets
26 lines (19 loc) • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _utils = require("../../utils");
var _path = require("../../path");
const moveNode = (doc, op) => {
const [from, fromIndex] = (0, _path.getParent)(doc, op.path);
const [to, toIndex] = (0, _path.getParent)(doc, op.newPath);
if (from.text || to.text) {
throw new TypeError("Can't move node as child of a text node");
}
(0, _path.getChildren)(to).splice(toIndex, 0, ...(0, _path.getChildren)(from).splice(fromIndex, 1).map(_utils.cloneNode));
return doc;
};
var _default = moveNode;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHBseS9ub2RlL21vdmVOb2RlLnRzIl0sIm5hbWVzIjpbIm1vdmVOb2RlIiwiZG9jIiwib3AiLCJmcm9tIiwiZnJvbUluZGV4IiwicGF0aCIsInRvIiwidG9JbmRleCIsIm5ld1BhdGgiLCJ0ZXh0IiwiVHlwZUVycm9yIiwic3BsaWNlIiwibWFwIiwiY2xvbmVOb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBRUE7O0FBRUEsTUFBTUEsUUFBUSxHQUFHLENBQUNDLEdBQUQsRUFBaUJDLEVBQWpCLEtBQXNEO0FBQ3JFLFFBQU0sQ0FBQ0MsSUFBRCxFQUFPQyxTQUFQLElBQW9CLHFCQUFVSCxHQUFWLEVBQWVDLEVBQUUsQ0FBQ0csSUFBbEIsQ0FBMUI7QUFDQSxRQUFNLENBQUNDLEVBQUQsRUFBS0MsT0FBTCxJQUFnQixxQkFBVU4sR0FBVixFQUFlQyxFQUFFLENBQUNNLE9BQWxCLENBQXRCOztBQUVBLE1BQUlMLElBQUksQ0FBQ00sSUFBTCxJQUFhSCxFQUFFLENBQUNHLElBQXBCLEVBQTBCO0FBQ3hCLFVBQU0sSUFBSUMsU0FBSixDQUFjLHlDQUFkLENBQU47QUFDRDs7QUFFRCx5QkFBWUosRUFBWixFQUFnQkssTUFBaEIsQ0FDRUosT0FERixFQUVFLENBRkYsRUFHRSxHQUFHLHVCQUFZSixJQUFaLEVBQ0FRLE1BREEsQ0FDT1AsU0FEUCxFQUNrQixDQURsQixFQUVBUSxHQUZBLENBRUlDLGdCQUZKLENBSEw7QUFRQSxTQUFPWixHQUFQO0FBQ0QsQ0FqQkQ7O2VBbUJlRCxRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW92ZU5vZGVPcGVyYXRpb24gfSBmcm9tICdzbGF0ZSdcblxuaW1wb3J0IHsgY2xvbmVOb2RlIH0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBTeW5jVmFsdWUgfSBmcm9tICcuLi8uLi9tb2RlbCdcbmltcG9ydCB7IGdldFBhcmVudCwgZ2V0Q2hpbGRyZW4gfSBmcm9tICcuLi8uLi9wYXRoJ1xuXG5jb25zdCBtb3ZlTm9kZSA9IChkb2M6IFN5bmNWYWx1ZSwgb3A6IE1vdmVOb2RlT3BlcmF0aW9uKTogU3luY1ZhbHVlID0+IHtcbiAgY29uc3QgW2Zyb20sIGZyb21JbmRleF0gPSBnZXRQYXJlbnQoZG9jLCBvcC5wYXRoKVxuICBjb25zdCBbdG8sIHRvSW5kZXhdID0gZ2V0UGFyZW50KGRvYywgb3AubmV3UGF0aClcblxuICBpZiAoZnJvbS50ZXh0IHx8IHRvLnRleHQpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2FuJ3QgbW92ZSBub2RlIGFzIGNoaWxkIG9mIGEgdGV4dCBub2RlXCIpXG4gIH1cblxuICBnZXRDaGlsZHJlbih0bykuc3BsaWNlKFxuICAgIHRvSW5kZXgsXG4gICAgMCxcbiAgICAuLi5nZXRDaGlsZHJlbihmcm9tKVxuICAgICAgLnNwbGljZShmcm9tSW5kZXgsIDEpXG4gICAgICAubWFwKGNsb25lTm9kZSlcbiAgKVxuXG4gIHJldHVybiBkb2Ncbn1cblxuZXhwb3J0IGRlZmF1bHQgbW92ZU5vZGVcbiJdfQ==