@wordpress/block-editor 11.3.1 → 11.3.2
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-inspector/index.js +1 -2
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +13 -3
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab-hint.js +62 -0
- package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +1 -0
- package/build/components/inspector-controls-tabs/settings-tab.js +3 -1
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build/components/provider/use-block-sync.js +4 -1
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/store/defaults.js +12 -0
- package/build/store/defaults.js.map +1 -1
- package/build/store/private-actions.js +1 -1
- package/build/store/private-actions.js.map +1 -1
- package/build-module/components/block-inspector/index.js +1 -2
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +13 -4
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +48 -0
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/settings-tab.js +2 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +4 -1
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/store/defaults.js +12 -0
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/private-actions.js +1 -1
- package/build-module/store/private-actions.js.map +1 -1
- package/build-style/style-rtl.css +18 -0
- package/build-style/style.css +18 -0
- package/package.json +3 -2
- package/src/components/block-inspector/index.js +1 -1
- package/src/components/inserter/block-patterns-tab.js +28 -5
- package/src/components/inspector-controls-tabs/settings-tab-hint.js +52 -0
- package/src/components/inspector-controls-tabs/settings-tab.js +2 -0
- package/src/components/inspector-controls-tabs/style.scss +20 -0
- package/src/components/provider/use-block-sync.js +4 -1
- package/src/store/defaults.js +7 -0
- package/src/store/private-actions.js +4 -1
|
@@ -191,8 +191,7 @@ const BlockInspector = _ref5 => {
|
|
|
191
191
|
const showTabs = (availableTabs === null || availableTabs === void 0 ? void 0 : availableTabs.length) > 1;
|
|
192
192
|
const blockInspectorAnimationSettings = (0, _data.useSelect)(select => {
|
|
193
193
|
if (blockType) {
|
|
194
|
-
const globalBlockInspectorAnimationSettings = select(_store.store).getSettings().
|
|
195
|
-
|
|
194
|
+
const globalBlockInspectorAnimationSettings = select(_store.store).getSettings().blockInspectorAnimation;
|
|
196
195
|
return globalBlockInspectorAnimationSettings === null || globalBlockInspectorAnimationSettings === void 0 ? void 0 : globalBlockInspectorAnimationSettings[blockType.name];
|
|
197
196
|
}
|
|
198
197
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["useContentBlocks","blockTypes","block","contentBlocksObjectAux","reduce","result","blockType","name","Object","entries","attributes","some","__experimentalRole","isContentBlock","blockName","getContentBlocks","blocks","push","innerBlocks","BlockNavigationButton","selectedBlock","selectBlock","blockEditorStore","find","isSelected","clientId","icon","title","BlockInspectorLockedBlocks","topLevelLockedBlock","select","blocksStore","getBlockTypes","getBlock","getSelectedBlock","blockInformation","contentBlocks","isSynced","map","contentBlock","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","undefined","availableTabs","showTabs","length","blockInspectorAnimationSettings","globalBlockInspectorAnimationSettings","getSettings","__experimentalBlockInspectorAnimation","isSelectedBlockUnregistered","children","BlockInspectorSingleBlockWrapper","animate","wrapper","AnimatedContainer","animationOrigin","enterDirection","x","opacity","transition","ease","duration","BlockInspectorSingleBlock","hasBlockStyles","getBlockStyles","blockStyles"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tFlexItem,\n\tPanelBody,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\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 BlockIcon from '../block-icon';\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\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';\n\nfunction useContentBlocks( blockTypes, block ) {\n\tconst contentBlocksObjectAux = useMemo( () => {\n\t\treturn blockTypes.reduce( ( result, blockType ) => {\n\t\t\tif (\n\t\t\t\tblockType.name !== 'core/list-item' &&\n\t\t\t\tObject.entries( blockType.attributes ).some(\n\t\t\t\t\t( [ , { __experimentalRole } ] ) =>\n\t\t\t\t\t\t__experimentalRole === 'content'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tresult[ blockType.name ] = true;\n\t\t\t}\n\t\t\treturn result;\n\t\t}, {} );\n\t}, [ blockTypes ] );\n\tconst isContentBlock = useCallback(\n\t\t( blockName ) => {\n\t\t\treturn !! contentBlocksObjectAux[ blockName ];\n\t\t},\n\t\t[ blockTypes ]\n\t);\n\treturn useMemo( () => {\n\t\treturn getContentBlocks( [ block ], isContentBlock );\n\t}, [ block, isContentBlock ] );\n}\n\nfunction getContentBlocks( blocks, isContentBlock ) {\n\tconst result = [];\n\tfor ( const block of blocks ) {\n\t\tif ( isContentBlock( block.name ) ) {\n\t\t\tresult.push( block );\n\t\t}\n\t\tresult.push( ...getContentBlocks( block.innerBlocks, isContentBlock ) );\n\t}\n\treturn result;\n}\n\nfunction BlockNavigationButton( { blockTypes, block, selectedBlock } ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst blockType = blockTypes.find( ( { name } ) => name === block.name );\n\tconst isSelected =\n\t\tselectedBlock && selectedBlock.clientId === block.clientId;\n\treturn (\n\t\t<Button\n\t\t\tisPressed={ isSelected }\n\t\t\tonClick={ () => selectBlock( block.clientId ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ blockType.icon } />\n\t\t\t\t<FlexItem>{ blockType.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</Button>\n\t);\n}\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst { blockTypes, block, selectedBlock } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\t\tblock: select( blockEditorStore ).getBlock(\n\t\t\t\t\ttopLevelLockedBlock\n\t\t\t\t),\n\t\t\t\tselectedBlock: select( blockEditorStore ).getSelectedBlock(),\n\t\t\t};\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\tconst contentBlocks = useContentBlocks( blockTypes, block );\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={ topLevelLockedBlock } />\n\t\t\t<VStack\n\t\t\t\tspacing={ 1 }\n\t\t\t\tpadding={ 4 }\n\t\t\t\tclassName=\"block-editor-block-inspector__block-buttons-container\"\n\t\t\t>\n\t\t\t\t<h2 className=\"block-editor-block-card__title\">\n\t\t\t\t\t{ __( 'Content' ) }\n\t\t\t\t</h2>\n\t\t\t\t{ contentBlocks.map( ( contentBlock ) => (\n\t\t\t\t\t<BlockNavigationButton\n\t\t\t\t\t\tselectedBlock={ selectedBlock }\n\t\t\t\t\t\tkey={ contentBlock.clientId }\n\t\t\t\t\t\tblock={ contentBlock }\n\t\t\t\t\t\tblockTypes={ blockTypes }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\tconst blockInspectorAnimationSettings = useSelect(\n\t\t( select ) => {\n\t\t\tif ( blockType ) {\n\t\t\t\tconst globalBlockInspectorAnimationSettings =\n\t\t\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t\t\t.__experimentalBlockInspectorAnimation;\n\t\t\t\treturn globalBlockInspectorAnimationSettings?.[\n\t\t\t\t\tblockType.name\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\t[ selectedBlockClientId, blockType ]\n\t);\n\n\tif ( count > 1 ) {\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=\"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={ __( 'Border' ) }\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\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\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/>\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 = ( { clientId, blockName } ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = 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\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<div>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t<DefaultStylePicker\n\t\t\t\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t<PositionControls />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t</div>\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"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["useContentBlocks","blockTypes","block","contentBlocksObjectAux","reduce","result","blockType","name","Object","entries","attributes","some","__experimentalRole","isContentBlock","blockName","getContentBlocks","blocks","push","innerBlocks","BlockNavigationButton","selectedBlock","selectBlock","blockEditorStore","find","isSelected","clientId","icon","title","BlockInspectorLockedBlocks","topLevelLockedBlock","select","blocksStore","getBlockTypes","getBlock","getSelectedBlock","blockInformation","contentBlocks","isSynced","map","contentBlock","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","undefined","availableTabs","showTabs","length","blockInspectorAnimationSettings","globalBlockInspectorAnimationSettings","getSettings","blockInspectorAnimation","isSelectedBlockUnregistered","children","BlockInspectorSingleBlockWrapper","animate","wrapper","AnimatedContainer","animationOrigin","enterDirection","x","opacity","transition","ease","duration","BlockInspectorSingleBlock","hasBlockStyles","getBlockStyles","blockStyles"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tFlexItem,\n\tPanelBody,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\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 BlockIcon from '../block-icon';\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\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';\n\nfunction useContentBlocks( blockTypes, block ) {\n\tconst contentBlocksObjectAux = useMemo( () => {\n\t\treturn blockTypes.reduce( ( result, blockType ) => {\n\t\t\tif (\n\t\t\t\tblockType.name !== 'core/list-item' &&\n\t\t\t\tObject.entries( blockType.attributes ).some(\n\t\t\t\t\t( [ , { __experimentalRole } ] ) =>\n\t\t\t\t\t\t__experimentalRole === 'content'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tresult[ blockType.name ] = true;\n\t\t\t}\n\t\t\treturn result;\n\t\t}, {} );\n\t}, [ blockTypes ] );\n\tconst isContentBlock = useCallback(\n\t\t( blockName ) => {\n\t\t\treturn !! contentBlocksObjectAux[ blockName ];\n\t\t},\n\t\t[ blockTypes ]\n\t);\n\treturn useMemo( () => {\n\t\treturn getContentBlocks( [ block ], isContentBlock );\n\t}, [ block, isContentBlock ] );\n}\n\nfunction getContentBlocks( blocks, isContentBlock ) {\n\tconst result = [];\n\tfor ( const block of blocks ) {\n\t\tif ( isContentBlock( block.name ) ) {\n\t\t\tresult.push( block );\n\t\t}\n\t\tresult.push( ...getContentBlocks( block.innerBlocks, isContentBlock ) );\n\t}\n\treturn result;\n}\n\nfunction BlockNavigationButton( { blockTypes, block, selectedBlock } ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst blockType = blockTypes.find( ( { name } ) => name === block.name );\n\tconst isSelected =\n\t\tselectedBlock && selectedBlock.clientId === block.clientId;\n\treturn (\n\t\t<Button\n\t\t\tisPressed={ isSelected }\n\t\t\tonClick={ () => selectBlock( block.clientId ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ blockType.icon } />\n\t\t\t\t<FlexItem>{ blockType.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</Button>\n\t);\n}\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst { blockTypes, block, selectedBlock } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\t\tblock: select( blockEditorStore ).getBlock(\n\t\t\t\t\ttopLevelLockedBlock\n\t\t\t\t),\n\t\t\t\tselectedBlock: select( blockEditorStore ).getSelectedBlock(),\n\t\t\t};\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\tconst contentBlocks = useContentBlocks( blockTypes, block );\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={ topLevelLockedBlock } />\n\t\t\t<VStack\n\t\t\t\tspacing={ 1 }\n\t\t\t\tpadding={ 4 }\n\t\t\t\tclassName=\"block-editor-block-inspector__block-buttons-container\"\n\t\t\t>\n\t\t\t\t<h2 className=\"block-editor-block-card__title\">\n\t\t\t\t\t{ __( 'Content' ) }\n\t\t\t\t</h2>\n\t\t\t\t{ contentBlocks.map( ( contentBlock ) => (\n\t\t\t\t\t<BlockNavigationButton\n\t\t\t\t\t\tselectedBlock={ selectedBlock }\n\t\t\t\t\t\tkey={ contentBlock.clientId }\n\t\t\t\t\t\tblock={ contentBlock }\n\t\t\t\t\t\tblockTypes={ blockTypes }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\tconst blockInspectorAnimationSettings = useSelect(\n\t\t( select ) => {\n\t\t\tif ( blockType ) {\n\t\t\t\tconst globalBlockInspectorAnimationSettings =\n\t\t\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t\t\t.blockInspectorAnimation;\n\t\t\t\treturn globalBlockInspectorAnimationSettings?.[\n\t\t\t\t\tblockType.name\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\t[ selectedBlockClientId, blockType ]\n\t);\n\n\tif ( count > 1 ) {\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=\"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={ __( 'Border' ) }\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\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\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/>\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 = ( { clientId, blockName } ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = 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\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<div>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t<DefaultStylePicker\n\t\t\t\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t<PositionControls />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t</div>\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"]}
|
|
@@ -36,6 +36,10 @@ var _mobileTabNavigation = _interopRequireDefault(require("./mobile-tab-navigati
|
|
|
36
36
|
/**
|
|
37
37
|
* Internal dependencies
|
|
38
38
|
*/
|
|
39
|
+
// Preffered order of pattern categories. Any other categories should
|
|
40
|
+
// be at the bottom without any re-ordering.
|
|
41
|
+
const patternCategoriesOrder = ['featured', 'posts', 'text', 'gallery', 'call-to-action', 'banner', 'header', 'footer'];
|
|
42
|
+
|
|
39
43
|
function usePatternsCategories(rootClientId) {
|
|
40
44
|
const [allPatterns, allCategories] = (0, _usePatternsState.default)(undefined, rootClientId);
|
|
41
45
|
const hasRegisteredCategory = (0, _element.useCallback)(pattern => {
|
|
@@ -59,12 +63,18 @@ function usePatternsCategories(rootClientId) {
|
|
|
59
63
|
name: nextName
|
|
60
64
|
} = _ref2;
|
|
61
65
|
|
|
62
|
-
|
|
66
|
+
// The pattern categories should be ordered as follows:
|
|
67
|
+
// 1. The categories from `patternCategoriesOrder` in that specific order should be at the top.
|
|
68
|
+
// 2. The rest categories should be at the bottom without any re-ordering.
|
|
69
|
+
if (![currentName, nextName].some(categoryName => patternCategoriesOrder.includes(categoryName))) {
|
|
63
70
|
return 0;
|
|
64
|
-
}
|
|
71
|
+
}
|
|
65
72
|
|
|
73
|
+
if ([currentName, nextName].every(categoryName => patternCategoriesOrder.includes(categoryName))) {
|
|
74
|
+
return patternCategoriesOrder.indexOf(currentName) - patternCategoriesOrder.indexOf(nextName);
|
|
75
|
+
}
|
|
66
76
|
|
|
67
|
-
return currentName
|
|
77
|
+
return patternCategoriesOrder.includes(currentName) ? -1 : 1;
|
|
68
78
|
});
|
|
69
79
|
|
|
70
80
|
if (allPatterns.some(pattern => !hasRegisteredCategory(pattern)) && !categories.find(category => category.name === 'uncategorized')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-tab.js"],"names":["usePatternsCategories","rootClientId","allPatterns","allCategories","undefined","hasRegisteredCategory","pattern","categories","length","some","cat","category","name","populatedCategories","filter","includes","sort","currentName","nextName","categoryName","find","push","label","BlockPatternsCategoryDialog","onInsert","onHover","showTitlesAsTooltip","container","timeout","setTimeout","firstTabbable","focus","tabbable","current","clearTimeout","BlockPatternsCategoryPanel","onClick","availableCategories","currentCategoryPatterns","availablePatternCategories","availableCategory","currentShownPatterns","description","BlockPatternsTabs","onSelectCategory","selectedCategory","showPatternsExplorer","setShowPatternsExplorer","initialCategory","isMobile","map","chevronRight"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport { _x, __ } from '@wordpress/i18n';\nimport { useAsyncList, useViewportMatch } from '@wordpress/compose';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHStack as HStack,\n\tFlexBlock,\n\tButton,\n} from '@wordpress/components';\nimport { Icon, chevronRight } from '@wordpress/icons';\nimport { focus } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport usePatternsState from './hooks/use-patterns-state';\nimport BlockPatternList from '../block-patterns-list';\nimport PatternsExplorerModal from './block-patterns-explorer/explorer';\nimport MobileTabNavigation from './mobile-tab-navigation';\n\nfunction usePatternsCategories( rootClientId ) {\n\tconst [ allPatterns, allCategories ] = usePatternsState(\n\t\tundefined,\n\t\trootClientId\n\t);\n\n\tconst hasRegisteredCategory = useCallback(\n\t\t( pattern ) => {\n\t\t\tif ( ! pattern.categories || ! pattern.categories.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn pattern.categories.some( ( cat ) =>\n\t\t\t\tallCategories.some( ( category ) => category.name === cat )\n\t\t\t);\n\t\t},\n\t\t[ allCategories ]\n\t);\n\n\t// Remove any empty categories.\n\tconst populatedCategories = useMemo( () => {\n\t\tconst categories = allCategories\n\t\t\t.filter( ( category ) =>\n\t\t\t\tallPatterns.some( ( pattern ) =>\n\t\t\t\t\tpattern.categories?.includes( category.name )\n\t\t\t\t)\n\t\t\t)\n\t\t\t.sort( ( { name: currentName }, { name: nextName } ) => {\n\t\t\t\tif (\n\t\t\t\t\t! [ currentName, nextName ].some( ( categoryName ) =>\n\t\t\t\t\t\t[ 'featured', 'text' ].includes( categoryName )\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\t// Move `featured` category to the top and `text` to the bottom.\n\t\t\t\treturn currentName === 'featured' || nextName === 'text'\n\t\t\t\t\t? -1\n\t\t\t\t\t: 1;\n\t\t\t} );\n\n\t\tif (\n\t\t\tallPatterns.some(\n\t\t\t\t( pattern ) => ! hasRegisteredCategory( pattern )\n\t\t\t) &&\n\t\t\t! categories.find(\n\t\t\t\t( category ) => category.name === 'uncategorized'\n\t\t\t)\n\t\t) {\n\t\t\tcategories.push( {\n\t\t\t\tname: 'uncategorized',\n\t\t\t\tlabel: _x( 'Uncategorized' ),\n\t\t\t} );\n\t\t}\n\n\t\treturn categories;\n\t}, [ allPatterns, allCategories ] );\n\n\treturn populatedCategories;\n}\n\nexport function BlockPatternsCategoryDialog( {\n\trootClientId,\n\tonInsert,\n\tonHover,\n\tcategory,\n\tshowTitlesAsTooltip,\n} ) {\n\tconst container = useRef();\n\n\tuseEffect( () => {\n\t\tconst timeout = setTimeout( () => {\n\t\t\tconst [ firstTabbable ] = focus.tabbable.find( container.current );\n\t\t\tfirstTabbable?.focus();\n\t\t} );\n\t\treturn () => clearTimeout( timeout );\n\t}, [ category ] );\n\n\treturn (\n\t\t<div\n\t\t\tref={ container }\n\t\t\tclassName=\"block-editor-inserter__patterns-category-dialog\"\n\t\t>\n\t\t\t<BlockPatternsCategoryPanel\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tcategory={ category }\n\t\t\t\tshowTitlesAsTooltip={ showTitlesAsTooltip }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport function BlockPatternsCategoryPanel( {\n\trootClientId,\n\tonInsert,\n\tonHover,\n\tcategory,\n\tshowTitlesAsTooltip,\n} ) {\n\tconst [ allPatterns, , onClick ] = usePatternsState(\n\t\tonInsert,\n\t\trootClientId\n\t);\n\n\tconst availableCategories = usePatternsCategories( rootClientId );\n\tconst currentCategoryPatterns = useMemo(\n\t\t() =>\n\t\t\tallPatterns.filter( ( pattern ) => {\n\t\t\t\tif ( category.name !== 'uncategorized' ) {\n\t\t\t\t\treturn pattern.categories?.includes( category.name );\n\t\t\t\t}\n\n\t\t\t\t// The uncategorized category should show all the patterns without any category\n\t\t\t\t// or with no available category.\n\t\t\t\tconst availablePatternCategories =\n\t\t\t\t\tpattern.categories?.filter( ( cat ) =>\n\t\t\t\t\t\tavailableCategories.find(\n\t\t\t\t\t\t\t( availableCategory ) =>\n\t\t\t\t\t\t\t\tavailableCategory.name === cat\n\t\t\t\t\t\t)\n\t\t\t\t\t) ?? [];\n\n\t\t\t\treturn availablePatternCategories.length === 0;\n\t\t\t} ),\n\t\t[ allPatterns, category ]\n\t);\n\n\tconst currentShownPatterns = useAsyncList( currentCategoryPatterns );\n\n\t// Hide block pattern preview on unmount.\n\tuseEffect( () => () => onHover( null ), [] );\n\n\tif ( ! currentCategoryPatterns.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__patterns-category-panel\">\n\t\t\t<div className=\"block-editor-inserter__patterns-category-panel-title\">\n\t\t\t\t{ category.label }\n\t\t\t</div>\n\t\t\t<p>{ category.description }</p>\n\t\t\t<BlockPatternList\n\t\t\t\tshownPatterns={ currentShownPatterns }\n\t\t\t\tblockPatterns={ currentCategoryPatterns }\n\t\t\t\tonClickPattern={ onClick }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tlabel={ category.label }\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tcategory={ category.label }\n\t\t\t\tisDraggable\n\t\t\t\tshowTitlesAsTooltip={ showTitlesAsTooltip }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternsTabs( {\n\tonSelectCategory,\n\tselectedCategory,\n\tonInsert,\n\trootClientId,\n} ) {\n\tconst [ showPatternsExplorer, setShowPatternsExplorer ] = useState( false );\n\tconst categories = usePatternsCategories( rootClientId );\n\tconst initialCategory = selectedCategory || categories[ 0 ];\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\treturn (\n\t\t<>\n\t\t\t{ ! isMobile && (\n\t\t\t\t<div className=\"block-editor-inserter__block-patterns-tabs-container\">\n\t\t\t\t\t<nav aria-label={ __( 'Block pattern categories' ) }>\n\t\t\t\t\t\t<ItemGroup\n\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\tclassName=\"block-editor-inserter__block-patterns-tabs\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ categories.map( ( category ) => (\n\t\t\t\t\t\t\t\t<Item\n\t\t\t\t\t\t\t\t\trole=\"listitem\"\n\t\t\t\t\t\t\t\t\tkey={ category.name }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tonSelectCategory( category )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\tcategory === selectedCategory\n\t\t\t\t\t\t\t\t\t\t\t? 'block-editor-inserter__patterns-category block-editor-inserter__patterns-selected-category'\n\t\t\t\t\t\t\t\t\t\t\t: 'block-editor-inserter__patterns-category'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-label={ category.label }\n\t\t\t\t\t\t\t\t\taria-current={\n\t\t\t\t\t\t\t\t\t\tcategory === selectedCategory\n\t\t\t\t\t\t\t\t\t\t\t? 'true'\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<HStack>\n\t\t\t\t\t\t\t\t\t\t<FlexBlock>\n\t\t\t\t\t\t\t\t\t\t\t{ category.label }\n\t\t\t\t\t\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ chevronRight } />\n\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t<div role=\"listitem\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__patterns-explore-button\"\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetShowPatternsExplorer( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Explore all patterns' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</nav>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isMobile && (\n\t\t\t\t<MobileTabNavigation categories={ categories }>\n\t\t\t\t\t{ ( category ) => (\n\t\t\t\t\t\t<BlockPatternsCategoryPanel\n\t\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\tshowTitlesAsTooltip={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</MobileTabNavigation>\n\t\t\t) }\n\t\t\t{ showPatternsExplorer && (\n\t\t\t\t<PatternsExplorerModal\n\t\t\t\t\tinitialCategory={ initialCategory }\n\t\t\t\t\tpatternCategories={ categories }\n\t\t\t\t\tonModalClose={ () => setShowPatternsExplorer( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default BlockPatternsTabs;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-tab.js"],"names":["patternCategoriesOrder","usePatternsCategories","rootClientId","allPatterns","allCategories","undefined","hasRegisteredCategory","pattern","categories","length","some","cat","category","name","populatedCategories","filter","includes","sort","currentName","nextName","categoryName","every","indexOf","find","push","label","BlockPatternsCategoryDialog","onInsert","onHover","showTitlesAsTooltip","container","timeout","setTimeout","firstTabbable","focus","tabbable","current","clearTimeout","BlockPatternsCategoryPanel","onClick","availableCategories","currentCategoryPatterns","availablePatternCategories","availableCategory","currentShownPatterns","description","BlockPatternsTabs","onSelectCategory","selectedCategory","showPatternsExplorer","setShowPatternsExplorer","initialCategory","isMobile","map","chevronRight"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport { _x, __ } from '@wordpress/i18n';\nimport { useAsyncList, useViewportMatch } from '@wordpress/compose';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHStack as HStack,\n\tFlexBlock,\n\tButton,\n} from '@wordpress/components';\nimport { Icon, chevronRight } from '@wordpress/icons';\nimport { focus } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport usePatternsState from './hooks/use-patterns-state';\nimport BlockPatternList from '../block-patterns-list';\nimport PatternsExplorerModal from './block-patterns-explorer/explorer';\nimport MobileTabNavigation from './mobile-tab-navigation';\n\n// Preffered order of pattern categories. Any other categories should\n// be at the bottom without any re-ordering.\nconst patternCategoriesOrder = [\n\t'featured',\n\t'posts',\n\t'text',\n\t'gallery',\n\t'call-to-action',\n\t'banner',\n\t'header',\n\t'footer',\n];\n\nfunction usePatternsCategories( rootClientId ) {\n\tconst [ allPatterns, allCategories ] = usePatternsState(\n\t\tundefined,\n\t\trootClientId\n\t);\n\n\tconst hasRegisteredCategory = useCallback(\n\t\t( pattern ) => {\n\t\t\tif ( ! pattern.categories || ! pattern.categories.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn pattern.categories.some( ( cat ) =>\n\t\t\t\tallCategories.some( ( category ) => category.name === cat )\n\t\t\t);\n\t\t},\n\t\t[ allCategories ]\n\t);\n\n\t// Remove any empty categories.\n\tconst populatedCategories = useMemo( () => {\n\t\tconst categories = allCategories\n\t\t\t.filter( ( category ) =>\n\t\t\t\tallPatterns.some( ( pattern ) =>\n\t\t\t\t\tpattern.categories?.includes( category.name )\n\t\t\t\t)\n\t\t\t)\n\t\t\t.sort( ( { name: currentName }, { name: nextName } ) => {\n\t\t\t\t// The pattern categories should be ordered as follows:\n\t\t\t\t// 1. The categories from `patternCategoriesOrder` in that specific order should be at the top.\n\t\t\t\t// 2. The rest categories should be at the bottom without any re-ordering.\n\t\t\t\tif (\n\t\t\t\t\t! [ currentName, nextName ].some( ( categoryName ) =>\n\t\t\t\t\t\tpatternCategoriesOrder.includes( categoryName )\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t[ currentName, nextName ].every( ( categoryName ) =>\n\t\t\t\t\t\tpatternCategoriesOrder.includes( categoryName )\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tpatternCategoriesOrder.indexOf( currentName ) -\n\t\t\t\t\t\tpatternCategoriesOrder.indexOf( nextName )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn patternCategoriesOrder.includes( currentName ) ? -1 : 1;\n\t\t\t} );\n\n\t\tif (\n\t\t\tallPatterns.some(\n\t\t\t\t( pattern ) => ! hasRegisteredCategory( pattern )\n\t\t\t) &&\n\t\t\t! categories.find(\n\t\t\t\t( category ) => category.name === 'uncategorized'\n\t\t\t)\n\t\t) {\n\t\t\tcategories.push( {\n\t\t\t\tname: 'uncategorized',\n\t\t\t\tlabel: _x( 'Uncategorized' ),\n\t\t\t} );\n\t\t}\n\n\t\treturn categories;\n\t}, [ allPatterns, allCategories ] );\n\n\treturn populatedCategories;\n}\n\nexport function BlockPatternsCategoryDialog( {\n\trootClientId,\n\tonInsert,\n\tonHover,\n\tcategory,\n\tshowTitlesAsTooltip,\n} ) {\n\tconst container = useRef();\n\n\tuseEffect( () => {\n\t\tconst timeout = setTimeout( () => {\n\t\t\tconst [ firstTabbable ] = focus.tabbable.find( container.current );\n\t\t\tfirstTabbable?.focus();\n\t\t} );\n\t\treturn () => clearTimeout( timeout );\n\t}, [ category ] );\n\n\treturn (\n\t\t<div\n\t\t\tref={ container }\n\t\t\tclassName=\"block-editor-inserter__patterns-category-dialog\"\n\t\t>\n\t\t\t<BlockPatternsCategoryPanel\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tcategory={ category }\n\t\t\t\tshowTitlesAsTooltip={ showTitlesAsTooltip }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport function BlockPatternsCategoryPanel( {\n\trootClientId,\n\tonInsert,\n\tonHover,\n\tcategory,\n\tshowTitlesAsTooltip,\n} ) {\n\tconst [ allPatterns, , onClick ] = usePatternsState(\n\t\tonInsert,\n\t\trootClientId\n\t);\n\n\tconst availableCategories = usePatternsCategories( rootClientId );\n\tconst currentCategoryPatterns = useMemo(\n\t\t() =>\n\t\t\tallPatterns.filter( ( pattern ) => {\n\t\t\t\tif ( category.name !== 'uncategorized' ) {\n\t\t\t\t\treturn pattern.categories?.includes( category.name );\n\t\t\t\t}\n\n\t\t\t\t// The uncategorized category should show all the patterns without any category\n\t\t\t\t// or with no available category.\n\t\t\t\tconst availablePatternCategories =\n\t\t\t\t\tpattern.categories?.filter( ( cat ) =>\n\t\t\t\t\t\tavailableCategories.find(\n\t\t\t\t\t\t\t( availableCategory ) =>\n\t\t\t\t\t\t\t\tavailableCategory.name === cat\n\t\t\t\t\t\t)\n\t\t\t\t\t) ?? [];\n\n\t\t\t\treturn availablePatternCategories.length === 0;\n\t\t\t} ),\n\t\t[ allPatterns, category ]\n\t);\n\n\tconst currentShownPatterns = useAsyncList( currentCategoryPatterns );\n\n\t// Hide block pattern preview on unmount.\n\tuseEffect( () => () => onHover( null ), [] );\n\n\tif ( ! currentCategoryPatterns.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__patterns-category-panel\">\n\t\t\t<div className=\"block-editor-inserter__patterns-category-panel-title\">\n\t\t\t\t{ category.label }\n\t\t\t</div>\n\t\t\t<p>{ category.description }</p>\n\t\t\t<BlockPatternList\n\t\t\t\tshownPatterns={ currentShownPatterns }\n\t\t\t\tblockPatterns={ currentCategoryPatterns }\n\t\t\t\tonClickPattern={ onClick }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tlabel={ category.label }\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tcategory={ category.label }\n\t\t\t\tisDraggable\n\t\t\t\tshowTitlesAsTooltip={ showTitlesAsTooltip }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternsTabs( {\n\tonSelectCategory,\n\tselectedCategory,\n\tonInsert,\n\trootClientId,\n} ) {\n\tconst [ showPatternsExplorer, setShowPatternsExplorer ] = useState( false );\n\tconst categories = usePatternsCategories( rootClientId );\n\tconst initialCategory = selectedCategory || categories[ 0 ];\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\treturn (\n\t\t<>\n\t\t\t{ ! isMobile && (\n\t\t\t\t<div className=\"block-editor-inserter__block-patterns-tabs-container\">\n\t\t\t\t\t<nav aria-label={ __( 'Block pattern categories' ) }>\n\t\t\t\t\t\t<ItemGroup\n\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\tclassName=\"block-editor-inserter__block-patterns-tabs\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ categories.map( ( category ) => (\n\t\t\t\t\t\t\t\t<Item\n\t\t\t\t\t\t\t\t\trole=\"listitem\"\n\t\t\t\t\t\t\t\t\tkey={ category.name }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tonSelectCategory( category )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\tcategory === selectedCategory\n\t\t\t\t\t\t\t\t\t\t\t? 'block-editor-inserter__patterns-category block-editor-inserter__patterns-selected-category'\n\t\t\t\t\t\t\t\t\t\t\t: 'block-editor-inserter__patterns-category'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-label={ category.label }\n\t\t\t\t\t\t\t\t\taria-current={\n\t\t\t\t\t\t\t\t\t\tcategory === selectedCategory\n\t\t\t\t\t\t\t\t\t\t\t? 'true'\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<HStack>\n\t\t\t\t\t\t\t\t\t\t<FlexBlock>\n\t\t\t\t\t\t\t\t\t\t\t{ category.label }\n\t\t\t\t\t\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ chevronRight } />\n\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t<div role=\"listitem\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__patterns-explore-button\"\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetShowPatternsExplorer( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Explore all patterns' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</nav>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isMobile && (\n\t\t\t\t<MobileTabNavigation categories={ categories }>\n\t\t\t\t\t{ ( category ) => (\n\t\t\t\t\t\t<BlockPatternsCategoryPanel\n\t\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\tshowTitlesAsTooltip={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</MobileTabNavigation>\n\t\t\t) }\n\t\t\t{ showPatternsExplorer && (\n\t\t\t\t<PatternsExplorerModal\n\t\t\t\t\tinitialCategory={ initialCategory }\n\t\t\t\t\tpatternCategories={ categories }\n\t\t\t\t\tonModalClose={ () => setShowPatternsExplorer( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default BlockPatternsTabs;\n"]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = InspectorControlsTabsHint;
|
|
7
|
+
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
|
|
10
|
+
var _components = require("@wordpress/components");
|
|
11
|
+
|
|
12
|
+
var _data = require("@wordpress/data");
|
|
13
|
+
|
|
14
|
+
var _dom = require("@wordpress/dom");
|
|
15
|
+
|
|
16
|
+
var _i18n = require("@wordpress/i18n");
|
|
17
|
+
|
|
18
|
+
var _icons = require("@wordpress/icons");
|
|
19
|
+
|
|
20
|
+
var _preferences = require("@wordpress/preferences");
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* WordPress dependencies
|
|
24
|
+
*/
|
|
25
|
+
const PREFERENCE_NAME = 'isInspectorControlsTabsHintVisible';
|
|
26
|
+
|
|
27
|
+
function InspectorControlsTabsHint() {
|
|
28
|
+
const isInspectorControlsTabsHintVisible = (0, _data.useSelect)(select => {
|
|
29
|
+
var _select$get;
|
|
30
|
+
|
|
31
|
+
return (_select$get = select(_preferences.store).get('core', PREFERENCE_NAME)) !== null && _select$get !== void 0 ? _select$get : true;
|
|
32
|
+
}, []);
|
|
33
|
+
const ref = (0, _element.useRef)();
|
|
34
|
+
const {
|
|
35
|
+
set: setPreference
|
|
36
|
+
} = (0, _data.useDispatch)(_preferences.store);
|
|
37
|
+
|
|
38
|
+
if (!isInspectorControlsTabsHintVisible) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return (0, _element.createElement)("div", {
|
|
43
|
+
ref: ref,
|
|
44
|
+
className: "block-editor-inspector-controls-tabs__hint"
|
|
45
|
+
}, (0, _element.createElement)("div", {
|
|
46
|
+
className: "block-editor-inspector-controls-tabs__hint-content"
|
|
47
|
+
}, (0, _i18n.__)("Looking for other block settings? They've moved to the styles tab.")), (0, _element.createElement)(_components.Button, {
|
|
48
|
+
className: "block-editor-inspector-controls-tabs__hint-dismiss",
|
|
49
|
+
icon: _icons.close,
|
|
50
|
+
iconSize: "16",
|
|
51
|
+
label: (0, _i18n.__)('Dismiss hint'),
|
|
52
|
+
onClick: () => {
|
|
53
|
+
// Retain focus when dismissing the element.
|
|
54
|
+
const previousElement = _dom.focus.tabbable.findPrevious(ref.current);
|
|
55
|
+
|
|
56
|
+
previousElement === null || previousElement === void 0 ? void 0 : previousElement.focus();
|
|
57
|
+
setPreference('core', PREFERENCE_NAME, false);
|
|
58
|
+
},
|
|
59
|
+
showTooltip: false
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=settings-tab-hint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls-tabs/settings-tab-hint.js"],"names":["PREFERENCE_NAME","InspectorControlsTabsHint","isInspectorControlsTabsHintVisible","select","preferencesStore","get","ref","set","setPreference","close","previousElement","focus","tabbable","findPrevious","current"],"mappings":";;;;;;;AAMA;;AAHA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AATA;AACA;AACA;AASA,MAAMA,eAAe,GAAG,oCAAxB;;AAEe,SAASC,yBAAT,GAAqC;AACnD,QAAMC,kCAAkC,GAAG,qBACxCC,MAAF;AAAA;;AAAA,0BACCA,MAAM,CAAEC,kBAAF,CAAN,CAA2BC,GAA3B,CAAgC,MAAhC,EAAwCL,eAAxC,CADD,qDAC8D,IAD9D;AAAA,GAD0C,EAG1C,EAH0C,CAA3C;AAMA,QAAMM,GAAG,GAAG,sBAAZ;AAEA,QAAM;AAAEC,IAAAA,GAAG,EAAEC;AAAP,MAAyB,uBAAaJ,kBAAb,CAA/B;;AACA,MAAK,CAAEF,kCAAP,EAA4C;AAC3C,WAAO,IAAP;AACA;;AAED,SACC;AAAK,IAAA,GAAG,EAAGI,GAAX;AAAiB,IAAA,SAAS,EAAC;AAA3B,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,cACD,oEADC,CADH,CADD,EAMC,4BAAC,kBAAD;AACC,IAAA,SAAS,EAAC,oDADX;AAEC,IAAA,IAAI,EAAGG,YAFR;AAGC,IAAA,QAAQ,EAAC,IAHV;AAIC,IAAA,KAAK,EAAG,cAAI,cAAJ,CAJT;AAKC,IAAA,OAAO,EAAG,MAAM;AACf;AACA,YAAMC,eAAe,GAAGC,WAAMC,QAAN,CAAeC,YAAf,CACvBP,GAAG,CAACQ,OADmB,CAAxB;;AAGAJ,MAAAA,eAAe,SAAf,IAAAA,eAAe,WAAf,YAAAA,eAAe,CAAEC,KAAjB;AACAH,MAAAA,aAAa,CAAE,MAAF,EAAUR,eAAV,EAA2B,KAA3B,CAAb;AACA,KAZF;AAaC,IAAA,WAAW,EAAG;AAbf,IAND,CADD;AAwBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { close } from '@wordpress/icons';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\nconst PREFERENCE_NAME = 'isInspectorControlsTabsHintVisible';\n\nexport default function InspectorControlsTabsHint() {\n\tconst isInspectorControlsTabsHintVisible = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get( 'core', PREFERENCE_NAME ) ?? true,\n\t\t[]\n\t);\n\n\tconst ref = useRef();\n\n\tconst { set: setPreference } = useDispatch( preferencesStore );\n\tif ( ! isInspectorControlsTabsHintVisible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div ref={ ref } className=\"block-editor-inspector-controls-tabs__hint\">\n\t\t\t<div className=\"block-editor-inspector-controls-tabs__hint-content\">\n\t\t\t\t{ __(\n\t\t\t\t\t\"Looking for other block settings? They've moved to the styles tab.\"\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Button\n\t\t\t\tclassName=\"block-editor-inspector-controls-tabs__hint-dismiss\"\n\t\t\t\ticon={ close }\n\t\t\t\ticonSize=\"16\"\n\t\t\t\tlabel={ __( 'Dismiss hint' ) }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\t// Retain focus when dismissing the element.\n\t\t\t\t\tconst previousElement = focus.tabbable.findPrevious(\n\t\t\t\t\t\tref.current\n\t\t\t\t\t);\n\t\t\t\t\tpreviousElement?.focus();\n\t\t\t\t\tsetPreference( 'core', PREFERENCE_NAME, false );\n\t\t\t\t} }\n\t\t\t\tshowTooltip={ false }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -15,6 +15,8 @@ var _positionControlsPanel = _interopRequireDefault(require("./position-controls
|
|
|
15
15
|
|
|
16
16
|
var _inspectorControls = _interopRequireDefault(require("../inspector-controls"));
|
|
17
17
|
|
|
18
|
+
var _settingsTabHint = _interopRequireDefault(require("./settings-tab-hint"));
|
|
19
|
+
|
|
18
20
|
/**
|
|
19
21
|
* Internal dependencies
|
|
20
22
|
*/
|
|
@@ -22,7 +24,7 @@ const SettingsTab = _ref => {
|
|
|
22
24
|
let {
|
|
23
25
|
showAdvancedControls = false
|
|
24
26
|
} = _ref;
|
|
25
|
-
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_inspectorControls.default.Slot, null), (0, _element.createElement)(_positionControlsPanel.default, null), showAdvancedControls && (0, _element.createElement)("div", null, (0, _element.createElement)(_advancedControlsPanel.default, null)));
|
|
27
|
+
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_inspectorControls.default.Slot, null), (0, _element.createElement)(_positionControlsPanel.default, null), showAdvancedControls && (0, _element.createElement)("div", null, (0, _element.createElement)(_advancedControlsPanel.default, null)), (0, _element.createElement)(_settingsTabHint.default, null));
|
|
26
28
|
};
|
|
27
29
|
|
|
28
30
|
var _default = SettingsTab;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls-tabs/settings-tab.js"],"names":["SettingsTab","showAdvancedControls"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls-tabs/settings-tab.js"],"names":["SettingsTab","showAdvancedControls"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AANA;AACA;AACA;AAMA,MAAMA,WAAW,GAAG;AAAA,MAAE;AAAEC,IAAAA,oBAAoB,GAAG;AAAzB,GAAF;AAAA,SACnB,qDACC,4BAAC,0BAAD,CAAmB,IAAnB,OADD,EAEC,4BAAC,8BAAD,OAFD,EAGGA,oBAAoB,IACrB,yCACC,4BAAC,8BAAD,OADD,CAJF,EAQC,4BAAC,wBAAD,OARD,CADmB;AAAA,CAApB;;eAaeD,W","sourcesContent":["/**\n * Internal dependencies\n */\nimport AdvancedControls from './advanced-controls-panel';\nimport PositionControls from './position-controls-panel';\nimport { default as InspectorControls } from '../inspector-controls';\nimport SettingsTabHint from './settings-tab-hint';\n\nconst SettingsTab = ( { showAdvancedControls = false } ) => (\n\t<>\n\t\t<InspectorControls.Slot />\n\t\t<PositionControls />\n\t\t{ showAdvancedControls && (\n\t\t\t<div>\n\t\t\t\t<AdvancedControls />\n\t\t\t</div>\n\t\t) }\n\t\t<SettingsTabHint />\n\t</>\n);\n\nexport default SettingsTab;\n"]}
|
|
@@ -251,7 +251,10 @@ function useBlockSync(_ref) {
|
|
|
251
251
|
|
|
252
252
|
previousAreBlocksDifferent = areBlocksDifferent;
|
|
253
253
|
});
|
|
254
|
-
return () =>
|
|
254
|
+
return () => {
|
|
255
|
+
subscribed.current = false;
|
|
256
|
+
unsubscribe();
|
|
257
|
+
};
|
|
255
258
|
}, [registry, clientId]);
|
|
256
259
|
}
|
|
257
260
|
//# sourceMappingURL=use-block-sync.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/provider/use-block-sync.js"],"names":["noop","useBlockSync","clientId","value","controlledBlocks","selection","controlledSelection","onChange","onInput","registry","resetBlocks","resetSelection","replaceInnerBlocks","setHasControlledInnerBlocks","__unstableMarkNextChangeAsNotPersistent","dispatch","blockEditorStore","getBlockName","getBlocks","select","isControlled","areInnerBlocksControlled","pendingChanges","incoming","outgoing","subscribed","setControlledBlocks","batch","storeBlocks","map","block","current","onInputRef","onChangeRef","includes","length","selectionStart","selectionEnd","initialPosition","getSelectionStart","getSelectionEnd","getSelectedBlocksInitialCaretPosition","isLastBlockChangePersistent","__unstableIsLastBlockChangeIgnored","blocks","isPersistent","previousAreBlocksDifferent","unsubscribe","subscribe","isStillControlled","newIsPersistent","newBlocks","areBlocksDifferent","didPersistenceChange","push","updateParent"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useRegistry, useSelect } from '@wordpress/data';\nimport { cloneBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\n/**\n * A function to call when the block value has been updated in the block-editor\n * store.\n *\n * @callback onBlockUpdate\n * @param {Object[]} blocks The updated blocks.\n * @param {Object} options The updated block options, such as selectionStart\n * and selectionEnd.\n */\n\n/**\n * useBlockSync is a side effect which handles bidirectional sync between the\n * block-editor store and a controlling data source which provides blocks. This\n * is most commonly used by the BlockEditorProvider to synchronize the contents\n * of the block-editor store with the root entity, like a post.\n *\n * Another example would be the template part block, which provides blocks from\n * a separate entity data source than a root entity. This hook syncs edits to\n * the template part in the block editor back to the entity and vice-versa.\n *\n * Here are some of its basic functions:\n * - Initalizes the block-editor store for the given clientID to the blocks\n * given via props.\n * - Adds incoming changes (like undo) to the block-editor store.\n * - Adds outgoing changes (like editing content) to the controlling entity,\n * determining if a change should be considered persistent or not.\n * - Handles edge cases and race conditions which occur in those operations.\n * - Ignores changes which happen to other entities (like nested inner block\n * controllers.\n * - Passes selection state from the block-editor store to the controlling entity.\n *\n * @param {Object} props Props for the block sync hook\n * @param {string} props.clientId The client ID of the inner block controller.\n * If none is passed, then it is assumed to be a\n * root controller rather than an inner block\n * controller.\n * @param {Object[]} props.value The control value for the blocks. This value\n * is used to initalize the block-editor store\n * and for resetting the blocks to incoming\n * changes like undo.\n * @param {Object} props.selection The selection state responsible to restore the selection on undo/redo.\n * @param {onBlockUpdate} props.onChange Function to call when a persistent\n * change has been made in the block-editor blocks\n * for the given clientId. For example, after\n * this function is called, an entity is marked\n * dirty because it has changes to save.\n * @param {onBlockUpdate} props.onInput Function to call when a non-persistent\n * change has been made in the block-editor blocks\n * for the given clientId. When this is called,\n * controlling sources do not become dirty.\n */\nexport default function useBlockSync( {\n\tclientId = null,\n\tvalue: controlledBlocks,\n\tselection: controlledSelection,\n\tonChange = noop,\n\tonInput = noop,\n} ) {\n\tconst registry = useRegistry();\n\n\tconst {\n\t\tresetBlocks,\n\t\tresetSelection,\n\t\treplaceInnerBlocks,\n\t\tsetHasControlledInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = registry.dispatch( blockEditorStore );\n\tconst { getBlockName, getBlocks } = registry.select( blockEditorStore );\n\tconst isControlled = useSelect(\n\t\t( select ) => {\n\t\t\treturn (\n\t\t\t\t! clientId ||\n\t\t\t\tselect( blockEditorStore ).areInnerBlocksControlled( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst pendingChanges = useRef( { incoming: null, outgoing: [] } );\n\tconst subscribed = useRef( false );\n\n\tconst setControlledBlocks = () => {\n\t\tif ( ! controlledBlocks ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't need to persist this change because we only replace\n\t\t// controlled inner blocks when the change was caused by an entity,\n\t\t// and so it would already be persisted.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tif ( clientId ) {\n\t\t\t// It is important to batch here because otherwise,\n\t\t\t// as soon as `setHasControlledInnerBlocks` is called\n\t\t\t// the effect to restore might be triggered\n\t\t\t// before the actual blocks get set properly in state.\n\t\t\tregistry.batch( () => {\n\t\t\t\tsetHasControlledInnerBlocks( clientId, true );\n\t\t\t\tconst storeBlocks = controlledBlocks.map( ( block ) =>\n\t\t\t\t\tcloneBlock( block )\n\t\t\t\t);\n\t\t\t\tif ( subscribed.current ) {\n\t\t\t\t\tpendingChanges.current.incoming = storeBlocks;\n\t\t\t\t}\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\treplaceInnerBlocks( clientId, storeBlocks );\n\t\t\t} );\n\t\t} else {\n\t\t\tif ( subscribed.current ) {\n\t\t\t\tpendingChanges.current.incoming = controlledBlocks;\n\t\t\t}\n\t\t\tresetBlocks( controlledBlocks );\n\t\t}\n\t};\n\n\t// Add a subscription to the block-editor registry to detect when changes\n\t// have been made. This lets us inform the data source of changes. This\n\t// is an effect so that the subscriber can run synchronously without\n\t// waiting for React renders for changes.\n\tconst onInputRef = useRef( onInput );\n\tconst onChangeRef = useRef( onChange );\n\tuseEffect( () => {\n\t\tonInputRef.current = onInput;\n\t\tonChangeRef.current = onChange;\n\t}, [ onInput, onChange ] );\n\n\t// Determine if blocks need to be reset when they change.\n\tuseEffect( () => {\n\t\tif ( pendingChanges.current.outgoing.includes( controlledBlocks ) ) {\n\t\t\t// Skip block reset if the value matches expected outbound sync\n\t\t\t// triggered by this component by a preceding change detection.\n\t\t\t// Only skip if the value matches expectation, since a reset should\n\t\t\t// still occur if the value is modified (not equal by reference),\n\t\t\t// to allow that the consumer may apply modifications to reflect\n\t\t\t// back on the editor.\n\t\t\tif (\n\t\t\t\tpendingChanges.current.outgoing[\n\t\t\t\t\tpendingChanges.current.outgoing.length - 1\n\t\t\t\t] === controlledBlocks\n\t\t\t) {\n\t\t\t\tpendingChanges.current.outgoing = [];\n\t\t\t}\n\t\t} else if ( getBlocks( clientId ) !== controlledBlocks ) {\n\t\t\t// Reset changing value in all other cases than the sync described\n\t\t\t// above. Since this can be reached in an update following an out-\n\t\t\t// bound sync, unset the outbound value to avoid considering it in\n\t\t\t// subsequent renders.\n\t\t\tpendingChanges.current.outgoing = [];\n\t\t\tsetControlledBlocks();\n\n\t\t\tif ( controlledSelection ) {\n\t\t\t\tresetSelection(\n\t\t\t\t\tcontrolledSelection.selectionStart,\n\t\t\t\t\tcontrolledSelection.selectionEnd,\n\t\t\t\t\tcontrolledSelection.initialPosition\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [ controlledBlocks, clientId ] );\n\n\tuseEffect( () => {\n\t\t// When the block becomes uncontrolled, it means its inner state has been reset\n\t\t// we need to take the blocks again from the external value property.\n\t\tif ( ! isControlled ) {\n\t\t\tpendingChanges.current.outgoing = [];\n\t\t\tsetControlledBlocks();\n\t\t}\n\t}, [ isControlled ] );\n\n\tuseEffect( () => {\n\t\tconst {\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\tisLastBlockChangePersistent,\n\t\t\t__unstableIsLastBlockChangeIgnored,\n\t\t\tareInnerBlocksControlled,\n\t\t} = registry.select( blockEditorStore );\n\n\t\tlet blocks = getBlocks( clientId );\n\t\tlet isPersistent = isLastBlockChangePersistent();\n\t\tlet previousAreBlocksDifferent = false;\n\n\t\tsubscribed.current = true;\n\t\tconst unsubscribe = registry.subscribe( () => {\n\t\t\t// Sometimes, when changing block lists, lingering subscriptions\n\t\t\t// might trigger before they are cleaned up. If the block for which\n\t\t\t// the subscription runs is no longer in the store, this would clear\n\t\t\t// its parent entity's block list. To avoid this, we bail out if\n\t\t\t// the subscription is triggering for a block (`clientId !== null`)\n\t\t\t// and its block name can't be found because it's not on the list.\n\t\t\t// (`getBlockName( clientId ) === null`).\n\t\t\tif ( clientId !== null && getBlockName( clientId ) === null )\n\t\t\t\treturn;\n\n\t\t\t// When RESET_BLOCKS on parent blocks get called, the controlled blocks\n\t\t\t// can reset to uncontrolled, in these situations, it means we need to populate\n\t\t\t// the blocks again from the external blocks (the value property here)\n\t\t\t// and we should stop triggering onChange\n\t\t\tconst isStillControlled =\n\t\t\t\t! clientId || areInnerBlocksControlled( clientId );\n\t\t\tif ( ! isStillControlled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst newIsPersistent = isLastBlockChangePersistent();\n\t\t\tconst newBlocks = getBlocks( clientId );\n\t\t\tconst areBlocksDifferent = newBlocks !== blocks;\n\t\t\tblocks = newBlocks;\n\n\t\t\tif (\n\t\t\t\tareBlocksDifferent &&\n\t\t\t\t( pendingChanges.current.incoming ||\n\t\t\t\t\t__unstableIsLastBlockChangeIgnored() )\n\t\t\t) {\n\t\t\t\tpendingChanges.current.incoming = null;\n\t\t\t\tisPersistent = newIsPersistent;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Since we often dispatch an action to mark the previous action as\n\t\t\t// persistent, we need to make sure that the blocks changed on the\n\t\t\t// previous action before committing the change.\n\t\t\tconst didPersistenceChange =\n\t\t\t\tpreviousAreBlocksDifferent &&\n\t\t\t\t! areBlocksDifferent &&\n\t\t\t\tnewIsPersistent &&\n\t\t\t\t! isPersistent;\n\n\t\t\tif ( areBlocksDifferent || didPersistenceChange ) {\n\t\t\t\tisPersistent = newIsPersistent;\n\t\t\t\t// We know that onChange/onInput will update controlledBlocks.\n\t\t\t\t// We need to be aware that it was caused by an outgoing change\n\t\t\t\t// so that we do not treat it as an incoming change later on,\n\t\t\t\t// which would cause a block reset.\n\t\t\t\tpendingChanges.current.outgoing.push( blocks );\n\n\t\t\t\t// Inform the controlling entity that changes have been made to\n\t\t\t\t// the block-editor store they should be aware about.\n\t\t\t\tconst updateParent = isPersistent\n\t\t\t\t\t? onChangeRef.current\n\t\t\t\t\t: onInputRef.current;\n\t\t\t\tupdateParent( blocks, {\n\t\t\t\t\tselection: {\n\t\t\t\t\t\tselectionStart: getSelectionStart(),\n\t\t\t\t\t\tselectionEnd: getSelectionEnd(),\n\t\t\t\t\t\tinitialPosition:\n\t\t\t\t\t\t\tgetSelectedBlocksInitialCaretPosition(),\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t\tpreviousAreBlocksDifferent = areBlocksDifferent;\n\t\t} );\n\n\t\treturn () => unsubscribe();\n\t}, [ registry, clientId ] );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/provider/use-block-sync.js"],"names":["noop","useBlockSync","clientId","value","controlledBlocks","selection","controlledSelection","onChange","onInput","registry","resetBlocks","resetSelection","replaceInnerBlocks","setHasControlledInnerBlocks","__unstableMarkNextChangeAsNotPersistent","dispatch","blockEditorStore","getBlockName","getBlocks","select","isControlled","areInnerBlocksControlled","pendingChanges","incoming","outgoing","subscribed","setControlledBlocks","batch","storeBlocks","map","block","current","onInputRef","onChangeRef","includes","length","selectionStart","selectionEnd","initialPosition","getSelectionStart","getSelectionEnd","getSelectedBlocksInitialCaretPosition","isLastBlockChangePersistent","__unstableIsLastBlockChangeIgnored","blocks","isPersistent","previousAreBlocksDifferent","unsubscribe","subscribe","isStillControlled","newIsPersistent","newBlocks","areBlocksDifferent","didPersistenceChange","push","updateParent"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useRegistry, useSelect } from '@wordpress/data';\nimport { cloneBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\n/**\n * A function to call when the block value has been updated in the block-editor\n * store.\n *\n * @callback onBlockUpdate\n * @param {Object[]} blocks The updated blocks.\n * @param {Object} options The updated block options, such as selectionStart\n * and selectionEnd.\n */\n\n/**\n * useBlockSync is a side effect which handles bidirectional sync between the\n * block-editor store and a controlling data source which provides blocks. This\n * is most commonly used by the BlockEditorProvider to synchronize the contents\n * of the block-editor store with the root entity, like a post.\n *\n * Another example would be the template part block, which provides blocks from\n * a separate entity data source than a root entity. This hook syncs edits to\n * the template part in the block editor back to the entity and vice-versa.\n *\n * Here are some of its basic functions:\n * - Initalizes the block-editor store for the given clientID to the blocks\n * given via props.\n * - Adds incoming changes (like undo) to the block-editor store.\n * - Adds outgoing changes (like editing content) to the controlling entity,\n * determining if a change should be considered persistent or not.\n * - Handles edge cases and race conditions which occur in those operations.\n * - Ignores changes which happen to other entities (like nested inner block\n * controllers.\n * - Passes selection state from the block-editor store to the controlling entity.\n *\n * @param {Object} props Props for the block sync hook\n * @param {string} props.clientId The client ID of the inner block controller.\n * If none is passed, then it is assumed to be a\n * root controller rather than an inner block\n * controller.\n * @param {Object[]} props.value The control value for the blocks. This value\n * is used to initalize the block-editor store\n * and for resetting the blocks to incoming\n * changes like undo.\n * @param {Object} props.selection The selection state responsible to restore the selection on undo/redo.\n * @param {onBlockUpdate} props.onChange Function to call when a persistent\n * change has been made in the block-editor blocks\n * for the given clientId. For example, after\n * this function is called, an entity is marked\n * dirty because it has changes to save.\n * @param {onBlockUpdate} props.onInput Function to call when a non-persistent\n * change has been made in the block-editor blocks\n * for the given clientId. When this is called,\n * controlling sources do not become dirty.\n */\nexport default function useBlockSync( {\n\tclientId = null,\n\tvalue: controlledBlocks,\n\tselection: controlledSelection,\n\tonChange = noop,\n\tonInput = noop,\n} ) {\n\tconst registry = useRegistry();\n\n\tconst {\n\t\tresetBlocks,\n\t\tresetSelection,\n\t\treplaceInnerBlocks,\n\t\tsetHasControlledInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = registry.dispatch( blockEditorStore );\n\tconst { getBlockName, getBlocks } = registry.select( blockEditorStore );\n\tconst isControlled = useSelect(\n\t\t( select ) => {\n\t\t\treturn (\n\t\t\t\t! clientId ||\n\t\t\t\tselect( blockEditorStore ).areInnerBlocksControlled( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst pendingChanges = useRef( { incoming: null, outgoing: [] } );\n\tconst subscribed = useRef( false );\n\n\tconst setControlledBlocks = () => {\n\t\tif ( ! controlledBlocks ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't need to persist this change because we only replace\n\t\t// controlled inner blocks when the change was caused by an entity,\n\t\t// and so it would already be persisted.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tif ( clientId ) {\n\t\t\t// It is important to batch here because otherwise,\n\t\t\t// as soon as `setHasControlledInnerBlocks` is called\n\t\t\t// the effect to restore might be triggered\n\t\t\t// before the actual blocks get set properly in state.\n\t\t\tregistry.batch( () => {\n\t\t\t\tsetHasControlledInnerBlocks( clientId, true );\n\t\t\t\tconst storeBlocks = controlledBlocks.map( ( block ) =>\n\t\t\t\t\tcloneBlock( block )\n\t\t\t\t);\n\t\t\t\tif ( subscribed.current ) {\n\t\t\t\t\tpendingChanges.current.incoming = storeBlocks;\n\t\t\t\t}\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\treplaceInnerBlocks( clientId, storeBlocks );\n\t\t\t} );\n\t\t} else {\n\t\t\tif ( subscribed.current ) {\n\t\t\t\tpendingChanges.current.incoming = controlledBlocks;\n\t\t\t}\n\t\t\tresetBlocks( controlledBlocks );\n\t\t}\n\t};\n\n\t// Add a subscription to the block-editor registry to detect when changes\n\t// have been made. This lets us inform the data source of changes. This\n\t// is an effect so that the subscriber can run synchronously without\n\t// waiting for React renders for changes.\n\tconst onInputRef = useRef( onInput );\n\tconst onChangeRef = useRef( onChange );\n\tuseEffect( () => {\n\t\tonInputRef.current = onInput;\n\t\tonChangeRef.current = onChange;\n\t}, [ onInput, onChange ] );\n\n\t// Determine if blocks need to be reset when they change.\n\tuseEffect( () => {\n\t\tif ( pendingChanges.current.outgoing.includes( controlledBlocks ) ) {\n\t\t\t// Skip block reset if the value matches expected outbound sync\n\t\t\t// triggered by this component by a preceding change detection.\n\t\t\t// Only skip if the value matches expectation, since a reset should\n\t\t\t// still occur if the value is modified (not equal by reference),\n\t\t\t// to allow that the consumer may apply modifications to reflect\n\t\t\t// back on the editor.\n\t\t\tif (\n\t\t\t\tpendingChanges.current.outgoing[\n\t\t\t\t\tpendingChanges.current.outgoing.length - 1\n\t\t\t\t] === controlledBlocks\n\t\t\t) {\n\t\t\t\tpendingChanges.current.outgoing = [];\n\t\t\t}\n\t\t} else if ( getBlocks( clientId ) !== controlledBlocks ) {\n\t\t\t// Reset changing value in all other cases than the sync described\n\t\t\t// above. Since this can be reached in an update following an out-\n\t\t\t// bound sync, unset the outbound value to avoid considering it in\n\t\t\t// subsequent renders.\n\t\t\tpendingChanges.current.outgoing = [];\n\t\t\tsetControlledBlocks();\n\n\t\t\tif ( controlledSelection ) {\n\t\t\t\tresetSelection(\n\t\t\t\t\tcontrolledSelection.selectionStart,\n\t\t\t\t\tcontrolledSelection.selectionEnd,\n\t\t\t\t\tcontrolledSelection.initialPosition\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [ controlledBlocks, clientId ] );\n\n\tuseEffect( () => {\n\t\t// When the block becomes uncontrolled, it means its inner state has been reset\n\t\t// we need to take the blocks again from the external value property.\n\t\tif ( ! isControlled ) {\n\t\t\tpendingChanges.current.outgoing = [];\n\t\t\tsetControlledBlocks();\n\t\t}\n\t}, [ isControlled ] );\n\n\tuseEffect( () => {\n\t\tconst {\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\tisLastBlockChangePersistent,\n\t\t\t__unstableIsLastBlockChangeIgnored,\n\t\t\tareInnerBlocksControlled,\n\t\t} = registry.select( blockEditorStore );\n\n\t\tlet blocks = getBlocks( clientId );\n\t\tlet isPersistent = isLastBlockChangePersistent();\n\t\tlet previousAreBlocksDifferent = false;\n\n\t\tsubscribed.current = true;\n\t\tconst unsubscribe = registry.subscribe( () => {\n\t\t\t// Sometimes, when changing block lists, lingering subscriptions\n\t\t\t// might trigger before they are cleaned up. If the block for which\n\t\t\t// the subscription runs is no longer in the store, this would clear\n\t\t\t// its parent entity's block list. To avoid this, we bail out if\n\t\t\t// the subscription is triggering for a block (`clientId !== null`)\n\t\t\t// and its block name can't be found because it's not on the list.\n\t\t\t// (`getBlockName( clientId ) === null`).\n\t\t\tif ( clientId !== null && getBlockName( clientId ) === null )\n\t\t\t\treturn;\n\n\t\t\t// When RESET_BLOCKS on parent blocks get called, the controlled blocks\n\t\t\t// can reset to uncontrolled, in these situations, it means we need to populate\n\t\t\t// the blocks again from the external blocks (the value property here)\n\t\t\t// and we should stop triggering onChange\n\t\t\tconst isStillControlled =\n\t\t\t\t! clientId || areInnerBlocksControlled( clientId );\n\t\t\tif ( ! isStillControlled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst newIsPersistent = isLastBlockChangePersistent();\n\t\t\tconst newBlocks = getBlocks( clientId );\n\t\t\tconst areBlocksDifferent = newBlocks !== blocks;\n\t\t\tblocks = newBlocks;\n\n\t\t\tif (\n\t\t\t\tareBlocksDifferent &&\n\t\t\t\t( pendingChanges.current.incoming ||\n\t\t\t\t\t__unstableIsLastBlockChangeIgnored() )\n\t\t\t) {\n\t\t\t\tpendingChanges.current.incoming = null;\n\t\t\t\tisPersistent = newIsPersistent;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Since we often dispatch an action to mark the previous action as\n\t\t\t// persistent, we need to make sure that the blocks changed on the\n\t\t\t// previous action before committing the change.\n\t\t\tconst didPersistenceChange =\n\t\t\t\tpreviousAreBlocksDifferent &&\n\t\t\t\t! areBlocksDifferent &&\n\t\t\t\tnewIsPersistent &&\n\t\t\t\t! isPersistent;\n\n\t\t\tif ( areBlocksDifferent || didPersistenceChange ) {\n\t\t\t\tisPersistent = newIsPersistent;\n\t\t\t\t// We know that onChange/onInput will update controlledBlocks.\n\t\t\t\t// We need to be aware that it was caused by an outgoing change\n\t\t\t\t// so that we do not treat it as an incoming change later on,\n\t\t\t\t// which would cause a block reset.\n\t\t\t\tpendingChanges.current.outgoing.push( blocks );\n\n\t\t\t\t// Inform the controlling entity that changes have been made to\n\t\t\t\t// the block-editor store they should be aware about.\n\t\t\t\tconst updateParent = isPersistent\n\t\t\t\t\t? onChangeRef.current\n\t\t\t\t\t: onInputRef.current;\n\t\t\t\tupdateParent( blocks, {\n\t\t\t\t\tselection: {\n\t\t\t\t\t\tselectionStart: getSelectionStart(),\n\t\t\t\t\t\tselectionEnd: getSelectionEnd(),\n\t\t\t\t\t\tinitialPosition:\n\t\t\t\t\t\t\tgetSelectedBlocksInitialCaretPosition(),\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t\tpreviousAreBlocksDifferent = areBlocksDifferent;\n\t\t} );\n\n\t\treturn () => {\n\t\t\tsubscribed.current = false;\n\t\t\tunsubscribe();\n\t\t};\n\t}, [ registry, clientId ] );\n}\n"]}
|
package/build/store/defaults.js
CHANGED
|
@@ -157,6 +157,18 @@ const SETTINGS_DEFAULTS = {
|
|
|
157
157
|
__experimentalBlockPatternCategories: [],
|
|
158
158
|
__unstableGalleryWithImageBlocks: false,
|
|
159
159
|
__unstableIsPreviewMode: false,
|
|
160
|
+
// This setting is `private` now with `lock` API.
|
|
161
|
+
blockInspectorAnimation: {
|
|
162
|
+
'core/navigation': {
|
|
163
|
+
enterDirection: 'leftToRight'
|
|
164
|
+
},
|
|
165
|
+
'core/navigation-submenu': {
|
|
166
|
+
enterDirection: 'rightToLeft'
|
|
167
|
+
},
|
|
168
|
+
'core/navigation-link': {
|
|
169
|
+
enterDirection: 'rightToLeft'
|
|
170
|
+
}
|
|
171
|
+
},
|
|
160
172
|
generateAnchors: false,
|
|
161
173
|
// gradients setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.
|
|
162
174
|
// The setting is only kept for backward compatibility purposes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/store/defaults.js"],"names":["PREFERENCES_DEFAULTS","insertUsage","SETTINGS_DEFAULTS","alignWide","supportsLayout","colors","name","slug","color","fontSizes","size","imageDefaultSize","imageSizes","imageEditing","maxWidth","allowedBlockTypes","maxUploadFileSize","allowedMimeTypes","canLockBlocks","enableOpenverseMediaCategory","clearBlockSelection","__experimentalCanUserUseUnfilteredHTML","__experimentalBlockDirectory","__mobileEnablePageTemplates","__experimentalBlockPatterns","__experimentalBlockPatternCategories","__unstableGalleryWithImageBlocks","__unstableIsPreviewMode","generateAnchors","gradients","gradient","__unstableResolvedAssets","styles","scripts"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\n\nexport const PREFERENCES_DEFAULTS = {\n\tinsertUsage: {},\n};\n\n/**\n * The default editor settings\n *\n * @typedef {Object} SETTINGS_DEFAULT\n * @property {boolean} alignWide Enable/Disable Wide/Full Alignments\n * @property {boolean} supportsLayout Enable/disable layouts support in container blocks.\n * @property {boolean} imageEditing Image Editing settings set to false to disable.\n * @property {Array} imageSizes Available image sizes\n * @property {number} maxWidth Max width to constraint resizing\n * @property {boolean|Array} allowedBlockTypes Allowed block types\n * @property {boolean} hasFixedToolbar Whether or not the editor toolbar is fixed\n * @property {boolean} focusMode Whether the focus mode is enabled or not\n * @property {Array} styles Editor Styles\n * @property {boolean} keepCaretInsideBlock Whether caret should move between blocks in edit mode\n * @property {string} bodyPlaceholder Empty post placeholder\n * @property {string} titlePlaceholder Empty title placeholder\n * @property {boolean} canLockBlocks Whether the user can manage Block Lock state\n * @property {boolean} codeEditingEnabled Whether or not the user can switch to the code editor\n * @property {boolean} generateAnchors Enable/Disable auto anchor generation for Heading blocks\n * @property {boolean} enableOpenverseMediaCategory Enable/Disable the Openverse media category in the inserter.\n * @property {boolean} clearBlockSelection Whether the block editor should clear selection on mousedown when a block is not clicked.\n * @property {boolean} __experimentalCanUserUseUnfilteredHTML Whether the user should be able to use unfiltered HTML or the HTML should be filtered e.g., to remove elements considered insecure like iframes.\n * @property {boolean} __experimentalBlockDirectory Whether the user has enabled the Block Directory\n * @property {Array} __experimentalBlockPatterns Array of objects representing the block patterns\n * @property {Array} __experimentalBlockPatternCategories Array of objects representing the block pattern categories\n * @property {boolean} __unstableGalleryWithImageBlocks Whether the user has enabled the refactored gallery block which uses InnerBlocks\n */\nexport const SETTINGS_DEFAULTS = {\n\talignWide: false,\n\tsupportsLayout: true,\n\n\t// colors setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.\n\t// The setting is only kept for backward compatibility purposes.\n\tcolors: [\n\t\t{\n\t\t\tname: __( 'Black' ),\n\t\t\tslug: 'black',\n\t\t\tcolor: '#000000',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Cyan bluish gray' ),\n\t\t\tslug: 'cyan-bluish-gray',\n\t\t\tcolor: '#abb8c3',\n\t\t},\n\t\t{\n\t\t\tname: __( 'White' ),\n\t\t\tslug: 'white',\n\t\t\tcolor: '#ffffff',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Pale pink' ),\n\t\t\tslug: 'pale-pink',\n\t\t\tcolor: '#f78da7',\n\t\t},\n\t\t{ name: __( 'Vivid red' ), slug: 'vivid-red', color: '#cf2e2e' },\n\t\t{\n\t\t\tname: __( 'Luminous vivid orange' ),\n\t\t\tslug: 'luminous-vivid-orange',\n\t\t\tcolor: '#ff6900',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous vivid amber' ),\n\t\t\tslug: 'luminous-vivid-amber',\n\t\t\tcolor: '#fcb900',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Light green cyan' ),\n\t\t\tslug: 'light-green-cyan',\n\t\t\tcolor: '#7bdcb5',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Vivid green cyan' ),\n\t\t\tslug: 'vivid-green-cyan',\n\t\t\tcolor: '#00d084',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Pale cyan blue' ),\n\t\t\tslug: 'pale-cyan-blue',\n\t\t\tcolor: '#8ed1fc',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Vivid cyan blue' ),\n\t\t\tslug: 'vivid-cyan-blue',\n\t\t\tcolor: '#0693e3',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Vivid purple' ),\n\t\t\tslug: 'vivid-purple',\n\t\t\tcolor: '#9b51e0',\n\t\t},\n\t],\n\t// fontSizes setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.\n\t// The setting is only kept for backward compatibility purposes.\n\tfontSizes: [\n\t\t{\n\t\t\tname: _x( 'Small', 'font size name' ),\n\t\t\tsize: 13,\n\t\t\tslug: 'small',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Normal', 'font size name' ),\n\t\t\tsize: 16,\n\t\t\tslug: 'normal',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Medium', 'font size name' ),\n\t\t\tsize: 20,\n\t\t\tslug: 'medium',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Large', 'font size name' ),\n\t\t\tsize: 36,\n\t\t\tslug: 'large',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Huge', 'font size name' ),\n\t\t\tsize: 42,\n\t\t\tslug: 'huge',\n\t\t},\n\t],\n\n\t// Image default size slug.\n\timageDefaultSize: 'large',\n\n\timageSizes: [\n\t\t{ slug: 'thumbnail', name: __( 'Thumbnail' ) },\n\t\t{ slug: 'medium', name: __( 'Medium' ) },\n\t\t{ slug: 'large', name: __( 'Large' ) },\n\t\t{ slug: 'full', name: __( 'Full Size' ) },\n\t],\n\n\t// Allow plugin to disable Image Editor if need be.\n\timageEditing: true,\n\n\t// This is current max width of the block inner area\n\t// It's used to constraint image resizing and this value could be overridden later by themes\n\tmaxWidth: 580,\n\n\t// Allowed block types for the editor, defaulting to true (all supported).\n\tallowedBlockTypes: true,\n\n\t// Maximum upload size in bytes allowed for the site.\n\tmaxUploadFileSize: 0,\n\n\t// List of allowed mime types and file extensions.\n\tallowedMimeTypes: null,\n\n\t// Allows to disable block locking interface.\n\tcanLockBlocks: true,\n\n\t// Allows to disable Openverse media category in the inserter.\n\tenableOpenverseMediaCategory: true,\n\n\tclearBlockSelection: true,\n\n\t__experimentalCanUserUseUnfilteredHTML: false,\n\t__experimentalBlockDirectory: false,\n\t__mobileEnablePageTemplates: false,\n\t__experimentalBlockPatterns: [],\n\t__experimentalBlockPatternCategories: [],\n\t__unstableGalleryWithImageBlocks: false,\n\t__unstableIsPreviewMode: false,\n\n\tgenerateAnchors: false,\n\t// gradients setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.\n\t// The setting is only kept for backward compatibility purposes.\n\tgradients: [\n\t\t{\n\t\t\tname: __( 'Vivid cyan blue to vivid purple' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',\n\t\t\tslug: 'vivid-cyan-blue-to-vivid-purple',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Light green cyan to vivid green cyan' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%)',\n\t\t\tslug: 'light-green-cyan-to-vivid-green-cyan',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous vivid amber to luminous vivid orange' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%)',\n\t\t\tslug: 'luminous-vivid-amber-to-luminous-vivid-orange',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous vivid orange to vivid red' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%)',\n\t\t\tslug: 'luminous-vivid-orange-to-vivid-red',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Very light gray to cyan bluish gray' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%)',\n\t\t\tslug: 'very-light-gray-to-cyan-bluish-gray',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Cool to warm spectrum' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%)',\n\t\t\tslug: 'cool-to-warm-spectrum',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Blush light purple' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%)',\n\t\t\tslug: 'blush-light-purple',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Blush bordeaux' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%)',\n\t\t\tslug: 'blush-bordeaux',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous dusk' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%)',\n\t\t\tslug: 'luminous-dusk',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Pale ocean' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%)',\n\t\t\tslug: 'pale-ocean',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Electric grass' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%)',\n\t\t\tslug: 'electric-grass',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Midnight' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%)',\n\t\t\tslug: 'midnight',\n\t\t},\n\t],\n\n\t__unstableResolvedAssets: { styles: [], scripts: [] },\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/store/defaults.js"],"names":["PREFERENCES_DEFAULTS","insertUsage","SETTINGS_DEFAULTS","alignWide","supportsLayout","colors","name","slug","color","fontSizes","size","imageDefaultSize","imageSizes","imageEditing","maxWidth","allowedBlockTypes","maxUploadFileSize","allowedMimeTypes","canLockBlocks","enableOpenverseMediaCategory","clearBlockSelection","__experimentalCanUserUseUnfilteredHTML","__experimentalBlockDirectory","__mobileEnablePageTemplates","__experimentalBlockPatterns","__experimentalBlockPatternCategories","__unstableGalleryWithImageBlocks","__unstableIsPreviewMode","blockInspectorAnimation","enterDirection","generateAnchors","gradients","gradient","__unstableResolvedAssets","styles","scripts"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\n\nexport const PREFERENCES_DEFAULTS = {\n\tinsertUsage: {},\n};\n\n/**\n * The default editor settings\n *\n * @typedef {Object} SETTINGS_DEFAULT\n * @property {boolean} alignWide Enable/Disable Wide/Full Alignments\n * @property {boolean} supportsLayout Enable/disable layouts support in container blocks.\n * @property {boolean} imageEditing Image Editing settings set to false to disable.\n * @property {Array} imageSizes Available image sizes\n * @property {number} maxWidth Max width to constraint resizing\n * @property {boolean|Array} allowedBlockTypes Allowed block types\n * @property {boolean} hasFixedToolbar Whether or not the editor toolbar is fixed\n * @property {boolean} focusMode Whether the focus mode is enabled or not\n * @property {Array} styles Editor Styles\n * @property {boolean} keepCaretInsideBlock Whether caret should move between blocks in edit mode\n * @property {string} bodyPlaceholder Empty post placeholder\n * @property {string} titlePlaceholder Empty title placeholder\n * @property {boolean} canLockBlocks Whether the user can manage Block Lock state\n * @property {boolean} codeEditingEnabled Whether or not the user can switch to the code editor\n * @property {boolean} generateAnchors Enable/Disable auto anchor generation for Heading blocks\n * @property {boolean} enableOpenverseMediaCategory Enable/Disable the Openverse media category in the inserter.\n * @property {boolean} clearBlockSelection Whether the block editor should clear selection on mousedown when a block is not clicked.\n * @property {boolean} __experimentalCanUserUseUnfilteredHTML Whether the user should be able to use unfiltered HTML or the HTML should be filtered e.g., to remove elements considered insecure like iframes.\n * @property {boolean} __experimentalBlockDirectory Whether the user has enabled the Block Directory\n * @property {Array} __experimentalBlockPatterns Array of objects representing the block patterns\n * @property {Array} __experimentalBlockPatternCategories Array of objects representing the block pattern categories\n * @property {boolean} __unstableGalleryWithImageBlocks Whether the user has enabled the refactored gallery block which uses InnerBlocks\n */\nexport const SETTINGS_DEFAULTS = {\n\talignWide: false,\n\tsupportsLayout: true,\n\n\t// colors setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.\n\t// The setting is only kept for backward compatibility purposes.\n\tcolors: [\n\t\t{\n\t\t\tname: __( 'Black' ),\n\t\t\tslug: 'black',\n\t\t\tcolor: '#000000',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Cyan bluish gray' ),\n\t\t\tslug: 'cyan-bluish-gray',\n\t\t\tcolor: '#abb8c3',\n\t\t},\n\t\t{\n\t\t\tname: __( 'White' ),\n\t\t\tslug: 'white',\n\t\t\tcolor: '#ffffff',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Pale pink' ),\n\t\t\tslug: 'pale-pink',\n\t\t\tcolor: '#f78da7',\n\t\t},\n\t\t{ name: __( 'Vivid red' ), slug: 'vivid-red', color: '#cf2e2e' },\n\t\t{\n\t\t\tname: __( 'Luminous vivid orange' ),\n\t\t\tslug: 'luminous-vivid-orange',\n\t\t\tcolor: '#ff6900',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous vivid amber' ),\n\t\t\tslug: 'luminous-vivid-amber',\n\t\t\tcolor: '#fcb900',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Light green cyan' ),\n\t\t\tslug: 'light-green-cyan',\n\t\t\tcolor: '#7bdcb5',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Vivid green cyan' ),\n\t\t\tslug: 'vivid-green-cyan',\n\t\t\tcolor: '#00d084',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Pale cyan blue' ),\n\t\t\tslug: 'pale-cyan-blue',\n\t\t\tcolor: '#8ed1fc',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Vivid cyan blue' ),\n\t\t\tslug: 'vivid-cyan-blue',\n\t\t\tcolor: '#0693e3',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Vivid purple' ),\n\t\t\tslug: 'vivid-purple',\n\t\t\tcolor: '#9b51e0',\n\t\t},\n\t],\n\t// fontSizes setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.\n\t// The setting is only kept for backward compatibility purposes.\n\tfontSizes: [\n\t\t{\n\t\t\tname: _x( 'Small', 'font size name' ),\n\t\t\tsize: 13,\n\t\t\tslug: 'small',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Normal', 'font size name' ),\n\t\t\tsize: 16,\n\t\t\tslug: 'normal',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Medium', 'font size name' ),\n\t\t\tsize: 20,\n\t\t\tslug: 'medium',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Large', 'font size name' ),\n\t\t\tsize: 36,\n\t\t\tslug: 'large',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Huge', 'font size name' ),\n\t\t\tsize: 42,\n\t\t\tslug: 'huge',\n\t\t},\n\t],\n\n\t// Image default size slug.\n\timageDefaultSize: 'large',\n\n\timageSizes: [\n\t\t{ slug: 'thumbnail', name: __( 'Thumbnail' ) },\n\t\t{ slug: 'medium', name: __( 'Medium' ) },\n\t\t{ slug: 'large', name: __( 'Large' ) },\n\t\t{ slug: 'full', name: __( 'Full Size' ) },\n\t],\n\n\t// Allow plugin to disable Image Editor if need be.\n\timageEditing: true,\n\n\t// This is current max width of the block inner area\n\t// It's used to constraint image resizing and this value could be overridden later by themes\n\tmaxWidth: 580,\n\n\t// Allowed block types for the editor, defaulting to true (all supported).\n\tallowedBlockTypes: true,\n\n\t// Maximum upload size in bytes allowed for the site.\n\tmaxUploadFileSize: 0,\n\n\t// List of allowed mime types and file extensions.\n\tallowedMimeTypes: null,\n\n\t// Allows to disable block locking interface.\n\tcanLockBlocks: true,\n\n\t// Allows to disable Openverse media category in the inserter.\n\tenableOpenverseMediaCategory: true,\n\n\tclearBlockSelection: true,\n\n\t__experimentalCanUserUseUnfilteredHTML: false,\n\t__experimentalBlockDirectory: false,\n\t__mobileEnablePageTemplates: false,\n\t__experimentalBlockPatterns: [],\n\t__experimentalBlockPatternCategories: [],\n\t__unstableGalleryWithImageBlocks: false,\n\t__unstableIsPreviewMode: false,\n\n\t// This setting is `private` now with `lock` API.\n\tblockInspectorAnimation: {\n\t\t'core/navigation': { enterDirection: 'leftToRight' },\n\t\t'core/navigation-submenu': { enterDirection: 'rightToLeft' },\n\t\t'core/navigation-link': { enterDirection: 'rightToLeft' },\n\t},\n\n\tgenerateAnchors: false,\n\t// gradients setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.\n\t// The setting is only kept for backward compatibility purposes.\n\tgradients: [\n\t\t{\n\t\t\tname: __( 'Vivid cyan blue to vivid purple' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',\n\t\t\tslug: 'vivid-cyan-blue-to-vivid-purple',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Light green cyan to vivid green cyan' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%)',\n\t\t\tslug: 'light-green-cyan-to-vivid-green-cyan',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous vivid amber to luminous vivid orange' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%)',\n\t\t\tslug: 'luminous-vivid-amber-to-luminous-vivid-orange',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous vivid orange to vivid red' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%)',\n\t\t\tslug: 'luminous-vivid-orange-to-vivid-red',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Very light gray to cyan bluish gray' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%)',\n\t\t\tslug: 'very-light-gray-to-cyan-bluish-gray',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Cool to warm spectrum' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%)',\n\t\t\tslug: 'cool-to-warm-spectrum',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Blush light purple' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%)',\n\t\t\tslug: 'blush-light-purple',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Blush bordeaux' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%)',\n\t\t\tslug: 'blush-bordeaux',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous dusk' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%)',\n\t\t\tslug: 'luminous-dusk',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Pale ocean' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%)',\n\t\t\tslug: 'pale-ocean',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Electric grass' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%)',\n\t\t\tslug: 'electric-grass',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Midnight' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%)',\n\t\t\tslug: 'midnight',\n\t\t},\n\t],\n\n\t__unstableResolvedAssets: { styles: [], scripts: [] },\n};\n"]}
|
|
@@ -21,7 +21,7 @@ var _element = require("@wordpress/element");
|
|
|
21
21
|
*
|
|
22
22
|
* @see https://github.com/WordPress/gutenberg/pull/46131
|
|
23
23
|
*/
|
|
24
|
-
const privateSettings = ['inserterMediaCategories'];
|
|
24
|
+
const privateSettings = ['inserterMediaCategories', 'blockInspectorAnimation'];
|
|
25
25
|
/**
|
|
26
26
|
* Action that updates the block editor settings and
|
|
27
27
|
* conditionally preserves the experimental ones.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/store/private-actions.js"],"names":["privateSettings","__experimentalUpdateSettings","settings","stripExperimentalSettings","cleanSettings","Platform","OS","key","includes","type","hideBlockInterface","showBlockInterface"],"mappings":";;;;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,eAAe,GAAG,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/store/private-actions.js"],"names":["privateSettings","__experimentalUpdateSettings","settings","stripExperimentalSettings","cleanSettings","Platform","OS","key","includes","type","hideBlockInterface","showBlockInterface"],"mappings":";;;;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,eAAe,GAAG,CACvB,yBADuB,EAEvB,yBAFuB,CAAxB;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,4BAAT,CACNC,QADM,EAGL;AAAA,MADDC,yBACC,uEAD2B,KAC3B;AACD,MAAIC,aAAa,GAAGF,QAApB,CADC,CAED;AACA;;AACA,MAAKC,yBAAyB,IAAIE,kBAASC,EAAT,KAAgB,KAAlD,EAA0D;AACzDF,IAAAA,aAAa,GAAG,EAAhB;;AACA,SAAM,MAAMG,GAAZ,IAAmBL,QAAnB,EAA8B;AAC7B,UAAK,CAAEF,eAAe,CAACQ,QAAhB,CAA0BD,GAA1B,CAAP,EAAyC;AACxCH,QAAAA,aAAa,CAAEG,GAAF,CAAb,GAAuBL,QAAQ,CAAEK,GAAF,CAA/B;AACA;AACD;AACD;;AACD,SAAO;AACNE,IAAAA,IAAI,EAAE,iBADA;AAENP,IAAAA,QAAQ,EAAEE;AAFJ,GAAP;AAIA;AAED;AACA;AACA;AACA;AACA;;;AACO,SAASM,kBAAT,GAA8B;AACpC,SAAO;AACND,IAAAA,IAAI,EAAE;AADA,GAAP;AAGA;AAED;AACA;AACA;AACA;AACA;;;AACO,SAASE,kBAAT,GAA8B;AACpC,SAAO;AACNF,IAAAA,IAAI,EAAE;AADA,GAAP;AAGA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Platform } from '@wordpress/element';\n\n/**\n * A list of private/experimental block editor settings that\n * should not become a part of the WordPress public API.\n * BlockEditorProvider will remove these settings from the\n * settings object it receives.\n *\n * @see https://github.com/WordPress/gutenberg/pull/46131\n */\nconst privateSettings = [\n\t'inserterMediaCategories',\n\t'blockInspectorAnimation',\n];\n\n/**\n * Action that updates the block editor settings and\n * conditionally preserves the experimental ones.\n *\n * @param {Object} settings Updated settings\n * @param {boolean} stripExperimentalSettings Whether to strip experimental settings.\n * @return {Object} Action object\n */\nexport function __experimentalUpdateSettings(\n\tsettings,\n\tstripExperimentalSettings = false\n) {\n\tlet cleanSettings = settings;\n\t// There are no plugins in the mobile apps, so there is no\n\t// need to strip the experimental settings:\n\tif ( stripExperimentalSettings && Platform.OS === 'web' ) {\n\t\tcleanSettings = {};\n\t\tfor ( const key in settings ) {\n\t\t\tif ( ! privateSettings.includes( key ) ) {\n\t\t\t\tcleanSettings[ key ] = settings[ key ];\n\t\t\t}\n\t\t}\n\t}\n\treturn {\n\t\ttype: 'UPDATE_SETTINGS',\n\t\tsettings: cleanSettings,\n\t};\n}\n\n/**\n * Hides the block interface (eg. toolbar, outline, etc.)\n *\n * @return {Object} Action object.\n */\nexport function hideBlockInterface() {\n\treturn {\n\t\ttype: 'HIDE_BLOCK_INTERFACE',\n\t};\n}\n\n/**\n * Shows the block interface (eg. toolbar, outline, etc.)\n *\n * @return {Object} Action object.\n */\nexport function showBlockInterface() {\n\treturn {\n\t\ttype: 'SHOW_BLOCK_INTERFACE',\n\t};\n}\n"]}
|
|
@@ -165,8 +165,7 @@ const BlockInspector = _ref5 => {
|
|
|
165
165
|
const showTabs = (availableTabs === null || availableTabs === void 0 ? void 0 : availableTabs.length) > 1;
|
|
166
166
|
const blockInspectorAnimationSettings = useSelect(select => {
|
|
167
167
|
if (blockType) {
|
|
168
|
-
const globalBlockInspectorAnimationSettings = select(blockEditorStore).getSettings().
|
|
169
|
-
|
|
168
|
+
const globalBlockInspectorAnimationSettings = select(blockEditorStore).getSettings().blockInspectorAnimation;
|
|
170
169
|
return globalBlockInspectorAnimationSettings === null || globalBlockInspectorAnimationSettings === void 0 ? void 0 : globalBlockInspectorAnimationSettings[blockType.name];
|
|
171
170
|
}
|
|
172
171
|
|