@vericus/slate-kit-align
Version:
Plugins to provide a way to align blocks on slate
36 lines • 1.19 kB
JavaScript
function removeAlign(opts) {
var dataField = opts.dataField;
return function (editor, align) {
var value = editor.value;
editor.withoutNormalizing(function () {
editor
.getAlignBlocks(value)
.filter(function (n) { return align && n.data && n.data.get(dataField) === align; })
.forEach(function (n) {
return editor.setNodeByKey(n.key, { data: n.data.delete(dataField) });
});
});
};
}
function setAlign(opts) {
var dataField = opts.dataField;
return function (editor, align) {
var value = editor.value;
var alignments = opts.alignments;
if (!alignments || !alignments.includes(align))
return;
editor.withoutNormalizing(function () {
editor.getAlignBlocks(value).forEach(function (n) {
editor.setNodeByKey(n.key, { data: n.data.set(dataField, align) });
});
});
};
}
function createCommands(opts) {
return {
removeAlign: removeAlign(opts),
setAlign: setAlign(opts),
};
}
export default createCommands;
//# sourceMappingURL=index.js.map