@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
28 lines • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var prosemirror_1 = require("../../prosemirror");
var analytics_1 = require("../../analytics");
var utils_1 = require("../utils");
var availablePanelTypes = ['info', 'note', 'tip', 'warning'];
function inputRulePlugin(schema) {
var panelInputRule = utils_1.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);
analytics_1.analyticsService.trackEvent("atlassian.editor.format.panel." + panelType + ".autoformatting");
return tr;
}
}
});
return prosemirror_1.inputRules({ rules: [panelInputRule] });
}
exports.inputRulePlugin = inputRulePlugin;
exports.default = inputRulePlugin;
//# sourceMappingURL=input-rules.js.map