@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
33 lines • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var prosemirror_1 = require("../../prosemirror");
var plugin_key_1 = require("./plugin-key");
var utils_1 = require("../utils");
var analytics_1 = require("../../analytics");
function inputRulePlugin(schema) {
var rules = [];
if (schema.nodes.mention && schema.marks.mentionQuery) {
var regex = new RegExp("(^|[\\s(" + utils_1.leafNodeReplacementCharacter + "])@$");
var mentionQueryRule = utils_1.createInputRule(regex, function (state, match, start, end) {
var mentionsState = plugin_key_1.default.getState(state);
if (!mentionsState.mentionProvider) {
return undefined;
}
if (!mentionsState.isEnabled()) {
return undefined;
}
var mark = schema.mark('mentionQuery');
var tr = state.tr;
analytics_1.analyticsService.trackEvent('atlassian.editor.mention.autoformatting');
var mentionText = schema.text('@', [mark]);
return tr.replaceSelectionWith(mentionText, false);
});
rules.push(mentionQueryRule);
}
if (rules.length !== 0) {
return prosemirror_1.inputRules({ rules: rules });
}
}
exports.inputRulePlugin = inputRulePlugin;
exports.default = inputRulePlugin;
//# sourceMappingURL=input-rules.js.map