UNPKG

ngx-editor

Version:

Rich Text Editor for angular using ProseMirror

20 lines 3.07 kB
import { InputRule } from "prosemirror-inputrules"; export const markInputRule = (regexp, markType, attrs) => { return new InputRule(regexp, (state, match, start, end) => { const tr = state.tr; if (match[2]) { const textStart = start + match[0].indexOf(match[2]); const textEnd = textStart + match[2].length; if (textEnd < end) { tr.delete(textEnd, end); } if (textStart > start) { tr.delete(start, textStart); } end = start + match[2].length; } return tr.addMark(start, end, markType.create(attrs)); }); }; export default markInputRule; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya0lucHV0UnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1lZGl0b3IvaGVscGVycy9tYXJrSW5wdXRSdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUdsRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFjLEVBQUUsUUFBa0IsRUFBRSxLQUErQixFQUFhLEVBQUU7SUFFOUcsT0FBTyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUV4RCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFBO1FBRW5CLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1osTUFBTSxTQUFTLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDcEQsTUFBTSxPQUFPLEdBQUcsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7WUFFM0MsSUFBSSxPQUFPLEdBQUcsR0FBRyxFQUFFO2dCQUNqQixFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQTthQUN4QjtZQUVELElBQUksU0FBUyxHQUFHLEtBQUssRUFBRTtnQkFDckIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUE7YUFDNUI7WUFFRCxHQUFHLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7U0FDOUI7UUFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDdkQsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFFRCxlQUFlLGFBQWEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0UnVsZSB9IGZyb20gXCJwcm9zZW1pcnJvci1pbnB1dHJ1bGVzXCJcbmltcG9ydCB7IE1hcmtUeXBlIH0gZnJvbSBcInByb3NlbWlycm9yLW1vZGVsXCJcblxuZXhwb3J0IGNvbnN0IG1hcmtJbnB1dFJ1bGUgPSAocmVnZXhwOiBSZWdFeHAsIG1hcmtUeXBlOiBNYXJrVHlwZSwgYXR0cnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IElucHV0UnVsZSA9PiB7XG5cbiAgcmV0dXJuIG5ldyBJbnB1dFJ1bGUocmVnZXhwLCAoc3RhdGUsIG1hdGNoLCBzdGFydCwgZW5kKSA9PiB7XG5cbiAgICBjb25zdCB0ciA9IHN0YXRlLnRyXG5cbiAgICBpZiAobWF0Y2hbMl0pIHtcbiAgICAgIGNvbnN0IHRleHRTdGFydCA9IHN0YXJ0ICsgbWF0Y2hbMF0uaW5kZXhPZihtYXRjaFsyXSlcbiAgICAgIGNvbnN0IHRleHRFbmQgPSB0ZXh0U3RhcnQgKyBtYXRjaFsyXS5sZW5ndGhcblxuICAgICAgaWYgKHRleHRFbmQgPCBlbmQpIHtcbiAgICAgICAgdHIuZGVsZXRlKHRleHRFbmQsIGVuZClcbiAgICAgIH1cblxuICAgICAgaWYgKHRleHRTdGFydCA+IHN0YXJ0KSB7XG4gICAgICAgIHRyLmRlbGV0ZShzdGFydCwgdGV4dFN0YXJ0KVxuICAgICAgfVxuXG4gICAgICBlbmQgPSBzdGFydCArIG1hdGNoWzJdLmxlbmd0aFxuICAgIH1cbiAgICByZXR1cm4gdHIuYWRkTWFyayhzdGFydCwgZW5kLCBtYXJrVHlwZS5jcmVhdGUoYXR0cnMpKVxuICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBtYXJrSW5wdXRSdWxlXG4iXX0=