@atlaskit/editor-plugin-selection-extension
Version:
editor-plugin-selection-extension plugin for @atlaskit/editor-core
91 lines (90 loc) • 4.91 kB
JavaScript
/* SelectionExtensionNestedDropdownMenu.tsx generated by @compiled/babel-plugin v2.0.0 */
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SelectionExtensionNestedDropdownMenu = void 0;
require("./SelectionExtensionNestedDropdownMenu.compiled.css");
var _runtime = require("@compiled/react/runtime");
var _react = _interopRequireDefault(require("react"));
var _analytics = require("@atlaskit/editor-common/analytics");
var _blockMenu = require("@atlaskit/editor-common/block-menu");
var _editorToolbar = require("@atlaskit/editor-toolbar");
var _chevronRight = _interopRequireDefault(require("@atlaskit/icon/core/chevron-right"));
var _lozenge = _interopRequireDefault(require("@atlaskit/lozenge"));
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
var _compiled = require("@atlaskit/primitives/compiled");
var _SelectionExtensionComponentContext = require("../SelectionExtensionComponentContext");
var _SelectionExtensionDropdownItem = require("./SelectionExtensionDropdownItem");
var BLOCK_MENU_TEMPLATES_SPOTLIGHT_PORTAL_SELECTOR = '[data-test-id="block-menu-templates-spotlight-portal-container"]';
var shouldIgnoreBlockMenuTemplatesSpotlightCloseEvent = function shouldIgnoreBlockMenuTemplatesSpotlightCloseEvent(event) {
return event.target instanceof Element && event.target.closest(BLOCK_MENU_TEMPLATES_SPOTLIGHT_PORTAL_SELECTOR) !== null;
};
var styles = {
lozenge: "_18u012x7"
};
var ChildItems = function ChildItems(_ref) {
var nestedDropdownMenu = _ref.nestedDropdownMenu;
var childItems = nestedDropdownMenu.getMenuItems();
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, null, childItems.map(function (dropdownItem) {
return /*#__PURE__*/_react.default.createElement(_SelectionExtensionDropdownItem.SelectionExtensionDropdownItem, {
key: dropdownItem.key || dropdownItem.label,
dropdownItem: dropdownItem
});
}));
};
var SelectionExtensionNestedDropdownMenu = exports.SelectionExtensionNestedDropdownMenu = function SelectionExtensionNestedDropdownMenu(_ref2) {
var _nestedDropdownMenu$l;
var nestedDropdownMenu = _ref2.nestedDropdownMenu;
var IconComponent = nestedDropdownMenu.icon;
var _useSelectionExtensio = (0, _SelectionExtensionComponentContext.useSelectionExtensionComponentContext)(),
api = _useSelectionExtensio.api,
extensionKey = _useSelectionExtensio.extensionKey,
extensionSource = _useSelectionExtensio.extensionSource,
extensionLocation = _useSelectionExtensio.extensionLocation;
var handleClick = function handleClick() {
var _api$analytics;
(_api$analytics = api.analytics) === null || _api$analytics === void 0 || _api$analytics.actions.fireAnalyticsEvent({
action: _analytics.ACTION.CLICKED,
actionSubject: _analytics.ACTION_SUBJECT.BUTTON,
actionSubjectId: _analytics.ACTION_SUBJECT_ID.EDITOR_PLUGIN_SELECTION_EXTENSION_DROPDOWN,
eventType: _analytics.EVENT_TYPE.TRACK,
attributes: {
extensionKey: extensionKey,
extensionSource: extensionSource,
extensionLocation: extensionLocation,
extensionElement: 'nested-dropdown',
extensionItemKey: nestedDropdownMenu.key
}
});
};
var lozengeLabel = (_nestedDropdownMenu$l = nestedDropdownMenu.lozenge) === null || _nestedDropdownMenu$l === void 0 ? void 0 : _nestedDropdownMenu$l.label;
var elemAfterText = lozengeLabel && (0, _platformFeatureFlags.fg)('platform_editor_block_menu_v2_patch_2') ? /*#__PURE__*/_react.default.createElement(_compiled.Box, {
as: "span",
xcss: styles.lozenge
}, /*#__PURE__*/_react.default.createElement(_lozenge.default, {
appearance: (0, _platformFeatureFlags.fg)('confluence_fronend_labels_categorization_migration') ? 'discovery' : 'new'
}, lozengeLabel)) : undefined;
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarNestedDropdownMenu, {
testId: _blockMenu.EXTENSION_MENU_ITEM_TEST_ID,
text: nestedDropdownMenu.label,
elemAfterText: elemAfterText,
elemBefore: IconComponent ? /*#__PURE__*/_react.default.createElement(IconComponent, {
label: "",
size: "small"
}) : undefined,
elemAfter: /*#__PURE__*/_react.default.createElement(_chevronRight.default, {
label: "",
size: "small"
}),
onClick: handleClick,
dropdownTestId: "editor-selection-extension-menu",
shouldTitleWrap: false,
tooltipContent: nestedDropdownMenu.label,
"data-extension-item-key": nestedDropdownMenu.key,
shouldIgnoreCloseEvent: (0, _platformFeatureFlags.fg)('cc_blocks_changeboarding') ? shouldIgnoreBlockMenuTemplatesSpotlightCloseEvent : undefined
}, /*#__PURE__*/_react.default.createElement(ChildItems, {
nestedDropdownMenu: nestedDropdownMenu
}));
};