@atlaskit/editor-plugin-floating-toolbar
Version:
Floating toolbar plugin for @atlaskit/editor-core
34 lines (32 loc) • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.copyNode = void 0;
var _clipboard = require("@atlaskit/editor-common/clipboard");
var _copyButton = require("@atlaskit/editor-common/copy-button");
var copyNode = exports.copyNode = function copyNode(nodeType, editorAnalyticsApi, inputMethod) {
return function (_ref) {
var tr = _ref.tr;
// const { tr, schema } = state;
// This command should only be triggered by the Copy button in the floating toolbar
// which is only visible when selection is inside the target node
var contentNodeWithPos = (0, _copyButton.getSelectedNodeOrNodeParentByNodeType)({
nodeType: nodeType,
selection: tr.selection
});
if (!contentNodeWithPos) {
return tr;
}
var schema = tr.doc.type.schema;
var copyToClipboardTr = tr;
var domNode = (0, _copyButton.toDOM)(contentNodeWithPos.node, schema);
(0, _copyButton.copyDomNode)(domNode, contentNodeWithPos.node.type, tr.selection);
if (editorAnalyticsApi) {
var analyticsPayload = (0, _clipboard.getNodeCopiedAnalyticsPayload)(contentNodeWithPos.node, inputMethod);
editorAnalyticsApi.attachAnalyticsEvent(analyticsPayload)(copyToClipboardTr);
}
copyToClipboardTr.setMeta('scrollIntoView', false);
return copyToClipboardTr;
};
};