UNPKG

@atlaskit/editor-plugin-metrics

Version:

Metrics plugin for @atlaskit/editor-core

37 lines (36 loc) 1.57 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.isSafeInsert = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _transform = require("@atlaskit/editor-prosemirror/transform"); var isSafeInsert = exports.isSafeInsert = function isSafeInsert(tr, insertPos, trType) { var _$firstStepPos$node, _$insertPos$node; // Exclude the cases where trType is defined, as it is a specific action // that should not be considered for safe insert actions if (trType) { return false; } if (insertPos > tr.doc.content.size) { return false; } var _tr$steps = (0, _slicedToArray2.default)(tr.steps, 1), firstStep = _tr$steps[0]; if (!(firstStep instanceof _transform.ReplaceStep)) { return false; } var firstStepPos = firstStep.from; if (firstStepPos === insertPos) { return false; } var $firstStepPos = tr.doc.resolve(firstStepPos); if ($firstStepPos.node().type.name === 'paragraph') { return false; } var firstStepParentNodeType = (_$firstStepPos$node = $firstStepPos.node($firstStepPos.depth)) === null || _$firstStepPos$node === void 0 ? void 0 : _$firstStepPos$node.type.name; var $insertPos = tr.doc.resolve(insertPos); var parentNodeType = (_$insertPos$node = $insertPos.node($insertPos.depth - 1)) === null || _$insertPos$node === void 0 ? void 0 : _$insertPos$node.type.name; return parentNodeType !== firstStepParentNodeType; };