@atlaskit/editor-plugin-extension
Version:
editor-plugin-extension plugin for @atlaskit/editor-core
35 lines (34 loc) • 1.45 kB
JavaScript
import { getBreakoutWidth } from '@atlaskit/editor-common/extensibility/get-breakout-width';
import { akEditorCalculatedWideLayoutWidth, akEditorDefaultLayoutWidth, akEditorFullWidthLayoutWidth } from '@atlaskit/editor-shared-styles/constants';
var extensionPresetWidths = {
default: akEditorDefaultLayoutWidth,
wide: akEditorCalculatedWideLayoutWidth,
'full-width': akEditorFullWidthLayoutWidth
};
export var getExtensionPresetWidth = function getExtensionPresetWidth(layout) {
return extensionPresetWidths[layout];
};
/**
* getExtensionLayout tries to match the breakout mark's width (if any) to an extension layout preset.
* @returns the layout preset if the breakout width matches, null if there is no match, or
* the node's layout attribute if there is no breakout width.
*/
export var getExtensionLayout = function getExtensionLayout(node) {
var _node$attrs$layout = node.attrs.layout,
layout = _node$attrs$layout === void 0 ? 'default' : _node$attrs$layout;
var breakoutWidth = getBreakoutWidth(node.marks);
if (breakoutWidth !== undefined) {
if (breakoutWidth === extensionPresetWidths.default) {
return 'default';
}
if (breakoutWidth === extensionPresetWidths.wide) {
return 'wide';
}
if (breakoutWidth === extensionPresetWidths['full-width']) {
return 'full-width';
}
return null;
}
// if there is no breakout width, return the node's layout attribute
return layout;
};