UNPKG

@atlaskit/editor-plugin-breakout

Version:

Breakout plugin for @atlaskit/editor-core

120 lines (119 loc) 4.37 kB
"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; });