@zodiac-ui/editor
Version:
A rich text editor for Angular based on `@atlaskit/editor-core`.
80 lines • 10.1 kB
JavaScript
import { strong } from "./strong/strong.mark";
import { em } from "./emphasis/emphasis.mark";
import { underline } from "./underline/underline.mark";
import { subsup } from "./subsup/subsup.mark";
import { strike } from "./strike/strike.mark";
import { underlineKeymap } from "./underline/underline.keymap";
import { supsubKeymap } from "./subsup/subsup.keymap";
import { strongKeymap } from "./strong/strong.keymap";
import { strikeKeymap } from "./strike/strike.keymap";
import { emphasisKeymap } from "./emphasis/emphasis.keymap";
import { Plugin, PluginKey } from "prosemirror-state";
import { deepEqual, getTextFormattingState } from "./utils";
import { inputRulePlugin } from "./text.formatting.inputrule";
export const TEXT_FORMATTING = "textFormatting";
export const pluginKey = new PluginKey('textFormatting');
export const textFormattingPMPlugin = (dispatch) => new Plugin({
state: {
init(config, state) {
return getTextFormattingState(state);
},
apply(tr, pluginState, oldState, newState) {
const state = getTextFormattingState(newState);
if (!deepEqual(pluginState, state)) {
dispatch(pluginKey, state);
return state;
}
return pluginState;
},
},
key: pluginKey
});
export const textFormattingPlugin = {
name: TEXT_FORMATTING,
marks() {
return [{
name: 'strong',
mark: strong
}, {
name: 'em',
mark: em
}, {
name: 'underline',
mark: underline
}, {
name: 'subsup',
mark: subsup
}, {
name: 'strike',
mark: strike
}];
},
pmPlugins() {
return [
{
name: 'textFormatting',
plugin: ({ dispatch }) => textFormattingPMPlugin(dispatch),
},
{
name: "underlineKeymap",
plugin: underlineKeymap
}, {
name: "strongKeymap",
plugin: strongKeymap
}, {
name: "strikeKeymap",
plugin: strikeKeymap
}, {
name: "emphasisKeymap",
plugin: emphasisKeymap
}, {
name: "subsupKeymap",
plugin: supsubKeymap
}, {
name: "textFormattingInputRule",
plugin: ({ schema }) => inputRulePlugin(schema)
}
];
},
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1mb3JtYXR0aW5nLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B6b2RpYWMtdWkvZWRpdG9yLyIsInNvdXJjZXMiOlsicGx1Z2lucy90ZXh0LWZvcm1hdHRpbmcvdGV4dC1mb3JtYXR0aW5nLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDN0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDM0QsT0FBTyxFQUFlLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUdsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUU3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUE7QUFDL0MsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFekQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxRQUFrQixFQUFFLEVBQUUsQ0FDekQsSUFBSSxNQUFNLENBQUM7SUFDUCxLQUFLLEVBQUU7UUFDSCxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQWtCO1lBQzNCLE9BQU8sc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELEtBQUssQ0FDRCxFQUFFLEVBQ0YsV0FBZ0MsRUFDaEMsUUFBUSxFQUNSLFFBQVE7WUFFUixNQUFNLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDaEMsUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDM0IsT0FBTyxLQUFLLENBQUM7YUFDaEI7WUFDRCxPQUFPLFdBQVcsQ0FBQztRQUN2QixDQUFDO0tBQ0o7SUFDRCxHQUFHLEVBQUUsU0FBUztDQUNqQixDQUFDLENBQUM7QUFFUCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBaUI7SUFDOUMsSUFBSSxFQUFFLGVBQWU7SUFFckIsS0FBSztRQUNELE9BQU8sQ0FBQztnQkFDSixJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsTUFBTTthQUNmLEVBQUU7Z0JBQ0MsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsSUFBSSxFQUFFLEVBQUU7YUFDWCxFQUFFO2dCQUNDLElBQUksRUFBRSxXQUFXO2dCQUNqQixJQUFJLEVBQUUsU0FBUzthQUNsQixFQUFFO2dCQUNDLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxNQUFNO2FBQ2YsRUFBRTtnQkFDQyxJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsTUFBTTthQUNmLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxTQUFTO1FBQ0wsT0FBTztZQUNIO2dCQUNJLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLE1BQU0sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQzthQUM3RDtZQUNEO2dCQUNJLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLE1BQU0sRUFBRSxlQUFlO2FBQzFCLEVBQUM7Z0JBQ0UsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLE1BQU0sRUFBRSxZQUFZO2FBQ3ZCLEVBQUM7Z0JBQ0UsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLE1BQU0sRUFBRSxZQUFZO2FBQ3ZCLEVBQUM7Z0JBQ0UsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsTUFBTSxFQUFFLGNBQWM7YUFDekIsRUFBRTtnQkFDQyxJQUFJLEVBQUUsY0FBYztnQkFDcEIsTUFBTSxFQUFFLFlBQVk7YUFDdkIsRUFBRTtnQkFDQyxJQUFJLEVBQUUseUJBQXlCO2dCQUMvQixNQUFNLEVBQUUsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO2FBQ2hEO1NBQ0osQ0FBQTtJQUNMLENBQUM7Q0FFSixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yUGx1Z2luIH0gZnJvbSBcIi4uLy4uL2xpYi9pbnRlcmZhY2VzL2VkaXRvci1wbHVnaW5cIlxyXG5pbXBvcnQgeyBzdHJvbmcgfSBmcm9tIFwiLi9zdHJvbmcvc3Ryb25nLm1hcmtcIlxyXG5pbXBvcnQgeyBlbSB9IGZyb20gXCIuL2VtcGhhc2lzL2VtcGhhc2lzLm1hcmtcIlxyXG5pbXBvcnQgeyB1bmRlcmxpbmUgfSBmcm9tIFwiLi91bmRlcmxpbmUvdW5kZXJsaW5lLm1hcmtcIlxyXG5pbXBvcnQgeyBzdWJzdXAgfSBmcm9tIFwiLi9zdWJzdXAvc3Vic3VwLm1hcmtcIlxyXG5pbXBvcnQgeyBzdHJpa2UgfSBmcm9tIFwiLi9zdHJpa2Uvc3RyaWtlLm1hcmtcIlxyXG5pbXBvcnQgeyB1bmRlcmxpbmVLZXltYXAgfSBmcm9tIFwiLi91bmRlcmxpbmUvdW5kZXJsaW5lLmtleW1hcFwiXHJcbmltcG9ydCB7IHN1cHN1YktleW1hcCB9IGZyb20gXCIuL3N1YnN1cC9zdWJzdXAua2V5bWFwXCJcclxuaW1wb3J0IHsgc3Ryb25nS2V5bWFwIH0gZnJvbSBcIi4vc3Ryb25nL3N0cm9uZy5rZXltYXBcIlxyXG5pbXBvcnQgeyBzdHJpa2VLZXltYXAgfSBmcm9tIFwiLi9zdHJpa2Uvc3RyaWtlLmtleW1hcFwiXHJcbmltcG9ydCB7IGVtcGhhc2lzS2V5bWFwIH0gZnJvbSBcIi4vZW1waGFzaXMvZW1waGFzaXMua2V5bWFwXCJcclxuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIFBsdWdpbiwgUGx1Z2luS2V5IH0gZnJvbSBcInByb3NlbWlycm9yLXN0YXRlXCJcclxuaW1wb3J0IHsgRGlzcGF0Y2ggfSBmcm9tIFwiLi4vLi4vbGliL2ludGVyZmFjZXMvZWRpdG9yLWNvbmZpZ1wiXHJcbmltcG9ydCB7IFRleHRGb3JtYXR0aW5nU3RhdGUgfSBmcm9tIFwiLi9pbnRlcmZhY2VzXCJcclxuaW1wb3J0IHsgZGVlcEVxdWFsLCBnZXRUZXh0Rm9ybWF0dGluZ1N0YXRlIH0gZnJvbSBcIi4vdXRpbHNcIlxyXG5pbXBvcnQgeyBpbnB1dFJ1bGVQbHVnaW4gfSBmcm9tIFwiLi90ZXh0LmZvcm1hdHRpbmcuaW5wdXRydWxlXCJcclxuXHJcbmV4cG9ydCBjb25zdCBURVhUX0ZPUk1BVFRJTkcgPSBcInRleHRGb3JtYXR0aW5nXCJcclxuZXhwb3J0IGNvbnN0IHBsdWdpbktleSA9IG5ldyBQbHVnaW5LZXkoJ3RleHRGb3JtYXR0aW5nJyk7XHJcblxyXG5leHBvcnQgY29uc3QgdGV4dEZvcm1hdHRpbmdQTVBsdWdpbiA9IChkaXNwYXRjaDogRGlzcGF0Y2gpID0+XHJcbiAgICBuZXcgUGx1Z2luKHtcclxuICAgICAgICBzdGF0ZToge1xyXG4gICAgICAgICAgICBpbml0KGNvbmZpZywgc3RhdGU6IEVkaXRvclN0YXRlKTogVGV4dEZvcm1hdHRpbmdTdGF0ZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0VGV4dEZvcm1hdHRpbmdTdGF0ZShzdGF0ZSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGFwcGx5KFxyXG4gICAgICAgICAgICAgICAgdHIsXHJcbiAgICAgICAgICAgICAgICBwbHVnaW5TdGF0ZTogVGV4dEZvcm1hdHRpbmdTdGF0ZSxcclxuICAgICAgICAgICAgICAgIG9sZFN0YXRlLFxyXG4gICAgICAgICAgICAgICAgbmV3U3RhdGUsXHJcbiAgICAgICAgICAgICk6IFRleHRGb3JtYXR0aW5nU3RhdGUge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBnZXRUZXh0Rm9ybWF0dGluZ1N0YXRlKG5ld1N0YXRlKTtcclxuICAgICAgICAgICAgICAgIGlmICghZGVlcEVxdWFsKHBsdWdpblN0YXRlLCBzdGF0ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaChwbHVnaW5LZXksIHN0YXRlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcGx1Z2luU3RhdGU7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICBrZXk6IHBsdWdpbktleVxyXG4gICAgfSk7XHJcblxyXG5leHBvcnQgY29uc3QgdGV4dEZvcm1hdHRpbmdQbHVnaW46IEVkaXRvclBsdWdpbiA9IHtcclxuICAgIG5hbWU6IFRFWFRfRk9STUFUVElORyxcclxuXHJcbiAgICBtYXJrcygpIHtcclxuICAgICAgICByZXR1cm4gW3tcclxuICAgICAgICAgICAgbmFtZTogJ3N0cm9uZycsXHJcbiAgICAgICAgICAgIG1hcms6IHN0cm9uZ1xyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgICAgbmFtZTogJ2VtJyxcclxuICAgICAgICAgICAgbWFyazogZW1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICAgIG5hbWU6ICd1bmRlcmxpbmUnLFxyXG4gICAgICAgICAgICBtYXJrOiB1bmRlcmxpbmVcclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICAgIG5hbWU6ICdzdWJzdXAnLFxyXG4gICAgICAgICAgICBtYXJrOiBzdWJzdXBcclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICAgIG5hbWU6ICdzdHJpa2UnLFxyXG4gICAgICAgICAgICBtYXJrOiBzdHJpa2VcclxuICAgICAgICB9XVxyXG4gICAgfSxcclxuXHJcbiAgICBwbVBsdWdpbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ3RleHRGb3JtYXR0aW5nJyxcclxuICAgICAgICAgICAgICAgIHBsdWdpbjogKHsgZGlzcGF0Y2ggfSkgPT4gdGV4dEZvcm1hdHRpbmdQTVBsdWdpbihkaXNwYXRjaCksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwidW5kZXJsaW5lS2V5bWFwXCIsXHJcbiAgICAgICAgICAgICAgICBwbHVnaW46IHVuZGVybGluZUtleW1hcFxyXG4gICAgICAgICAgICB9LHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwic3Ryb25nS2V5bWFwXCIsXHJcbiAgICAgICAgICAgICAgICBwbHVnaW46IHN0cm9uZ0tleW1hcFxyXG4gICAgICAgICAgICB9LHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwic3RyaWtlS2V5bWFwXCIsXHJcbiAgICAgICAgICAgICAgICBwbHVnaW46IHN0cmlrZUtleW1hcFxyXG4gICAgICAgICAgICB9LHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiZW1waGFzaXNLZXltYXBcIixcclxuICAgICAgICAgICAgICAgIHBsdWdpbjogZW1waGFzaXNLZXltYXBcclxuICAgICAgICAgICAgfSwge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJzdWJzdXBLZXltYXBcIixcclxuICAgICAgICAgICAgICAgIHBsdWdpbjogc3Vwc3ViS2V5bWFwXHJcbiAgICAgICAgICAgIH0sIHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwidGV4dEZvcm1hdHRpbmdJbnB1dFJ1bGVcIixcclxuICAgICAgICAgICAgICAgIHBsdWdpbjogKHtzY2hlbWF9KSA9PiBpbnB1dFJ1bGVQbHVnaW4oc2NoZW1hKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgfSxcclxuXHJcbn1cclxuIl19