All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s
55 lines
1.3 KiB
JavaScript
55 lines
1.3 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
function Link({
|
|
type
|
|
}) {
|
|
return {
|
|
commands: {
|
|
toggleLink(editor, getUrl) {
|
|
const selection = editor.value.selection;
|
|
const isCollapsed = selection && selection.isCollapsed;
|
|
if (editor.hasInline(type)) {
|
|
const inlines = editor.value.inlines.toJSON();
|
|
const link = inlines.find(item => item.type === type);
|
|
const url = getUrl(link.data.url);
|
|
if (url) {
|
|
// replace the old link
|
|
return editor.setInlines({
|
|
data: {
|
|
url
|
|
}
|
|
});
|
|
} else {
|
|
// remove url if it was removed by the user
|
|
return editor.unwrapInline(type);
|
|
}
|
|
} else {
|
|
const url = getUrl();
|
|
if (!url) {
|
|
return;
|
|
}
|
|
return isCollapsed ? editor.insertInline({
|
|
type,
|
|
data: {
|
|
url
|
|
},
|
|
nodes: [{
|
|
object: 'text',
|
|
text: url
|
|
}]
|
|
}) : editor.wrapInline({
|
|
type,
|
|
data: {
|
|
url
|
|
}
|
|
}).moveToEnd();
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}
|
|
var _default = exports.default = Link; |