@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
25 lines • 1.16 kB
JavaScript
import { inputRules } from '../../prosemirror';
import { analyticsService } from '../../analytics';
import { createInputRule } from '../utils';
var availablePanelTypes = ['info', 'note', 'tip', 'warning'];
export function inputRulePlugin(schema) {
var panelInputRule = createInputRule(/^\{(\S+)\}$/, function (state, match, start, end) {
var panelType = match && match[1];
if (panelType && availablePanelTypes.indexOf(panelType) >= 0) {
var schema_1 = state.schema;
var tr = state.tr;
var panel = schema_1.nodes.panel;
if (panel) {
var $from = state.selection.$from;
var range = $from.blockRange($from);
tr = tr.wrap(range, [{ type: panel, attrs: { panelType: panelType } }]);
tr = tr.delete(end - (panelType.length + 2), end + 1);
analyticsService.trackEvent("atlassian.editor.format.panel." + panelType + ".autoformatting");
return tr;
}
}
});
return inputRules({ rules: [panelInputRule] });
}
export default inputRulePlugin;
//# sourceMappingURL=input-rules.js.map