@atlaskit/editor-plugin-card
Version:
Card plugin for @atlaskit/editor-core
45 lines (44 loc) • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getCardAtPasteRange = exports.DISPLAY_AS_OPTIONS = void 0;
var DISPLAY_AS_OPTIONS = exports.DISPLAY_AS_OPTIONS = ['url', 'inline', 'block', 'embed'];
var getCardAtPasteRange = exports.getCardAtPasteRange = function getCardAtPasteRange(state, pasteStartPos, pasteEndPos) {
var result;
var docContentSize = state.doc.content.size;
var clampedStart = Math.max(0, Math.min(pasteStartPos, docContentSize));
var clampedEnd = Math.max(0, Math.min(pasteEndPos, docContentSize));
var from = Math.min(clampedStart, clampedEnd);
var to = Math.max(clampedStart, clampedEnd);
try {
if (from === to) {
for (var _i = 0, _arr = [from - 1, from]; _i < _arr.length; _i++) {
var pos = _arr[_i];
if (pos < 0 || pos >= docContentSize) {
continue;
}
var node = state.doc.nodeAt(pos);
if ((node === null || node === void 0 ? void 0 : node.type.name) === 'inlineCard' || (node === null || node === void 0 ? void 0 : node.type.name) === 'blockCard' || (node === null || node === void 0 ? void 0 : node.type.name) === 'embedCard') {
return {
appearance: node.type.name === 'inlineCard' ? 'inline' : node.type.name === 'blockCard' ? 'block' : 'embed',
pos: pos
};
}
}
}
state.doc.nodesBetween(from, to, function (node, pos) {
if (node.type.name === 'inlineCard' || node.type.name === 'blockCard' || node.type.name === 'embedCard') {
result = {
appearance: node.type.name === 'inlineCard' ? 'inline' : node.type.name === 'blockCard' ? 'block' : 'embed',
pos: pos
};
return false;
}
return true;
});
} catch (_unused) {
return;
}
return result;
};