UNPKG

@wordpress/block-editor

Version:
90 lines (88 loc) 3.36 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // packages/block-editor/src/components/inspector-controls/block-support-tools-panel.js var block_support_tools_panel_exports = {}; __export(block_support_tools_panel_exports, { default: () => BlockSupportToolsPanel }); module.exports = __toCommonJS(block_support_tools_panel_exports); var import_components = require("@wordpress/components"); var import_data = require("@wordpress/data"); var import_element = require("@wordpress/element"); var import_store = require("../../store"); var import_utils = require("../../hooks/utils"); var import_utils2 = require("../global-styles/utils"); var import_jsx_runtime = require("react/jsx-runtime"); function BlockSupportToolsPanel({ children, group, label }) { const { updateBlockAttributes } = (0, import_data.useDispatch)(import_store.store); const { getBlockAttributes, getMultiSelectedBlockClientIds, getSelectedBlockClientId, hasMultiSelection } = (0, import_data.useSelect)(import_store.store); const dropdownMenuProps = (0, import_utils2.useToolsPanelDropdownMenuProps)(); const panelId = getSelectedBlockClientId(); const resetAll = (0, import_element.useCallback)( (resetFilters = []) => { const newAttributes = {}; const clientIds = hasMultiSelection() ? getMultiSelectedBlockClientIds() : [panelId]; clientIds.forEach((clientId) => { const { style } = getBlockAttributes(clientId); let newBlockAttributes = { style }; resetFilters.forEach((resetFilter) => { newBlockAttributes = { ...newBlockAttributes, ...resetFilter(newBlockAttributes) }; }); newBlockAttributes = { ...newBlockAttributes, style: (0, import_utils.cleanEmptyObject)(newBlockAttributes.style) }; newAttributes[clientId] = newBlockAttributes; }); updateBlockAttributes(clientIds, newAttributes, true); }, [ getBlockAttributes, getMultiSelectedBlockClientIds, hasMultiSelection, panelId, updateBlockAttributes ] ); return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_components.__experimentalToolsPanel, { className: `${group}-block-support-panel`, label, resetAll, panelId, hasInnerWrapper: true, shouldRenderPlaceholderItems: true, __experimentalFirstVisibleItemClass: "first", __experimentalLastVisibleItemClass: "last", dropdownMenuProps, children }, panelId ); } //# sourceMappingURL=block-support-tools-panel.js.map