@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
50 lines • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var info_1 = require("@atlaskit/icon/glyph/editor/info");
var hint_1 = require("@atlaskit/icon/glyph/editor/hint");
var note_1 = require("@atlaskit/icon/glyph/editor/note");
var warning_1 = require("@atlaskit/icon/glyph/warning");
var React = require("react");
var ReactDOM = require("react-dom");
var panelIcons = {
info: info_1.default,
tip: hint_1.default,
note: note_1.default,
warning: warning_1.default
};
var getIconDom = function (panelType) {
var dom = document.createElement('span');
dom.setAttribute('contenteditable', 'false');
// Prevent IE11 resize handles on selection.
dom.addEventListener('mousedown', function (e) { return e.preventDefault(); });
// tslint:disable-next-line:variable-name
var Icon = panelIcons[panelType];
ReactDOM.render(React.createElement(Icon, { label: "Panel " + panelType }), dom);
return dom;
};
exports.panel = {
group: 'block',
content: '(paragraph | heading | bulletList | orderedList)+',
attrs: {
panelType: { default: 'info' }
},
parseDOM: [{
tag: 'div[data-panel-type]',
getAttrs: function (dom) { return ({
'panelType': dom.getAttribute('data-panel-type')
}); }
}],
toDOM: function (node) {
var panelType = node.attrs['panelType'];
var attrs = {
'data-panel-type': panelType
};
return [
'div',
attrs,
getIconDom(panelType),
['div', {}, 0]
];
}
};
//# sourceMappingURL=panel.js.map