UNPKG

@atlaskit/editor-core

Version:

A package contains Atlassian editor core functionality

167 lines (164 loc) • 11.2 kB
/* FullPageToolbarNext.tsx generated by @compiled/babel-plugin v0.39.1 */ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.FullPageToolbarNext = void 0; require("./FullPageToolbarNext.compiled.css"); var _runtime = require("@compiled/react/runtime"); var _react = _interopRequireWildcard(require("react")); var _reactIntl = require("react-intl"); var _contextPanel = require("@atlaskit/editor-common/context-panel"); var _coreUtils = require("@atlaskit/editor-common/core-utils"); var _hooks = require("@atlaskit/editor-common/hooks"); var _toolbar = require("@atlaskit/editor-common/toolbar"); var _uiMenu = require("@atlaskit/editor-common/ui-menu"); var _platformFeatureFlags = require("@atlaskit/platform-feature-flags"); var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals"); var _toolbar2 = require("../../../utils/toolbar"); var _ExcludeFromHydration = _interopRequireDefault(require("../../ExcludeFromHydration")); var _Toolbar = require("../../Toolbar/Toolbar"); var _ToolbarPortal = require("../../Toolbar/ToolbarPortal"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } var styles = { mainToolbarIconBefore: "_19pkpxbi _2hwxpxbi _otyrpxbi", mainToolbarIconBeforeNew: "_4cvr1h6o _1e0c1txw", mainToolbarWrapper: "_1rjc12x7 _18zrutpp _n7zlia51", mainToolbarNew: "_1e0c1txw _4t3izwfg", mainToolbarZIndex: "_1pby16oo _kqswh2mm", mainToolbarWithKeyline: "_16qs1nax", customToolbarWrapperStyle: "_4cvr1h6o _1e0c1txw", firstChildWrapperOneLine: "_1e0c1txw _16jlkb7n", firstChildWrapperContainerContext: "_7cca15wb _1f38ptqj", secondChildWrapperOneLine: "_1e0c1txw _1ul91ns9 _4cvr1h6o", beforePrimaryToolbarComponents: "_1e0c1txw _16jlkb7n _1bahesu3 _4cvr1h6o", backgroundColor: "_bfhkvuon" }; var MainToolbarWrapper = function MainToolbarWrapper(_ref) { var children = _ref.children, testId = _ref.testId, showKeyline = _ref.showKeyline; return /*#__PURE__*/_react.default.createElement("div", { "data-testid": testId, className: (0, _runtime.ax)([styles.mainToolbarWrapper, showKeyline && styles.mainToolbarWithKeyline, styles.mainToolbarZIndex, styles.mainToolbarNew, (0, _expValEquals.expValEquals)('platform_editor_table_sticky_header_improvements', 'cohort', 'test_with_overflow') && (0, _expValEquals.expValEquals)('platform_editor_table_sticky_header_patch_9', 'isEnabled', true) && styles.backgroundColor]) }, children); }; var FirstChildWrapper = function FirstChildWrapper(_ref2) { var children = _ref2.children; return /*#__PURE__*/_react.default.createElement("div", { "data-testid": "main-toolbar-first-child-wrapper", className: (0, _runtime.ax)([styles.firstChildWrapperOneLine, styles.firstChildWrapperContainerContext]) }, children); }; var SecondChildWrapper = function SecondChildWrapper(_ref3) { var children = _ref3.children; return /*#__PURE__*/_react.default.createElement("div", { "data-testid": "main-toolbar-second-child-wrapper", className: (0, _runtime.ax)([styles.secondChildWrapperOneLine]) }, children); }; var shouldShowToolbarContainer = function shouldShowToolbarContainer(toolbar, customPrimaryToolbarComponents) { return !!toolbar || !!customPrimaryToolbarComponents; }; var getToolbarComponentsForMarkdownView = function getToolbarComponentsForMarkdownView(components, markdownModeView) { if ((markdownModeView === 'syntax' || markdownModeView === 'preview') && (0, _platformFeatureFlags.fg)('platform_editor_markdown_mode_hide_source_toolbar')) { return components.filter(function (component) { return component.key === _toolbar.TOOLBARS.PRIMARY_TOOLBAR || component.key === _toolbar.VIEW_MODE_TOGGLE_SECTION.key; }); } return components; }; var FullPageToolbarNext = exports.FullPageToolbarNext = function FullPageToolbarNext(_ref4) { var _editorAPI$toolbar, _editorAPI$toolbar2, _useToolbarPortal; var editorAPI = _ref4.editorAPI, beforeIcon = _ref4.beforeIcon, toolbarDockingPosition = _ref4.toolbarDockingPosition, editorView = _ref4.editorView, popupsMountPoint = _ref4.popupsMountPoint, showKeyline = _ref4.showKeyline, customPrimaryToolbarComponents = _ref4.customPrimaryToolbarComponents, disabled = _ref4.disabled; var components = editorAPI === null || editorAPI === void 0 || (_editorAPI$toolbar = editorAPI.toolbar) === null || _editorAPI$toolbar === void 0 ? void 0 : _editorAPI$toolbar.actions.getComponents(); var runtimeOverride = (0, _hooks.useSharedPluginStateWithSelector)(editorAPI, ['toolbar'], function (states) { var _states$toolbarState; return (_states$toolbarState = states.toolbarState) === null || _states$toolbarState === void 0 ? void 0 : _states$toolbarState.contextualFormattingModeOverride; }); var effectiveRuntimeOverride = runtimeOverride !== undefined && (0, _platformFeatureFlags.fg)('platform_editor_toolbar_mode_override') ? runtimeOverride : undefined; var contextualFormattingEnabled = effectiveRuntimeOverride !== null && effectiveRuntimeOverride !== void 0 ? effectiveRuntimeOverride : editorAPI === null || editorAPI === void 0 || (_editorAPI$toolbar2 = editorAPI.toolbar) === null || _editorAPI$toolbar2 === void 0 ? void 0 : _editorAPI$toolbar2.actions.contextualFormattingMode(); var markdownModeView = (0, _hooks.useSharedPluginStateWithSelector)(editorAPI, ['markdownMode'], function (states) { var _states$markdownModeS; return (_states$markdownModeS = states.markdownModeState) === null || _states$markdownModeS === void 0 ? void 0 : _states$markdownModeS.view; }); var intl = (0, _reactIntl.useIntl)(); var toolbar = components === null || components === void 0 ? void 0 : components.find(function (component) { return component.key === _toolbar.TOOLBARS.PRIMARY_TOOLBAR; }); var visibleToolbarComponents = (0, _react.useMemo)(function () { return components ? getToolbarComponentsForMarkdownView(components, markdownModeView) : undefined; }, [components, markdownModeView]); var primaryToolbarDockingConfigEnabled = (0, _toolbar.shouldShowPrimaryToolbar)(contextualFormattingEnabled, toolbarDockingPosition); // When a toolbar portal context is provided, render the toolbar inside a portal. // Otherwise fall back to a fragment just to avoid forking rendering logic. var _ref5 = (_useToolbarPortal = (0, _ToolbarPortal.useToolbarPortal)()) !== null && _useToolbarPortal !== void 0 ? _useToolbarPortal : { Portal: _react.default.Fragment }, ToolbarPortal = _ref5.Portal; var hasToolbarPortal = ToolbarPortal !== _react.default.Fragment; var mountPoint = hasToolbarPortal ? undefined : popupsMountPoint; var isShortcutToFocusToolbar = (0, _react.useCallback)(function (event) { //Alt + F9 to reach first element in this main toolbar return event.altKey && event.key === 'F9'; }, []); var handleEscape = (0, _react.useCallback)(function (event) { if (!(editorView !== null && editorView !== void 0 && editorView.hasFocus())) { editorView === null || editorView === void 0 || editorView.focus(); } event.preventDefault(); event.stopPropagation(); }, [editorView]); // Remove entire primary toolbar region if: // - primary toolbar isn't registered // - no custom primary toolbar components to render // note: primary toolbar must render if toolbar docking preference is set to "controlled" to avoid SSR conflicts if (!shouldShowToolbarContainer(toolbar, customPrimaryToolbarComponents)) { return /*#__PURE__*/_react.default.createElement(ToolbarPortal, null, null); } return /*#__PURE__*/_react.default.createElement(_contextPanel.ContextPanelConsumer, null, function (_ref6) { var ContextPanelWidth = _ref6.width; return /*#__PURE__*/_react.default.createElement(_uiMenu.ToolbarArrowKeyNavigationProvider, { editorView: editorView, childComponentSelector: "[data-testid='ak-editor-main-toolbar']", isShortcutToFocusToolbar: isShortcutToFocusToolbar, handleEscape: handleEscape, intl: intl }, /*#__PURE__*/_react.default.createElement(ToolbarPortal, null, /*#__PURE__*/_react.default.createElement(MainToolbarWrapper, { testId: "ak-editor-main-toolbar", showKeyline: showKeyline || ContextPanelWidth > 0 }, beforeIcon && /*#__PURE__*/_react.default.createElement("div", { className: (0, _runtime.ax)([styles.mainToolbarIconBefore, styles.mainToolbarIconBeforeNew]) }, beforeIcon), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(FirstChildWrapper, null, (0, _expValEquals.expValEquals)('platform_editor_default_toolbar_state', 'isEnabled', true) ? primaryToolbarDockingConfigEnabled && components && visibleToolbarComponents && (0, _toolbar2.isToolbar)(toolbar) && /*#__PURE__*/_react.default.createElement(_Toolbar.ToolbarNext, { toolbar: toolbar, components: visibleToolbarComponents, editorView: editorView, editorAPI: editorAPI, popupsMountPoint: mountPoint, editorAppearance: "full-page", isDisabled: disabled }) : /*#__PURE__*/_react.default.createElement(_ExcludeFromHydration.default, null, primaryToolbarDockingConfigEnabled && components && visibleToolbarComponents && (0, _toolbar2.isToolbar)(toolbar) && editorView && !(0, _coreUtils.isSSR)() && /*#__PURE__*/_react.default.createElement(_Toolbar.ToolbarNext, { toolbar: toolbar, components: visibleToolbarComponents, editorView: editorView, editorAPI: editorAPI, popupsMountPoint: mountPoint, editorAppearance: "full-page", isDisabled: disabled }))), /*#__PURE__*/_react.default.createElement(SecondChildWrapper, null, /*#__PURE__*/_react.default.createElement("div", { className: (0, _runtime.ax)([styles.customToolbarWrapperStyle]) }, !!customPrimaryToolbarComponents && 'before' in customPrimaryToolbarComponents && /*#__PURE__*/_react.default.createElement("div", { "data-testid": 'before-primary-toolbar-components-plugin', className: (0, _runtime.ax)([styles.beforePrimaryToolbarComponents]) }, customPrimaryToolbarComponents.before), !!customPrimaryToolbarComponents && 'after' in customPrimaryToolbarComponents ? customPrimaryToolbarComponents.after : customPrimaryToolbarComponents)), /*#__PURE__*/_react.default.createElement(_ToolbarPortal.ToolbarPortalMountPoint, null))))); }); };