@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
48 lines • 1.55 kB
JavaScript
import InfoIcon from '@atlaskit/icon/glyph/editor/info';
import TipIcon from '@atlaskit/icon/glyph/editor/hint';
import NoteIcon from '@atlaskit/icon/glyph/editor/note';
import WarningIcon from '@atlaskit/icon/glyph/warning';
import * as React from 'react';
import * as ReactDOM from 'react-dom';
var panelIcons = {
info: InfoIcon,
tip: TipIcon,
note: NoteIcon,
warning: WarningIcon
};
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;
};
export var 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