@wordpress/block-editor 13.0.1 → 13.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/block-actions/index.js +4 -6
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-draggable/index.js +1 -1
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-list/block.js +2 -2
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +2 -2
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +3 -1
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/use-block-lock.js +2 -4
- package/build/components/block-lock/use-block-lock.js.map +1 -1
- package/build/components/block-mover/index.js +1 -1
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-mover/index.native.js +1 -1
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-switcher/block-variation-transformations.js +1 -3
- package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
- package/build/components/block-switcher/index.js +13 -6
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +6 -10
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +2 -2
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/date-format-picker/index.js +18 -10
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/global-styles/hooks.js +1 -1
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +14 -1
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/inserter/block-types-tab.native.js +1 -1
- package/build/components/inserter/block-types-tab.native.js.map +1 -1
- package/build/components/link-control/link-preview.js +12 -1
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/list-view/block.js +7 -6
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +3 -1
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/use-clipboard-handler.js +1 -1
- package/build/components/list-view/use-clipboard-handler.js.map +1 -1
- package/build/components/provider/use-block-sync.js +1 -7
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/rich-text/index.native.js +4 -0
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +6 -4
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +4 -4
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build/components/use-block-commands/index.js +3 -3
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/hooks/block-bindings.js +19 -16
- package/build/hooks/block-bindings.js.map +1 -1
- package/build/hooks/block-style-variation.js +2 -2
- package/build/hooks/block-style-variation.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +7 -2
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/private-apis.js +3 -1
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +3 -3
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +1 -36
- package/build/store/private-actions.js.map +1 -1
- package/build/store/selectors.js +17 -19
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-actions/index.js +4 -6
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-draggable/index.js +1 -1
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-list/block.js +2 -2
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +2 -2
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +3 -1
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/use-block-lock.js +2 -4
- package/build-module/components/block-lock/use-block-lock.js.map +1 -1
- package/build-module/components/block-mover/index.js +1 -1
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +1 -1
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-switcher/block-variation-transformations.js +1 -3
- package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
- package/build-module/components/block-switcher/index.js +15 -8
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +7 -10
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +2 -2
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +19 -11
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +1 -1
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +14 -1
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.native.js +1 -1
- package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +14 -1
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/list-view/block.js +7 -6
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +3 -1
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/use-clipboard-handler.js +1 -1
- package/build-module/components/list-view/use-clipboard-handler.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +1 -7
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +4 -0
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +6 -4
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +4 -4
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +3 -3
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/hooks/block-bindings.js +20 -17
- package/build-module/hooks/block-bindings.js.map +1 -1
- package/build-module/hooks/block-style-variation.js +2 -2
- package/build-module/hooks/block-style-variation.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +7 -2
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/private-apis.js +3 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +3 -3
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +1 -35
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/selectors.js +17 -19
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +7 -15
- package/build-style/style.css +7 -15
- package/package.json +31 -31
- package/src/components/block-actions/index.js +3 -7
- package/src/components/block-draggable/index.js +1 -1
- package/src/components/block-list/block.js +2 -2
- package/src/components/block-list/block.native.js +2 -2
- package/src/components/block-list/use-in-between-inserter.js +3 -1
- package/src/components/block-lock/use-block-lock.js +2 -4
- package/src/components/block-mover/index.js +1 -1
- package/src/components/block-mover/index.native.js +1 -1
- package/src/components/block-settings-menu/block-settings-dropdown.js +1 -1
- package/src/components/block-switcher/block-variation-transformations.js +4 -9
- package/src/components/block-switcher/index.js +27 -12
- package/src/components/block-switcher/style.scss +5 -0
- package/src/components/block-toolbar/index.js +7 -9
- package/src/components/block-toolbar/style.scss +9 -6
- package/src/components/block-tools/block-selection-button.js +2 -2
- package/src/components/date-format-picker/index.js +25 -13
- package/src/components/global-styles/hooks.js +1 -4
- package/src/components/global-styles/use-global-styles-output.js +24 -4
- package/src/components/inserter/block-types-tab.native.js +2 -1
- package/src/components/link-control/link-preview.js +18 -1
- package/src/components/list-view/block.js +7 -7
- package/src/components/list-view/branch.js +5 -1
- package/src/components/list-view/use-clipboard-handler.js +1 -6
- package/src/components/provider/use-block-sync.js +0 -6
- package/src/components/rich-text/index.native.js +4 -0
- package/src/components/rich-text/native/index.native.js +3 -1
- package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +2 -9
- package/src/components/use-block-commands/index.js +3 -4
- package/src/hooks/block-bindings.js +28 -22
- package/src/hooks/block-style-variation.js +2 -2
- package/src/hooks/use-bindings-attributes.js +11 -1
- package/src/private-apis.js +2 -0
- package/src/store/actions.js +3 -9
- package/src/store/private-actions.js +1 -34
- package/src/store/selectors.js +19 -26
- package/src/style.scss +0 -1
- package/build/components/block-bindings-toolbar-indicator/index.js +0 -106
- package/build/components/block-bindings-toolbar-indicator/index.js.map +0 -1
- package/build/store/undo-ignore.js +0 -11
- package/build/store/undo-ignore.js.map +0 -1
- package/build-module/components/block-bindings-toolbar-indicator/index.js +0 -99
- package/build-module/components/block-bindings-toolbar-indicator/index.js.map +0 -1
- package/build-module/store/undo-ignore.js +0 -5
- package/build-module/store/undo-ignore.js.map +0 -1
- package/src/components/block-bindings-toolbar-indicator/index.js +0 -137
- package/src/components/block-bindings-toolbar-indicator/style.scss +0 -12
- package/src/store/undo-ignore.js +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_clsx","_interopRequireDefault","_element","_components","_blocks","_data","_compose","_blockEdit","_blockDraggable","_blockInvalidWarning","_blockOutline","_store","_layout","_useScrollUponInsertion","_useSettings","_lockUnlock","_blockCrashBoundary","_blockCrashWarning","_useGlobalStylesContext","_jsxRuntime","EMPTY_ARRAY","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","clsx","style","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","ref","useRef","isLayoutCalculated","setIsLayoutCalculated","useState","useScrollUponInsertion","elementRef","onLayout","useCallback","jsxs","Pressable","accessibilityRole","disabled","onPress","jsx","default","blockName","fallback","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","wrapperProps","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","mayDisplayControls","blockEditingMode","useSelect","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","getBlockName","isFirstMultiSelectedBlock","getMultiSelectedBlockClientIds","getBlockEditingMode","blockEditorStore","currentBlockType","getBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","every","id","removeBlock","selectBlock","useDispatch","initialBlockWidth","setBlockWidth","parentLayout","useLayout","defaultColors","useMobileGlobalStylesColors","globalStyle","useGlobalStyles","fontSizes","useSettings","onRemove","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","useMemo","getMergedGlobalStyles","JSON","stringify","Object","fromEntries","entries","filter","key","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","isFocused","getAccessibleBlockLabel","Provider","value","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","keys","length","View","applyWithSelect","withSelect","isBlockSelected","getBlockMode","getTemplateLock","getBlockWithoutAttributes","getBlockAttributes","canRemoveBlock","canMoveBlock","unlock","block","templateLock","canMove","mode","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","isUnmodifiedBlock","batch","replacement","switchToBlockType","getDefaultBlockName","nextRootClientId","rootAttributes","previousRootAttributes","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","meta","isUnmodifiedDefaultBlock","selectionEnabled","_default","exports","compose","memo","ifCondition","withFilters"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tmemo,\n} from '@wordpress/element';\nimport { withFilters } from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockOutline from './block-outline';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport useScrollUponInsertion from './use-scroll-upon-insertion';\nimport { useSettings } from '../use-settings';\nimport { unlock } from '../../lock-unlock';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockCrashWarning from './block-crash-warning';\nimport {\n\tgetMergedGlobalStyles,\n\tGlobalStylesContext,\n\tuseGlobalStyles,\n\tuseMobileGlobalStylesColors,\n} from '../global-styles/use-global-styles-context';\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = clsx( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\tblockCategory,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\thasInnerBlocks,\n\tisDescendentBlockSelected,\n\tisSelected,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonFocus,\n} ) {\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\tconst ref = useRef();\n\tconst [ isLayoutCalculated, setIsLayoutCalculated ] = useState();\n\tuseScrollUponInsertion( {\n\t\tclientId,\n\t\tisSelected,\n\t\tisLayoutCalculated,\n\t\telementRef: ref,\n\t} );\n\tconst onLayout = useCallback( () => {\n\t\tsetIsLayoutCalculated( true );\n\t}, [] );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t\tref={ ref }\n\t\t\tonLayout={ onLayout }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tblockCategory={ blockCategory }\n\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tname={ name }\n\t\t\t/>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tblockName={ name }\n\t\t\t\tfallback={ <BlockCrashWarning /> }\n\t\t\t>\n\t\t\t\t<BlockDraggable\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</BlockDraggable>\n\t\t\t</BlockCrashBoundary>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n\twrapperProps,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockCategory,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\thasInnerBlocks,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t\tmayDisplayControls,\n\t\tblockEditingMode,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst currentBlockCategory = currentBlockType?.category;\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst blockHasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! blockHasInnerBlocks ||\n\t\t\t\tisSelected ||\n\t\t\t\t! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockCategory: currentBlockCategory,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\thasInnerBlocks: blockHasInnerBlocks,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\tisSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === name\n\t\t\t\t\t\t) ),\n\t\t\t\tblockEditingMode: getBlockEditingMode( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst [ fontSizes ] = useSettings( 'typography.fontSizes' );\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps?.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes || EMPTY_ARRAY\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps?.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\tblockCategory={ blockCategory }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisFocused={ isFocused }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tname={ name }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\tgetBlockWithoutAttributes,\n\t\tgetBlockAttributes,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = unlock( select( blockEditorStore ) );\n\tconst block = getBlockWithoutAttributes( clientId );\n\tconst attributes = getBlockAttributes( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else if (\n\t\t\t\t\tgetBlockName( clientId ) !== getDefaultBlockName()\n\t\t\t\t) {\n\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\tgetBlock( clientId ),\n\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t);\n\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\treplaceBlocks( clientId, replacement );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition, meta ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition,\n\t\t\t\tmeta\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tmemo,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block ),\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_clsx","_interopRequireDefault","_element","_components","_blocks","_data","_compose","_blockEdit","_blockDraggable","_blockInvalidWarning","_blockOutline","_store","_layout","_useScrollUponInsertion","_useSettings","_lockUnlock","_blockCrashBoundary","_blockCrashWarning","_useGlobalStylesContext","_jsxRuntime","EMPTY_ARRAY","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","clsx","style","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","ref","useRef","isLayoutCalculated","setIsLayoutCalculated","useState","useScrollUponInsertion","elementRef","onLayout","useCallback","jsxs","Pressable","accessibilityRole","disabled","onPress","jsx","default","blockName","fallback","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","wrapperProps","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","mayDisplayControls","blockEditingMode","useSelect","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","getBlockName","isFirstMultiSelectedBlock","getMultiSelectedBlockClientIds","getBlockEditingMode","blockEditorStore","currentBlockType","getBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","every","id","removeBlock","selectBlock","useDispatch","initialBlockWidth","setBlockWidth","parentLayout","useLayout","defaultColors","useMobileGlobalStylesColors","globalStyle","useGlobalStyles","fontSizes","useSettings","onRemove","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","useMemo","getMergedGlobalStyles","JSON","stringify","Object","fromEntries","entries","filter","key","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","isFocused","getAccessibleBlockLabel","Provider","value","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","keys","length","View","applyWithSelect","withSelect","isBlockSelected","getBlockMode","getTemplateLock","getBlockWithoutAttributes","getBlockAttributes","canRemoveBlock","canMoveBlock","unlock","block","templateLock","canMove","mode","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","isUnmodifiedBlock","batch","replacement","switchToBlockType","getDefaultBlockName","nextRootClientId","rootAttributes","previousRootAttributes","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","meta","isUnmodifiedDefaultBlock","selectionEnabled","_default","exports","compose","memo","ifCondition","withFilters"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tmemo,\n} from '@wordpress/element';\nimport { withFilters } from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockOutline from './block-outline';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport useScrollUponInsertion from './use-scroll-upon-insertion';\nimport { useSettings } from '../use-settings';\nimport { unlock } from '../../lock-unlock';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockCrashWarning from './block-crash-warning';\nimport {\n\tgetMergedGlobalStyles,\n\tGlobalStylesContext,\n\tuseGlobalStyles,\n\tuseMobileGlobalStylesColors,\n} from '../global-styles/use-global-styles-context';\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = clsx( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\tblockCategory,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\thasInnerBlocks,\n\tisDescendentBlockSelected,\n\tisSelected,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonFocus,\n} ) {\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\tconst ref = useRef();\n\tconst [ isLayoutCalculated, setIsLayoutCalculated ] = useState();\n\tuseScrollUponInsertion( {\n\t\tclientId,\n\t\tisSelected,\n\t\tisLayoutCalculated,\n\t\telementRef: ref,\n\t} );\n\tconst onLayout = useCallback( () => {\n\t\tsetIsLayoutCalculated( true );\n\t}, [] );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t\tref={ ref }\n\t\t\tonLayout={ onLayout }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tblockCategory={ blockCategory }\n\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tname={ name }\n\t\t\t/>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tblockName={ name }\n\t\t\t\tfallback={ <BlockCrashWarning /> }\n\t\t\t>\n\t\t\t\t<BlockDraggable\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</BlockDraggable>\n\t\t\t</BlockCrashBoundary>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n\twrapperProps,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockCategory,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\thasInnerBlocks,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t\tmayDisplayControls,\n\t\tblockEditingMode,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst currentBlockCategory = currentBlockType?.category;\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst blockHasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! blockHasInnerBlocks ||\n\t\t\t\tisSelected ||\n\t\t\t\t! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockCategory: currentBlockCategory,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\thasInnerBlocks: blockHasInnerBlocks,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\tisSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === name\n\t\t\t\t\t\t) ),\n\t\t\t\tblockEditingMode: getBlockEditingMode( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst [ fontSizes ] = useSettings( 'typography.fontSizes' );\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps?.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes || EMPTY_ARRAY\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps?.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\tblockCategory={ blockCategory }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisFocused={ isFocused }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tname={ name }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\tgetBlockWithoutAttributes,\n\t\tgetBlockAttributes,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = unlock( select( blockEditorStore ) );\n\tconst block = getBlockWithoutAttributes( clientId );\n\tconst attributes = getBlockAttributes( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId );\n\tconst canMove = canMoveBlock( clientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else if (\n\t\t\t\t\tgetBlockName( clientId ) !== getDefaultBlockName()\n\t\t\t\t) {\n\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\tgetBlock( clientId ),\n\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t);\n\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\treplaceBlocks( clientId, replacement );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition, meta ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition,\n\t\t\t\tmeta\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tmemo,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block ),\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -40,7 +40,9 @@ function useInBetweenInserter() {
|
|
|
40
40
|
return;
|
|
41
41
|
}
|
|
42
42
|
function onMouseMove(event) {
|
|
43
|
-
|
|
43
|
+
// openRef is the reference to the insertion point between blocks.
|
|
44
|
+
// If the reference is not set or the insertion point is already open, return.
|
|
45
|
+
if (openRef === undefined || openRef.current) {
|
|
44
46
|
return;
|
|
45
47
|
}
|
|
46
48
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_compose","require","_data","_element","_i18n","_store","_insertionPoint","useInBetweenInserter","openRef","useContext","InsertionPointOpenRef","isInBetweenInserterDisabled","useSelect","select","blockEditorStore","getSettings","isDistractionFree","__unstableGetEditorMode","getBlockListSettings","getBlockIndex","isMultiSelecting","getSelectedBlockClientIds","getTemplateLock","__unstableIsWithinBlockOverlay","getBlockEditingMode","getBlockName","showInsertionPoint","hideInsertionPoint","useDispatch","useRefEffect","node","onMouseMove","event","current","target","nodeType","TEXT_NODE","classList","contains","rootClientId","blockElement","getAttribute","closest","orientation","offsetTop","clientY","offsetLeft","clientX","children","Array","from","element","find","blockEl","blockElRect","getBoundingClientRect","top","isRTL","right","left","id","firstElementChild","clientId","slice","length","includes","elementRect","bottom","index","__unstableWithInserter","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-in-between-inserter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { InsertionPointOpenRef } from '../block-tools/insertion-point';\n\nexport function useInBetweenInserter() {\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst isInBetweenInserterDisabled = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree ||\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst {\n\t\tgetBlockListSettings,\n\t\tgetBlockIndex,\n\t\tisMultiSelecting,\n\t\tgetSelectedBlockClientIds,\n\t\tgetTemplateLock,\n\t\t__unstableIsWithinBlockOverlay,\n\t\tgetBlockEditingMode,\n\t\tgetBlockName,\n\t} = useSelect( blockEditorStore );\n\tconst { showInsertionPoint, hideInsertionPoint } =\n\t\tuseDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( isInBetweenInserterDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction onMouseMove( event ) {\n\t\t\t\tif ( openRef.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Ignore text nodes sometimes detected in FireFox.\n\t\t\t\tif ( event.target.nodeType === event.target.TEXT_NODE ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isMultiSelecting() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains(\n\t\t\t\t\t\t'block-editor-block-list__layout'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet rootClientId;\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains( 'is-root-container' )\n\t\t\t\t) {\n\t\t\t\t\tconst blockElement = !! event.target.getAttribute(\n\t\t\t\t\t\t'data-block'\n\t\t\t\t\t)\n\t\t\t\t\t\t? event.target\n\t\t\t\t\t\t: event.target.closest( '[data-block]' );\n\t\t\t\t\trootClientId = blockElement.getAttribute( 'data-block' );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tgetTemplateLock( rootClientId ) ||\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled' ||\n\t\t\t\t\tgetBlockName( rootClientId ) === 'core/block'\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst orientation =\n\t\t\t\t\tgetBlockListSettings( rootClientId )?.orientation ||\n\t\t\t\t\t'vertical';\n\t\t\t\tconst offsetTop = event.clientY;\n\t\t\t\tconst offsetLeft = event.clientX;\n\n\t\t\t\tconst children = Array.from( event.target.children );\n\t\t\t\tlet element = children.find( ( blockEl ) => {\n\t\t\t\t\tconst blockElRect = blockEl.getBoundingClientRect();\n\t\t\t\t\treturn (\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'vertical' &&\n\t\t\t\t\t\t\tblockElRect.top > offsetTop ) ||\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'horizontal' &&\n\t\t\t\t\t\t\t( isRTL()\n\t\t\t\t\t\t\t\t? blockElRect.right < offsetLeft\n\t\t\t\t\t\t\t\t: blockElRect.left > offsetLeft ) )\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// The block may be in an alignment wrapper, so check the first direct\n\t\t\t\t// child if the element has no ID.\n\t\t\t\tif ( ! element.id ) {\n\t\t\t\t\telement = element.firstElementChild;\n\n\t\t\t\t\tif ( ! element ) {\n\t\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Don't show the insertion point if a parent block has an \"overlay\"\n\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337\n\t\t\t\tconst clientId = element.id.slice( 'block-'.length );\n\t\t\t\tif (\n\t\t\t\t\t! clientId ||\n\t\t\t\t\t__unstableIsWithinBlockOverlay( clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Don't show the inserter when hovering above (conflicts with\n\t\t\t\t// block toolbar) or inside selected block(s).\n\t\t\t\tif ( getSelectedBlockClientIds().includes( clientId ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst elementRect = element.getBoundingClientRect();\n\n\t\t\t\tif (\n\t\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t\t( event.clientY > elementRect.bottom ||\n\t\t\t\t\t\t\tevent.clientY < elementRect.top ) ) ||\n\t\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t\t( event.clientX > elementRect.right ||\n\t\t\t\t\t\t\tevent.clientX < elementRect.left ) )\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst index = getBlockIndex( clientId );\n\n\t\t\t\t// Don't show the in-between inserter before the first block in\n\t\t\t\t// the list (preserves the original behaviour).\n\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tshowInsertionPoint( rootClientId, index, {\n\t\t\t\t\t__unstableWithInserter: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousemove', onMouseMove );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousemove', onMouseMove );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\topenRef,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockIndex,\n\t\t\tisMultiSelecting,\n\t\t\tshowInsertionPoint,\n\t\t\thideInsertionPoint,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisInBetweenInserterDisabled,\n\t\t]\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_compose","require","_data","_element","_i18n","_store","_insertionPoint","useInBetweenInserter","openRef","useContext","InsertionPointOpenRef","isInBetweenInserterDisabled","useSelect","select","blockEditorStore","getSettings","isDistractionFree","__unstableGetEditorMode","getBlockListSettings","getBlockIndex","isMultiSelecting","getSelectedBlockClientIds","getTemplateLock","__unstableIsWithinBlockOverlay","getBlockEditingMode","getBlockName","showInsertionPoint","hideInsertionPoint","useDispatch","useRefEffect","node","onMouseMove","event","undefined","current","target","nodeType","TEXT_NODE","classList","contains","rootClientId","blockElement","getAttribute","closest","orientation","offsetTop","clientY","offsetLeft","clientX","children","Array","from","element","find","blockEl","blockElRect","getBoundingClientRect","top","isRTL","right","left","id","firstElementChild","clientId","slice","length","includes","elementRect","bottom","index","__unstableWithInserter","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-in-between-inserter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { InsertionPointOpenRef } from '../block-tools/insertion-point';\n\nexport function useInBetweenInserter() {\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst isInBetweenInserterDisabled = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree ||\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst {\n\t\tgetBlockListSettings,\n\t\tgetBlockIndex,\n\t\tisMultiSelecting,\n\t\tgetSelectedBlockClientIds,\n\t\tgetTemplateLock,\n\t\t__unstableIsWithinBlockOverlay,\n\t\tgetBlockEditingMode,\n\t\tgetBlockName,\n\t} = useSelect( blockEditorStore );\n\tconst { showInsertionPoint, hideInsertionPoint } =\n\t\tuseDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( isInBetweenInserterDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction onMouseMove( event ) {\n\t\t\t\t// openRef is the reference to the insertion point between blocks.\n\t\t\t\t// If the reference is not set or the insertion point is already open, return.\n\t\t\t\tif ( openRef === undefined || openRef.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Ignore text nodes sometimes detected in FireFox.\n\t\t\t\tif ( event.target.nodeType === event.target.TEXT_NODE ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isMultiSelecting() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains(\n\t\t\t\t\t\t'block-editor-block-list__layout'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet rootClientId;\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains( 'is-root-container' )\n\t\t\t\t) {\n\t\t\t\t\tconst blockElement = !! event.target.getAttribute(\n\t\t\t\t\t\t'data-block'\n\t\t\t\t\t)\n\t\t\t\t\t\t? event.target\n\t\t\t\t\t\t: event.target.closest( '[data-block]' );\n\t\t\t\t\trootClientId = blockElement.getAttribute( 'data-block' );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tgetTemplateLock( rootClientId ) ||\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled' ||\n\t\t\t\t\tgetBlockName( rootClientId ) === 'core/block'\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst orientation =\n\t\t\t\t\tgetBlockListSettings( rootClientId )?.orientation ||\n\t\t\t\t\t'vertical';\n\t\t\t\tconst offsetTop = event.clientY;\n\t\t\t\tconst offsetLeft = event.clientX;\n\n\t\t\t\tconst children = Array.from( event.target.children );\n\t\t\t\tlet element = children.find( ( blockEl ) => {\n\t\t\t\t\tconst blockElRect = blockEl.getBoundingClientRect();\n\t\t\t\t\treturn (\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'vertical' &&\n\t\t\t\t\t\t\tblockElRect.top > offsetTop ) ||\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'horizontal' &&\n\t\t\t\t\t\t\t( isRTL()\n\t\t\t\t\t\t\t\t? blockElRect.right < offsetLeft\n\t\t\t\t\t\t\t\t: blockElRect.left > offsetLeft ) )\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// The block may be in an alignment wrapper, so check the first direct\n\t\t\t\t// child if the element has no ID.\n\t\t\t\tif ( ! element.id ) {\n\t\t\t\t\telement = element.firstElementChild;\n\n\t\t\t\t\tif ( ! element ) {\n\t\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Don't show the insertion point if a parent block has an \"overlay\"\n\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337\n\t\t\t\tconst clientId = element.id.slice( 'block-'.length );\n\t\t\t\tif (\n\t\t\t\t\t! clientId ||\n\t\t\t\t\t__unstableIsWithinBlockOverlay( clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Don't show the inserter when hovering above (conflicts with\n\t\t\t\t// block toolbar) or inside selected block(s).\n\t\t\t\tif ( getSelectedBlockClientIds().includes( clientId ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst elementRect = element.getBoundingClientRect();\n\n\t\t\t\tif (\n\t\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t\t( event.clientY > elementRect.bottom ||\n\t\t\t\t\t\t\tevent.clientY < elementRect.top ) ) ||\n\t\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t\t( event.clientX > elementRect.right ||\n\t\t\t\t\t\t\tevent.clientX < elementRect.left ) )\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst index = getBlockIndex( clientId );\n\n\t\t\t\t// Don't show the in-between inserter before the first block in\n\t\t\t\t// the list (preserves the original behaviour).\n\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tshowInsertionPoint( rootClientId, index, {\n\t\t\t\t\t__unstableWithInserter: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousemove', onMouseMove );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousemove', onMouseMove );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\topenRef,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockIndex,\n\t\t\tisMultiSelecting,\n\t\t\tshowInsertionPoint,\n\t\t\thideInsertionPoint,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisInBetweenInserterDisabled,\n\t\t]\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,13 +29,11 @@ function useBlockLock(clientId) {
|
|
|
29
29
|
canRemoveBlock,
|
|
30
30
|
canLockBlockType,
|
|
31
31
|
getBlockName,
|
|
32
|
-
getBlockRootClientId,
|
|
33
32
|
getTemplateLock
|
|
34
33
|
} = select(_store.store);
|
|
35
|
-
const rootClientId = getBlockRootClientId(clientId);
|
|
36
34
|
const canEdit = canEditBlock(clientId);
|
|
37
|
-
const canMove = canMoveBlock(clientId
|
|
38
|
-
const canRemove = canRemoveBlock(clientId
|
|
35
|
+
const canMove = canMoveBlock(clientId);
|
|
36
|
+
const canRemove = canRemoveBlock(clientId);
|
|
39
37
|
return {
|
|
40
38
|
canEdit,
|
|
41
39
|
canMove,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_store","useBlockLock","clientId","useSelect","select","canEditBlock","canMoveBlock","canRemoveBlock","canLockBlockType","getBlockName","
|
|
1
|
+
{"version":3,"names":["_data","require","_store","useBlockLock","clientId","useSelect","select","canEditBlock","canMoveBlock","canRemoveBlock","canLockBlockType","getBlockName","getTemplateLock","blockEditorStore","canEdit","canMove","canRemove","canLock","isContentLocked","isLocked"],"sources":["@wordpress/block-editor/src/components/block-lock/use-block-lock.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Return details about the block lock status.\n *\n * @param {string} clientId The block client Id.\n *\n * @return {Object} Block lock status\n */\nexport default function useBlockLock( clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanEditBlock,\n\t\t\t\tcanMoveBlock,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanLockBlockType,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetTemplateLock,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst canEdit = canEditBlock( clientId );\n\t\t\tconst canMove = canMoveBlock( clientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId );\n\n\t\t\treturn {\n\t\t\t\tcanEdit,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tcanLock: canLockBlockType( getBlockName( clientId ) ),\n\t\t\t\tisContentLocked: getTemplateLock( clientId ) === 'contentOnly',\n\t\t\t\tisLocked: ! canEdit || ! canMove || ! canRemove,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,MAAA,GAAAD,OAAA;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASE,YAAYA,CAAEC,QAAQ,EAAG;EAChD,OAAO,IAAAC,eAAS,EACbC,MAAM,IAAM;IACb,MAAM;MACLC,YAAY;MACZC,YAAY;MACZC,cAAc;MACdC,gBAAgB;MAChBC,YAAY;MACZC;IACD,CAAC,GAAGN,MAAM,CAAEO,YAAiB,CAAC;IAE9B,MAAMC,OAAO,GAAGP,YAAY,CAAEH,QAAS,CAAC;IACxC,MAAMW,OAAO,GAAGP,YAAY,CAAEJ,QAAS,CAAC;IACxC,MAAMY,SAAS,GAAGP,cAAc,CAAEL,QAAS,CAAC;IAE5C,OAAO;MACNU,OAAO;MACPC,OAAO;MACPC,SAAS;MACTC,OAAO,EAAEP,gBAAgB,CAAEC,YAAY,CAAEP,QAAS,CAAE,CAAC;MACrDc,eAAe,EAAEN,eAAe,CAAER,QAAS,CAAC,KAAK,aAAa;MAC9De,QAAQ,EAAE,CAAEL,OAAO,IAAI,CAAEC,OAAO,IAAI,CAAEC;IACvC,CAAC;EACF,CAAC,EACD,CAAEZ,QAAQ,CACX,CAAC;AACF","ignoreList":[]}
|
|
@@ -53,7 +53,7 @@ function BlockMover({
|
|
|
53
53
|
const lastIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]);
|
|
54
54
|
const blockOrder = getBlockOrder(_rootClientId);
|
|
55
55
|
return {
|
|
56
|
-
canMove: canMoveBlocks(clientIds
|
|
56
|
+
canMove: canMoveBlocks(clientIds),
|
|
57
57
|
rootClientId: _rootClientId,
|
|
58
58
|
isFirst: firstIndex === 0,
|
|
59
59
|
isLast: lastIndex === blockOrder.length - 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_icons","_components","_data","_i18n","_blockDraggable","_button","_store","_jsxRuntime","BlockMover","clientIds","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","canMove","rootClientId","isFirst","isLast","orientation","useSelect","select","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","blockEditorStore","normalizedClientIds","Array","isArray","firstClientId","_rootClientId","firstIndex","lastIndex","length","blockOrder","dragHandleLabel","__","jsxs","ToolbarGroup","className","clsx","children","jsx","default","fadeWhenDisabled","draggableProps","Button","icon","dragHandle","label","tabIndex","ToolbarItem","itemProps","BlockMoverUpButton","disabled","BlockMoverDownButton","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( {\n\tclientIds,\n\thideDragHandle,\n\tisBlockMoverUpButtonDisabled,\n\tisBlockMoverDownButtonDisabled,\n} ) {\n\tconst { canMove, rootClientId, isFirst, isLast, orientation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t\t? clientIds\n\t\t\t\t: [ clientIds ];\n\t\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\t\tconst _rootClientId = getBlockRootClientId( firstClientId );\n\t\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\t\tconst lastIndex = getBlockIndex(\n\t\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t\t);\n\t\t\tconst blockOrder = getBlockOrder( _rootClientId );\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_icons","_components","_data","_i18n","_blockDraggable","_button","_store","_jsxRuntime","BlockMover","clientIds","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","canMove","rootClientId","isFirst","isLast","orientation","useSelect","select","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","blockEditorStore","normalizedClientIds","Array","isArray","firstClientId","_rootClientId","firstIndex","lastIndex","length","blockOrder","dragHandleLabel","__","jsxs","ToolbarGroup","className","clsx","children","jsx","default","fadeWhenDisabled","draggableProps","Button","icon","dragHandle","label","tabIndex","ToolbarItem","itemProps","BlockMoverUpButton","disabled","BlockMoverDownButton","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( {\n\tclientIds,\n\thideDragHandle,\n\tisBlockMoverUpButtonDisabled,\n\tisBlockMoverDownButtonDisabled,\n} ) {\n\tconst { canMove, rootClientId, isFirst, isLast, orientation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t\t? clientIds\n\t\t\t\t: [ clientIds ];\n\t\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\t\tconst _rootClientId = getBlockRootClientId( firstClientId );\n\t\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\t\tconst lastIndex = getBlockIndex(\n\t\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t\t);\n\t\t\tconst blockOrder = getBlockOrder( _rootClientId );\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds ),\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisFirst: firstIndex === 0,\n\t\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\t\torientation: getBlockListSettings( _rootClientId )?.orientation,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\treturn (\n\t\t<ToolbarGroup\n\t\t\tclassName={ clsx( 'block-editor-block-mover', {\n\t\t\t\t'is-horizontal': orientation === 'horizontal',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ ! hideDragHandle && (\n\t\t\t\t<BlockDraggable clientIds={ clientIds } fadeWhenDisabled>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-mover__drag-handle\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t<div className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\tdisabled={ isBlockMoverUpButtonDisabled }\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\tdisabled={ isBlockMoverDownButtonDisabled }\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t</div>\n\t\t</ToolbarGroup>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-mover/README.md\n */\nexport default BlockMover;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -152,7 +152,7 @@ var _default = exports.default = (0, _compose.compose)((0, _data.withSelect)((se
|
|
|
152
152
|
numberOfBlocks: blockOrder.length - 1,
|
|
153
153
|
isFirst: firstIndex === 0,
|
|
154
154
|
isLast: lastIndex === blockOrder.length - 1,
|
|
155
|
-
canMove: canMoveBlocks(clientIds
|
|
155
|
+
canMove: canMoveBlocks(clientIds),
|
|
156
156
|
rootClientId
|
|
157
157
|
};
|
|
158
158
|
}), (0, _data.withDispatch)((dispatch, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_i18n","_components","_compose","_data","_element","_moverDescription","_store","_jsxRuntime","BLOCK_MOVER_DIRECTION_TOP","exports","BLOCK_MOVER_DIRECTION_BOTTOM","BlockMover","isFirst","isLast","canMove","onMoveDown","onMoveUp","onLongMove","firstIndex","numberOfBlocks","rootClientId","isStackedHorizontally","pickerRef","useRef","shouldPresentPicker","setShouldPresentPicker","useState","blockPageMoverState","setBlockPageMoverState","undefined","showBlockPageMover","direction","current","useEffect","presentPicker","description","backwardButtonHint","forwardButtonHint","firstBlockTitle","lastBlockTitle","icon","backward","backwardButtonIcon","forward","forwardButtonIcon","title","backwardButtonTitle","forwardButtonTitle","getMoversSetup","blockPageMoverOptions","label","__","value","onSelect","filter","el","onPickerSelect","option","find","onLongPressMoveUp","useCallback","onLongPressMoveDown","jsxs","ToolbarGroup","children","jsx","ToolbarButton","isDisabled","onClick","onLongPress","extraProps","hint","Picker","ref","options","onChange","leftAlign","hideCancelButton","Platform","OS","_default","default","compose","withSelect","select","clientIds","getBlockIndex","canMoveBlocks","getBlockRootClientId","getBlockOrder","blockEditorStore","normalizedClientIds","Array","isArray","firstClientId","blockOrder","lastIndex","length","withDispatch","dispatch","moveBlocksDown","moveBlocksUp","moveBlocksToPosition","args","targetIndex","withInstanceId"],"sources":["@wordpress/block-editor/src/components/block-mover/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Picker, ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { useCallback, useEffect, useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BLOCK_MOVER_DIRECTION_TOP = 'blockPageMoverOptions-moveToTop';\nexport const BLOCK_MOVER_DIRECTION_BOTTOM =\n\t'blockPageMoverOptions-moveToBottom';\n\nexport const BlockMover = ( {\n\tisFirst,\n\tisLast,\n\tcanMove,\n\tonMoveDown,\n\tonMoveUp,\n\tonLongMove,\n\tfirstIndex,\n\tnumberOfBlocks,\n\trootClientId,\n\tisStackedHorizontally,\n} ) => {\n\tconst pickerRef = useRef();\n\tconst [ shouldPresentPicker, setShouldPresentPicker ] = useState( false );\n\tconst [ blockPageMoverState, setBlockPageMoverState ] =\n\t\tuseState( undefined );\n\tconst showBlockPageMover = ( direction ) => () => {\n\t\tif ( ! pickerRef.current ) {\n\t\t\tsetBlockPageMoverState( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetBlockPageMoverState( direction );\n\t\tsetShouldPresentPicker( true );\n\t};\n\n\t// Ensure that the picker is only presented after state updates.\n\tuseEffect( () => {\n\t\tif ( shouldPresentPicker ) {\n\t\t\tpickerRef.current?.presentPicker();\n\t\t\tsetShouldPresentPicker( false );\n\t\t}\n\t}, [ shouldPresentPicker ] );\n\n\tconst {\n\t\tdescription: {\n\t\t\tbackwardButtonHint,\n\t\t\tforwardButtonHint,\n\t\t\tfirstBlockTitle,\n\t\t\tlastBlockTitle,\n\t\t},\n\t\ticon: { backward: backwardButtonIcon, forward: forwardButtonIcon },\n\t\ttitle: { backward: backwardButtonTitle, forward: forwardButtonTitle },\n\t} = getMoversSetup( isStackedHorizontally, { firstIndex } );\n\n\tconst blockPageMoverOptions = [\n\t\t{\n\t\t\ticon: backwardButtonIcon,\n\t\t\tlabel: __( 'Move to top' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_TOP,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( 0 );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ticon: forwardButtonIcon,\n\t\t\tlabel: __( 'Move to bottom' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_BOTTOM,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( numberOfBlocks );\n\t\t\t},\n\t\t},\n\t].filter( ( el ) => el.value === blockPageMoverState );\n\n\tconst onPickerSelect = ( value ) => {\n\t\tconst option = blockPageMoverOptions.find(\n\t\t\t( el ) => el.value === value\n\t\t);\n\t\tif ( option && option.onSelect ) {\n\t\t\toption.onSelect();\n\t\t}\n\t};\n\n\tconst onLongPressMoveUp = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_TOP ),\n\t\t[]\n\t);\n\tconst onLongPressMoveDown = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_BOTTOM ),\n\t\t[]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isFirst ? backwardButtonTitle : firstBlockTitle }\n\t\t\t\tisDisabled={ isFirst }\n\t\t\t\tonClick={ onMoveUp }\n\t\t\t\tonLongPress={ onLongPressMoveUp }\n\t\t\t\ticon={ backwardButtonIcon }\n\t\t\t\textraProps={ { hint: backwardButtonHint } }\n\t\t\t/>\n\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isLast ? forwardButtonTitle : lastBlockTitle }\n\t\t\t\tisDisabled={ isLast }\n\t\t\t\tonClick={ onMoveDown }\n\t\t\t\tonLongPress={ onLongPressMoveDown }\n\t\t\t\ticon={ forwardButtonIcon }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: forwardButtonHint,\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t<Picker\n\t\t\t\tref={ pickerRef }\n\t\t\t\toptions={ blockPageMoverOptions }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\ttitle={ __( 'Change block position' ) }\n\t\t\t\tleftAlign\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tcanMoveBlocks,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t? clientIds\n\t\t\t: [ clientIds ];\n\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\tconst lastIndex = getBlockIndex(\n\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t);\n\n\t\treturn {\n\t\t\tfirstIndex,\n\t\t\tnumberOfBlocks: blockOrder.length - 1,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tcanMove: canMoveBlocks( clientIds, rootClientId ),\n\t\t\trootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { clientIds, rootClientId } ) => {\n\t\tconst { moveBlocksDown, moveBlocksUp, moveBlocksToPosition } =\n\t\t\tdispatch( blockEditorStore );\n\t\treturn {\n\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\tmoveBlocksDown( clientIds, rootClientId, ...args ),\n\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\tmoveBlocksUp( clientIds, rootClientId, ...args ),\n\t\t\tonLongMove:\n\t\t\t\t( targetIndex ) =>\n\t\t\t\t( ...args ) =>\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\tclientIds,\n\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\ttargetIndex,\n\t\t\t\t\t\t...args\n\t\t\t\t\t),\n\t\t};\n\t} ),\n\twithInstanceId\n)( BlockMover );\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAKA,IAAAM,iBAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AAAwD,IAAAQ,WAAA,GAAAR,OAAA;AAlBxD;AACA;AACA;;AAGA;AACA;AACA;;AAOA;AACA;AACA;;AAIO,MAAMS,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA,GAAG,iCAAiC;AACnE,MAAME,4BAA4B,GAAAD,OAAA,CAAAC,4BAAA,GACxC,oCAAoC;AAE9B,MAAMC,UAAU,GAAGA,CAAE;EAC3BC,OAAO;EACPC,MAAM;EACNC,OAAO;EACPC,UAAU;EACVC,QAAQ;EACRC,UAAU;EACVC,UAAU;EACVC,cAAc;EACdC,YAAY;EACZC;AACD,CAAC,KAAM;EACN,MAAMC,SAAS,GAAG,IAAAC,eAAM,EAAC,CAAC;EAC1B,MAAM,CAAEC,mBAAmB,EAAEC,sBAAsB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EACzE,MAAM,CAAEC,mBAAmB,EAAEC,sBAAsB,CAAE,GACpD,IAAAF,iBAAQ,EAAEG,SAAU,CAAC;EACtB,MAAMC,kBAAkB,GAAKC,SAAS,IAAM,MAAM;IACjD,IAAK,CAAET,SAAS,CAACU,OAAO,EAAG;MAC1BJ,sBAAsB,CAAEC,SAAU,CAAC;MACnC;IACD;IAEAD,sBAAsB,CAAEG,SAAU,CAAC;IACnCN,sBAAsB,CAAE,IAAK,CAAC;EAC/B,CAAC;;EAED;EACA,IAAAQ,kBAAS,EAAE,MAAM;IAChB,IAAKT,mBAAmB,EAAG;MAC1BF,SAAS,CAACU,OAAO,EAAEE,aAAa,CAAC,CAAC;MAClCT,sBAAsB,CAAE,KAAM,CAAC;IAChC;EACD,CAAC,EAAE,CAAED,mBAAmB,CAAG,CAAC;EAE5B,MAAM;IACLW,WAAW,EAAE;MACZC,kBAAkB;MAClBC,iBAAiB;MACjBC,eAAe;MACfC;IACD,CAAC;IACDC,IAAI,EAAE;MAAEC,QAAQ,EAAEC,kBAAkB;MAAEC,OAAO,EAAEC;IAAkB,CAAC;IAClEC,KAAK,EAAE;MAAEJ,QAAQ,EAAEK,mBAAmB;MAAEH,OAAO,EAAEI;IAAmB;EACrE,CAAC,GAAG,IAAAC,gCAAc,EAAE3B,qBAAqB,EAAE;IAAEH;EAAW,CAAE,CAAC;EAE3D,MAAM+B,qBAAqB,GAAG,CAC7B;IACCT,IAAI,EAAEE,kBAAkB;IACxBQ,KAAK,EAAE,IAAAC,QAAE,EAAE,aAAc,CAAC;IAC1BC,KAAK,EAAE5C,yBAAyB;IAChC6C,QAAQ,EAAEA,CAAA,KAAM;MACfpC,UAAU,CAAC,CAAC,CAAE,CAAE,CAAC;IAClB;EACD,CAAC,EACD;IACCuB,IAAI,EAAEI,iBAAiB;IACvBM,KAAK,EAAE,IAAAC,QAAE,EAAE,gBAAiB,CAAC;IAC7BC,KAAK,EAAE1C,4BAA4B;IACnC2C,QAAQ,EAAEA,CAAA,KAAM;MACfpC,UAAU,CAAC,CAAC,CAAEE,cAAe,CAAC;IAC/B;EACD,CAAC,CACD,CAACmC,MAAM,CAAIC,EAAE,IAAMA,EAAE,CAACH,KAAK,KAAKzB,mBAAoB,CAAC;EAEtD,MAAM6B,cAAc,GAAKJ,KAAK,IAAM;IACnC,MAAMK,MAAM,GAAGR,qBAAqB,CAACS,IAAI,CACtCH,EAAE,IAAMA,EAAE,CAACH,KAAK,KAAKA,KACxB,CAAC;IACD,IAAKK,MAAM,IAAIA,MAAM,CAACJ,QAAQ,EAAG;MAChCI,MAAM,CAACJ,QAAQ,CAAC,CAAC;IAClB;EACD,CAAC;EAED,MAAMM,iBAAiB,GAAG,IAAAC,oBAAW,EACpC9B,kBAAkB,CAAEtB,yBAA0B,CAAC,EAC/C,EACD,CAAC;EACD,MAAMqD,mBAAmB,GAAG,IAAAD,oBAAW,EACtC9B,kBAAkB,CAAEpB,4BAA6B,CAAC,EAClD,EACD,CAAC;EAED,IAAK,CAAEI,OAAO,IAAMF,OAAO,IAAIC,MAAM,IAAI,CAAEO,YAAc,EAAG;IAC3D,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAb,WAAA,CAAAuD,IAAA,EAAC7D,WAAA,CAAA8D,YAAY;IAAAC,QAAA,gBACZ,IAAAzD,WAAA,CAAA0D,GAAA,EAAChE,WAAA,CAAAiE,aAAa;MACbrB,KAAK,EAAG,CAAEjC,OAAO,GAAGkC,mBAAmB,GAAGR,eAAiB;MAC3D6B,UAAU,EAAGvD,OAAS;MACtBwD,OAAO,EAAGpD,QAAU;MACpBqD,WAAW,EAAGV,iBAAmB;MACjCnB,IAAI,EAAGE,kBAAoB;MAC3B4B,UAAU,EAAG;QAAEC,IAAI,EAAEnC;MAAmB;IAAG,CAC3C,CAAC,eAEF,IAAA7B,WAAA,CAAA0D,GAAA,EAAChE,WAAA,CAAAiE,aAAa;MACbrB,KAAK,EAAG,CAAEhC,MAAM,GAAGkC,kBAAkB,GAAGR,cAAgB;MACxD4B,UAAU,EAAGtD,MAAQ;MACrBuD,OAAO,EAAGrD,UAAY;MACtBsD,WAAW,EAAGR,mBAAqB;MACnCrB,IAAI,EAAGI,iBAAmB;MAC1B0B,UAAU,EAAG;QACZC,IAAI,EAAElC;MACP;IAAG,CACH,CAAC,eAEF,IAAA9B,WAAA,CAAA0D,GAAA,EAAChE,WAAA,CAAAuE,MAAM;MACNC,GAAG,EAAGnD,SAAW;MACjBoD,OAAO,EAAGzB,qBAAuB;MACjC0B,QAAQ,EAAGnB,cAAgB;MAC3BX,KAAK,EAAG,IAAAM,QAAE,EAAE,uBAAwB,CAAG;MACvCyB,SAAS;MACTC,gBAAgB,EAAGC,qBAAQ,CAACC,EAAE,KAAK;IAAO,CAC1C,CAAC;EAAA,CACW,CAAC;AAEjB,CAAC;AAACtE,OAAA,CAAAE,UAAA,GAAAA,UAAA;AAAA,IAAAqE,QAAA,GAAAvE,OAAA,CAAAwE,OAAA,GAEa,IAAAC,gBAAO,EACrB,IAAAC,gBAAU,EAAE,CAAEC,MAAM,EAAE;EAAEC;AAAU,CAAC,KAAM;EACxC,MAAM;IACLC,aAAa;IACbC,aAAa;IACbC,oBAAoB;IACpBC;EACD,CAAC,GAAGL,MAAM,CAAEM,YAAiB,CAAC;EAC9B,MAAMC,mBAAmB,GAAGC,KAAK,CAACC,OAAO,CAAER,SAAU,CAAC,GACnDA,SAAS,GACT,CAAEA,SAAS,CAAE;EAChB,MAAMS,aAAa,GAAGH,mBAAmB,CAAE,CAAC,CAAE;EAC9C,MAAMvE,YAAY,GAAGoE,oBAAoB,CAAEM,aAAc,CAAC;EAC1D,MAAMC,UAAU,GAAGN,aAAa,CAAErE,YAAa,CAAC;EAChD,MAAMF,UAAU,GAAGoE,aAAa,CAAEQ,aAAc,CAAC;EACjD,MAAME,SAAS,GAAGV,aAAa,CAC9BK,mBAAmB,CAAEA,mBAAmB,CAACM,MAAM,GAAG,CAAC,CACpD,CAAC;EAED,OAAO;IACN/E,UAAU;IACVC,cAAc,EAAE4E,UAAU,CAACE,MAAM,GAAG,CAAC;IACrCrF,OAAO,EAAEM,UAAU,KAAK,CAAC;IACzBL,MAAM,EAAEmF,SAAS,KAAKD,UAAU,CAACE,MAAM,GAAG,CAAC;IAC3CnF,OAAO,EAAEyE,aAAa,CAAEF,SAAS,EAAEjE,YAAa,CAAC;IACjDA;EACD,CAAC;AACF,CAAE,CAAC,EACH,IAAA8E,kBAAY,EAAE,CAAEC,QAAQ,EAAE;EAAEd,SAAS;EAAEjE;AAAa,CAAC,KAAM;EAC1D,MAAM;IAAEgF,cAAc;IAAEC,YAAY;IAAEC;EAAqB,CAAC,GAC3DH,QAAQ,CAAET,YAAiB,CAAC;EAC7B,OAAO;IACN3E,UAAU,EAAEA,CAAE,GAAGwF,IAAI,KACpBH,cAAc,CAAEf,SAAS,EAAEjE,YAAY,EAAE,GAAGmF,IAAK,CAAC;IACnDvF,QAAQ,EAAEA,CAAE,GAAGuF,IAAI,KAClBF,YAAY,CAAEhB,SAAS,EAAEjE,YAAY,EAAE,GAAGmF,IAAK,CAAC;IACjDtF,UAAU,EACPuF,WAAW,IACb,CAAE,GAAGD,IAAI,KACRD,oBAAoB,CACnBjB,SAAS,EACTjE,YAAY,EACZoF,WAAW,EACX,GAAGD,IACJ;EACH,CAAC;AACF,CAAE,CAAC,EACHE,uBACD,CAAC,CAAE9F,UAAW,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_i18n","_components","_compose","_data","_element","_moverDescription","_store","_jsxRuntime","BLOCK_MOVER_DIRECTION_TOP","exports","BLOCK_MOVER_DIRECTION_BOTTOM","BlockMover","isFirst","isLast","canMove","onMoveDown","onMoveUp","onLongMove","firstIndex","numberOfBlocks","rootClientId","isStackedHorizontally","pickerRef","useRef","shouldPresentPicker","setShouldPresentPicker","useState","blockPageMoverState","setBlockPageMoverState","undefined","showBlockPageMover","direction","current","useEffect","presentPicker","description","backwardButtonHint","forwardButtonHint","firstBlockTitle","lastBlockTitle","icon","backward","backwardButtonIcon","forward","forwardButtonIcon","title","backwardButtonTitle","forwardButtonTitle","getMoversSetup","blockPageMoverOptions","label","__","value","onSelect","filter","el","onPickerSelect","option","find","onLongPressMoveUp","useCallback","onLongPressMoveDown","jsxs","ToolbarGroup","children","jsx","ToolbarButton","isDisabled","onClick","onLongPress","extraProps","hint","Picker","ref","options","onChange","leftAlign","hideCancelButton","Platform","OS","_default","default","compose","withSelect","select","clientIds","getBlockIndex","canMoveBlocks","getBlockRootClientId","getBlockOrder","blockEditorStore","normalizedClientIds","Array","isArray","firstClientId","blockOrder","lastIndex","length","withDispatch","dispatch","moveBlocksDown","moveBlocksUp","moveBlocksToPosition","args","targetIndex","withInstanceId"],"sources":["@wordpress/block-editor/src/components/block-mover/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Picker, ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { useCallback, useEffect, useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BLOCK_MOVER_DIRECTION_TOP = 'blockPageMoverOptions-moveToTop';\nexport const BLOCK_MOVER_DIRECTION_BOTTOM =\n\t'blockPageMoverOptions-moveToBottom';\n\nexport const BlockMover = ( {\n\tisFirst,\n\tisLast,\n\tcanMove,\n\tonMoveDown,\n\tonMoveUp,\n\tonLongMove,\n\tfirstIndex,\n\tnumberOfBlocks,\n\trootClientId,\n\tisStackedHorizontally,\n} ) => {\n\tconst pickerRef = useRef();\n\tconst [ shouldPresentPicker, setShouldPresentPicker ] = useState( false );\n\tconst [ blockPageMoverState, setBlockPageMoverState ] =\n\t\tuseState( undefined );\n\tconst showBlockPageMover = ( direction ) => () => {\n\t\tif ( ! pickerRef.current ) {\n\t\t\tsetBlockPageMoverState( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetBlockPageMoverState( direction );\n\t\tsetShouldPresentPicker( true );\n\t};\n\n\t// Ensure that the picker is only presented after state updates.\n\tuseEffect( () => {\n\t\tif ( shouldPresentPicker ) {\n\t\t\tpickerRef.current?.presentPicker();\n\t\t\tsetShouldPresentPicker( false );\n\t\t}\n\t}, [ shouldPresentPicker ] );\n\n\tconst {\n\t\tdescription: {\n\t\t\tbackwardButtonHint,\n\t\t\tforwardButtonHint,\n\t\t\tfirstBlockTitle,\n\t\t\tlastBlockTitle,\n\t\t},\n\t\ticon: { backward: backwardButtonIcon, forward: forwardButtonIcon },\n\t\ttitle: { backward: backwardButtonTitle, forward: forwardButtonTitle },\n\t} = getMoversSetup( isStackedHorizontally, { firstIndex } );\n\n\tconst blockPageMoverOptions = [\n\t\t{\n\t\t\ticon: backwardButtonIcon,\n\t\t\tlabel: __( 'Move to top' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_TOP,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( 0 );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ticon: forwardButtonIcon,\n\t\t\tlabel: __( 'Move to bottom' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_BOTTOM,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( numberOfBlocks );\n\t\t\t},\n\t\t},\n\t].filter( ( el ) => el.value === blockPageMoverState );\n\n\tconst onPickerSelect = ( value ) => {\n\t\tconst option = blockPageMoverOptions.find(\n\t\t\t( el ) => el.value === value\n\t\t);\n\t\tif ( option && option.onSelect ) {\n\t\t\toption.onSelect();\n\t\t}\n\t};\n\n\tconst onLongPressMoveUp = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_TOP ),\n\t\t[]\n\t);\n\tconst onLongPressMoveDown = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_BOTTOM ),\n\t\t[]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isFirst ? backwardButtonTitle : firstBlockTitle }\n\t\t\t\tisDisabled={ isFirst }\n\t\t\t\tonClick={ onMoveUp }\n\t\t\t\tonLongPress={ onLongPressMoveUp }\n\t\t\t\ticon={ backwardButtonIcon }\n\t\t\t\textraProps={ { hint: backwardButtonHint } }\n\t\t\t/>\n\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isLast ? forwardButtonTitle : lastBlockTitle }\n\t\t\t\tisDisabled={ isLast }\n\t\t\t\tonClick={ onMoveDown }\n\t\t\t\tonLongPress={ onLongPressMoveDown }\n\t\t\t\ticon={ forwardButtonIcon }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: forwardButtonHint,\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t<Picker\n\t\t\t\tref={ pickerRef }\n\t\t\t\toptions={ blockPageMoverOptions }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\ttitle={ __( 'Change block position' ) }\n\t\t\t\tleftAlign\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tcanMoveBlocks,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t? clientIds\n\t\t\t: [ clientIds ];\n\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\tconst lastIndex = getBlockIndex(\n\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t);\n\n\t\treturn {\n\t\t\tfirstIndex,\n\t\t\tnumberOfBlocks: blockOrder.length - 1,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tcanMove: canMoveBlocks( clientIds ),\n\t\t\trootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { clientIds, rootClientId } ) => {\n\t\tconst { moveBlocksDown, moveBlocksUp, moveBlocksToPosition } =\n\t\t\tdispatch( blockEditorStore );\n\t\treturn {\n\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\tmoveBlocksDown( clientIds, rootClientId, ...args ),\n\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\tmoveBlocksUp( clientIds, rootClientId, ...args ),\n\t\t\tonLongMove:\n\t\t\t\t( targetIndex ) =>\n\t\t\t\t( ...args ) =>\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\tclientIds,\n\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\ttargetIndex,\n\t\t\t\t\t\t...args\n\t\t\t\t\t),\n\t\t};\n\t} ),\n\twithInstanceId\n)( BlockMover );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -206,7 +206,7 @@ function BlockSettingsDropdown({
|
|
|
206
206
|
onClick: (0, _compose.pipe)(onClose, onDuplicate, updateSelectionAfterDuplicate),
|
|
207
207
|
shortcut: shortcuts.duplicate,
|
|
208
208
|
children: (0, _i18n.__)('Duplicate')
|
|
209
|
-
}), canInsertBlock && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
209
|
+
}), canInsertBlock && !isContentOnly && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
210
210
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItem, {
|
|
211
211
|
onClick: (0, _compose.pipe)(onClose, onInsertBefore),
|
|
212
212
|
shortcut: shortcuts.insertBefore,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blocks","require","_components","_data","_icons","_element","_i18n","_keycodes","_keyboardShortcuts","_compose","_blockActions","_interopRequireDefault","_blockHtmlConvertButton","_blockSettingsMenuFirstItem","_blockSettingsMenuControls","_blockParentSelectorMenuItem","_store","_lockUnlock","_jsxRuntime","POPOVER_PROPS","className","placement","CopyMenuItem","clientIds","onCopy","label","shortcut","getBlocksByClientId","useSelect","blockEditorStore","ref","useCopyToClipboard","serialize","copyMenuItemLabel","__","jsx","MenuItem","children","BlockSettingsDropdown","block","__experimentalSelectBlock","props","currentClientId","clientId","count","length","firstBlockClientId","firstParentClientId","onlyBlock","parentBlockType","previousBlockClientId","selectedBlockClientIds","openedBlockSettingsMenu","isContentOnly","select","getBlockCount","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getOpenedBlockSettingsMenu","getBlockEditingMode","unlock","getActiveBlockVariation","blocksStore","_firstParentClientId","parentBlockName","getBlockType","getBlockOrder","setOpenedBlockSettingsMenu","useDispatch","shortcuts","getShortcutRepresentation","keyboardShortcutsStore","duplicate","remove","insertAfter","insertBefore","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","default","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","onMoveTo","DropdownMenu","icon","moreVertical","popoverProps","noIcons","onClose","jsxs","Fragment","MenuGroup","Slot","fillProps","parentClientId","displayShortcut","primary","onClick","pipe","Children","map","child","cloneElement","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport { Children, cloneElement } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport BlockParentSelectorMenuItem from './block-parent-selector-menu-item';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( { clientIds, onCopy, label, shortcut } ) {\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst ref = useCopyToClipboard(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\tonCopy\n\t);\n\tconst copyMenuItemLabel = label ? label : __( 'Copy' );\n\treturn (\n\t\t<MenuItem ref={ ref } shortcut={ shortcut }>\n\t\t\t{ copyMenuItemLabel }\n\t\t</MenuItem>\n\t);\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\tchildren,\n\t__experimentalSelectBlock,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst currentClientId = block?.clientId;\n\tconst count = clientIds.length;\n\tconst firstBlockClientId = clientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t\topenedBlockSettingsMenu,\n\t\tisContentOnly,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetOpenedBlockSettingsMenu,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tonlyBlock: 1 === getBlockCount( _firstParentClientId ),\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t\topenedBlockSettingsMenu: getOpenedBlockSettingsMenu(),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( firstBlockClientId ) === 'contentOnly',\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setOpenedBlockSettingsMenu } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tasync function updateSelectionAfterDuplicate( clientIdsPromise ) {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst ids = await clientIdsPromise;\n\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t}\n\t}\n\n\tfunction updateSelectionAfterRemove() {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t// Focus the first block if there's no previous block nor parent block.\n\t\tif ( ! blockToFocus ) {\n\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t}\n\n\t\t// Only update the selection if the original selection is removed.\n\t\tconst shouldUpdateSelection =\n\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t}\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\t// When a currentClientId is in use, treat the menu as a controlled component.\n\t// This ensures that only one block settings menu is open at a time.\n\t// This is a temporary solution to work around an issue with `onFocusOutside`\n\t// where it does not allow a dropdown to be closed if focus was never within\n\t// the dropdown to begin with. Examples include a user either CMD+Clicking or\n\t// right clicking into an inactive window.\n\t// See: https://github.com/WordPress/gutenberg/pull/54083\n\tconst open = ! currentClientId\n\t\t? undefined\n\t\t: openedBlockSettingsMenu === currentClientId || false;\n\n\tfunction onToggle( localOpen ) {\n\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t} else if (\n\t\t\t! localOpen &&\n\t\t\topenedBlockSettingsMenu &&\n\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t) {\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t}\n\t}\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanCopyStyles,\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertBlock,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonPasteStyles,\n\t\t\t\tonMoveTo,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\topen={ open }\n\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\tnoIcons\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ ! parentBlockIsSelected &&\n\t\t\t\t\t\t\t\t\t!! firstParentClientId && (\n\t\t\t\t\t\t\t\t\t\t<BlockParentSelectorMenuItem\n\t\t\t\t\t\t\t\t\t\t\tparentClientId={\n\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType={ parentBlockType }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\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{ ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primary(\n\t\t\t\t\t\t\t\t\t\t\t'c'\n\t\t\t\t\t\t\t\t\t\t) }\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{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertBlock && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add after' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\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</MenuGroup>\n\t\t\t\t\t\t\t{ canCopyStyles && ! isContentOnly && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\tcanMove,\n\t\t\t\t\t\t\t\t\tonMoveTo,\n\t\t\t\t\t\t\t\t\tonlyBlock,\n\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_blocks","require","_components","_data","_icons","_element","_i18n","_keycodes","_keyboardShortcuts","_compose","_blockActions","_interopRequireDefault","_blockHtmlConvertButton","_blockSettingsMenuFirstItem","_blockSettingsMenuControls","_blockParentSelectorMenuItem","_store","_lockUnlock","_jsxRuntime","POPOVER_PROPS","className","placement","CopyMenuItem","clientIds","onCopy","label","shortcut","getBlocksByClientId","useSelect","blockEditorStore","ref","useCopyToClipboard","serialize","copyMenuItemLabel","__","jsx","MenuItem","children","BlockSettingsDropdown","block","__experimentalSelectBlock","props","currentClientId","clientId","count","length","firstBlockClientId","firstParentClientId","onlyBlock","parentBlockType","previousBlockClientId","selectedBlockClientIds","openedBlockSettingsMenu","isContentOnly","select","getBlockCount","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getOpenedBlockSettingsMenu","getBlockEditingMode","unlock","getActiveBlockVariation","blocksStore","_firstParentClientId","parentBlockName","getBlockType","getBlockOrder","setOpenedBlockSettingsMenu","useDispatch","shortcuts","getShortcutRepresentation","keyboardShortcutsStore","duplicate","remove","insertAfter","insertBefore","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","default","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","onMoveTo","DropdownMenu","icon","moreVertical","popoverProps","noIcons","onClose","jsxs","Fragment","MenuGroup","Slot","fillProps","parentClientId","displayShortcut","primary","onClick","pipe","Children","map","child","cloneElement","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport { Children, cloneElement } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport BlockParentSelectorMenuItem from './block-parent-selector-menu-item';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( { clientIds, onCopy, label, shortcut } ) {\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst ref = useCopyToClipboard(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\tonCopy\n\t);\n\tconst copyMenuItemLabel = label ? label : __( 'Copy' );\n\treturn (\n\t\t<MenuItem ref={ ref } shortcut={ shortcut }>\n\t\t\t{ copyMenuItemLabel }\n\t\t</MenuItem>\n\t);\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\tchildren,\n\t__experimentalSelectBlock,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst currentClientId = block?.clientId;\n\tconst count = clientIds.length;\n\tconst firstBlockClientId = clientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t\topenedBlockSettingsMenu,\n\t\tisContentOnly,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetOpenedBlockSettingsMenu,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tonlyBlock: 1 === getBlockCount( _firstParentClientId ),\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t\topenedBlockSettingsMenu: getOpenedBlockSettingsMenu(),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( firstBlockClientId ) === 'contentOnly',\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setOpenedBlockSettingsMenu } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tasync function updateSelectionAfterDuplicate( clientIdsPromise ) {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst ids = await clientIdsPromise;\n\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t}\n\t}\n\n\tfunction updateSelectionAfterRemove() {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t// Focus the first block if there's no previous block nor parent block.\n\t\tif ( ! blockToFocus ) {\n\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t}\n\n\t\t// Only update the selection if the original selection is removed.\n\t\tconst shouldUpdateSelection =\n\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t}\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\t// When a currentClientId is in use, treat the menu as a controlled component.\n\t// This ensures that only one block settings menu is open at a time.\n\t// This is a temporary solution to work around an issue with `onFocusOutside`\n\t// where it does not allow a dropdown to be closed if focus was never within\n\t// the dropdown to begin with. Examples include a user either CMD+Clicking or\n\t// right clicking into an inactive window.\n\t// See: https://github.com/WordPress/gutenberg/pull/54083\n\tconst open = ! currentClientId\n\t\t? undefined\n\t\t: openedBlockSettingsMenu === currentClientId || false;\n\n\tfunction onToggle( localOpen ) {\n\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t} else if (\n\t\t\t! localOpen &&\n\t\t\topenedBlockSettingsMenu &&\n\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t) {\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t}\n\t}\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanCopyStyles,\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertBlock,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonPasteStyles,\n\t\t\t\tonMoveTo,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\topen={ open }\n\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\tnoIcons\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ ! parentBlockIsSelected &&\n\t\t\t\t\t\t\t\t\t!! firstParentClientId && (\n\t\t\t\t\t\t\t\t\t\t<BlockParentSelectorMenuItem\n\t\t\t\t\t\t\t\t\t\t\tparentClientId={\n\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType={ parentBlockType }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\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{ ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primary(\n\t\t\t\t\t\t\t\t\t\t\t'c'\n\t\t\t\t\t\t\t\t\t\t) }\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{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertBlock && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add after' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\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</MenuGroup>\n\t\t\t\t\t\t\t{ canCopyStyles && ! isContentOnly && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\tcanMove,\n\t\t\t\t\t\t\t\t\tonMoveTo,\n\t\t\t\t\t\t\t\t\tonlyBlock,\n\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -32,7 +32,6 @@ function useBlockVariationTransforms({
|
|
|
32
32
|
blockVariationTransformations
|
|
33
33
|
} = (0, _data.useSelect)(select => {
|
|
34
34
|
const {
|
|
35
|
-
getBlockRootClientId,
|
|
36
35
|
getBlockAttributes,
|
|
37
36
|
canRemoveBlocks
|
|
38
37
|
} = select(_store.store);
|
|
@@ -40,8 +39,7 @@ function useBlockVariationTransforms({
|
|
|
40
39
|
getActiveBlockVariation,
|
|
41
40
|
getBlockVariations
|
|
42
41
|
} = select(_blocks.store);
|
|
43
|
-
const
|
|
44
|
-
const canRemove = canRemoveBlocks(clientIds, rootClientId);
|
|
42
|
+
const canRemove = canRemoveBlocks(clientIds);
|
|
45
43
|
// Only handle single selected blocks for now.
|
|
46
44
|
if (blocks.length !== 1 || !canRemove) {
|
|
47
45
|
return EMPTY_OBJECT;
|