UNPKG

@zodiac-ui/editor

Version:

A rich text editor for Angular based on `@atlaskit/editor-core`.

80 lines 10.1 kB
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