@atlaskit/editor-plugin-block-controls
Version:
Block controls plugin for @atlaskit/editor-core
118 lines (114 loc) • 6.62 kB
JavaScript
/* block-controls-right-surface.tsx generated by @compiled/babel-plugin v3.0.2 */
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.BlockControlsRightSurface = void 0;
require("./block-controls-right-surface.compiled.css");
var _runtime = require("@compiled/react/runtime");
var _react = _interopRequireDefault(require("react"));
var _blockControlUiContext = require("@atlaskit/editor-common/block-controls/block-control-ui-context");
var _surfaceKeys = require("@atlaskit/editor-common/block-controls/surface-keys");
var _surfaceRenderer = require("@atlaskit/editor-ui-control-model/surface-renderer");
var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
var _blockControlsSurfaceWithClsFix = require("../surface-lifecycle/block-controls-surface-with-cls-fix");
var _blockControlsSurfaceComponents = require("./block-controls-surface-components");
var _visibilityContainer = require("./visibility-container");
var rightSurfaceHiddenWrapperStyles = null;
var rightSurfaceOuterStyles = null;
var rightSurfaceRowStyles = null;
// Applied in addition to rightSurfaceRowStyles when the target node is sticky-eligible (e.g. long
// tables): the outer wrapper spans the node's full height (see `placement.height`), so the content
// can stick near the top of the viewport instead of scrolling off with the node's top edge.
// Keep in sync with STICKY_CONTROLS_TOP_MARGIN in ./consts (must be a static literal here).
var rightSurfaceStickyStyles = null;
// Keep in sync with STICKY_CONTROLS_TOP_MARGIN_FOR_STICKY_HEADER in ./consts (must be a static literal here)
var rightSurfaceStickyTableHeaderStyles = null;
var BlockControlsRightSurfaceContent = function BlockControlsRightSurfaceContent(_ref) {
var api = _ref.api,
components = _ref.components,
forceVisibleOnMouseOut = _ref.forceVisibleOnMouseOut,
placement = _ref.placement,
source = _ref.source,
surfaceContext = _ref.surfaceContext;
var blockControlsContext = surfaceContext.get(_blockControlUiContext.BLOCK_CONTROL_UI_CONTEXT);
var _useBlockControlsVisi = (0, _visibilityContainer.useBlockControlsVisibility)({
api: api,
controlSide: 'right',
forceVisibleOnMouseOut: forceVisibleOnMouseOut
}),
shouldHideHoverControls = _useBlockControlsVisi.shouldHide,
useCssStyles = _useBlockControlsVisi.useCssStyles;
var isSticky = placement.isSticky;
return /*#__PURE__*/_react.default.createElement("div", {
"data-editor-block-controls-surface": true,
"data-editor-block-controls-side": "right",
"data-testid": source === 'stored' ? 'block-controls-right-surface-stored' : source === 'active' ? 'block-controls-right-surface-active' : 'block-controls-right-surface'
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Placement is resolved per target node, from its runtime DOM geometry or from its CSS anchor.
,
style: placement.style,
className: (0, _runtime.ax)(["_kqswstnw _17c61i8t _1pbyb4wl"])
}, /*#__PURE__*/_react.default.createElement("div", {
className: (0, _runtime.ax)(["_zulpv77o _4cvr1h6o _1e0c1txw", isSticky && "_kqsw1if8 _154iu2gc", isSticky && (blockControlsContext === null || blockControlsContext === void 0 ? void 0 : blockControlsContext.targetNode.type.name) === 'table' && (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_block_controls_sticky_header_fix') && "_154i1ejb"])
}, /*#__PURE__*/_react.default.createElement(_blockControlsSurfaceComponents.BlockControlsVisibilityProvider, {
shouldHideHoverControls: shouldHideHoverControls,
useCssStyles: useCssStyles
}, /*#__PURE__*/_react.default.createElement(_surfaceRenderer.SurfaceRenderer, {
components: components,
surface: _surfaceKeys.BLOCK_CONTROLS_RIGHT_SURFACE,
surfaceContext: surfaceContext
}))));
};
var BlockControlsRightSurfaceWrapper = function BlockControlsRightSurfaceWrapper(_ref2) {
var children = _ref2.children,
placement = _ref2.placement,
source = _ref2.source,
surfaceContext = _ref2.surfaceContext;
var blockControlsContext = surfaceContext.get(_blockControlUiContext.BLOCK_CONTROL_UI_CONTEXT);
var isSticky = placement.isSticky;
return /*#__PURE__*/_react.default.createElement("div", {
"data-editor-block-controls-surface": true,
"data-editor-block-controls-side": "right",
"data-testid": source === 'stored' ? 'block-controls-right-surface-stored' : source === 'active' ? 'block-controls-right-surface-active' : 'block-controls-right-surface'
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Placement is resolved per target node, from its runtime DOM geometry or from its CSS anchor.
,
style: placement.style,
className: (0, _runtime.ax)(["_kqswstnw _17c61i8t _1pbyb4wl", "_3um015vq"])
}, /*#__PURE__*/_react.default.createElement("div", {
className: (0, _runtime.ax)(["_zulpv77o _4cvr1h6o _1e0c1txw", isSticky && "_kqsw1if8 _154iu2gc", isSticky && (blockControlsContext === null || blockControlsContext === void 0 ? void 0 : blockControlsContext.targetNode.type.name) === 'table' && (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_block_controls_sticky_header_fix') && "_154i1ejb"])
}, children));
};
/** Renders one right block-controls surface at a document position. */
var BlockControlsRightSurface = exports.BlockControlsRightSurface = function BlockControlsRightSurface(_ref3) {
var api = _ref3.api,
components = _ref3.components,
forceVisibleOnMouseOut = _ref3.forceVisibleOnMouseOut,
placement = _ref3.placement,
source = _ref3.source,
surfaceContext = _ref3.surfaceContext;
if (!placement) {
return null;
}
if ((0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_block_controls_cls_fix')) {
return /*#__PURE__*/_react.default.createElement(_blockControlsSurfaceWithClsFix.BlockControlsSurfaceWithClsFix, {
side: "right",
SurfaceWrapper: BlockControlsRightSurfaceWrapper,
api: api,
components: components,
forceVisibleOnMouseOut: forceVisibleOnMouseOut,
placement: placement,
source: source,
surfaceContext: surfaceContext
});
} else {
return /*#__PURE__*/_react.default.createElement(BlockControlsRightSurfaceContent, {
api: api,
components: components,
forceVisibleOnMouseOut: forceVisibleOnMouseOut,
placement: placement,
source: source,
surfaceContext: surfaceContext
});
}
};