UNPKG

@wordpress/block-editor

Version:
165 lines (131 loc) 5.36 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@wordpress/element"); var _i18n = require("@wordpress/i18n"); var _blocks = require("@wordpress/blocks"); var _components = require("@wordpress/components"); var _data = require("@wordpress/data"); var _skipToSelectedBlock = _interopRequireDefault(require("../skip-to-selected-block")); var _blockCard = _interopRequireDefault(require("../block-card")); var _inspectorControls = _interopRequireDefault(require("../inspector-controls")); var _inspectorAdvancedControls = _interopRequireDefault(require("../inspector-advanced-controls")); var _blockStyles = _interopRequireDefault(require("../block-styles")); var _multiSelectionInspector = _interopRequireDefault(require("../multi-selection-inspector")); var _defaultStylePicker = _interopRequireDefault(require("../default-style-picker")); var _blockVariationTransforms = _interopRequireDefault(require("../block-variation-transforms")); var _useBlockDisplayInformation = _interopRequireDefault(require("../use-block-display-information")); var _store = require("../../store"); /** * WordPress dependencies */ /** * Internal dependencies */ const BlockInspector = ({ showNoBlockSelectedMessage = true, bubblesVirtually = true }) => { const { count, hasBlockStyles, selectedBlockName, selectedBlockClientId, blockType } = (0, _data.useSelect)(select => { const { getSelectedBlockClientId, getSelectedBlockCount, getBlockName } = select(_store.store); const { getBlockStyles } = select(_blocks.store); const _selectedBlockClientId = getSelectedBlockClientId(); const _selectedBlockName = _selectedBlockClientId && getBlockName(_selectedBlockClientId); const _blockType = _selectedBlockName && (0, _blocks.getBlockType)(_selectedBlockName); const blockStyles = _selectedBlockName && getBlockStyles(_selectedBlockName); return { count: getSelectedBlockCount(), selectedBlockClientId: _selectedBlockClientId, selectedBlockName: _selectedBlockName, blockType: _blockType, hasBlockStyles: blockStyles && blockStyles.length > 0 }; }, []); if (count > 1) { return (0, _element.createElement)("div", { className: "block-editor-block-inspector" }, (0, _element.createElement)(_multiSelectionInspector.default, null), (0, _element.createElement)(_inspectorControls.default.Slot, { bubblesVirtually: bubblesVirtually })); } const isSelectedBlockUnregistered = selectedBlockName === (0, _blocks.getUnregisteredTypeHandlerName)(); /* * If the selected block is of an unregistered type, avoid showing it as an actual selection * because we want the user to focus on the unregistered block warning, not block settings. */ if (!blockType || !selectedBlockClientId || isSelectedBlockUnregistered) { if (showNoBlockSelectedMessage) { return (0, _element.createElement)("span", { className: "block-editor-block-inspector__no-blocks" }, (0, _i18n.__)('No block selected.')); } return null; } return (0, _element.createElement)(BlockInspectorSingleBlock, { clientId: selectedBlockClientId, blockName: blockType.name, hasBlockStyles: hasBlockStyles, bubblesVirtually: bubblesVirtually }); }; const BlockInspectorSingleBlock = ({ clientId, blockName, hasBlockStyles, bubblesVirtually }) => { const blockInformation = (0, _useBlockDisplayInformation.default)(clientId); return (0, _element.createElement)("div", { className: "block-editor-block-inspector" }, (0, _element.createElement)(_blockCard.default, blockInformation), (0, _element.createElement)(_blockVariationTransforms.default, { blockClientId: clientId }), hasBlockStyles && (0, _element.createElement)("div", null, (0, _element.createElement)(_components.PanelBody, { title: (0, _i18n.__)('Styles') }, (0, _element.createElement)(_blockStyles.default, { clientId: clientId }), (0, _blocks.hasBlockSupport)(blockName, 'defaultStylePicker', true) && (0, _element.createElement)(_defaultStylePicker.default, { blockName: blockName }))), (0, _element.createElement)(_inspectorControls.default.Slot, { bubblesVirtually: bubblesVirtually }), (0, _element.createElement)("div", null, (0, _element.createElement)(AdvancedControls, { slotName: _inspectorAdvancedControls.default.slotName, bubblesVirtually: bubblesVirtually })), (0, _element.createElement)(_skipToSelectedBlock.default, { key: "back" })); }; const AdvancedControls = ({ slotName, bubblesVirtually }) => { const slot = (0, _components.__experimentalUseSlot)(slotName); const hasFills = Boolean(slot.fills && slot.fills.length); if (!hasFills) { return null; } return (0, _element.createElement)(_components.PanelBody, { className: "block-editor-block-inspector__advanced", title: (0, _i18n.__)('Advanced'), initialOpen: false }, (0, _element.createElement)(_inspectorAdvancedControls.default.Slot, { bubblesVirtually: bubblesVirtually })); }; var _default = BlockInspector; exports.default = _default; //# sourceMappingURL=index.js.map