@wordpress/block-editor 15.3.1-next.6f42e1382.0 → 15.3.1-next.a730c9c8c.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/block-card/index.js +4 -2
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-inspector/edit-contents-button.js +54 -0
- package/build/components/block-inspector/edit-contents-button.js.map +1 -0
- package/build/components/block-inspector/index.js +5 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-switcher/index.js +3 -3
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +1 -1
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/global-styles/border-panel.js +6 -6
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +7 -2
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/writing-flow/use-clipboard-handler.js +6 -1
- package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
- package/build/store/private-selectors.js +3 -2
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +55 -1
- package/build/store/reducer.js.map +1 -1
- package/build/utils/block-bindings.js +1 -1
- package/build/utils/block-bindings.js.map +1 -1
- package/build-module/components/block-card/index.js +4 -2
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-inspector/edit-contents-button.js +47 -0
- package/build-module/components/block-inspector/edit-contents-button.js.map +1 -0
- package/build-module/components/block-inspector/index.js +5 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-switcher/index.js +3 -3
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +1 -1
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +6 -6
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +9 -4
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/writing-flow/use-clipboard-handler.js +6 -1
- package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
- package/build-module/store/private-selectors.js +3 -2
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +55 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/utils/block-bindings.js +1 -1
- package/build-module/utils/block-bindings.js.map +1 -1
- package/build-style/style-rtl.css +9 -4
- package/build-style/style.css +9 -4
- package/package.json +34 -34
- package/src/components/block-card/index.js +11 -1
- package/src/components/block-inspector/edit-contents-button.js +46 -0
- package/src/components/block-inspector/index.js +6 -1
- package/src/components/block-inspector/style.scss +5 -0
- package/src/components/block-switcher/index.js +5 -3
- package/src/components/block-toolbar/style.scss +3 -5
- package/src/components/block-variation-transforms/index.js +2 -1
- package/src/components/border-radius-control/test/utils.js +71 -0
- package/src/components/border-radius-control/utils.js +1 -0
- package/src/components/global-styles/border-panel.js +7 -6
- package/src/components/url-popover/image-url-input-ui.js +18 -2
- package/src/components/writing-flow/use-clipboard-handler.js +6 -0
- package/src/store/private-selectors.js +3 -2
- package/src/store/reducer.js +83 -0
- package/src/store/test/reducer.js +291 -0
- package/src/utils/block-bindings.js +1 -1
|
@@ -58,6 +58,7 @@ const {
|
|
|
58
58
|
* @param {Object} [props.blockType] Deprecated: Object containing block type data.
|
|
59
59
|
* @param {string} [props.className] Additional classes to apply to the card.
|
|
60
60
|
* @param {string} [props.name] Custom block name to display before the title.
|
|
61
|
+
* @param {Element} [props.children] Children.
|
|
61
62
|
* @return {Element} Block card component.
|
|
62
63
|
*/
|
|
63
64
|
function BlockCard({
|
|
@@ -66,7 +67,8 @@ function BlockCard({
|
|
|
66
67
|
description,
|
|
67
68
|
blockType,
|
|
68
69
|
className,
|
|
69
|
-
name
|
|
70
|
+
name,
|
|
71
|
+
children
|
|
70
72
|
}) {
|
|
71
73
|
if (blockType) {
|
|
72
74
|
(0, _deprecated.default)('`blockType` property in `BlockCard component`', {
|
|
@@ -127,7 +129,7 @@ function BlockCard({
|
|
|
127
129
|
}), description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalText, {
|
|
128
130
|
className: "block-editor-block-card__description",
|
|
129
131
|
children: description
|
|
130
|
-
})]
|
|
132
|
+
}), children]
|
|
131
133
|
})]
|
|
132
134
|
});
|
|
133
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_data","_deprecated","_i18n","_icons","_lockUnlock","_store","_blockIcon","_jsxRuntime","Badge","unlock","componentsPrivateApis","BlockCard","title","icon","description","blockType","className","name","deprecated","since","alternative","parentNavBlockClientId","useSelect","select","getSelectedBlockClientId","getBlockParentsByBlockName","blockEditorStore","_selectedBlockClientId","selectBlock","useDispatch","jsxs","clsx","
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_data","_deprecated","_i18n","_icons","_lockUnlock","_store","_blockIcon","_jsxRuntime","Badge","unlock","componentsPrivateApis","BlockCard","title","icon","description","blockType","className","name","children","deprecated","since","alternative","parentNavBlockClientId","useSelect","select","getSelectedBlockClientId","getBlockParentsByBlockName","blockEditorStore","_selectedBlockClientId","selectBlock","useDispatch","jsxs","clsx","jsx","Button","onClick","label","__","style","minWidth","padding","isRTL","chevronRight","chevronLeft","size","default","showColors","__experimentalVStack","spacing","length","__experimentalText","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-card/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { chevronLeft, chevronRight } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\n\nconst { Badge } = unlock( componentsPrivateApis );\n\n/**\n * A card component that displays block information including title, icon, and description.\n * Can be used to show block metadata and navigation controls for parent blocks.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-card/README.md\n *\n * @example\n * ```jsx\n * function Example() {\n * return (\n * <BlockCard\n * title=\"My Block\"\n * icon=\"smiley\"\n * description=\"A simple block example\"\n * name=\"Custom Block\"\n * />\n * );\n * }\n * ```\n *\n * @param {Object} props Component props.\n * @param {string} props.title The title of the block.\n * @param {string|Object} props.icon The icon of the block. This can be any of [WordPress' Dashicons](https://developer.wordpress.org/resource/dashicons/), or a custom `svg` element.\n * @param {string} props.description The description of the block.\n * @param {Object} [props.blockType] Deprecated: Object containing block type data.\n * @param {string} [props.className] Additional classes to apply to the card.\n * @param {string} [props.name] Custom block name to display before the title.\n * @param {Element} [props.children] Children.\n * @return {Element} Block card component.\n */\nfunction BlockCard( {\n\ttitle,\n\ticon,\n\tdescription,\n\tblockType,\n\tclassName,\n\tname,\n\tchildren,\n} ) {\n\tif ( blockType ) {\n\t\tdeprecated( '`blockType` property in `BlockCard component`', {\n\t\t\tsince: '5.7',\n\t\t\talternative: '`title, icon and description` properties',\n\t\t} );\n\t\t( { title, icon, description } = blockType );\n\t}\n\n\tconst { parentNavBlockClientId } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientId, getBlockParentsByBlockName } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\n\t\treturn {\n\t\t\tparentNavBlockClientId: getBlockParentsByBlockName(\n\t\t\t\t_selectedBlockClientId,\n\t\t\t\t'core/navigation',\n\t\t\t\ttrue\n\t\t\t)[ 0 ],\n\t\t};\n\t}, [] );\n\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<div className={ clsx( 'block-editor-block-card', className ) }>\n\t\t\t{ parentNavBlockClientId && ( // This is only used by the Navigation block for now. It's not ideal having Navigation block specific code here.\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ () => selectBlock( parentNavBlockClientId ) }\n\t\t\t\t\tlabel={ __( 'Go to parent Navigation block' ) }\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t// TODO: This style override is also used in ToolsPanelHeader.\n\t\t\t\t\t\t// It should be supported out-of-the-box by Button.\n\t\t\t\t\t\t{ minWidth: 24, padding: 0 }\n\t\t\t\t\t}\n\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t<h2 className=\"block-editor-block-card__title\">\n\t\t\t\t\t<span className=\"block-editor-block-card__name\">\n\t\t\t\t\t\t{ !! name?.length ? name : title }\n\t\t\t\t\t</span>\n\t\t\t\t\t{ !! name?.length && <Badge>{ title }</Badge> }\n\t\t\t\t</h2>\n\t\t\t\t{ description && (\n\t\t\t\t\t<Text className=\"block-editor-block-card__description\">\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default BlockCard;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = EditContentsButton;
|
|
7
|
+
var _components = require("@wordpress/components");
|
|
8
|
+
var _data = require("@wordpress/data");
|
|
9
|
+
var _i18n = require("@wordpress/i18n");
|
|
10
|
+
var _store = require("../../store");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
/**
|
|
13
|
+
* WordPress dependencies
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Internal dependencies
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
function EditContentsButton({
|
|
21
|
+
clientId
|
|
22
|
+
}) {
|
|
23
|
+
const {
|
|
24
|
+
updateBlockAttributes
|
|
25
|
+
} = (0, _data.useDispatch)(_store.store);
|
|
26
|
+
const {
|
|
27
|
+
attributes
|
|
28
|
+
} = (0, _data.useSelect)(select => {
|
|
29
|
+
return {
|
|
30
|
+
attributes: select(_store.store).getBlockAttributes(clientId)
|
|
31
|
+
};
|
|
32
|
+
}, [clientId]);
|
|
33
|
+
if (!attributes?.metadata?.patternName) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
37
|
+
className: "block-editor-block-inspector-edit-contents-button",
|
|
38
|
+
__next40pxDefaultSize: true,
|
|
39
|
+
variant: "secondary",
|
|
40
|
+
onClick: () => {
|
|
41
|
+
var _attributes$metadata;
|
|
42
|
+
const {
|
|
43
|
+
patternName,
|
|
44
|
+
...metadataWithoutPatternName
|
|
45
|
+
} = (_attributes$metadata = attributes?.metadata) !== null && _attributes$metadata !== void 0 ? _attributes$metadata : {};
|
|
46
|
+
updateBlockAttributes(clientId, {
|
|
47
|
+
...attributes,
|
|
48
|
+
metadata: metadataWithoutPatternName
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
children: (0, _i18n.__)('Edit contents')
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=edit-contents-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_components","require","_data","_i18n","_store","_jsxRuntime","EditContentsButton","clientId","updateBlockAttributes","useDispatch","blockEditorStore","attributes","useSelect","select","getBlockAttributes","metadata","patternName","jsx","Button","className","__next40pxDefaultSize","variant","onClick","_attributes$metadata","metadataWithoutPatternName","children","__"],"sources":["@wordpress/block-editor/src/components/block-inspector/edit-contents-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport default function EditContentsButton( { clientId } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { attributes } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tattributes:\n\t\t\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tif ( ! attributes?.metadata?.patternName ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tclassName=\"block-editor-block-inspector-edit-contents-button\"\n\t\t\t__next40pxDefaultSize\n\t\t\tvariant=\"secondary\"\n\t\t\tonClick={ () => {\n\t\t\t\tconst { patternName, ...metadataWithoutPatternName } =\n\t\t\t\t\tattributes?.metadata ?? {};\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\t...attributes,\n\t\t\t\t\tmetadata: metadataWithoutPatternName,\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Edit contents' ) }\n\t\t</Button>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AAAwD,IAAAI,WAAA,GAAAJ,OAAA;AAVxD;AACA;AACA;;AAKA;AACA;AACA;;AAGe,SAASK,kBAAkBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC1D,MAAM;IAAEC;EAAsB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,YAAiB,CAAC;EACjE,MAAM;IAAEC;EAAW,CAAC,GAAG,IAAAC,eAAS,EAC7BC,MAAM,IAAM;IACb,OAAO;MACNF,UAAU,EACTE,MAAM,CAAEH,YAAiB,CAAC,CAACI,kBAAkB,CAAEP,QAAS;IAC1D,CAAC;EACF,CAAC,EACD,CAAEA,QAAQ,CACX,CAAC;EAED,IAAK,CAAEI,UAAU,EAAEI,QAAQ,EAAEC,WAAW,EAAG;IAC1C,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAX,WAAA,CAAAY,GAAA,EAACjB,WAAA,CAAAkB,MAAM;IACNC,SAAS,EAAC,mDAAmD;IAC7DC,qBAAqB;IACrBC,OAAO,EAAC,WAAW;IACnBC,OAAO,EAAGA,CAAA,KAAM;MAAA,IAAAC,oBAAA;MACf,MAAM;QAAEP,WAAW;QAAE,GAAGQ;MAA2B,CAAC,IAAAD,oBAAA,GACnDZ,UAAU,EAAEI,QAAQ,cAAAQ,oBAAA,cAAAA,oBAAA,GAAI,CAAC,CAAC;MAC3Bf,qBAAqB,CAAED,QAAQ,EAAE;QAChC,GAAGI,UAAU;QACbI,QAAQ,EAAES;MACX,CAAE,CAAC;IACJ,CAAG;IAAAC,QAAA,EAED,IAAAC,QAAE,EAAE,eAAgB;EAAC,CAChB,CAAC;AAEX","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ var _i18n = require("@wordpress/i18n");
|
|
|
9
9
|
var _blocks = require("@wordpress/blocks");
|
|
10
10
|
var _components = require("@wordpress/components");
|
|
11
11
|
var _data = require("@wordpress/data");
|
|
12
|
+
var _editContentsButton = _interopRequireDefault(require("./edit-contents-button"));
|
|
12
13
|
var _skipToSelectedBlock = _interopRequireDefault(require("../skip-to-selected-block"));
|
|
13
14
|
var _blockCard = _interopRequireDefault(require("../block-card"));
|
|
14
15
|
var _multiSelectionInspector = _interopRequireDefault(require("../multi-selection-inspector"));
|
|
@@ -201,7 +202,10 @@ const BlockInspectorSingleBlock = ({
|
|
|
201
202
|
className: "block-editor-block-inspector",
|
|
202
203
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_blockCard.default, {
|
|
203
204
|
...blockInformation,
|
|
204
|
-
className: blockInformation.isSynced && 'is-synced'
|
|
205
|
+
className: blockInformation.isSynced && 'is-synced',
|
|
206
|
+
children: window?.__experimentalContentOnlyPatternInsertion && /*#__PURE__*/(0, _jsxRuntime.jsx)(_editContentsButton.default, {
|
|
207
|
+
clientId: clientId
|
|
208
|
+
})
|
|
205
209
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockVariationTransforms.default, {
|
|
206
210
|
blockClientId: clientId
|
|
207
211
|
}), showTabs && /*#__PURE__*/(0, _jsxRuntime.jsx)(_inspectorControlsTabs.default, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_blocks","_components","_data","_skipToSelectedBlock","_interopRequireDefault","_blockCard","_multiSelectionInspector","_blockVariationTransforms","_useBlockDisplayInformation","_store","_blockStyles","_inspectorControls","_inspectorControlsTabs","_useInspectorControlsTabs","_advancedControlsPanel","_positionControlsPanel","_useBlockInspectorAnimationSettings","_blockQuickNavigation","_border","_lockUnlock","_jsxRuntime","BlockStylesPanel","clientId","jsx","PanelBody","title","__","children","default","BlockInspector","count","selectedBlockName","selectedBlockClientId","blockType","isSectionBlock","useSelect","select","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","getParentSectionBlock","_isSectionBlock","unlock","blockEditorStore","_selectedBlockClientId","renderedBlockClientId","_selectedBlockName","_blockType","getBlockType","availableTabs","useInspectorControlsTabs","name","showTabs","length","blockInspectorAnimationSettings","useBlockInspectorAnimationSettings","borderPanelLabel","useBorderPanelLabel","blockName","jsxs","className","tabs","Fragment","Slot","group","label","isSelectedBlockUnregistered","getUnregisteredTypeHandlerName","BlockInspectorSingleBlockWrapper","animate","wrapper","AnimatedContainer","BlockInspectorSingleBlock","animationOrigin","enterDirection","__unstableMotion","div","x","opacity","transition","ease","duration","initial","hasBlockStyles","getBlockStyles","blocksStore","blockStyles","blockInformation","useBlockDisplayInformation","contentClientIds","getClientIdsOfDescendants","getBlockEditingMode","filter","current","isSynced","blockClientId","clientIds","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockQuickNavigation from '../block-quick-navigation';\nimport { useBorderPanelLabel } from '../../hooks/border';\n\nimport { unlock } from '../../lock-unlock';\n\nfunction BlockStylesPanel( { clientId } ) {\n\treturn (\n\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t<BlockStyles clientId={ clientId } />\n\t\t</PanelBody>\n\t);\n}\n\nfunction BlockInspector() {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\tisSectionBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\tgetParentSectionBlock,\n\t\t\tisSectionBlock: _isSectionBlock,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst renderedBlockClientId =\n\t\t\tgetParentSectionBlock( _selectedBlockClientId ) ||\n\t\t\tgetSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\trenderedBlockClientId && getBlockName( renderedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: renderedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\tisSectionBlock: _isSectionBlock( renderedBlockClientId ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings =\n\t\tuseBlockInspectorAnimationSettings( blockType );\n\n\tconst borderPanelLabel = useBorderPanelLabel( {\n\t\tblockName: selectedBlockName,\n\t} );\n\n\tif ( count > 1 && ! isSectionBlock ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\treturn (\n\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n}\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\tclientId,\n\tblockName,\n\tisSectionBlock,\n} ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = ! isSectionBlock && availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\t// Avoid unnecessary subscription.\n\t\t\tif ( ! isSectionBlock ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( clientId ).filter(\n\t\t\t\t( current ) =>\n\t\t\t\t\tgetBlockName( current ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( current ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ isSectionBlock, clientId ]\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<BlockStylesPanel clientId={ clientId } />\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ contentClientIds && contentClientIds?.length > 0 && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t\t\t\t<BlockQuickNavigation\n\t\t\t\t\t\t\t\tclientIds={ contentClientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! isSectionBlock && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t\t\t<PositionControls />\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"bindings\" />\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_i18n","require","_blocks","_components","_data","_editContentsButton","_interopRequireDefault","_skipToSelectedBlock","_blockCard","_multiSelectionInspector","_blockVariationTransforms","_useBlockDisplayInformation","_store","_blockStyles","_inspectorControls","_inspectorControlsTabs","_useInspectorControlsTabs","_advancedControlsPanel","_positionControlsPanel","_useBlockInspectorAnimationSettings","_blockQuickNavigation","_border","_lockUnlock","_jsxRuntime","BlockStylesPanel","clientId","jsx","PanelBody","title","__","children","default","BlockInspector","count","selectedBlockName","selectedBlockClientId","blockType","isSectionBlock","useSelect","select","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","getParentSectionBlock","_isSectionBlock","unlock","blockEditorStore","_selectedBlockClientId","renderedBlockClientId","_selectedBlockName","_blockType","getBlockType","availableTabs","useInspectorControlsTabs","name","showTabs","length","blockInspectorAnimationSettings","useBlockInspectorAnimationSettings","borderPanelLabel","useBorderPanelLabel","blockName","jsxs","className","tabs","Fragment","Slot","group","label","isSelectedBlockUnregistered","getUnregisteredTypeHandlerName","BlockInspectorSingleBlockWrapper","animate","wrapper","AnimatedContainer","BlockInspectorSingleBlock","animationOrigin","enterDirection","__unstableMotion","div","x","opacity","transition","ease","duration","initial","hasBlockStyles","getBlockStyles","blocksStore","blockStyles","blockInformation","useBlockDisplayInformation","contentClientIds","getClientIdsOfDescendants","getBlockEditingMode","filter","current","isSynced","window","__experimentalContentOnlyPatternInsertion","blockClientId","clientIds","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport EditContentsButton from './edit-contents-button';\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockQuickNavigation from '../block-quick-navigation';\nimport { useBorderPanelLabel } from '../../hooks/border';\n\nimport { unlock } from '../../lock-unlock';\n\nfunction BlockStylesPanel( { clientId } ) {\n\treturn (\n\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t<BlockStyles clientId={ clientId } />\n\t\t</PanelBody>\n\t);\n}\n\nfunction BlockInspector() {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\tisSectionBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\tgetParentSectionBlock,\n\t\t\tisSectionBlock: _isSectionBlock,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst renderedBlockClientId =\n\t\t\tgetParentSectionBlock( _selectedBlockClientId ) ||\n\t\t\tgetSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\trenderedBlockClientId && getBlockName( renderedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: renderedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\tisSectionBlock: _isSectionBlock( renderedBlockClientId ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings =\n\t\tuseBlockInspectorAnimationSettings( blockType );\n\n\tconst borderPanelLabel = useBorderPanelLabel( {\n\t\tblockName: selectedBlockName,\n\t} );\n\n\tif ( count > 1 && ! isSectionBlock ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\treturn (\n\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n}\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\tclientId,\n\tblockName,\n\tisSectionBlock,\n} ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = ! isSectionBlock && availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\t// Avoid unnecessary subscription.\n\t\t\tif ( ! isSectionBlock ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( clientId ).filter(\n\t\t\t\t( current ) =>\n\t\t\t\t\tgetBlockName( current ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( current ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ isSectionBlock, clientId ]\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t>\n\t\t\t\t{ window?.__experimentalContentOnlyPatternInsertion && (\n\t\t\t\t\t<EditContentsButton clientId={ clientId } />\n\t\t\t\t) }\n\t\t\t</BlockCard>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<BlockStylesPanel clientId={ clientId } />\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ contentClientIds && contentClientIds?.length > 0 && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t\t\t\t<BlockQuickNavigation\n\t\t\t\t\t\t\t\tclientIds={ contentClientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! isSectionBlock && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t\t\t<PositionControls />\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"bindings\" />\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -89,13 +89,13 @@ function BlockSwitcherDropdownMenuContents({
|
|
|
89
89
|
selectForMultipleBlocks(transformedBlocks);
|
|
90
90
|
}
|
|
91
91
|
/**
|
|
92
|
-
* The `
|
|
92
|
+
* The `isSynced` check is a stopgap solution here.
|
|
93
93
|
* Ideally, the Transforms API should handle this
|
|
94
94
|
* by allowing to exclude blocks from wildcard transformations.
|
|
95
95
|
*/
|
|
96
96
|
const isSingleBlock = blocks.length === 1;
|
|
97
|
-
const
|
|
98
|
-
const hasPossibleBlockTransformations = !!possibleBlockTransformations
|
|
97
|
+
const isSynced = isSingleBlock && ((0, _blocks2.isTemplatePart)(blocks[0]) || (0, _blocks2.isReusableBlock)(blocks[0]));
|
|
98
|
+
const hasPossibleBlockTransformations = !!possibleBlockTransformations?.length && canRemove && !isSynced;
|
|
99
99
|
const hasPossibleBlockVariationTransformations = !!blockVariationTransformations?.length;
|
|
100
100
|
const hasPatternTransformation = !!patterns?.length && canRemove;
|
|
101
101
|
const hasBlockOrBlockVariationTransforms = hasPossibleBlockTransformations || hasPossibleBlockVariationTransformations;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_components","_blocks2","_data","_icons","_preferences","_store","_blockIcon","_interopRequireDefault","_blockTransformationsMenu","_blockVariationTransformations","_blockStylesMenu","_patternTransformationsMenu","_useBlockDisplayTitle","_lockUnlock","_jsxRuntime","BlockSwitcherDropdownMenuContents","onClose","clientIds","hasBlockStyles","canRemove","replaceBlocks","multiSelect","updateBlockAttributes","useDispatch","blockEditorStore","possibleBlockTransformations","patterns","blocks","isUsingBindings","useSelect","select","getBlockAttributes","getBlocksByClientId","getBlockRootClientId","getBlockTransformItems","__experimentalGetPatternTransformItems","rootClientId","_blocks","every","clientId","metadata","bindings","blockVariationTransformations","useBlockVariationTransforms","selectForMultipleBlocks","insertedBlocks","length","onBlockTransform","name","newBlocks","switchToBlockType","onBlockVariationTransform","find","variationName","attributes","onPatternTransform","transformedBlocks","isSingleBlock","isTemplate","isTemplatePart","hasPossibleBlockTransformations","hasPossibleBlockVariationTransformations","hasPatternTransformation","hasBlockOrBlockVariationTransforms","hasContents","jsx","className","children","__","connectedBlockDescription","_x","jsxs","default","onSelect","possibleBlockVariationTransformations","onSelectVariation","hoveredBlock","onSwitch","MenuGroup","__experimentalText","BlockSwitcher","hasContentOnlyLocking","icon","invalidBlocks","isReusable","isDisabled","isSection","getTemplateLock","canRemoveBlocks","getBlockEditingMode","isSectionBlock","unlock","getBlockStyles","getBlockType","getActiveBlockVariation","blocksStore","some","block","firstBlockName","_isSingleBlockSelected","blockType","editingMode","_icon","_hasTemplateLock","match","isSelectionOfSameType","Set","map","size","id","copy","isReusableBlock","blockTitle","useBlockDisplayTitle","maximumLength","showIconLabels","preferencesStore","get","blockSwitcherLabel","blockIndicatorText","undefined","hideTransformsForSections","window","__experimentalContentOnlyPatternInsertion","hideDropdown","ToolbarGroup","ToolbarButton","disabled","title","showColors","text","blockSwitcherDescription","sprintf","_n","ToolbarItem","toggleProps","DropdownMenu","label","popoverProps","placement","description","menuProps","orientation","exports","_default"],"sources":["@wordpress/block-editor/src/components/block-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarButton,\n\tToolbarGroup,\n\tToolbarItem,\n\t__experimentalText as Text,\n\tMenuGroup,\n} from '@wordpress/components';\nimport {\n\tswitchToBlockType,\n\tstore as blocksStore,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockTransformationsMenu from './block-transformations-menu';\nimport { useBlockVariationTransforms } from './block-variation-transformations';\nimport BlockStylesMenu from './block-styles-menu';\nimport PatternTransformationsMenu from './pattern-transformations-menu';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport { unlock } from '../../lock-unlock';\n\nfunction BlockSwitcherDropdownMenuContents( {\n\tonClose,\n\tclientIds,\n\thasBlockStyles,\n\tcanRemove,\n} ) {\n\tconst { replaceBlocks, multiSelect, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, patterns, blocks, isUsingBindings } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlocksByClientId,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockTransformItems,\n\t\t\t\t\t__experimentalGetPatternTransformItems,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\t\treturn {\n\t\t\t\t\tblocks: _blocks,\n\t\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\t\t_blocks,\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tpatterns: __experimentalGetPatternTransformItems(\n\t\t\t\t\t\t_blocks,\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tisUsingBindings: clientIds.every(\n\t\t\t\t\t\t( clientId ) =>\n\t\t\t\t\t\t\t!! getBlockAttributes( clientId )?.metadata\n\t\t\t\t\t\t\t\t?.bindings\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds ]\n\t\t);\n\tconst blockVariationTransformations = useBlockVariationTransforms( {\n\t\tclientIds,\n\t\tblocks,\n\t} );\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\t// Simple block transformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\tfunction onBlockVariationTransform( name ) {\n\t\tupdateBlockAttributes( blocks[ 0 ].clientId, {\n\t\t\t...blockVariationTransformations.find(\n\t\t\t\t( { name: variationName } ) => variationName === name\n\t\t\t).attributes,\n\t\t} );\n\t}\n\t// Pattern transformation through the `Patterns` API.\n\tfunction onPatternTransform( transformedBlocks ) {\n\t\treplaceBlocks( clientIds, transformedBlocks );\n\t\tselectForMultipleBlocks( transformedBlocks );\n\t}\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst isSingleBlock = blocks.length === 1;\n\tconst isTemplate = isSingleBlock && isTemplatePart( blocks[ 0 ] );\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\tconst hasPossibleBlockVariationTransformations =\n\t\t!! blockVariationTransformations?.length;\n\tconst hasPatternTransformation = !! patterns?.length && canRemove;\n\tconst hasBlockOrBlockVariationTransforms =\n\t\thasPossibleBlockTransformations ||\n\t\thasPossibleBlockVariationTransformations;\n\tconst hasContents =\n\t\thasBlockStyles ||\n\t\thasBlockOrBlockVariationTransforms ||\n\t\thasPatternTransformation;\n\tif ( ! hasContents ) {\n\t\treturn (\n\t\t\t<p className=\"block-editor-block-switcher__no-transforms\">\n\t\t\t\t{ __( 'No transforms.' ) }\n\t\t\t</p>\n\t\t);\n\t}\n\n\tconst connectedBlockDescription = isSingleBlock\n\t\t? _x(\n\t\t\t\t'This block is connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t )\n\t\t: _x(\n\t\t\t\t'These blocks are connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__container\">\n\t\t\t{ hasPatternTransformation && (\n\t\t\t\t<PatternTransformationsMenu\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ ( transformedBlocks ) => {\n\t\t\t\t\t\tonPatternTransform( transformedBlocks );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockOrBlockVariationTransforms && (\n\t\t\t\t<BlockTransformationsMenu\n\t\t\t\t\tclassName=\"block-editor-block-switcher__transforms__menugroup\"\n\t\t\t\t\tpossibleBlockTransformations={\n\t\t\t\t\t\tpossibleBlockTransformations\n\t\t\t\t\t}\n\t\t\t\t\tpossibleBlockVariationTransformations={\n\t\t\t\t\t\tblockVariationTransformations\n\t\t\t\t\t}\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonSelect={ ( name ) => {\n\t\t\t\t\t\tonBlockTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectVariation={ ( name ) => {\n\t\t\t\t\t\tonBlockVariationTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<BlockStylesMenu\n\t\t\t\t\thoveredBlock={ blocks[ 0 ] }\n\t\t\t\t\tonSwitch={ onClose }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isUsingBindings && (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<Text className=\"block-editor-block-switcher__binding-indicator\">\n\t\t\t\t\t\t{ connectedBlockDescription }\n\t\t\t\t\t</Text>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const BlockSwitcher = ( { clientIds } ) => {\n\tconst {\n\t\thasContentOnlyLocking,\n\t\tcanRemove,\n\t\thasBlockStyles,\n\t\ticon,\n\t\tinvalidBlocks,\n\t\tisReusable,\n\t\tisTemplate,\n\t\tisDisabled,\n\t\tisSection,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tisSectionBlock,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst { getBlockStyles, getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\tif ( ! _blocks.length || _blocks.some( ( block ) => ! block ) ) {\n\t\t\t\treturn { invalidBlocks: true };\n\t\t\t}\n\t\t\tconst [ { name: firstBlockName } ] = _blocks;\n\t\t\tconst _isSingleBlockSelected = _blocks.length === 1;\n\t\t\tconst blockType = getBlockType( firstBlockName );\n\t\t\tconst editingMode = getBlockEditingMode( clientIds[ 0 ] );\n\n\t\t\tlet _icon;\n\t\t\tlet _hasTemplateLock;\n\t\t\tif ( _isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\tfirstBlockName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || blockType.icon;\n\t\t\t\t_hasTemplateLock =\n\t\t\t\t\tgetTemplateLock( clientIds[ 0 ] ) === 'contentOnly';\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( _blocks.map( ( { name } ) => name ) ).size === 1;\n\t\t\t\t_hasTemplateLock = clientIds.some(\n\t\t\t\t\t( id ) => getTemplateLock( id ) === 'contentOnly'\n\t\t\t\t);\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? blockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\thasBlockStyles:\n\t\t\t\t\t_isSingleBlockSelected &&\n\t\t\t\t\t!! getBlockStyles( firstBlockName )?.length,\n\t\t\t\ticon: _icon,\n\t\t\t\tisReusable:\n\t\t\t\t\t_isSingleBlockSelected && isReusableBlock( _blocks[ 0 ] ),\n\t\t\t\tisTemplate:\n\t\t\t\t\t_isSingleBlockSelected && isTemplatePart( _blocks[ 0 ] ),\n\t\t\t\thasContentOnlyLocking: _hasTemplateLock,\n\t\t\t\tisDisabled: editingMode !== 'default',\n\t\t\t\tisSection: isSectionBlock( clientIds[ 0 ] ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds?.[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\tconst showIconLabels = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get( 'core', 'showIconLabels' ),\n\t\t[]\n\t);\n\n\tif ( invalidBlocks ) {\n\t\treturn null;\n\t}\n\n\tconst isSingleBlock = clientIds.length === 1;\n\tconst blockSwitcherLabel = isSingleBlock\n\t\t? blockTitle\n\t\t: __( 'Multiple blocks selected' );\n\n\tconst blockIndicatorText =\n\t\t( isReusable || isTemplate ) && ! showIconLabels && blockTitle\n\t\t\t? blockTitle\n\t\t\t: undefined;\n\n\tconst hideTransformsForSections =\n\t\twindow?.__experimentalContentOnlyPatternInsertion && isSection;\n\tconst hideDropdown =\n\t\thideTransformsForSections ||\n\t\tisDisabled ||\n\t\t( ! hasBlockStyles && ! canRemove ) ||\n\t\thasContentOnlyLocking;\n\n\tif ( hideDropdown ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled\n\t\t\t\t\tclassName=\"block-editor-block-switcher__no-switcher-icon\"\n\t\t\t\t\ttitle={ blockSwitcherLabel }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\ttext={ blockIndicatorText }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tconst blockSwitcherDescription = isSingleBlock\n\t\t? __( 'Change block type or style' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %d: number of blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'Change type of %d block',\n\t\t\t\t\t'Change type of %d blocks',\n\t\t\t\t\tclientIds.length\n\t\t\t\t),\n\t\t\t\tclientIds.length\n\t\t );\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tclassName=\"block-editor-block-switcher\"\n\t\t\t\t\t\tlabel={ blockSwitcherLabel }\n\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\t\tclassName: 'block-editor-block-switcher__popover',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttext={ blockIndicatorText }\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tdescription: blockSwitcherDescription,\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmenuProps={ { orientation: 'both' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<BlockSwitcherDropdownMenuContents\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\t\t\tcanRemove={ canRemove }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default BlockSwitcher;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_i18n","require","_components","_blocks2","_data","_icons","_preferences","_store","_blockIcon","_interopRequireDefault","_blockTransformationsMenu","_blockVariationTransformations","_blockStylesMenu","_patternTransformationsMenu","_useBlockDisplayTitle","_lockUnlock","_jsxRuntime","BlockSwitcherDropdownMenuContents","onClose","clientIds","hasBlockStyles","canRemove","replaceBlocks","multiSelect","updateBlockAttributes","useDispatch","blockEditorStore","possibleBlockTransformations","patterns","blocks","isUsingBindings","useSelect","select","getBlockAttributes","getBlocksByClientId","getBlockRootClientId","getBlockTransformItems","__experimentalGetPatternTransformItems","rootClientId","_blocks","every","clientId","metadata","bindings","blockVariationTransformations","useBlockVariationTransforms","selectForMultipleBlocks","insertedBlocks","length","onBlockTransform","name","newBlocks","switchToBlockType","onBlockVariationTransform","find","variationName","attributes","onPatternTransform","transformedBlocks","isSingleBlock","isSynced","isTemplatePart","isReusableBlock","hasPossibleBlockTransformations","hasPossibleBlockVariationTransformations","hasPatternTransformation","hasBlockOrBlockVariationTransforms","hasContents","jsx","className","children","__","connectedBlockDescription","_x","jsxs","default","onSelect","possibleBlockVariationTransformations","onSelectVariation","hoveredBlock","onSwitch","MenuGroup","__experimentalText","BlockSwitcher","hasContentOnlyLocking","icon","invalidBlocks","isReusable","isTemplate","isDisabled","isSection","getTemplateLock","canRemoveBlocks","getBlockEditingMode","isSectionBlock","unlock","getBlockStyles","getBlockType","getActiveBlockVariation","blocksStore","some","block","firstBlockName","_isSingleBlockSelected","blockType","editingMode","_icon","_hasTemplateLock","match","isSelectionOfSameType","Set","map","size","id","copy","blockTitle","useBlockDisplayTitle","maximumLength","showIconLabels","preferencesStore","get","blockSwitcherLabel","blockIndicatorText","undefined","hideTransformsForSections","window","__experimentalContentOnlyPatternInsertion","hideDropdown","ToolbarGroup","ToolbarButton","disabled","title","showColors","text","blockSwitcherDescription","sprintf","_n","ToolbarItem","toggleProps","DropdownMenu","label","popoverProps","placement","description","menuProps","orientation","exports","_default"],"sources":["@wordpress/block-editor/src/components/block-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarButton,\n\tToolbarGroup,\n\tToolbarItem,\n\t__experimentalText as Text,\n\tMenuGroup,\n} from '@wordpress/components';\nimport {\n\tswitchToBlockType,\n\tstore as blocksStore,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockTransformationsMenu from './block-transformations-menu';\nimport { useBlockVariationTransforms } from './block-variation-transformations';\nimport BlockStylesMenu from './block-styles-menu';\nimport PatternTransformationsMenu from './pattern-transformations-menu';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport { unlock } from '../../lock-unlock';\n\nfunction BlockSwitcherDropdownMenuContents( {\n\tonClose,\n\tclientIds,\n\thasBlockStyles,\n\tcanRemove,\n} ) {\n\tconst { replaceBlocks, multiSelect, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, patterns, blocks, isUsingBindings } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlocksByClientId,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockTransformItems,\n\t\t\t\t\t__experimentalGetPatternTransformItems,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\t\treturn {\n\t\t\t\t\tblocks: _blocks,\n\t\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\t\t_blocks,\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tpatterns: __experimentalGetPatternTransformItems(\n\t\t\t\t\t\t_blocks,\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tisUsingBindings: clientIds.every(\n\t\t\t\t\t\t( clientId ) =>\n\t\t\t\t\t\t\t!! getBlockAttributes( clientId )?.metadata\n\t\t\t\t\t\t\t\t?.bindings\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds ]\n\t\t);\n\tconst blockVariationTransformations = useBlockVariationTransforms( {\n\t\tclientIds,\n\t\tblocks,\n\t} );\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\t// Simple block transformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\tfunction onBlockVariationTransform( name ) {\n\t\tupdateBlockAttributes( blocks[ 0 ].clientId, {\n\t\t\t...blockVariationTransformations.find(\n\t\t\t\t( { name: variationName } ) => variationName === name\n\t\t\t).attributes,\n\t\t} );\n\t}\n\t// Pattern transformation through the `Patterns` API.\n\tfunction onPatternTransform( transformedBlocks ) {\n\t\treplaceBlocks( clientIds, transformedBlocks );\n\t\tselectForMultipleBlocks( transformedBlocks );\n\t}\n\t/**\n\t * The `isSynced` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst isSingleBlock = blocks.length === 1;\n\tconst isSynced =\n\t\tisSingleBlock &&\n\t\t( isTemplatePart( blocks[ 0 ] ) || isReusableBlock( blocks[ 0 ] ) );\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations?.length && canRemove && ! isSynced;\n\tconst hasPossibleBlockVariationTransformations =\n\t\t!! blockVariationTransformations?.length;\n\tconst hasPatternTransformation = !! patterns?.length && canRemove;\n\tconst hasBlockOrBlockVariationTransforms =\n\t\thasPossibleBlockTransformations ||\n\t\thasPossibleBlockVariationTransformations;\n\tconst hasContents =\n\t\thasBlockStyles ||\n\t\thasBlockOrBlockVariationTransforms ||\n\t\thasPatternTransformation;\n\tif ( ! hasContents ) {\n\t\treturn (\n\t\t\t<p className=\"block-editor-block-switcher__no-transforms\">\n\t\t\t\t{ __( 'No transforms.' ) }\n\t\t\t</p>\n\t\t);\n\t}\n\n\tconst connectedBlockDescription = isSingleBlock\n\t\t? _x(\n\t\t\t\t'This block is connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t )\n\t\t: _x(\n\t\t\t\t'These blocks are connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__container\">\n\t\t\t{ hasPatternTransformation && (\n\t\t\t\t<PatternTransformationsMenu\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ ( transformedBlocks ) => {\n\t\t\t\t\t\tonPatternTransform( transformedBlocks );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockOrBlockVariationTransforms && (\n\t\t\t\t<BlockTransformationsMenu\n\t\t\t\t\tclassName=\"block-editor-block-switcher__transforms__menugroup\"\n\t\t\t\t\tpossibleBlockTransformations={\n\t\t\t\t\t\tpossibleBlockTransformations\n\t\t\t\t\t}\n\t\t\t\t\tpossibleBlockVariationTransformations={\n\t\t\t\t\t\tblockVariationTransformations\n\t\t\t\t\t}\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonSelect={ ( name ) => {\n\t\t\t\t\t\tonBlockTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectVariation={ ( name ) => {\n\t\t\t\t\t\tonBlockVariationTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<BlockStylesMenu\n\t\t\t\t\thoveredBlock={ blocks[ 0 ] }\n\t\t\t\t\tonSwitch={ onClose }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isUsingBindings && (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<Text className=\"block-editor-block-switcher__binding-indicator\">\n\t\t\t\t\t\t{ connectedBlockDescription }\n\t\t\t\t\t</Text>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const BlockSwitcher = ( { clientIds } ) => {\n\tconst {\n\t\thasContentOnlyLocking,\n\t\tcanRemove,\n\t\thasBlockStyles,\n\t\ticon,\n\t\tinvalidBlocks,\n\t\tisReusable,\n\t\tisTemplate,\n\t\tisDisabled,\n\t\tisSection,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tisSectionBlock,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst { getBlockStyles, getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\tif ( ! _blocks.length || _blocks.some( ( block ) => ! block ) ) {\n\t\t\t\treturn { invalidBlocks: true };\n\t\t\t}\n\t\t\tconst [ { name: firstBlockName } ] = _blocks;\n\t\t\tconst _isSingleBlockSelected = _blocks.length === 1;\n\t\t\tconst blockType = getBlockType( firstBlockName );\n\t\t\tconst editingMode = getBlockEditingMode( clientIds[ 0 ] );\n\n\t\t\tlet _icon;\n\t\t\tlet _hasTemplateLock;\n\t\t\tif ( _isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\tfirstBlockName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || blockType.icon;\n\t\t\t\t_hasTemplateLock =\n\t\t\t\t\tgetTemplateLock( clientIds[ 0 ] ) === 'contentOnly';\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( _blocks.map( ( { name } ) => name ) ).size === 1;\n\t\t\t\t_hasTemplateLock = clientIds.some(\n\t\t\t\t\t( id ) => getTemplateLock( id ) === 'contentOnly'\n\t\t\t\t);\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? blockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\thasBlockStyles:\n\t\t\t\t\t_isSingleBlockSelected &&\n\t\t\t\t\t!! getBlockStyles( firstBlockName )?.length,\n\t\t\t\ticon: _icon,\n\t\t\t\tisReusable:\n\t\t\t\t\t_isSingleBlockSelected && isReusableBlock( _blocks[ 0 ] ),\n\t\t\t\tisTemplate:\n\t\t\t\t\t_isSingleBlockSelected && isTemplatePart( _blocks[ 0 ] ),\n\t\t\t\thasContentOnlyLocking: _hasTemplateLock,\n\t\t\t\tisDisabled: editingMode !== 'default',\n\t\t\t\tisSection: isSectionBlock( clientIds[ 0 ] ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds?.[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\tconst showIconLabels = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get( 'core', 'showIconLabels' ),\n\t\t[]\n\t);\n\n\tif ( invalidBlocks ) {\n\t\treturn null;\n\t}\n\n\tconst isSingleBlock = clientIds.length === 1;\n\tconst blockSwitcherLabel = isSingleBlock\n\t\t? blockTitle\n\t\t: __( 'Multiple blocks selected' );\n\n\tconst blockIndicatorText =\n\t\t( isReusable || isTemplate ) && ! showIconLabels && blockTitle\n\t\t\t? blockTitle\n\t\t\t: undefined;\n\n\tconst hideTransformsForSections =\n\t\twindow?.__experimentalContentOnlyPatternInsertion && isSection;\n\tconst hideDropdown =\n\t\thideTransformsForSections ||\n\t\tisDisabled ||\n\t\t( ! hasBlockStyles && ! canRemove ) ||\n\t\thasContentOnlyLocking;\n\n\tif ( hideDropdown ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled\n\t\t\t\t\tclassName=\"block-editor-block-switcher__no-switcher-icon\"\n\t\t\t\t\ttitle={ blockSwitcherLabel }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\ttext={ blockIndicatorText }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tconst blockSwitcherDescription = isSingleBlock\n\t\t? __( 'Change block type or style' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %d: number of blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'Change type of %d block',\n\t\t\t\t\t'Change type of %d blocks',\n\t\t\t\t\tclientIds.length\n\t\t\t\t),\n\t\t\t\tclientIds.length\n\t\t );\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tclassName=\"block-editor-block-switcher\"\n\t\t\t\t\t\tlabel={ blockSwitcherLabel }\n\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\t\tclassName: 'block-editor-block-switcher__popover',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttext={ blockIndicatorText }\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tdescription: blockSwitcherDescription,\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmenuProps={ { orientation: 'both' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<BlockSwitcherDropdownMenuContents\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\t\t\tcanRemove={ canRemove }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default BlockSwitcher;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -141,7 +141,7 @@ function __experimentalBlockVariationTransforms({
|
|
|
141
141
|
} = (0, _lockUnlock.unlock)(select(_blocks.store));
|
|
142
142
|
const isContentBlock = hasContentRoleAttribute(name);
|
|
143
143
|
return {
|
|
144
|
-
activeBlockVariation: getActiveBlockVariation(name, getBlockAttributes(blockClientId)),
|
|
144
|
+
activeBlockVariation: getActiveBlockVariation(name, getBlockAttributes(blockClientId), 'transform'),
|
|
145
145
|
variations: name && getBlockVariations(name, 'transform'),
|
|
146
146
|
isContentOnly: getBlockEditingMode(blockClientId) === 'contentOnly' && !isContentBlock,
|
|
147
147
|
isSection: isSectionBlock(blockClientId)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blocks","require","_i18n","_components","_data","_element","_icons","_blockIcon","_interopRequireDefault","_store","_lockUnlock","_jsxRuntime","VariationsButtons","className","onSelectVariation","selectedValue","variations","jsxs","children","jsx","VisuallyHidden","as","__","map","variation","Button","__next40pxDefaultSize","size","icon","default","showColors","isPressed","name","label","title","sprintf","onClick","showTooltip","VariationsDropdown","selectOptions","description","value","info","DropdownMenu","text","popoverProps","position","chevronDown","toggleProps","iconPosition","MenuGroup","MenuItemsChoice","choices","onSelect","VariationsToggleGroupControl","__experimentalToggleGroupControl","hideLabelFromVision","onChange","__nextHasNoMarginBottom","__experimentalToggleGroupControlOptionIcon","__experimentalBlockVariationTransforms","blockClientId","updateBlockAttributes","useDispatch","blockEditorStore","activeBlockVariation","isContentOnly","isSection","useSelect","select","getActiveBlockVariation","getBlockVariations","blocksStore","getBlockName","getBlockAttributes","getBlockEditingMode","isSectionBlock","unlock","hasContentRoleAttribute","isContentBlock","hasUniqueIcons","useMemo","variationIcons","Set","forEach","add","src","length","variationName","find","attributes","hideVariationsForSections","window","__experimentalContentOnlyPatternInsertion","baseClass","showButtons","ButtonComponent","Component","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-variation-transforms/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItemsChoice,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { chevronDown } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction VariationsButtons( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<fieldset className={ className }>\n\t\t\t<VisuallyHidden as=\"legend\">\n\t\t\t\t{ __( 'Transform to variation' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\ticon={ <BlockIcon icon={ variation.icon } showColors /> }\n\t\t\t\t\tisPressed={ selectedValue === variation.name }\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: Block or block variation name. */\n\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ () => onSelectVariation( variation.name ) }\n\t\t\t\t\taria-label={ variation.title }\n\t\t\t\t\tshowTooltip\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</fieldset>\n\t);\n}\n\nfunction VariationsDropdown( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\tconst selectOptions = variations.map(\n\t\t( { name, title, description } ) => ( {\n\t\t\tvalue: name,\n\t\t\tlabel: title,\n\t\t\tinfo: description,\n\t\t} )\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName={ className }\n\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\ttext={ __( 'Transform to variation' ) }\n\t\t\tpopoverProps={ {\n\t\t\t\tposition: 'bottom center',\n\t\t\t\tclassName: `${ className }__popover`,\n\t\t\t} }\n\t\t\ticon={ chevronDown }\n\t\t\ttoggleProps={ { iconPosition: 'right' } }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\tchoices={ selectOptions }\n\t\t\t\t\t\tvalue={ selectedValue }\n\t\t\t\t\t\tonSelect={ onSelectVariation }\n\t\t\t\t\t/>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction VariationsToggleGroupControl( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<div className={ className }>\n\t\t\t<ToggleGroupControl\n\t\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\t\tvalue={ selectedValue }\n\t\t\t\thideLabelFromVision\n\t\t\t\tonChange={ onSelectVariation }\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t>\n\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIcon icon={ variation.icon } showColors />\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ variation.name }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: Block or block variation name. */\n\t\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ToggleGroupControl>\n\t\t</div>\n\t);\n}\n\nfunction __experimentalBlockVariationTransforms( { blockClientId } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { activeBlockVariation, variations, isContentOnly, isSection } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\t\tselect( blocksStore );\n\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockName,\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlockEditingMode,\n\t\t\t\t\tisSectionBlock,\n\t\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\t\tconst name = blockClientId && getBlockName( blockClientId );\n\n\t\t\t\tconst { hasContentRoleAttribute } = unlock(\n\t\t\t\t\tselect( blocksStore )\n\t\t\t\t);\n\t\t\t\tconst isContentBlock = hasContentRoleAttribute( name );\n\n\t\t\t\treturn {\n\t\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tgetBlockAttributes( blockClientId )\n\t\t\t\t\t),\n\t\t\t\t\tvariations: name && getBlockVariations( name, 'transform' ),\n\t\t\t\t\tisContentOnly:\n\t\t\t\t\t\tgetBlockEditingMode( blockClientId ) ===\n\t\t\t\t\t\t\t'contentOnly' && ! isContentBlock,\n\t\t\t\t\tisSection: isSectionBlock( blockClientId ),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ blockClientId ]\n\t\t);\n\n\tconst selectedValue = activeBlockVariation?.name;\n\n\t// Check if each variation has a unique icon.\n\tconst hasUniqueIcons = useMemo( () => {\n\t\tconst variationIcons = new Set();\n\t\tif ( ! variations ) {\n\t\t\treturn false;\n\t\t}\n\t\tvariations.forEach( ( variation ) => {\n\t\t\tif ( variation.icon ) {\n\t\t\t\tvariationIcons.add( variation.icon?.src || variation.icon );\n\t\t\t}\n\t\t} );\n\t\treturn variationIcons.size === variations.length;\n\t}, [ variations ] );\n\n\tconst onSelectVariation = ( variationName ) => {\n\t\tupdateBlockAttributes( blockClientId, {\n\t\t\t...variations.find( ( { name } ) => name === variationName )\n\t\t\t\t.attributes,\n\t\t} );\n\t};\n\n\tconst hideVariationsForSections =\n\t\twindow?.__experimentalContentOnlyPatternInsertion && isSection;\n\n\tif ( ! variations?.length || isContentOnly || hideVariationsForSections ) {\n\t\treturn null;\n\t}\n\n\tconst baseClass = 'block-editor-block-variation-transforms';\n\n\t// Show buttons if there are more than 5 variations because the ToggleGroupControl does not wrap\n\tconst showButtons = variations.length > 5;\n\n\tconst ButtonComponent = showButtons\n\t\t? VariationsButtons\n\t\t: VariationsToggleGroupControl;\n\n\tconst Component = hasUniqueIcons ? ButtonComponent : VariationsDropdown;\n\n\treturn (\n\t\t<Component\n\t\t\tclassName={ baseClass }\n\t\t\tonSelectVariation={ onSelectVariation }\n\t\t\tselectedValue={ selectedValue }\n\t\t\tvariations={ variations }\n\t\t/>\n\t);\n}\n\nexport default __experimentalBlockVariationTransforms;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_blocks","require","_i18n","_components","_data","_element","_icons","_blockIcon","_interopRequireDefault","_store","_lockUnlock","_jsxRuntime","VariationsButtons","className","onSelectVariation","selectedValue","variations","jsxs","children","jsx","VisuallyHidden","as","__","map","variation","Button","__next40pxDefaultSize","size","icon","default","showColors","isPressed","name","label","title","sprintf","onClick","showTooltip","VariationsDropdown","selectOptions","description","value","info","DropdownMenu","text","popoverProps","position","chevronDown","toggleProps","iconPosition","MenuGroup","MenuItemsChoice","choices","onSelect","VariationsToggleGroupControl","__experimentalToggleGroupControl","hideLabelFromVision","onChange","__nextHasNoMarginBottom","__experimentalToggleGroupControlOptionIcon","__experimentalBlockVariationTransforms","blockClientId","updateBlockAttributes","useDispatch","blockEditorStore","activeBlockVariation","isContentOnly","isSection","useSelect","select","getActiveBlockVariation","getBlockVariations","blocksStore","getBlockName","getBlockAttributes","getBlockEditingMode","isSectionBlock","unlock","hasContentRoleAttribute","isContentBlock","hasUniqueIcons","useMemo","variationIcons","Set","forEach","add","src","length","variationName","find","attributes","hideVariationsForSections","window","__experimentalContentOnlyPatternInsertion","baseClass","showButtons","ButtonComponent","Component","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-variation-transforms/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItemsChoice,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { chevronDown } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction VariationsButtons( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<fieldset className={ className }>\n\t\t\t<VisuallyHidden as=\"legend\">\n\t\t\t\t{ __( 'Transform to variation' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\ticon={ <BlockIcon icon={ variation.icon } showColors /> }\n\t\t\t\t\tisPressed={ selectedValue === variation.name }\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: Block or block variation name. */\n\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ () => onSelectVariation( variation.name ) }\n\t\t\t\t\taria-label={ variation.title }\n\t\t\t\t\tshowTooltip\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</fieldset>\n\t);\n}\n\nfunction VariationsDropdown( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\tconst selectOptions = variations.map(\n\t\t( { name, title, description } ) => ( {\n\t\t\tvalue: name,\n\t\t\tlabel: title,\n\t\t\tinfo: description,\n\t\t} )\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName={ className }\n\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\ttext={ __( 'Transform to variation' ) }\n\t\t\tpopoverProps={ {\n\t\t\t\tposition: 'bottom center',\n\t\t\t\tclassName: `${ className }__popover`,\n\t\t\t} }\n\t\t\ticon={ chevronDown }\n\t\t\ttoggleProps={ { iconPosition: 'right' } }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\tchoices={ selectOptions }\n\t\t\t\t\t\tvalue={ selectedValue }\n\t\t\t\t\t\tonSelect={ onSelectVariation }\n\t\t\t\t\t/>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction VariationsToggleGroupControl( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<div className={ className }>\n\t\t\t<ToggleGroupControl\n\t\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\t\tvalue={ selectedValue }\n\t\t\t\thideLabelFromVision\n\t\t\t\tonChange={ onSelectVariation }\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t>\n\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIcon icon={ variation.icon } showColors />\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ variation.name }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: Block or block variation name. */\n\t\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ToggleGroupControl>\n\t\t</div>\n\t);\n}\n\nfunction __experimentalBlockVariationTransforms( { blockClientId } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { activeBlockVariation, variations, isContentOnly, isSection } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\t\tselect( blocksStore );\n\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockName,\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlockEditingMode,\n\t\t\t\t\tisSectionBlock,\n\t\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\t\tconst name = blockClientId && getBlockName( blockClientId );\n\n\t\t\t\tconst { hasContentRoleAttribute } = unlock(\n\t\t\t\t\tselect( blocksStore )\n\t\t\t\t);\n\t\t\t\tconst isContentBlock = hasContentRoleAttribute( name );\n\n\t\t\t\treturn {\n\t\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tgetBlockAttributes( blockClientId ),\n\t\t\t\t\t\t'transform'\n\t\t\t\t\t),\n\t\t\t\t\tvariations: name && getBlockVariations( name, 'transform' ),\n\t\t\t\t\tisContentOnly:\n\t\t\t\t\t\tgetBlockEditingMode( blockClientId ) ===\n\t\t\t\t\t\t\t'contentOnly' && ! isContentBlock,\n\t\t\t\t\tisSection: isSectionBlock( blockClientId ),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ blockClientId ]\n\t\t);\n\n\tconst selectedValue = activeBlockVariation?.name;\n\n\t// Check if each variation has a unique icon.\n\tconst hasUniqueIcons = useMemo( () => {\n\t\tconst variationIcons = new Set();\n\t\tif ( ! variations ) {\n\t\t\treturn false;\n\t\t}\n\t\tvariations.forEach( ( variation ) => {\n\t\t\tif ( variation.icon ) {\n\t\t\t\tvariationIcons.add( variation.icon?.src || variation.icon );\n\t\t\t}\n\t\t} );\n\t\treturn variationIcons.size === variations.length;\n\t}, [ variations ] );\n\n\tconst onSelectVariation = ( variationName ) => {\n\t\tupdateBlockAttributes( blockClientId, {\n\t\t\t...variations.find( ( { name } ) => name === variationName )\n\t\t\t\t.attributes,\n\t\t} );\n\t};\n\n\tconst hideVariationsForSections =\n\t\twindow?.__experimentalContentOnlyPatternInsertion && isSection;\n\n\tif ( ! variations?.length || isContentOnly || hideVariationsForSections ) {\n\t\treturn null;\n\t}\n\n\tconst baseClass = 'block-editor-block-variation-transforms';\n\n\t// Show buttons if there are more than 5 variations because the ToggleGroupControl does not wrap\n\tconst showButtons = variations.length > 5;\n\n\tconst ButtonComponent = showButtons\n\t\t? VariationsButtons\n\t\t: VariationsToggleGroupControl;\n\n\tconst Component = hasUniqueIcons ? ButtonComponent : VariationsDropdown;\n\n\treturn (\n\t\t<Component\n\t\t\tclassName={ baseClass }\n\t\t\tonSelectVariation={ onSelectVariation }\n\t\t\tselectedValue={ selectedValue }\n\t\t\tvariations={ variations }\n\t\t/>\n\t);\n}\n\nexport default __experimentalBlockVariationTransforms;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","mode","inputArray","arr","sort","a","b","filter","v","length","shift","getAllUnit","selectedUnits","flat","cornerUnits","Object","values","Boolean","getAllValue","parsedQuantitiesAndUnits","map","value","parseQuantityAndUnitFromRawValue","allValues","_value$","allUnits","every","unit","allValue","undefined","hasMixedValues","cornerValues","firstValue","allSame","hasDefinedValues","filteredValues","isValuePreset","includes","getPresetSlug","slug","match","getSliderValueFromPreset","presetValue","presets","parseFloat","sliderValue","findIndex","size","String","NaN","getCustomValueFromPreset","radiusSize","find","getPresetValueFromControlValue","controlValue","controlType","parseInt","getPresetValueFromCustomValue","spacingMatch","convertPresetsToCustomValues","converted","keys","forEach","key","customValue"],"sources":["@wordpress/block-editor/src/components/border-radius-control/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue } from '@wordpress/components';\n\n/**\n * Gets the (non-undefined) item with the highest occurrence within an array\n * Based in part on: https://stackoverflow.com/a/20762713\n *\n * Undefined values are always sorted to the end by `sort`, so this function\n * returns the first element, to always prioritize real values over undefined\n * values.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#description\n *\n * @param {Array<any>} inputArray Array of items to check.\n * @return {any} The item with the most occurrences.\n */\nexport function mode( inputArray ) {\n\tconst arr = [ ...inputArray ];\n\treturn arr\n\t\t.sort(\n\t\t\t( a, b ) =>\n\t\t\t\tinputArray.filter( ( v ) => v === b ).length -\n\t\t\t\tinputArray.filter( ( v ) => v === a ).length\n\t\t)\n\t\t.shift();\n}\n\n/**\n * Returns the most common CSS unit from the current CSS unit selections.\n *\n * - If a single flat border radius is set, its unit will be used\n * - If individual corner selections, the most common of those will be used\n * - Failing any unit selections a default of 'px' is returned.\n *\n * @param {Object} selectedUnits Unit selections for flat radius & each corner.\n * @return {string} Most common CSS unit from current selections. Default: `px`.\n */\nexport function getAllUnit( selectedUnits = {} ) {\n\tconst { flat, ...cornerUnits } = selectedUnits;\n\treturn (\n\t\tflat || mode( Object.values( cornerUnits ).filter( Boolean ) ) || 'px'\n\t);\n}\n\n/**\n * Gets the 'all' input value and unit from values data.\n *\n * @param {Object|string} values Radius values.\n * @return {string} A value + unit for the 'all' input.\n */\nexport function getAllValue( values = {} ) {\n\t/**\n\t * Border radius support was originally a single pixel value.\n\t *\n\t * To maintain backwards compatibility treat this case as the all value.\n\t */\n\tif ( typeof values === 'string' ) {\n\t\treturn values;\n\t}\n\n\tconst parsedQuantitiesAndUnits = Object.values( values ).map( ( value ) =>\n\t\tparseQuantityAndUnitFromRawValue( value )\n\t);\n\n\tconst allValues = parsedQuantitiesAndUnits.map(\n\t\t( value ) => value[ 0 ] ?? ''\n\t);\n\tconst allUnits = parsedQuantitiesAndUnits.map( ( value ) => value[ 1 ] );\n\n\tconst value = allValues.every( ( v ) => v === allValues[ 0 ] )\n\t\t? allValues[ 0 ]\n\t\t: '';\n\tconst unit = mode( allUnits );\n\n\tconst allValue =\n\t\tvalue === 0 || value ? `${ value }${ unit || '' }` : undefined;\n\n\treturn allValue;\n}\n\n/**\n * Checks to determine if values are mixed.\n *\n * @param {Object} values Radius values.\n * @return {boolean} Whether values are mixed.\n */\nexport function hasMixedValues( values = {} ) {\n\tif ( typeof values === 'string' ) {\n\t\treturn false;\n\t}\n\n\tif ( ! values || typeof values !== 'object' ) {\n\t\treturn false;\n\t}\n\n\tconst cornerValues = Object.values( values );\n\n\tif ( cornerValues.length === 0 ) {\n\t\treturn false;\n\t}\n\n\tconst firstValue = cornerValues[ 0 ];\n\n\t// Check if all values are exactly the same (including undefined)\n\tconst allSame = cornerValues.every( ( value ) => value === firstValue );\n\n\treturn ! allSame;\n}\n\n/**\n * Checks to determine if values are defined.\n *\n * @param {Object} values Radius values.\n * @return {boolean} Whether values are mixed.\n */\nexport function hasDefinedValues( values ) {\n\tif ( ! values ) {\n\t\treturn false;\n\t}\n\n\t// A string value represents a shorthand value.\n\tif ( typeof values === 'string' ) {\n\t\treturn true;\n\t}\n\n\t// An object represents longhand border radius values, if any are set\n\t// flag values as being defined.\n\tconst filteredValues = Object.values( values ).filter( ( value ) => {\n\t\treturn !! value || value === 0;\n\t} );\n\n\treturn !! filteredValues.length;\n}\n\n/**\n * Checks is given value is a radius preset.\n *\n * @param {string} value Value to check\n *\n * @return {boolean} Return true if value is string in format var:preset|border-radius|.\n */\nexport function isValuePreset( value ) {\n\tif ( ! value?.includes ) {\n\t\treturn false;\n\t}\n\treturn value === '0' || value.includes( 'var:preset|border-radius|' );\n}\n\n/**\n * Returns the slug section of the given preset string.\n *\n * @param {string} value Value to extract slug from.\n *\n * @return {string|undefined} The int value of the slug from given preset.\n */\nexport function getPresetSlug( value ) {\n\tif ( ! value ) {\n\t\treturn;\n\t}\n\n\tif ( value === '0' || value === 'default' ) {\n\t\treturn value;\n\t}\n\n\tconst slug = value.match( /var:preset\\|border-radius\\|(.+)/ );\n\n\treturn slug ? slug[ 1 ] : undefined;\n}\n\n/**\n * Converts radius preset value into a Range component value .\n *\n * @param {string} presetValue Value to convert to Range value.\n * @param {Array} presets Array of current radius preset value objects.\n *\n * @return {number} The int value for use in Range control.\n */\nexport function getSliderValueFromPreset( presetValue, presets ) {\n\tif ( presetValue === undefined ) {\n\t\treturn 0;\n\t}\n\tconst slug =\n\t\tparseFloat( presetValue, 10 ) === 0\n\t\t\t? '0'\n\t\t\t: getPresetSlug( presetValue );\n\tconst sliderValue = presets.findIndex( ( size ) => {\n\t\treturn String( size.slug ) === slug;\n\t} );\n\n\t// Returning NaN rather than undefined as undefined makes range control thumb sit in center\n\treturn sliderValue !== -1 ? sliderValue : NaN;\n}\n\n/**\n * Converts a preset into a custom value.\n *\n * @param {string} value Value to convert\n * @param {Array} presets Array of the current radius preset objects\n *\n * @return {string} Mapping of the radius preset to its equivalent custom value.\n */\nexport function getCustomValueFromPreset( value, presets ) {\n\tif ( ! isValuePreset( value ) ) {\n\t\treturn value;\n\t}\n\n\tconst slug = parseFloat( value, 10 ) === 0 ? '0' : getPresetSlug( value );\n\tconst radiusSize = presets.find( ( size ) => String( size.slug ) === slug );\n\n\treturn radiusSize?.size;\n}\n\n/**\n * Converts a control value into a preset value.\n *\n * @param {number} controlValue to convert to preset value.\n * @param {string} controlType Type of control\n * @param {Array} presets Array of current radius preset value objects.\n *\n * @return {string} The custom value for use in Range control.\n */\nexport function getPresetValueFromControlValue(\n\tcontrolValue,\n\tcontrolType,\n\tpresets\n) {\n\tconst size = parseInt( controlValue, 10 );\n\tif ( controlType === 'selectList' ) {\n\t\tif ( size === 0 ) {\n\t\t\treturn undefined;\n\t\t}\n\t} else if ( size === 0 ) {\n\t\treturn '0';\n\t}\n\treturn `var:preset|border-radius|${ presets[ controlValue ]?.slug }`;\n}\n\n/**\n * Converts a custom value to preset value if one can be found.\n *\n * Returns value as-is if no match is found.\n *\n * @param {string} value Value to convert\n * @param {Array} presets Array of the current border radius preset objects\n *\n * @return {string} The preset value if it can be found.\n */\nexport function getPresetValueFromCustomValue( value, presets ) {\n\t// Return value as-is if it is undefined or is already a preset, or '0';\n\tif ( ! value || isValuePreset( value ) || value === '0' ) {\n\t\treturn value;\n\t}\n\n\tconst spacingMatch = presets.find(\n\t\t( size ) => String( size.size ) === String( value )\n\t);\n\n\tif ( spacingMatch?.slug ) {\n\t\treturn `var:preset|border-radius|${ spacingMatch.slug }`;\n\t}\n\n\treturn value;\n}\n\n/**\n * Converts all preset values in a values object to their custom equivalents.\n *\n * @param {Object} values Values object to convert\n * @param {Array} presets Array of current border radius preset objects\n *\n * @return {Object} Values with presets converted to custom values\n */\nexport function convertPresetsToCustomValues( values, presets ) {\n\tif ( ! values || typeof values !== 'object' ) {\n\t\treturn values;\n\t}\n\n\tconst converted = {};\n\tObject.keys( values ).forEach( ( key ) => {\n\t\tconst value = values[ key ];\n\t\tif ( isValuePreset( value ) ) {\n\t\t\tconst customValue = getCustomValueFromPreset( value, presets );\n\t\t\tconverted[ key ] = customValue !== undefined ? customValue : value;\n\t\t} else {\n\t\t\tconverted[ key ] = value;\n\t\t}\n\t} );\n\n\treturn converted;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","mode","inputArray","arr","sort","a","b","filter","v","length","shift","getAllUnit","selectedUnits","flat","cornerUnits","Object","values","Boolean","getAllValue","parsedQuantitiesAndUnits","map","value","parseQuantityAndUnitFromRawValue","allValues","_value$","allUnits","every","unit","allValue","undefined","hasMixedValues","cornerValues","firstValue","allSame","hasDefinedValues","filteredValues","isValuePreset","includes","getPresetSlug","slug","match","getSliderValueFromPreset","presetValue","presets","parseFloat","sliderValue","findIndex","size","String","NaN","getCustomValueFromPreset","radiusSize","find","getPresetValueFromControlValue","controlValue","controlType","parseInt","getPresetValueFromCustomValue","spacingMatch","convertPresetsToCustomValues","converted","keys","forEach","key","customValue"],"sources":["@wordpress/block-editor/src/components/border-radius-control/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue } from '@wordpress/components';\n\n/**\n * Gets the (non-undefined) item with the highest occurrence within an array\n * Based in part on: https://stackoverflow.com/a/20762713\n *\n * Undefined values are always sorted to the end by `sort`, so this function\n * returns the first element, to always prioritize real values over undefined\n * values.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#description\n *\n * @param {Array<any>} inputArray Array of items to check.\n * @return {any} The item with the most occurrences.\n */\nexport function mode( inputArray ) {\n\tconst arr = [ ...inputArray ];\n\treturn arr\n\t\t.sort(\n\t\t\t( a, b ) =>\n\t\t\t\tinputArray.filter( ( v ) => v === b ).length -\n\t\t\t\tinputArray.filter( ( v ) => v === a ).length\n\t\t)\n\t\t.shift();\n}\n\n/**\n * Returns the most common CSS unit from the current CSS unit selections.\n *\n * - If a single flat border radius is set, its unit will be used\n * - If individual corner selections, the most common of those will be used\n * - Failing any unit selections a default of 'px' is returned.\n *\n * @param {Object} selectedUnits Unit selections for flat radius & each corner.\n * @return {string} Most common CSS unit from current selections. Default: `px`.\n */\nexport function getAllUnit( selectedUnits = {} ) {\n\tconst { flat, ...cornerUnits } = selectedUnits;\n\treturn (\n\t\tflat || mode( Object.values( cornerUnits ).filter( Boolean ) ) || 'px'\n\t);\n}\n\n/**\n * Gets the 'all' input value and unit from values data.\n *\n * @param {Object|string} values Radius values.\n * @return {string} A value + unit for the 'all' input.\n */\nexport function getAllValue( values = {} ) {\n\t/**\n\t * Border radius support was originally a single pixel value.\n\t *\n\t * To maintain backwards compatibility treat this case as the all value.\n\t */\n\tif ( typeof values === 'string' ) {\n\t\treturn values;\n\t}\n\n\tconst parsedQuantitiesAndUnits = Object.values( values ).map( ( value ) =>\n\t\tparseQuantityAndUnitFromRawValue( value )\n\t);\n\n\tconst allValues = parsedQuantitiesAndUnits.map(\n\t\t( value ) => value[ 0 ] ?? ''\n\t);\n\tconst allUnits = parsedQuantitiesAndUnits.map( ( value ) => value[ 1 ] );\n\n\tconst value = allValues.every( ( v ) => v === allValues[ 0 ] )\n\t\t? allValues[ 0 ]\n\t\t: '';\n\tconst unit = mode( allUnits );\n\n\tconst allValue =\n\t\tvalue === 0 || value ? `${ value }${ unit || '' }` : undefined;\n\n\treturn allValue;\n}\n\n/**\n * Checks to determine if values are mixed.\n *\n * @param {Object} values Radius values.\n * @return {boolean} Whether values are mixed.\n */\nexport function hasMixedValues( values = {} ) {\n\tif ( typeof values === 'string' ) {\n\t\treturn false;\n\t}\n\n\tif ( ! values || typeof values !== 'object' ) {\n\t\treturn false;\n\t}\n\n\tconst cornerValues = Object.values( values );\n\n\tif ( cornerValues.length === 0 ) {\n\t\treturn false;\n\t}\n\n\tconst firstValue = cornerValues[ 0 ];\n\n\t// Check if all values are exactly the same (including undefined)\n\tconst allSame = cornerValues.every( ( value ) => value === firstValue );\n\n\treturn ! allSame;\n}\n\n/**\n * Checks to determine if values are defined.\n *\n * @param {Object} values Radius values.\n * @return {boolean} Whether values are mixed.\n */\nexport function hasDefinedValues( values ) {\n\tif ( ! values ) {\n\t\treturn false;\n\t}\n\n\t// A string value represents a shorthand value.\n\tif ( typeof values === 'string' ) {\n\t\treturn true;\n\t}\n\n\t// An object represents longhand border radius values, if any are set\n\t// flag values as being defined.\n\tconst filteredValues = Object.values( values ).filter( ( value ) => {\n\t\treturn !! value || value === 0;\n\t} );\n\n\treturn !! filteredValues.length;\n}\n\n/**\n * Checks is given value is a radius preset.\n *\n * @param {string} value Value to check\n *\n * @return {boolean} Return true if value is string in format var:preset|border-radius|.\n */\nexport function isValuePreset( value ) {\n\tif ( ! value?.includes ) {\n\t\treturn false;\n\t}\n\treturn value === '0' || value.includes( 'var:preset|border-radius|' );\n}\n\n/**\n * Returns the slug section of the given preset string.\n *\n * @param {string} value Value to extract slug from.\n *\n * @return {string|undefined} The int value of the slug from given preset.\n */\nexport function getPresetSlug( value ) {\n\tif ( ! value ) {\n\t\treturn;\n\t}\n\n\tif ( value === '0' || value === 'default' ) {\n\t\treturn value;\n\t}\n\n\tconst slug = value.match( /var:preset\\|border-radius\\|(.+)/ );\n\n\treturn slug ? slug[ 1 ] : undefined;\n}\n\n/**\n * Converts radius preset value into a Range component value .\n *\n * @param {string} presetValue Value to convert to Range value.\n * @param {Array} presets Array of current radius preset value objects.\n *\n * @return {number} The int value for use in Range control.\n */\nexport function getSliderValueFromPreset( presetValue, presets ) {\n\tif ( presetValue === undefined ) {\n\t\treturn 0;\n\t}\n\tconst slug =\n\t\tparseFloat( presetValue, 10 ) === 0\n\t\t\t? '0'\n\t\t\t: getPresetSlug( presetValue );\n\tconst sliderValue = presets.findIndex( ( size ) => {\n\t\treturn String( size.slug ) === slug;\n\t} );\n\n\t// Returning NaN rather than undefined as undefined makes range control thumb sit in center\n\treturn sliderValue !== -1 ? sliderValue : NaN;\n}\n\n/**\n * Converts a preset into a custom value.\n *\n * @param {string} value Value to convert\n * @param {Array} presets Array of the current radius preset objects\n *\n * @return {string} Mapping of the radius preset to its equivalent custom value.\n */\nexport function getCustomValueFromPreset( value, presets ) {\n\tif ( ! isValuePreset( value ) ) {\n\t\treturn value;\n\t}\n\n\tconst slug = parseFloat( value, 10 ) === 0 ? '0' : getPresetSlug( value );\n\tconst radiusSize = presets.find( ( size ) => String( size.slug ) === slug );\n\n\treturn radiusSize?.size;\n}\n\n/**\n * Converts a control value into a preset value.\n *\n * @param {number} controlValue to convert to preset value.\n * @param {string} controlType Type of control\n * @param {Array} presets Array of current radius preset value objects.\n *\n * @return {string} The custom value for use in Range control.\n */\nexport function getPresetValueFromControlValue(\n\tcontrolValue,\n\tcontrolType,\n\tpresets\n) {\n\tconst size = parseInt( controlValue, 10 );\n\tif ( controlType === 'selectList' ) {\n\t\tif ( size === 0 ) {\n\t\t\treturn undefined;\n\t\t}\n\t} else if ( size === 0 ) {\n\t\treturn '0';\n\t}\n\n\treturn `var:preset|border-radius|${ presets[ controlValue ]?.slug }`;\n}\n\n/**\n * Converts a custom value to preset value if one can be found.\n *\n * Returns value as-is if no match is found.\n *\n * @param {string} value Value to convert\n * @param {Array} presets Array of the current border radius preset objects\n *\n * @return {string} The preset value if it can be found.\n */\nexport function getPresetValueFromCustomValue( value, presets ) {\n\t// Return value as-is if it is undefined or is already a preset, or '0';\n\tif ( ! value || isValuePreset( value ) || value === '0' ) {\n\t\treturn value;\n\t}\n\n\tconst spacingMatch = presets.find(\n\t\t( size ) => String( size.size ) === String( value )\n\t);\n\n\tif ( spacingMatch?.slug ) {\n\t\treturn `var:preset|border-radius|${ spacingMatch.slug }`;\n\t}\n\n\treturn value;\n}\n\n/**\n * Converts all preset values in a values object to their custom equivalents.\n *\n * @param {Object} values Values object to convert\n * @param {Array} presets Array of current border radius preset objects\n *\n * @return {Object} Values with presets converted to custom values\n */\nexport function convertPresetsToCustomValues( values, presets ) {\n\tif ( ! values || typeof values !== 'object' ) {\n\t\treturn values;\n\t}\n\n\tconst converted = {};\n\tObject.keys( values ).forEach( ( key ) => {\n\t\tconst value = values[ key ];\n\t\tif ( isValuePreset( value ) ) {\n\t\t\tconst customValue = getCustomValueFromPreset( value, presets );\n\t\t\tconverted[ key ] = customValue !== undefined ? customValue : value;\n\t\t} else {\n\t\t\tconverted[ key ] = value;\n\t\t}\n\t} );\n\n\treturn converted;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -136,15 +136,15 @@ function BorderPanel({
|
|
|
136
136
|
const showBorderRadius = useHasBorderRadiusControl(settings);
|
|
137
137
|
const borderRadiusValues = (0, _element.useMemo)(() => {
|
|
138
138
|
if (typeof border?.radius !== 'object') {
|
|
139
|
-
return
|
|
139
|
+
return border?.radius;
|
|
140
140
|
}
|
|
141
141
|
return {
|
|
142
|
-
topLeft:
|
|
143
|
-
topRight:
|
|
144
|
-
bottomLeft:
|
|
145
|
-
bottomRight:
|
|
142
|
+
topLeft: border?.radius?.topLeft,
|
|
143
|
+
topRight: border?.radius?.topRight,
|
|
144
|
+
bottomLeft: border?.radius?.bottomLeft,
|
|
145
|
+
bottomRight: border?.radius?.bottomRight
|
|
146
146
|
};
|
|
147
|
-
}, [border?.radius
|
|
147
|
+
}, [border?.radius]);
|
|
148
148
|
const setBorderRadius = newBorderRadius => setBorder({
|
|
149
149
|
...border,
|
|
150
150
|
radius: newBorderRadius
|