@atlaskit/editor-plugin-breakout
Version:
Breakout plugin for @atlaskit/editor-core
120 lines (119 loc) • 4.37 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getGuidelines = exports.GUIDELINE_KEYS = void 0;
var _memoizeOne = _interopRequireDefault(require("memoize-one"));
var _styles = require("@atlaskit/editor-common/styles");
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
var WIDTHS = {
MIN: _editorSharedStyles.akEditorDefaultLayoutWidth,
WIDE: _editorSharedStyles.akEditorCalculatedWideLayoutWidth,
FULL: _editorSharedStyles.akEditorFullWidthLayoutWidth,
MAX: _editorSharedStyles.akEditorMaxLayoutWidth
};
var GUIDELINE_KEYS = exports.GUIDELINE_KEYS = {
lineLengthLeft: 'grid_left',
lineLengthRight: 'grid_right',
wideLeft: 'wide_left',
wideRight: 'wide_right',
fullWidthLeft: 'full_width_left',
fullWidthRight: 'full_width_right',
maxWidthLeft: 'max_width_left',
maxWidthRight: 'max_width_right'
};
var AK_NESTED_DND_GUTTER_OFFSET = 8;
var roundToNearest = function roundToNearest(value) {
var interval = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.5;
return Math.round(value / interval) * interval;
};
var getGuidelines = exports.getGuidelines = (0, _memoizeOne.default)(function (isResizing, newWidth, getEditorWidth, nodeType) {
var guidelines = [];
if (!isResizing) {
return guidelines;
}
var innerPaddingOffset = 0;
if (nodeType) {
switch (nodeType.name) {
case 'expand':
innerPaddingOffset = _styles.EXPAND_CONTAINER_PADDING + _styles.resizerHandleThumbWidth + AK_NESTED_DND_GUTTER_OFFSET;
break;
case 'layoutSection':
innerPaddingOffset = _styles.LAYOUT_COLUMN_PADDING + AK_NESTED_DND_GUTTER_OFFSET;
break;
default:
break;
}
}
var _ref = getEditorWidth() || {},
width = _ref.width;
var padding = width && width <= _editorSharedStyles.akEditorFullPageNarrowBreakout && (0, _experiments.editorExperiment)('platform_editor_preview_panel_responsiveness', true, {
exposure: true
}) ? _editorSharedStyles.akEditorGutterPaddingReduced : (0, _editorSharedStyles.akEditorGutterPaddingDynamic)();
var fullWidth = width ? Math.min(WIDTHS.FULL, width - 2 * padding - _editorSharedStyles.akEditorGutterPadding) : undefined;
var maxWidth = width && ((0, _expValEquals.expValEquals)('editor_tinymce_full_width_mode', 'isEnabled', true) || (0, _expValEquals.expValEquals)('confluence_max_width_content_appearance', 'isEnabled', true)) ? Math.min(WIDTHS.MAX, width - 2 * padding - _editorSharedStyles.akEditorGutterPadding) : undefined;
guidelines.push({
key: GUIDELINE_KEYS.lineLengthLeft,
position: {
x: -roundToNearest(WIDTHS.MIN / 2 + innerPaddingOffset)
},
active: newWidth === WIDTHS.MIN
});
guidelines.push({
key: GUIDELINE_KEYS.lineLengthRight,
position: {
x: roundToNearest(WIDTHS.MIN / 2 + innerPaddingOffset)
},
active: newWidth === WIDTHS.MIN
});
guidelines.push({
key: GUIDELINE_KEYS.wideLeft,
position: {
x: -roundToNearest(WIDTHS.WIDE / 2 + innerPaddingOffset)
},
active: newWidth === WIDTHS.WIDE
});
guidelines.push({
key: GUIDELINE_KEYS.wideRight,
position: {
x: roundToNearest(WIDTHS.WIDE / 2 + innerPaddingOffset)
},
active: newWidth === WIDTHS.WIDE
});
if (fullWidth) {
guidelines.push({
key: GUIDELINE_KEYS.fullWidthLeft,
position: {
x: -roundToNearest(fullWidth / 2 + innerPaddingOffset)
},
active: newWidth === fullWidth
});
guidelines.push({
key: GUIDELINE_KEYS.fullWidthRight,
position: {
x: roundToNearest(fullWidth / 2 + innerPaddingOffset)
},
active: newWidth === fullWidth
});
}
if (maxWidth) {
guidelines.push({
key: GUIDELINE_KEYS.maxWidthLeft,
position: {
x: -roundToNearest(maxWidth / 2 + innerPaddingOffset)
},
active: newWidth === maxWidth
});
guidelines.push({
key: GUIDELINE_KEYS.maxWidthRight,
position: {
x: roundToNearest(maxWidth / 2 + innerPaddingOffset)
},
active: newWidth === maxWidth
});
}
return guidelines;
});