@wordpress/block-editor 15.3.1-next.836ecdcae.0 → 15.4.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/CHANGELOG.md +2 -0
- package/build/autocompleters/block.js +2 -4
- package/build/autocompleters/block.js.map +1 -1
- 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-list/index.js +3 -1
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-popover/use-popover-scroll.js +11 -2
- package/build/components/block-popover/use-popover-scroll.js.map +1 -1
- package/build/components/block-switcher/index.js +13 -8
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +5 -2
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +10 -0
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +10 -6
- 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/link-control/search-item.js +30 -12
- package/build/components/link-control/search-item.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 +9 -21
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +114 -0
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +16 -30
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +18 -0
- package/build/store/utils.js.map +1 -1
- package/build/utils/block-bindings.js +1 -1
- package/build/utils/block-bindings.js.map +1 -1
- package/build-module/autocompleters/block.js +3 -5
- package/build-module/autocompleters/block.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-list/index.js +3 -1
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-popover/use-popover-scroll.js +11 -2
- package/build-module/components/block-popover/use-popover-scroll.js.map +1 -1
- package/build-module/components/block-switcher/index.js +13 -8
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +5 -2
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +11 -1
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +10 -6
- 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/link-control/search-item.js +30 -12
- package/build-module/components/link-control/search-item.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 +9 -21
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +114 -0
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +16 -30
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +17 -0
- package/build-module/store/utils.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 -5
- package/build-style/style.css +9 -5
- package/package.json +34 -34
- package/src/autocompleters/block.js +6 -11
- 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-list/index.js +7 -1
- package/src/components/block-popover/use-popover-scroll.js +10 -2
- package/src/components/block-switcher/index.js +13 -4
- package/src/components/block-toolbar/index.js +11 -5
- package/src/components/block-toolbar/style.scss +3 -5
- package/src/components/block-tools/insertion-point.js +19 -1
- package/src/components/block-variation-transforms/index.js +39 -27
- 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/link-control/search-item.js +31 -12
- package/src/components/link-control/style.scss +0 -1
- package/src/components/link-control/test/index.js +14 -2
- 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 +12 -24
- package/src/store/reducer.js +188 -0
- package/src/store/selectors.js +38 -59
- package/src/store/test/reducer.js +398 -0
- package/src/store/test/selectors.js +65 -192
- package/src/store/utils.js +21 -0
- package/src/utils/block-bindings.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -98,13 +98,11 @@ function createBlockCompleter() {
|
|
|
98
98
|
initialAttributes,
|
|
99
99
|
innerBlocks,
|
|
100
100
|
syncStatus,
|
|
101
|
-
|
|
101
|
+
blocks
|
|
102
102
|
} = inserterItem;
|
|
103
103
|
return {
|
|
104
104
|
action: 'replace',
|
|
105
|
-
value: syncStatus === 'unsynced' ? (0, _blocks.
|
|
106
|
-
__unstableSkipMigrationLogs: true
|
|
107
|
-
}) : (0, _blocks.createBlock)(name, initialAttributes, (0, _blocks.createBlocksFromInnerBlocksTemplate)(innerBlocks))
|
|
105
|
+
value: syncStatus === 'unsynced' ? (blocks !== null && blocks !== void 0 ? blocks : []).map(block => (0, _blocks.cloneBlock)(block)) : (0, _blocks.createBlock)(name, initialAttributes, (0, _blocks.createBlocksFromInnerBlocksTemplate)(innerBlocks))
|
|
108
106
|
};
|
|
109
107
|
}
|
|
110
108
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_blocks","_element","_searchItems","_useBlockTypesState","_interopRequireDefault","_blockIcon","_store","_sorting","_orderInserterBlockItems","_jsxRuntime","noop","SHOWN_BLOCK_TYPES","createBlockCompleter","name","className","triggerPrefix","useItems","filterValue","rootClientId","selectedBlockId","prioritizedBlocks","useSelect","select","getSelectedBlockClientId","getBlock","getBlockListSettings","getBlockRootClientId","blockEditorStore","getActiveBlockVariation","blocksStore","selectedBlockClientId","blockName","attributes","activeBlockVariation","_rootClientId","prioritizedInserterBlocks","items","categories","collections","useBlockTypesState","filteredItems","useMemo","initialFilteredItems","trim","searchBlockItems","orderInserterBlockItems","orderBy","filter","item","id","slice","options","map","blockItem","title","icon","isDisabled","key","value","label","jsxs","Fragment","children","jsx","default","showColors","allowContext","before","after","test","getOptionCompletion","inserterItem","initialAttributes","innerBlocks","syncStatus","
|
|
1
|
+
{"version":3,"names":["_data","require","_blocks","_element","_searchItems","_useBlockTypesState","_interopRequireDefault","_blockIcon","_store","_sorting","_orderInserterBlockItems","_jsxRuntime","noop","SHOWN_BLOCK_TYPES","createBlockCompleter","name","className","triggerPrefix","useItems","filterValue","rootClientId","selectedBlockId","prioritizedBlocks","useSelect","select","getSelectedBlockClientId","getBlock","getBlockListSettings","getBlockRootClientId","blockEditorStore","getActiveBlockVariation","blocksStore","selectedBlockClientId","blockName","attributes","activeBlockVariation","_rootClientId","prioritizedInserterBlocks","items","categories","collections","useBlockTypesState","filteredItems","useMemo","initialFilteredItems","trim","searchBlockItems","orderInserterBlockItems","orderBy","filter","item","id","slice","options","map","blockItem","title","icon","isDisabled","key","value","label","jsxs","Fragment","children","jsx","default","showColors","allowContext","before","after","test","getOptionCompletion","inserterItem","initialAttributes","innerBlocks","syncStatus","blocks","action","block","cloneBlock","createBlock","createBlocksFromInnerBlocksTemplate","_default","exports"],"sources":["@wordpress/block-editor/src/autocompleters/block.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tcloneBlock,\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { searchBlockItems } from '../components/inserter/search-items';\nimport useBlockTypesState from '../components/inserter/hooks/use-block-types-state';\nimport BlockIcon from '../components/block-icon';\nimport { store as blockEditorStore } from '../store';\nimport { orderBy } from '../utils/sorting';\nimport { orderInserterBlockItems } from '../utils/order-inserter-block-items';\n\nconst noop = () => {};\nconst SHOWN_BLOCK_TYPES = 9;\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {Object} A blocks completer.\n */\nfunction createBlockCompleter() {\n\treturn {\n\t\tname: 'blocks',\n\t\tclassName: 'block-editor-autocompleters__block',\n\t\ttriggerPrefix: '/',\n\n\t\tuseItems( filterValue ) {\n\t\t\tconst { rootClientId, selectedBlockId, prioritizedBlocks } =\n\t\t\t\tuseSelect( ( select ) => {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\t\t\tgetBlock,\n\t\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\t\t\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\t\t\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\t\t\tconst { name: blockName, attributes } = getBlock(\n\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t);\n\t\t\t\t\tconst activeBlockVariation = getActiveBlockVariation(\n\t\t\t\t\t\tblockName,\n\t\t\t\t\t\tattributes\n\t\t\t\t\t);\n\t\t\t\t\tconst _rootClientId = getBlockRootClientId(\n\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tselectedBlockId: activeBlockVariation\n\t\t\t\t\t\t\t? `${ blockName }/${ activeBlockVariation.name }`\n\t\t\t\t\t\t\t: blockName,\n\t\t\t\t\t\trootClientId: _rootClientId,\n\t\t\t\t\t\tprioritizedBlocks:\n\t\t\t\t\t\t\tgetBlockListSettings( _rootClientId )\n\t\t\t\t\t\t\t\t?.prioritizedInserterBlocks,\n\t\t\t\t\t};\n\t\t\t\t}, [] );\n\t\t\tconst [ items, categories, collections ] = useBlockTypesState(\n\t\t\t\trootClientId,\n\t\t\t\tnoop,\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\tconst filteredItems = useMemo( () => {\n\t\t\t\tconst initialFilteredItems = !! filterValue.trim()\n\t\t\t\t\t? searchBlockItems(\n\t\t\t\t\t\t\titems,\n\t\t\t\t\t\t\tcategories,\n\t\t\t\t\t\t\tcollections,\n\t\t\t\t\t\t\tfilterValue\n\t\t\t\t\t )\n\t\t\t\t\t: orderInserterBlockItems(\n\t\t\t\t\t\t\torderBy( items, 'frecency', 'desc' ),\n\t\t\t\t\t\t\tprioritizedBlocks\n\t\t\t\t\t );\n\n\t\t\t\treturn initialFilteredItems\n\t\t\t\t\t.filter( ( item ) => item.id !== selectedBlockId )\n\t\t\t\t\t.slice( 0, SHOWN_BLOCK_TYPES );\n\t\t\t}, [\n\t\t\t\tfilterValue,\n\t\t\t\tselectedBlockId,\n\t\t\t\titems,\n\t\t\t\tcategories,\n\t\t\t\tcollections,\n\t\t\t\tprioritizedBlocks,\n\t\t\t] );\n\n\t\t\tconst options = useMemo(\n\t\t\t\t() =>\n\t\t\t\t\tfilteredItems.map( ( blockItem ) => {\n\t\t\t\t\t\tconst { title, icon, isDisabled } = blockItem;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tkey: `block-${ blockItem.id }`,\n\t\t\t\t\t\t\tvalue: blockItem,\n\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\tkey=\"icon\"\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tisDisabled,\n\t\t\t\t\t\t};\n\t\t\t\t\t} ),\n\t\t\t\t[ filteredItems ]\n\t\t\t);\n\n\t\t\treturn [ options ];\n\t\t},\n\t\tallowContext( before, after ) {\n\t\t\treturn ! ( /\\S/.test( before ) || /\\S/.test( after ) );\n\t\t},\n\t\tgetOptionCompletion( inserterItem ) {\n\t\t\tconst { name, initialAttributes, innerBlocks, syncStatus, blocks } =\n\t\t\t\tinserterItem;\n\n\t\t\treturn {\n\t\t\t\taction: 'replace',\n\t\t\t\tvalue:\n\t\t\t\t\tsyncStatus === 'unsynced'\n\t\t\t\t\t\t? ( blocks ?? [] ).map( ( block ) =>\n\t\t\t\t\t\t\t\tcloneBlock( block )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: createBlock(\n\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\tinitialAttributes,\n\t\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ),\n\t\t\t};\n\t\t},\n\t};\n}\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {Object} A blocks completer.\n */\nexport default createBlockCompleter();\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -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":[]}
|
|
@@ -166,6 +166,8 @@ function Items({
|
|
|
166
166
|
getTemplateLock,
|
|
167
167
|
getBlockEditingMode,
|
|
168
168
|
isSectionBlock,
|
|
169
|
+
isContainerInsertableToInWriteMode,
|
|
170
|
+
getBlockName,
|
|
169
171
|
isZoomOut: _isZoomOut,
|
|
170
172
|
canInsertBlockType
|
|
171
173
|
} = (0, _lockUnlock.unlock)(select(_store.store));
|
|
@@ -186,7 +188,7 @@ function Items({
|
|
|
186
188
|
selectedBlocks: selectedBlockClientIds,
|
|
187
189
|
visibleBlocks: __unstableGetVisibleBlocks(),
|
|
188
190
|
isZoomOut: _isZoomOut(),
|
|
189
|
-
shouldRenderAppender: !isSectionBlock(rootClientId) && getBlockEditingMode(rootClientId) !== 'disabled' && !getTemplateLock(rootClientId) && hasAppender && !_isZoomOut() && (hasCustomAppender || hasSelectedRoot || showRootAppender)
|
|
191
|
+
shouldRenderAppender: (!isSectionBlock(rootClientId) || isContainerInsertableToInWriteMode(getBlockName(selectedBlockClientId), rootClientId)) && getBlockEditingMode(rootClientId) !== 'disabled' && !getTemplateLock(rootClientId) && hasAppender && !_isZoomOut() && (hasCustomAppender || hasSelectedRoot || showRootAppender)
|
|
190
192
|
};
|
|
191
193
|
}, [rootClientId, hasAppender, hasCustomAppender]);
|
|
192
194
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_layout.LayoutProvider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_compose","_element","_blocks","_block","_blockListAppender","_useInBetweenInserter","_store","_layout","_blockSelectionClearer","_innerBlocks","_context","_observeTyping","_zoomOutSeparator","_lockUnlock","_jsxRuntime","IntersectionObserver","exports","createContext","displayName","pendingBlockVisibilityUpdatesPerRegistry","WeakMap","Root","className","settings","isOutlineMode","isFocusMode","temporarilyEditingAsBlocks","useSelect","select","getSettings","getTemporarilyEditingAsBlocks","isTyping","unlock","blockEditorStore","outlineMode","focusMode","registry","useRegistry","setBlockVisibility","useDispatch","delayedBlockVisibilityUpdates","useDebounce","useCallback","updates","get","forEach","id","isIntersecting","trailing","intersectionObserver","useMemo","Observer","window","entries","set","entry","clientId","target","getAttribute","push","innerBlocksProps","useInnerBlocksProps","ref","useMergeRefs","useBlockSelectionClearer","useInBetweenInserter","useTypingObserver","clsx","jsxs","Provider","value","children","jsx","StopEditingAsBlocksOnOutsideSelect","stopEditingAsBlocks","isBlockOrDescendantSelected","isBlockSelected","hasSelectedInnerBlock","useEffect","BlockList","BlockEditContextProvider","DEFAULT_BLOCK_EDIT_CONTEXT","EMPTY_ARRAY","EMPTY_SET","Set","Items","placeholder","rootClientId","renderAppender","CustomAppender","__experimentalAppenderTagName","layout","defaultLayout","hasAppender","hasCustomAppender","order","isZoomOut","selectedBlocks","visibleBlocks","shouldRenderAppender","getBlockOrder","getSelectedBlockClientIds","__unstableGetVisibleBlocks","getTemplateLock","getBlockEditingMode","isSectionBlock","_isZoomOut","canInsertBlockType","_order","isPreviewMode","selectedBlockClientIds","selectedBlockClientId","showRootAppender","length","getDefaultBlockName","hasSelectedRoot","LayoutProvider","map","AsyncModeProvider","has","includes","ZoomOutSeparator","position","default","tagName","BlockListItems","props"],"sources":["@wordpress/block-editor/src/components/block-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAsyncModeProvider,\n\tuseSelect,\n\tuseDispatch,\n\tuseRegistry,\n} from '@wordpress/data';\nimport { useMergeRefs, useDebounce } from '@wordpress/compose';\nimport {\n\tcreateContext,\n\tuseMemo,\n\tuseCallback,\n\tuseEffect,\n} from '@wordpress/element';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockListAppender from '../block-list-appender';\nimport { useInBetweenInserter } from './use-in-between-inserter';\nimport { store as blockEditorStore } from '../../store';\nimport { LayoutProvider, defaultLayout } from './layout';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useInnerBlocksProps } from '../inner-blocks';\nimport {\n\tBlockEditContextProvider,\n\tDEFAULT_BLOCK_EDIT_CONTEXT,\n} from '../block-edit/context';\nimport { useTypingObserver } from '../observe-typing';\nimport { ZoomOutSeparator } from './zoom-out-separator';\nimport { unlock } from '../../lock-unlock';\n\nexport const IntersectionObserver = createContext();\nIntersectionObserver.displayName = 'IntersectionObserverContext';\n\nconst pendingBlockVisibilityUpdatesPerRegistry = new WeakMap();\n\nfunction Root( { className, ...settings } ) {\n\tconst { isOutlineMode, isFocusMode, temporarilyEditingAsBlocks } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getSettings, getTemporarilyEditingAsBlocks, isTyping } =\n\t\t\t\tunlock( select( blockEditorStore ) );\n\t\t\tconst { outlineMode, focusMode } = getSettings();\n\t\t\treturn {\n\t\t\t\tisOutlineMode: outlineMode && ! isTyping(),\n\t\t\t\tisFocusMode: focusMode,\n\t\t\t\ttemporarilyEditingAsBlocks: getTemporarilyEditingAsBlocks(),\n\t\t\t};\n\t\t}, [] );\n\tconst registry = useRegistry();\n\tconst { setBlockVisibility } = useDispatch( blockEditorStore );\n\n\tconst delayedBlockVisibilityUpdates = useDebounce(\n\t\tuseCallback( () => {\n\t\t\tconst updates = {};\n\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t.get( registry )\n\t\t\t\t.forEach( ( [ id, isIntersecting ] ) => {\n\t\t\t\t\tupdates[ id ] = isIntersecting;\n\t\t\t\t} );\n\t\t\tsetBlockVisibility( updates );\n\t\t}, [ registry ] ),\n\t\t300,\n\t\t{\n\t\t\ttrailing: true,\n\t\t}\n\t);\n\tconst intersectionObserver = useMemo( () => {\n\t\tconst { IntersectionObserver: Observer } = window;\n\n\t\tif ( ! Observer ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn new Observer( ( entries ) => {\n\t\t\tif ( ! pendingBlockVisibilityUpdatesPerRegistry.get( registry ) ) {\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry.set( registry, [] );\n\t\t\t}\n\t\t\tfor ( const entry of entries ) {\n\t\t\t\tconst clientId = entry.target.getAttribute( 'data-block' );\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t\t.get( registry )\n\t\t\t\t\t.push( [ clientId, entry.isIntersecting ] );\n\t\t\t}\n\t\t\tdelayedBlockVisibilityUpdates();\n\t\t} );\n\t}, [] );\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tref: useMergeRefs( [\n\t\t\t\tuseBlockSelectionClearer(),\n\t\t\t\tuseInBetweenInserter(),\n\t\t\t\tuseTypingObserver(),\n\t\t\t] ),\n\t\t\tclassName: clsx( 'is-root-container', className, {\n\t\t\t\t'is-outline-mode': isOutlineMode,\n\t\t\t\t'is-focus-mode': isFocusMode,\n\t\t\t} ),\n\t\t},\n\t\tsettings\n\t);\n\treturn (\n\t\t<IntersectionObserver.Provider value={ intersectionObserver }>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t\t{ !! temporarilyEditingAsBlocks && (\n\t\t\t\t<StopEditingAsBlocksOnOutsideSelect\n\t\t\t\t\tclientId={ temporarilyEditingAsBlocks }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</IntersectionObserver.Provider>\n\t);\n}\n\nfunction StopEditingAsBlocksOnOutsideSelect( { clientId } ) {\n\tconst { stopEditingAsBlocks } = unlock( useDispatch( blockEditorStore ) );\n\tconst isBlockOrDescendantSelected = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isBlockSelected, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\tisBlockSelected( clientId ) ||\n\t\t\t\thasSelectedInnerBlock( clientId, true )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tuseEffect( () => {\n\t\tif ( ! isBlockOrDescendantSelected ) {\n\t\t\tstopEditingAsBlocks( clientId );\n\t\t}\n\t}, [ isBlockOrDescendantSelected, clientId, stopEditingAsBlocks ] );\n\treturn null;\n}\n\nexport default function BlockList( settings ) {\n\treturn (\n\t\t<BlockEditContextProvider value={ DEFAULT_BLOCK_EDIT_CONTEXT }>\n\t\t\t<Root { ...settings } />\n\t\t</BlockEditContextProvider>\n\t);\n}\n\nconst EMPTY_ARRAY = [];\nconst EMPTY_SET = new Set();\n\nfunction Items( {\n\tplaceholder,\n\trootClientId,\n\trenderAppender: CustomAppender,\n\t__experimentalAppenderTagName,\n\tlayout = defaultLayout,\n} ) {\n\t// Avoid passing CustomAppender to useSelect because it could be a new\n\t// function on every render.\n\tconst hasAppender = CustomAppender !== false;\n\tconst hasCustomAppender = !! CustomAppender;\n\tconst {\n\t\torder,\n\t\tisZoomOut,\n\t\tselectedBlocks,\n\t\tvisibleBlocks,\n\t\tshouldRenderAppender,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetVisibleBlocks,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tisSectionBlock,\n\t\t\t\tisZoomOut: _isZoomOut,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst _order = getBlockOrder( rootClientId );\n\n\t\t\tif ( getSettings().isPreviewMode ) {\n\t\t\t\treturn {\n\t\t\t\t\torder: _order,\n\t\t\t\t\tselectedBlocks: EMPTY_ARRAY,\n\t\t\t\t\tvisibleBlocks: EMPTY_SET,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst showRootAppender =\n\t\t\t\t! rootClientId &&\n\t\t\t\t! selectedBlockClientId &&\n\t\t\t\t( ! _order.length ||\n\t\t\t\t\t! canInsertBlockType(\n\t\t\t\t\t\tgetDefaultBlockName(),\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t) );\n\t\t\tconst hasSelectedRoot = !! (\n\t\t\t\trootClientId &&\n\t\t\t\tselectedBlockClientId &&\n\t\t\t\trootClientId === selectedBlockClientId\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\torder: _order,\n\t\t\t\tselectedBlocks: selectedBlockClientIds,\n\t\t\t\tvisibleBlocks: __unstableGetVisibleBlocks(),\n\t\t\t\tisZoomOut: _isZoomOut(),\n\t\t\t\tshouldRenderAppender:\n\t\t\t\t\t! isSectionBlock( rootClientId ) &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) !== 'disabled' &&\n\t\t\t\t\t! getTemplateLock( rootClientId ) &&\n\t\t\t\t\thasAppender &&\n\t\t\t\t\t! _isZoomOut() &&\n\t\t\t\t\t( hasCustomAppender ||\n\t\t\t\t\t\thasSelectedRoot ||\n\t\t\t\t\t\tshowRootAppender ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId, hasAppender, hasCustomAppender ]\n\t);\n\n\treturn (\n\t\t<LayoutProvider value={ layout }>\n\t\t\t{ order.map( ( clientId ) => (\n\t\t\t\t<AsyncModeProvider\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t// Only provide data asynchronously if the block is\n\t\t\t\t\t\t// not visible and not selected.\n\t\t\t\t\t\t! visibleBlocks.has( clientId ) &&\n\t\t\t\t\t\t! selectedBlocks.includes( clientId )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isZoomOut && (\n\t\t\t\t\t\t<ZoomOutSeparator\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tposition=\"top\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isZoomOut && (\n\t\t\t\t\t\t<ZoomOutSeparator\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tposition=\"bottom\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</AsyncModeProvider>\n\t\t\t) ) }\n\t\t\t{ order.length < 1 && placeholder }\n\t\t\t{ shouldRenderAppender && (\n\t\t\t\t<BlockListAppender\n\t\t\t\t\ttagName={ __experimentalAppenderTagName }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tCustomAppender={ CustomAppender }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</LayoutProvider>\n\t);\n}\n\nexport function BlockListItems( props ) {\n\t// This component needs to always be synchronous as it's the one changing\n\t// the async mode depending on the block selection.\n\treturn (\n\t\t<AsyncModeProvider value={ false }>\n\t\t\t<Items { ...props } />\n\t\t</AsyncModeProvider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_compose","_element","_blocks","_block","_blockListAppender","_useInBetweenInserter","_store","_layout","_blockSelectionClearer","_innerBlocks","_context","_observeTyping","_zoomOutSeparator","_lockUnlock","_jsxRuntime","IntersectionObserver","exports","createContext","displayName","pendingBlockVisibilityUpdatesPerRegistry","WeakMap","Root","className","settings","isOutlineMode","isFocusMode","temporarilyEditingAsBlocks","useSelect","select","getSettings","getTemporarilyEditingAsBlocks","isTyping","unlock","blockEditorStore","outlineMode","focusMode","registry","useRegistry","setBlockVisibility","useDispatch","delayedBlockVisibilityUpdates","useDebounce","useCallback","updates","get","forEach","id","isIntersecting","trailing","intersectionObserver","useMemo","Observer","window","entries","set","entry","clientId","target","getAttribute","push","innerBlocksProps","useInnerBlocksProps","ref","useMergeRefs","useBlockSelectionClearer","useInBetweenInserter","useTypingObserver","clsx","jsxs","Provider","value","children","jsx","StopEditingAsBlocksOnOutsideSelect","stopEditingAsBlocks","isBlockOrDescendantSelected","isBlockSelected","hasSelectedInnerBlock","useEffect","BlockList","BlockEditContextProvider","DEFAULT_BLOCK_EDIT_CONTEXT","EMPTY_ARRAY","EMPTY_SET","Set","Items","placeholder","rootClientId","renderAppender","CustomAppender","__experimentalAppenderTagName","layout","defaultLayout","hasAppender","hasCustomAppender","order","isZoomOut","selectedBlocks","visibleBlocks","shouldRenderAppender","getBlockOrder","getSelectedBlockClientIds","__unstableGetVisibleBlocks","getTemplateLock","getBlockEditingMode","isSectionBlock","isContainerInsertableToInWriteMode","getBlockName","_isZoomOut","canInsertBlockType","_order","isPreviewMode","selectedBlockClientIds","selectedBlockClientId","showRootAppender","length","getDefaultBlockName","hasSelectedRoot","LayoutProvider","map","AsyncModeProvider","has","includes","ZoomOutSeparator","position","default","tagName","BlockListItems","props"],"sources":["@wordpress/block-editor/src/components/block-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAsyncModeProvider,\n\tuseSelect,\n\tuseDispatch,\n\tuseRegistry,\n} from '@wordpress/data';\nimport { useMergeRefs, useDebounce } from '@wordpress/compose';\nimport {\n\tcreateContext,\n\tuseMemo,\n\tuseCallback,\n\tuseEffect,\n} from '@wordpress/element';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockListAppender from '../block-list-appender';\nimport { useInBetweenInserter } from './use-in-between-inserter';\nimport { store as blockEditorStore } from '../../store';\nimport { LayoutProvider, defaultLayout } from './layout';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useInnerBlocksProps } from '../inner-blocks';\nimport {\n\tBlockEditContextProvider,\n\tDEFAULT_BLOCK_EDIT_CONTEXT,\n} from '../block-edit/context';\nimport { useTypingObserver } from '../observe-typing';\nimport { ZoomOutSeparator } from './zoom-out-separator';\nimport { unlock } from '../../lock-unlock';\n\nexport const IntersectionObserver = createContext();\nIntersectionObserver.displayName = 'IntersectionObserverContext';\n\nconst pendingBlockVisibilityUpdatesPerRegistry = new WeakMap();\n\nfunction Root( { className, ...settings } ) {\n\tconst { isOutlineMode, isFocusMode, temporarilyEditingAsBlocks } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getSettings, getTemporarilyEditingAsBlocks, isTyping } =\n\t\t\t\tunlock( select( blockEditorStore ) );\n\t\t\tconst { outlineMode, focusMode } = getSettings();\n\t\t\treturn {\n\t\t\t\tisOutlineMode: outlineMode && ! isTyping(),\n\t\t\t\tisFocusMode: focusMode,\n\t\t\t\ttemporarilyEditingAsBlocks: getTemporarilyEditingAsBlocks(),\n\t\t\t};\n\t\t}, [] );\n\tconst registry = useRegistry();\n\tconst { setBlockVisibility } = useDispatch( blockEditorStore );\n\n\tconst delayedBlockVisibilityUpdates = useDebounce(\n\t\tuseCallback( () => {\n\t\t\tconst updates = {};\n\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t.get( registry )\n\t\t\t\t.forEach( ( [ id, isIntersecting ] ) => {\n\t\t\t\t\tupdates[ id ] = isIntersecting;\n\t\t\t\t} );\n\t\t\tsetBlockVisibility( updates );\n\t\t}, [ registry ] ),\n\t\t300,\n\t\t{\n\t\t\ttrailing: true,\n\t\t}\n\t);\n\tconst intersectionObserver = useMemo( () => {\n\t\tconst { IntersectionObserver: Observer } = window;\n\n\t\tif ( ! Observer ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn new Observer( ( entries ) => {\n\t\t\tif ( ! pendingBlockVisibilityUpdatesPerRegistry.get( registry ) ) {\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry.set( registry, [] );\n\t\t\t}\n\t\t\tfor ( const entry of entries ) {\n\t\t\t\tconst clientId = entry.target.getAttribute( 'data-block' );\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t\t.get( registry )\n\t\t\t\t\t.push( [ clientId, entry.isIntersecting ] );\n\t\t\t}\n\t\t\tdelayedBlockVisibilityUpdates();\n\t\t} );\n\t}, [] );\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tref: useMergeRefs( [\n\t\t\t\tuseBlockSelectionClearer(),\n\t\t\t\tuseInBetweenInserter(),\n\t\t\t\tuseTypingObserver(),\n\t\t\t] ),\n\t\t\tclassName: clsx( 'is-root-container', className, {\n\t\t\t\t'is-outline-mode': isOutlineMode,\n\t\t\t\t'is-focus-mode': isFocusMode,\n\t\t\t} ),\n\t\t},\n\t\tsettings\n\t);\n\treturn (\n\t\t<IntersectionObserver.Provider value={ intersectionObserver }>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t\t{ !! temporarilyEditingAsBlocks && (\n\t\t\t\t<StopEditingAsBlocksOnOutsideSelect\n\t\t\t\t\tclientId={ temporarilyEditingAsBlocks }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</IntersectionObserver.Provider>\n\t);\n}\n\nfunction StopEditingAsBlocksOnOutsideSelect( { clientId } ) {\n\tconst { stopEditingAsBlocks } = unlock( useDispatch( blockEditorStore ) );\n\tconst isBlockOrDescendantSelected = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isBlockSelected, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\tisBlockSelected( clientId ) ||\n\t\t\t\thasSelectedInnerBlock( clientId, true )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tuseEffect( () => {\n\t\tif ( ! isBlockOrDescendantSelected ) {\n\t\t\tstopEditingAsBlocks( clientId );\n\t\t}\n\t}, [ isBlockOrDescendantSelected, clientId, stopEditingAsBlocks ] );\n\treturn null;\n}\n\nexport default function BlockList( settings ) {\n\treturn (\n\t\t<BlockEditContextProvider value={ DEFAULT_BLOCK_EDIT_CONTEXT }>\n\t\t\t<Root { ...settings } />\n\t\t</BlockEditContextProvider>\n\t);\n}\n\nconst EMPTY_ARRAY = [];\nconst EMPTY_SET = new Set();\n\nfunction Items( {\n\tplaceholder,\n\trootClientId,\n\trenderAppender: CustomAppender,\n\t__experimentalAppenderTagName,\n\tlayout = defaultLayout,\n} ) {\n\t// Avoid passing CustomAppender to useSelect because it could be a new\n\t// function on every render.\n\tconst hasAppender = CustomAppender !== false;\n\tconst hasCustomAppender = !! CustomAppender;\n\tconst {\n\t\torder,\n\t\tisZoomOut,\n\t\tselectedBlocks,\n\t\tvisibleBlocks,\n\t\tshouldRenderAppender,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetVisibleBlocks,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tisSectionBlock,\n\t\t\t\tisContainerInsertableToInWriteMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisZoomOut: _isZoomOut,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst _order = getBlockOrder( rootClientId );\n\n\t\t\tif ( getSettings().isPreviewMode ) {\n\t\t\t\treturn {\n\t\t\t\t\torder: _order,\n\t\t\t\t\tselectedBlocks: EMPTY_ARRAY,\n\t\t\t\t\tvisibleBlocks: EMPTY_SET,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst showRootAppender =\n\t\t\t\t! rootClientId &&\n\t\t\t\t! selectedBlockClientId &&\n\t\t\t\t( ! _order.length ||\n\t\t\t\t\t! canInsertBlockType(\n\t\t\t\t\t\tgetDefaultBlockName(),\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t) );\n\t\t\tconst hasSelectedRoot = !! (\n\t\t\t\trootClientId &&\n\t\t\t\tselectedBlockClientId &&\n\t\t\t\trootClientId === selectedBlockClientId\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\torder: _order,\n\t\t\t\tselectedBlocks: selectedBlockClientIds,\n\t\t\t\tvisibleBlocks: __unstableGetVisibleBlocks(),\n\t\t\t\tisZoomOut: _isZoomOut(),\n\t\t\t\tshouldRenderAppender:\n\t\t\t\t\t( ! isSectionBlock( rootClientId ) ||\n\t\t\t\t\t\tisContainerInsertableToInWriteMode(\n\t\t\t\t\t\t\tgetBlockName( selectedBlockClientId ),\n\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t) ) &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) !== 'disabled' &&\n\t\t\t\t\t! getTemplateLock( rootClientId ) &&\n\t\t\t\t\thasAppender &&\n\t\t\t\t\t! _isZoomOut() &&\n\t\t\t\t\t( hasCustomAppender ||\n\t\t\t\t\t\thasSelectedRoot ||\n\t\t\t\t\t\tshowRootAppender ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId, hasAppender, hasCustomAppender ]\n\t);\n\n\treturn (\n\t\t<LayoutProvider value={ layout }>\n\t\t\t{ order.map( ( clientId ) => (\n\t\t\t\t<AsyncModeProvider\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t// Only provide data asynchronously if the block is\n\t\t\t\t\t\t// not visible and not selected.\n\t\t\t\t\t\t! visibleBlocks.has( clientId ) &&\n\t\t\t\t\t\t! selectedBlocks.includes( clientId )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isZoomOut && (\n\t\t\t\t\t\t<ZoomOutSeparator\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tposition=\"top\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isZoomOut && (\n\t\t\t\t\t\t<ZoomOutSeparator\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tposition=\"bottom\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</AsyncModeProvider>\n\t\t\t) ) }\n\t\t\t{ order.length < 1 && placeholder }\n\t\t\t{ shouldRenderAppender && (\n\t\t\t\t<BlockListAppender\n\t\t\t\t\ttagName={ __experimentalAppenderTagName }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tCustomAppender={ CustomAppender }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</LayoutProvider>\n\t);\n}\n\nexport function BlockListItems( props ) {\n\t// This component needs to always be synchronous as it's the one changing\n\t// the async mode depending on the block selection.\n\treturn (\n\t\t<AsyncModeProvider value={ false }>\n\t\t\t<Items { ...props } />\n\t\t</AsyncModeProvider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,7 +24,8 @@ function usePopoverScroll(contentRef) {
|
|
|
24
24
|
function onWheel(event) {
|
|
25
25
|
const {
|
|
26
26
|
deltaX,
|
|
27
|
-
deltaY
|
|
27
|
+
deltaY,
|
|
28
|
+
target
|
|
28
29
|
} = event;
|
|
29
30
|
const contentEl = contentRef.current;
|
|
30
31
|
let scrollContainer = scrollContainerCache.get(contentEl);
|
|
@@ -32,7 +33,15 @@ function usePopoverScroll(contentRef) {
|
|
|
32
33
|
scrollContainer = (0, _dom.getScrollContainer)(contentEl);
|
|
33
34
|
scrollContainerCache.set(contentEl, scrollContainer);
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
+
// Finds a scrollable ancestor of the event’s target. It's not cached because the
|
|
37
|
+
// it may not remain scrollable due to popover position changes. The cache is also
|
|
38
|
+
// less likely to be utilized because the target may be different every event.
|
|
39
|
+
const eventScrollContainer = (0, _dom.getScrollContainer)(target);
|
|
40
|
+
// Scrolls “through” the popover only if another contained scrollable area isn’t
|
|
41
|
+
// in front of it. This is to avoid scrolling both containers simultaneously.
|
|
42
|
+
if (!node.contains(eventScrollContainer)) {
|
|
43
|
+
scrollContainer.scrollBy(deltaX, deltaY);
|
|
44
|
+
}
|
|
36
45
|
}
|
|
37
46
|
// Tell the browser that we do not call event.preventDefault
|
|
38
47
|
// See https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#improving_scrolling_performance_with_passive_listeners
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_compose","require","_dom","scrollContainerCache","WeakMap","usePopoverScroll","contentRef","effect","useRefEffect","node","onWheel","event","deltaX","deltaY","contentEl","current","scrollContainer","get","getScrollContainer","set","scrollBy","options","passive","addEventListener","removeEventListener","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/block-popover/use-popover-scroll.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { getScrollContainer } from '@wordpress/dom';\n\nconst scrollContainerCache = new WeakMap();\n\n/**\n * Allow scrolling \"through\" popovers over the canvas. This is only called for\n * as long as the pointer is over a popover. Do not use React events because it\n * will bubble through portals.\n *\n * @param {Object} contentRef\n */\nfunction usePopoverScroll( contentRef ) {\n\tconst effect = useRefEffect(\n\t\t( node ) => {\n\t\t\tfunction onWheel( event ) {\n\t\t\t\tconst { deltaX, deltaY } = event;\n\t\t\t\tconst contentEl = contentRef.current;\n\t\t\t\tlet scrollContainer = scrollContainerCache.get( contentEl );\n\t\t\t\tif ( ! scrollContainer ) {\n\t\t\t\t\tscrollContainer = getScrollContainer( contentEl );\n\t\t\t\t\tscrollContainerCache.set( contentEl, scrollContainer );\n\t\t\t\t}\n\t\t\t\tscrollContainer.scrollBy( deltaX, deltaY );\n\t\t\t}\n\t\t\t// Tell the browser that we do not call event.preventDefault\n\t\t\t// See https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#improving_scrolling_performance_with_passive_listeners\n\t\t\tconst options = { passive: true };\n\t\t\tnode.addEventListener( 'wheel', onWheel, options );\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'wheel', onWheel, options );\n\t\t\t};\n\t\t},\n\t\t[ contentRef ]\n\t);\n\treturn contentRef ? effect : null;\n}\n\nexport default usePopoverScroll;\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA,MAAME,oBAAoB,GAAG,IAAIC,OAAO,CAAC,CAAC;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CAAEC,UAAU,EAAG;EACvC,MAAMC,MAAM,GAAG,IAAAC,qBAAY,EACxBC,IAAI,IAAM;IACX,SAASC,OAAOA,CAAEC,KAAK,EAAG;MACzB,MAAM;QAAEC,MAAM;QAAEC;MAAO,CAAC,
|
|
1
|
+
{"version":3,"names":["_compose","require","_dom","scrollContainerCache","WeakMap","usePopoverScroll","contentRef","effect","useRefEffect","node","onWheel","event","deltaX","deltaY","target","contentEl","current","scrollContainer","get","getScrollContainer","set","eventScrollContainer","contains","scrollBy","options","passive","addEventListener","removeEventListener","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/block-popover/use-popover-scroll.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { getScrollContainer } from '@wordpress/dom';\n\nconst scrollContainerCache = new WeakMap();\n\n/**\n * Allow scrolling \"through\" popovers over the canvas. This is only called for\n * as long as the pointer is over a popover. Do not use React events because it\n * will bubble through portals.\n *\n * @param {Object} contentRef\n */\nfunction usePopoverScroll( contentRef ) {\n\tconst effect = useRefEffect(\n\t\t( node ) => {\n\t\t\tfunction onWheel( event ) {\n\t\t\t\tconst { deltaX, deltaY, target } = event;\n\t\t\t\tconst contentEl = contentRef.current;\n\t\t\t\tlet scrollContainer = scrollContainerCache.get( contentEl );\n\t\t\t\tif ( ! scrollContainer ) {\n\t\t\t\t\tscrollContainer = getScrollContainer( contentEl );\n\t\t\t\t\tscrollContainerCache.set( contentEl, scrollContainer );\n\t\t\t\t}\n\t\t\t\t// Finds a scrollable ancestor of the event’s target. It's not cached because the\n\t\t\t\t// it may not remain scrollable due to popover position changes. The cache is also\n\t\t\t\t// less likely to be utilized because the target may be different every event.\n\t\t\t\tconst eventScrollContainer = getScrollContainer( target );\n\t\t\t\t// Scrolls “through” the popover only if another contained scrollable area isn’t\n\t\t\t\t// in front of it. This is to avoid scrolling both containers simultaneously.\n\t\t\t\tif ( ! node.contains( eventScrollContainer ) ) {\n\t\t\t\t\tscrollContainer.scrollBy( deltaX, deltaY );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Tell the browser that we do not call event.preventDefault\n\t\t\t// See https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#improving_scrolling_performance_with_passive_listeners\n\t\t\tconst options = { passive: true };\n\t\t\tnode.addEventListener( 'wheel', onWheel, options );\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'wheel', onWheel, options );\n\t\t\t};\n\t\t},\n\t\t[ contentRef ]\n\t);\n\treturn contentRef ? effect : null;\n}\n\nexport default usePopoverScroll;\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA,MAAME,oBAAoB,GAAG,IAAIC,OAAO,CAAC,CAAC;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CAAEC,UAAU,EAAG;EACvC,MAAMC,MAAM,GAAG,IAAAC,qBAAY,EACxBC,IAAI,IAAM;IACX,SAASC,OAAOA,CAAEC,KAAK,EAAG;MACzB,MAAM;QAAEC,MAAM;QAAEC,MAAM;QAAEC;MAAO,CAAC,GAAGH,KAAK;MACxC,MAAMI,SAAS,GAAGT,UAAU,CAACU,OAAO;MACpC,IAAIC,eAAe,GAAGd,oBAAoB,CAACe,GAAG,CAAEH,SAAU,CAAC;MAC3D,IAAK,CAAEE,eAAe,EAAG;QACxBA,eAAe,GAAG,IAAAE,uBAAkB,EAAEJ,SAAU,CAAC;QACjDZ,oBAAoB,CAACiB,GAAG,CAAEL,SAAS,EAAEE,eAAgB,CAAC;MACvD;MACA;MACA;MACA;MACA,MAAMI,oBAAoB,GAAG,IAAAF,uBAAkB,EAAEL,MAAO,CAAC;MACzD;MACA;MACA,IAAK,CAAEL,IAAI,CAACa,QAAQ,CAAED,oBAAqB,CAAC,EAAG;QAC9CJ,eAAe,CAACM,QAAQ,CAAEX,MAAM,EAAEC,MAAO,CAAC;MAC3C;IACD;IACA;IACA;IACA,MAAMW,OAAO,GAAG;MAAEC,OAAO,EAAE;IAAK,CAAC;IACjChB,IAAI,CAACiB,gBAAgB,CAAE,OAAO,EAAEhB,OAAO,EAAEc,OAAQ,CAAC;IAClD,OAAO,MAAM;MACZf,IAAI,CAACkB,mBAAmB,CAAE,OAAO,EAAEjB,OAAO,EAAEc,OAAQ,CAAC;IACtD,CAAC;EACF,CAAC,EACD,CAAElB,UAAU,CACb,CAAC;EACD,OAAOA,UAAU,GAAGC,MAAM,GAAG,IAAI;AAClC;AAAC,IAAAqB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEczB,gBAAgB","ignoreList":[]}
|
|
@@ -18,6 +18,7 @@ var _blockVariationTransformations = require("./block-variation-transformations"
|
|
|
18
18
|
var _blockStylesMenu = _interopRequireDefault(require("./block-styles-menu"));
|
|
19
19
|
var _patternTransformationsMenu = _interopRequireDefault(require("./pattern-transformations-menu"));
|
|
20
20
|
var _useBlockDisplayTitle = _interopRequireDefault(require("../block-title/use-block-display-title"));
|
|
21
|
+
var _lockUnlock = require("../../lock-unlock");
|
|
21
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
23
|
/**
|
|
23
24
|
* WordPress dependencies
|
|
@@ -88,13 +89,13 @@ function BlockSwitcherDropdownMenuContents({
|
|
|
88
89
|
selectForMultipleBlocks(transformedBlocks);
|
|
89
90
|
}
|
|
90
91
|
/**
|
|
91
|
-
* The `
|
|
92
|
+
* The `isSynced` check is a stopgap solution here.
|
|
92
93
|
* Ideally, the Transforms API should handle this
|
|
93
94
|
* by allowing to exclude blocks from wildcard transformations.
|
|
94
95
|
*/
|
|
95
96
|
const isSingleBlock = blocks.length === 1;
|
|
96
|
-
const
|
|
97
|
-
const hasPossibleBlockTransformations = !!possibleBlockTransformations
|
|
97
|
+
const isSynced = isSingleBlock && ((0, _blocks2.isTemplatePart)(blocks[0]) || (0, _blocks2.isReusableBlock)(blocks[0]));
|
|
98
|
+
const hasPossibleBlockTransformations = !!possibleBlockTransformations?.length && canRemove && !isSynced;
|
|
98
99
|
const hasPossibleBlockVariationTransformations = !!blockVariationTransformations?.length;
|
|
99
100
|
const hasPatternTransformation = !!patterns?.length && canRemove;
|
|
100
101
|
const hasBlockOrBlockVariationTransforms = hasPossibleBlockTransformations || hasPossibleBlockVariationTransformations;
|
|
@@ -150,15 +151,17 @@ const BlockSwitcher = ({
|
|
|
150
151
|
invalidBlocks,
|
|
151
152
|
isReusable,
|
|
152
153
|
isTemplate,
|
|
153
|
-
isDisabled
|
|
154
|
+
isDisabled,
|
|
155
|
+
isSection
|
|
154
156
|
} = (0, _data.useSelect)(select => {
|
|
155
157
|
const {
|
|
156
158
|
getTemplateLock,
|
|
157
159
|
getBlocksByClientId,
|
|
158
160
|
getBlockAttributes,
|
|
159
161
|
canRemoveBlocks,
|
|
160
|
-
getBlockEditingMode
|
|
161
|
-
|
|
162
|
+
getBlockEditingMode,
|
|
163
|
+
isSectionBlock
|
|
164
|
+
} = (0, _lockUnlock.unlock)(select(_store.store));
|
|
162
165
|
const {
|
|
163
166
|
getBlockStyles,
|
|
164
167
|
getBlockType,
|
|
@@ -199,7 +202,8 @@ const BlockSwitcher = ({
|
|
|
199
202
|
isReusable: _isSingleBlockSelected && (0, _blocks2.isReusableBlock)(_blocks[0]),
|
|
200
203
|
isTemplate: _isSingleBlockSelected && (0, _blocks2.isTemplatePart)(_blocks[0]),
|
|
201
204
|
hasContentOnlyLocking: _hasTemplateLock,
|
|
202
|
-
isDisabled: editingMode !== 'default'
|
|
205
|
+
isDisabled: editingMode !== 'default',
|
|
206
|
+
isSection: isSectionBlock(clientIds[0])
|
|
203
207
|
};
|
|
204
208
|
}, [clientIds]);
|
|
205
209
|
const blockTitle = (0, _useBlockDisplayTitle.default)({
|
|
@@ -213,7 +217,8 @@ const BlockSwitcher = ({
|
|
|
213
217
|
const isSingleBlock = clientIds.length === 1;
|
|
214
218
|
const blockSwitcherLabel = isSingleBlock ? blockTitle : (0, _i18n.__)('Multiple blocks selected');
|
|
215
219
|
const blockIndicatorText = (isReusable || isTemplate) && !showIconLabels && blockTitle ? blockTitle : undefined;
|
|
216
|
-
const
|
|
220
|
+
const hideTransformsForSections = window?.__experimentalContentOnlyPatternInsertion && isSection;
|
|
221
|
+
const hideDropdown = hideTransformsForSections || isDisabled || !hasBlockStyles && !canRemove || hasContentOnlyLocking;
|
|
217
222
|
if (hideDropdown) {
|
|
218
223
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToolbarGroup, {
|
|
219
224
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToolbarButton, {
|