@zodiac-ui/editor
Version:
A rich text editor for Angular based on `@atlaskit/editor-core`.
34 lines • 6.02 kB
JavaScript
import { PluginKey, Plugin } from 'prosemirror-state';
import { keydownHandler } from 'prosemirror-keymap';
import { filterCommands } from "../../../lib/utils/filter";
// import { typeAheadPluginKey } from '../../../plugins/type-ahead';
// import { emojiPluginKey } from '../../../plugins/emoji/pm-plugins/main';
export const newlinePreserveMarksKey = new PluginKey('newlinePreserveMarksPlugin');
const isSelectionEndOfParagraph = (state) => state.selection.$to.parent.type === state.schema.nodes.paragraph &&
state.selection.$to.pos === state.doc.resolve(state.selection.$to.pos).end();
const ɵ0 = isSelectionEndOfParagraph;
const isSelectionAligned = (state) => !!state.selection.$to.parent.marks.find(m => m.type === state.schema.marks.alignment);
const ɵ1 = isSelectionAligned;
const isTypeaheadNotDisplaying = (state) => true;
const ɵ2 = isTypeaheadNotDisplaying;
// !typeAheadPluginKey.getState(state).active &&
// !emojiPluginKey.getState(state).queryActive;
const splitBlockPreservingMarks = (state, dispatch) => {
dispatch(state.tr.split(state.tr.mapping.map(state.selection.$from.pos), 1));
return true;
};
const ɵ3 = splitBlockPreservingMarks;
export const newlinePreserveMarksPlugin = () => new Plugin({
key: newlinePreserveMarksKey,
props: {
handleKeyDown: keydownHandler({
Enter: filterCommands([
isSelectionEndOfParagraph,
isSelectionAligned,
isTypeaheadNotDisplaying,
], splitBlockPreservingMarks),
}),
},
});
export { ɵ0, ɵ1, ɵ2, ɵ3 };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3bGluZS1wcmVzZXJ2ZS1tYXJrcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B6b2RpYWMtdWkvZWRpdG9yLyIsInNvdXJjZXMiOlsicGx1Z2lucy9iYXNlL3BtL25ld2xpbmUtcHJlc2VydmUtbWFya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzFELG9FQUFvRTtBQUNwRSwyRUFBMkU7QUFFM0UsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxTQUFTLENBQ2hELDRCQUE0QixDQUMvQixDQUFDO0FBRUYsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLEtBQWtCLEVBQVcsRUFBRSxDQUM5RCxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVM7SUFDaEUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDOztBQUVqRixNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBa0IsRUFBVyxFQUFFLENBQ3ZELENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDbkMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FDL0MsQ0FBQzs7QUFFTixNQUFNLHdCQUF3QixHQUFHLENBQUMsS0FBa0IsRUFBVyxFQUFFLENBQUMsSUFBSSxDQUFBOztBQUNsRSxnREFBZ0Q7QUFDaEQsK0NBQStDO0FBRW5ELE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxLQUFrQixFQUFFLFFBQVEsRUFBVyxFQUFFO0lBQ3hFLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RSxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7O0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxFQUFFLENBQzNDLElBQUksTUFBTSxDQUFDO0lBQ1AsR0FBRyxFQUFFLHVCQUF1QjtJQUM1QixLQUFLLEVBQUU7UUFDSCxhQUFhLEVBQUUsY0FBYyxDQUFDO1lBQzFCLEtBQUssRUFBRSxjQUFjLENBQ2pCO2dCQUNJLHlCQUF5QjtnQkFDekIsa0JBQWtCO2dCQUNsQix3QkFBd0I7YUFDM0IsRUFDRCx5QkFBeUIsQ0FDNUI7U0FDSixDQUFDO0tBQ0w7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbHVnaW5LZXksIFBsdWdpbiwgRWRpdG9yU3RhdGUgfSBmcm9tICdwcm9zZW1pcnJvci1zdGF0ZSc7XHJcbmltcG9ydCB7IGtleWRvd25IYW5kbGVyIH0gZnJvbSAncHJvc2VtaXJyb3Ita2V5bWFwJztcclxuaW1wb3J0IHsgZmlsdGVyQ29tbWFuZHMgfSBmcm9tIFwiLi4vLi4vLi4vbGliL3V0aWxzL2ZpbHRlclwiXHJcbi8vIGltcG9ydCB7IHR5cGVBaGVhZFBsdWdpbktleSB9IGZyb20gJy4uLy4uLy4uL3BsdWdpbnMvdHlwZS1haGVhZCc7XHJcbi8vIGltcG9ydCB7IGVtb2ppUGx1Z2luS2V5IH0gZnJvbSAnLi4vLi4vLi4vcGx1Z2lucy9lbW9qaS9wbS1wbHVnaW5zL21haW4nO1xyXG5cclxuZXhwb3J0IGNvbnN0IG5ld2xpbmVQcmVzZXJ2ZU1hcmtzS2V5ID0gbmV3IFBsdWdpbktleShcclxuICAgICduZXdsaW5lUHJlc2VydmVNYXJrc1BsdWdpbicsXHJcbik7XHJcblxyXG5jb25zdCBpc1NlbGVjdGlvbkVuZE9mUGFyYWdyYXBoID0gKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IGJvb2xlYW4gPT5cclxuICAgIHN0YXRlLnNlbGVjdGlvbi4kdG8ucGFyZW50LnR5cGUgPT09IHN0YXRlLnNjaGVtYS5ub2Rlcy5wYXJhZ3JhcGggJiZcclxuICAgIHN0YXRlLnNlbGVjdGlvbi4kdG8ucG9zID09PSBzdGF0ZS5kb2MucmVzb2x2ZShzdGF0ZS5zZWxlY3Rpb24uJHRvLnBvcykuZW5kKCk7XHJcblxyXG5jb25zdCBpc1NlbGVjdGlvbkFsaWduZWQgPSAoc3RhdGU6IEVkaXRvclN0YXRlKTogYm9vbGVhbiA9PlxyXG4gICAgISFzdGF0ZS5zZWxlY3Rpb24uJHRvLnBhcmVudC5tYXJrcy5maW5kKFxyXG4gICAgICAgIG0gPT4gbS50eXBlID09PSBzdGF0ZS5zY2hlbWEubWFya3MuYWxpZ25tZW50LFxyXG4gICAgKTtcclxuXHJcbmNvbnN0IGlzVHlwZWFoZWFkTm90RGlzcGxheWluZyA9IChzdGF0ZTogRWRpdG9yU3RhdGUpOiBib29sZWFuID0+IHRydWVcclxuICAgIC8vICF0eXBlQWhlYWRQbHVnaW5LZXkuZ2V0U3RhdGUoc3RhdGUpLmFjdGl2ZSAmJlxyXG4gICAgLy8gIWVtb2ppUGx1Z2luS2V5LmdldFN0YXRlKHN0YXRlKS5xdWVyeUFjdGl2ZTtcclxuXHJcbmNvbnN0IHNwbGl0QmxvY2tQcmVzZXJ2aW5nTWFya3MgPSAoc3RhdGU6IEVkaXRvclN0YXRlLCBkaXNwYXRjaCk6IGJvb2xlYW4gPT4ge1xyXG4gICAgZGlzcGF0Y2goc3RhdGUudHIuc3BsaXQoc3RhdGUudHIubWFwcGluZy5tYXAoc3RhdGUuc2VsZWN0aW9uLiRmcm9tLnBvcyksIDEpKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IG5ld2xpbmVQcmVzZXJ2ZU1hcmtzUGx1Z2luID0gKCkgPT5cclxuICAgIG5ldyBQbHVnaW4oe1xyXG4gICAgICAgIGtleTogbmV3bGluZVByZXNlcnZlTWFya3NLZXksXHJcbiAgICAgICAgcHJvcHM6IHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bjoga2V5ZG93bkhhbmRsZXIoe1xyXG4gICAgICAgICAgICAgICAgRW50ZXI6IGZpbHRlckNvbW1hbmRzKFxyXG4gICAgICAgICAgICAgICAgICAgIFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3Rpb25FbmRPZlBhcmFncmFwaCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3Rpb25BbGlnbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1R5cGVhaGVhZE5vdERpc3BsYXlpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgICBzcGxpdEJsb2NrUHJlc2VydmluZ01hcmtzLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSxcclxuICAgIH0pO1xyXG4iXX0=