UNPKG

@atlaskit/editor-plugin-block-menu

Version:

BlockMenu plugin for @atlaskit/editor-core

64 lines (63 loc) 2.81 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.copyLink = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _blockMenu = require("@atlaskit/editor-common/block-menu"); var _clipboard = require("@atlaskit/editor-common/clipboard"); var _monitoring = require("@atlaskit/editor-common/monitoring"); var _selection = require("@atlaskit/editor-common/selection"); var copyLink = exports.copyLink = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref) { var getLinkPath, _ref$blockLinkHashPre, blockLinkHashPrefix, selection, blockRange, node, path, url, href, _t; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: getLinkPath = _ref.getLinkPath, _ref$blockLinkHashPre = _ref.blockLinkHashPrefix, blockLinkHashPrefix = _ref$blockLinkHashPre === void 0 ? _blockMenu.DEFAULT_BLOCK_LINK_HASH_PREFIX : _ref$blockLinkHashPre, selection = _ref.selection; blockRange = (0, _selection.expandSelectionToBlockRange)(selection); if (blockRange) { _context.next = 1; break; } return _context.abrupt("return", false); case 1: // get the link to the first node in the selection node = blockRange.$from.nodeAfter; if (!(!node || !node.attrs || !node.attrs.localId)) { _context.next = 2; break; } return _context.abrupt("return", false); case 2: path = (getLinkPath === null || getLinkPath === void 0 ? void 0 : getLinkPath()) || location.pathname; _context.prev = 3; url = new URL(location.origin + path); url.hash = (0, _blockMenu.createBlockLinkHashValue)(node.attrs.localId, blockLinkHashPrefix); href = url.toString(); _context.next = 4; return (0, _clipboard.copyToClipboard)(href); case 4: _context.next = 6; break; case 5: _context.prev = 5; _t = _context["catch"](3); (0, _monitoring.logException)(_t, { location: 'editor-plugin-block-menu' }); return _context.abrupt("return", false); case 6: return _context.abrupt("return", true); case 7: case "end": return _context.stop(); } }, _callee, null, [[3, 5]]); })); return function copyLink(_x) { return _ref2.apply(this, arguments); }; }();