@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
37 lines • 1.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var prosemirror_1 = require("../../../prosemirror");
var utils_1 = require("../../utils");
exports.pluginKey = new prosemirror_1.PluginKey('placeholderPlugin');
function createPlaceholderDecoration(doc, placeholderText) {
var placeholderNode = document.createElement('span');
placeholderNode.className = 'placeholder-decoration';
placeholderNode.setAttribute('data-text', placeholderText);
return prosemirror_1.DecorationSet.create(doc, [prosemirror_1.Decoration.widget(1, placeholderNode)]);
}
exports.createPlaceholderDecoration = createPlaceholderDecoration;
function createPlugin(placeholderText) {
if (!placeholderText) {
return;
}
return new prosemirror_1.Plugin({
key: exports.pluginKey,
props: {
decorations: function (editorState) {
if (utils_1.isEmpty(editorState.doc) && utils_1.isEmptyParagraph(editorState.doc.firstChild)) {
return createPlaceholderDecoration(editorState.doc, placeholderText);
}
}
}
});
}
exports.createPlugin = createPlugin;
var placeholderPlugin = {
pmPlugins: function () {
return [
{ rank: 10000, plugin: function (schema, props) { return createPlugin(props.placeholder); } }
];
}
};
exports.default = placeholderPlugin;
//# sourceMappingURL=index.js.map