@gechiui/block-editor
Version:
187 lines (152 loc) • 7.34 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@gechiui/element");
var _i18n = require("@gechiui/i18n");
var _blocks = require("@gechiui/blocks");
var _components = require("@gechiui/components");
var _data = require("@gechiui/data");
var _skipToSelectedBlock = _interopRequireDefault(require("../skip-to-selected-block"));
var _blockCard = _interopRequireDefault(require("../block-card"));
var _inspectorControls = _interopRequireWildcard(require("../inspector-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");
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
/**
* GeChiUI dependencies
*/
/**
* Internal dependencies
*/
const BlockInspector = _ref => {
let {
showNoBlockSelectedMessage = true,
bubblesVirtually = true
} = _ref;
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, null), (0, _element.createElement)(_inspectorControls.default.Slot, {
__experimentalGroup: "typography",
label: (0, _i18n.__)('排版')
}), (0, _element.createElement)(_inspectorControls.default.Slot, {
__experimentalGroup: "dimensions",
label: (0, _i18n.__)('尺寸')
}), (0, _element.createElement)(_inspectorControls.default.Slot, {
__experimentalGroup: "border",
label: (0, _i18n.__)('边框')
}));
}
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.__)('未选择区块。'));
}
return null;
}
return (0, _element.createElement)(BlockInspectorSingleBlock, {
clientId: selectedBlockClientId,
blockName: blockType.name,
hasBlockStyles: hasBlockStyles,
bubblesVirtually: bubblesVirtually
});
};
const BlockInspectorSingleBlock = _ref2 => {
let {
clientId,
blockName,
hasBlockStyles,
bubblesVirtually
} = _ref2;
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.__)('样式')
}, (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)(_inspectorControls.default.Slot, {
__experimentalGroup: "typography",
bubblesVirtually: bubblesVirtually,
label: (0, _i18n.__)('排版')
}), (0, _element.createElement)(_inspectorControls.default.Slot, {
__experimentalGroup: "dimensions",
bubblesVirtually: bubblesVirtually,
label: (0, _i18n.__)('尺寸')
}), (0, _element.createElement)(_inspectorControls.default.Slot, {
__experimentalGroup: "border",
label: (0, _i18n.__)('边框')
}), (0, _element.createElement)("div", null, (0, _element.createElement)(AdvancedControls, {
bubblesVirtually: bubblesVirtually
})), (0, _element.createElement)(_skipToSelectedBlock.default, {
key: "back"
}));
};
const AdvancedControls = _ref3 => {
let {
bubblesVirtually
} = _ref3;
const slot = (0, _components.__experimentalUseSlot)(_inspectorControls.InspectorAdvancedControls.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.__)('高级'),
initialOpen: false
}, (0, _element.createElement)(_inspectorControls.default.Slot, {
__experimentalGroup: "advanced",
bubblesVirtually: bubblesVirtually
}));
};
var _default = BlockInspector;
exports.default = _default;
//# sourceMappingURL=index.js.map