@atlaskit/editor-plugin-paste-options-toolbar
Version:
Paste options toolbar for @atlaskit/editor-core
33 lines (32 loc) • 1.23 kB
JavaScript
// Remove this file when experiment 'platform_editor_paste_actions_menu_v2' is cleaned up.
import { expVal } from '@atlaskit/tmp-editor-statsig/expVal';
import { hasTableNode } from '../utils/paste-menu-rules/hasTableNode';
import { isNotProse } from '../utils/paste-menu-rules/isNotProse';
export var firePasteActionsMenuV2ExperimentExposure = function firePasteActionsMenuV2ExperimentExposure(contentLength, state, pasteStartPos, pasteEndPos, pastedText, pastedSlice) {
if (contentLength < 100 || !pasteStartPos || !pasteEndPos || !pastedText) {
return;
}
if (isNotProse(pastedText)) {
return;
}
if (hasTableNode(pastedSlice)) {
return;
}
try {
var $pos = state.doc.resolve(pasteStartPos);
var pasteAncestorNodeNames = [];
for (var depth = $pos.depth; depth > 0; depth--) {
if (pasteEndPos <= $pos.end(depth)) {
pasteAncestorNodeNames.push($pos.node(depth).type.name);
}
}
var isInExcludedNode = pasteAncestorNodeNames.some(function (name) {
return ['codeBlock', 'heading'].includes(name);
});
if (!isInExcludedNode) {
expVal('platform_editor_paste_actions_menu_v2', 'variant', 'control');
}
} catch (_unused) {
return;
}
};