@wordpress/block-editor 12.19.4 → 12.19.5

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.
Files changed (90) hide show
  1. package/build/components/block-actions/index.js +45 -32
  2. package/build/components/block-actions/index.js.map +1 -1
  3. package/build/components/block-bindings-toolbar-indicator/index.js +25 -0
  4. package/build/components/block-bindings-toolbar-indicator/index.js.map +1 -0
  5. package/build/components/block-list/use-block-props/index.js +8 -1
  6. package/build/components/block-list/use-block-props/index.js.map +1 -1
  7. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -3
  8. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  9. package/build/components/block-settings-menu/block-settings-dropdown.js +12 -10
  10. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  11. package/build/components/block-toolbar/index.js +14 -5
  12. package/build/components/block-toolbar/index.js.map +1 -1
  13. package/build/components/list-view/block-select-button.js +10 -2
  14. package/build/components/list-view/block-select-button.js.map +1 -1
  15. package/build/components/list-view/use-clipboard-handler.js +2 -1
  16. package/build/components/list-view/use-clipboard-handler.js.map +1 -1
  17. package/build/components/rich-text/index.js +1 -1
  18. package/build/components/rich-text/index.js.map +1 -1
  19. package/build/components/url-popover/index.js +3 -3
  20. package/build/components/url-popover/index.js.map +1 -1
  21. package/build/components/writing-flow/use-clipboard-handler.js +2 -1
  22. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
  23. package/build/components/writing-flow/utils.js +23 -6
  24. package/build/components/writing-flow/utils.js.map +1 -1
  25. package/build/hooks/block-hooks.js +26 -2
  26. package/build/hooks/block-hooks.js.map +1 -1
  27. package/build/hooks/use-bindings-attributes.js +171 -46
  28. package/build/hooks/use-bindings-attributes.js.map +1 -1
  29. package/build/private-apis.js +2 -0
  30. package/build/private-apis.js.map +1 -1
  31. package/build/store/actions.js +40 -6
  32. package/build/store/actions.js.map +1 -1
  33. package/build-module/components/block-actions/index.js +45 -32
  34. package/build-module/components/block-actions/index.js.map +1 -1
  35. package/build-module/components/block-bindings-toolbar-indicator/index.js +18 -0
  36. package/build-module/components/block-bindings-toolbar-indicator/index.js.map +1 -0
  37. package/build-module/components/block-list/use-block-props/index.js +9 -2
  38. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  39. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -3
  40. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  41. package/build-module/components/block-settings-menu/block-settings-dropdown.js +12 -10
  42. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  43. package/build-module/components/block-toolbar/index.js +14 -5
  44. package/build-module/components/block-toolbar/index.js.map +1 -1
  45. package/build-module/components/list-view/block-select-button.js +11 -3
  46. package/build-module/components/list-view/block-select-button.js.map +1 -1
  47. package/build-module/components/list-view/use-clipboard-handler.js +3 -2
  48. package/build-module/components/list-view/use-clipboard-handler.js.map +1 -1
  49. package/build-module/components/rich-text/index.js +2 -2
  50. package/build-module/components/rich-text/index.js.map +1 -1
  51. package/build-module/components/url-popover/index.js +3 -3
  52. package/build-module/components/url-popover/index.js.map +1 -1
  53. package/build-module/components/writing-flow/use-clipboard-handler.js +3 -2
  54. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
  55. package/build-module/components/writing-flow/utils.js +22 -7
  56. package/build-module/components/writing-flow/utils.js.map +1 -1
  57. package/build-module/hooks/block-hooks.js +26 -2
  58. package/build-module/hooks/block-hooks.js.map +1 -1
  59. package/build-module/hooks/use-bindings-attributes.js +171 -46
  60. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  61. package/build-module/private-apis.js +2 -0
  62. package/build-module/private-apis.js.map +1 -1
  63. package/build-module/store/actions.js +40 -6
  64. package/build-module/store/actions.js.map +1 -1
  65. package/build-style/content-rtl.css +1 -0
  66. package/build-style/content.css +1 -0
  67. package/build-style/default-editor-styles-rtl.css +1 -0
  68. package/build-style/default-editor-styles.css +1 -0
  69. package/build-style/style-rtl.css +23 -0
  70. package/build-style/style.css +23 -0
  71. package/package.json +8 -8
  72. package/src/components/block-actions/index.js +57 -47
  73. package/src/components/block-bindings-toolbar-indicator/index.js +20 -0
  74. package/src/components/block-bindings-toolbar-indicator/style.scss +14 -0
  75. package/src/components/block-list/use-block-props/index.js +12 -2
  76. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -7
  77. package/src/components/block-settings-menu/block-settings-dropdown.js +12 -9
  78. package/src/components/block-toolbar/index.js +14 -4
  79. package/src/components/list-view/block-select-button.js +16 -2
  80. package/src/components/list-view/style.scss +8 -0
  81. package/src/components/list-view/use-clipboard-handler.js +3 -2
  82. package/src/components/rich-text/index.js +2 -2
  83. package/src/components/url-popover/index.js +5 -5
  84. package/src/components/writing-flow/use-clipboard-handler.js +3 -2
  85. package/src/components/writing-flow/utils.js +31 -16
  86. package/src/hooks/block-hooks.js +36 -3
  87. package/src/hooks/use-bindings-attributes.js +214 -62
  88. package/src/private-apis.js +2 -0
  89. package/src/store/actions.js +54 -14
  90. package/src/style.scss +1 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_data","_element","_compose","_blocks","_components","_blockMover","_blockParentSelector","_blockSwitcher","_blockControls","_blockToolbarLastItem","_blockSettingsMenu","_blockLock","_convertToGroupButtons","_blockEditVisuallyButton","_utils","_store","_blockNameContext","_navigableToolbar","_useHasBlockControls","PrivateBlockToolbar","hideDragHandle","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","variant","blockClientId","blockClientIds","isDefaultEditingMode","blockType","shouldShowVisualToolbar","showParentSelector","useSelect","select","getBlockName","getBlockMode","getBlockParents","getSelectedBlockClientIds","isBlockValid","getBlockRootClientId","getBlockEditingMode","blockEditorStore","selectedBlockClientIds","selectedBlockClientId","blockRootClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","getBlockType","_isDefaultEditingMode","isValid","every","id","isVisual","rootClientId","hasBlockSupport","toolbarWrapperRef","useRef","nodeRef","showHoveredOrFocusedGestures","useShowHoveredOrFocusedGestures","ref","isLargeViewport","useViewportMatch","isToolbarEnabled","hasAnyBlockControls","useHasAnyBlockControls","isMultiToolbar","isSynced","isReusableBlock","isTemplatePart","classes","classnames","innerClasses","_react","createElement","default","focusEditorOnEscape","className","__","undefined","key","ToolbarGroup","clientIds","BlockLockToolbar","clientId","BlockGroupToolbar","Fragment","Slot","group","Provider","value","name","BlockToolbar"],"sources":["@wordpress/block-editor/src/components/block-toolbar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\thasBlockSupport,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockMover from '../block-mover';\nimport BlockParentSelector from '../block-parent-selector';\nimport BlockSwitcher from '../block-switcher';\nimport BlockControls from '../block-controls';\nimport __unstableBlockToolbarLastItem from './block-toolbar-last-item';\nimport BlockSettingsMenu from '../block-settings-menu';\nimport { BlockLockToolbar } from '../block-lock';\nimport { BlockGroupToolbar } from '../convert-to-group-buttons';\nimport BlockEditVisuallyButton from '../block-edit-visually-button';\nimport { useShowHoveredOrFocusedGestures } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport __unstableBlockNameContext from './block-name-context';\nimport NavigableToolbar from '../navigable-toolbar';\nimport { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {boolean} props.focusOnMount Focus the toolbar when mounted.\n * @param {number} props.__experimentalInitialIndex The initial index of the toolbar item to focus.\n * @param {Function} props.__experimentalOnIndexChange Callback function to be called when the index of the focused toolbar item changes.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport function PrivateBlockToolbar( {\n\thideDragHandle,\n\tfocusOnMount,\n\t__experimentalInitialIndex,\n\t__experimentalOnIndexChange,\n\tvariant = 'unstyled',\n} ) {\n\tconst {\n\t\tblockClientId,\n\t\tblockClientIds,\n\t\tisDefaultEditingMode,\n\t\tblockType,\n\t\tshouldShowVisualToolbar,\n\t\tshowParentSelector,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockMode,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisBlockValid,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockEditingMode,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst blockRootClientId = getBlockRootClientId( selectedBlockClientId );\n\t\tconst parents = getBlockParents( selectedBlockClientId );\n\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\t\tconst _isDefaultEditingMode =\n\t\t\tgetBlockEditingMode( selectedBlockClientId ) === 'default';\n\t\tconst isValid = selectedBlockClientIds.every( ( id ) =>\n\t\t\tisBlockValid( id )\n\t\t);\n\t\tconst isVisual = selectedBlockClientIds.every(\n\t\t\t( id ) => getBlockMode( id ) === 'visual'\n\t\t);\n\t\treturn {\n\t\t\tblockClientId: selectedBlockClientId,\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tisDefaultEditingMode: _isDefaultEditingMode,\n\t\t\tblockType:\n\t\t\t\tselectedBlockClientId &&\n\t\t\t\tgetBlockType( getBlockName( selectedBlockClientId ) ),\n\n\t\t\tshouldShowVisualToolbar: isValid && isVisual,\n\t\t\trootClientId: blockRootClientId,\n\t\t\tshowParentSelector:\n\t\t\t\tparentBlockType &&\n\t\t\t\tgetBlockEditingMode( firstParentClientId ) === 'default' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\tparentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t) &&\n\t\t\t\tselectedBlockClientIds.length === 1 &&\n\t\t\t\t_isDefaultEditingMode,\n\t\t};\n\t}, [] );\n\n\tconst toolbarWrapperRef = useRef( null );\n\n\t// Handles highlighting the current block outline on hover or focus of the\n\t// block type toolbar area.\n\tconst nodeRef = useRef();\n\tconst showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: nodeRef,\n\t} );\n\n\tconst isLargeViewport = ! useViewportMatch( 'medium', '<' );\n\n\tconst isToolbarEnabled =\n\t\tblockType &&\n\t\thasBlockSupport( blockType, '__experimentalToolbar', true );\n\tconst hasAnyBlockControls = useHasAnyBlockControls();\n\n\tif (\n\t\t! isToolbarEnabled ||\n\t\t( ! isDefaultEditingMode && ! hasAnyBlockControls )\n\t) {\n\t\treturn null;\n\t}\n\n\tconst isMultiToolbar = blockClientIds.length > 1;\n\tconst isSynced =\n\t\tisReusableBlock( blockType ) || isTemplatePart( blockType );\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = classnames( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': showParentSelector,\n\t} );\n\n\tconst innerClasses = classnames( 'block-editor-block-toolbar', {\n\t\t'is-synced': isSynced,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusEditorOnEscape\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t// The variant is applied as \"toolbar\" when undefined, which is the black border style of the dropdown from the toolbar popover.\n\t\t\tvariant={ variant === 'toolbar' ? undefined : variant }\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t__experimentalInitialIndex={ __experimentalInitialIndex }\n\t\t\t__experimentalOnIndexChange={ __experimentalOnIndexChange }\n\t\t\t// Resets the index whenever the active block changes so\n\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\tkey={ blockClientId }\n\t\t>\n\t\t\t<div ref={ toolbarWrapperRef } className={ innerClasses }>\n\t\t\t\t{ ! isMultiToolbar &&\n\t\t\t\t\tisLargeViewport &&\n\t\t\t\t\tisDefaultEditingMode && <BlockParentSelector /> }\n\t\t\t\t{ ( shouldShowVisualToolbar || isMultiToolbar ) &&\n\t\t\t\t\tisDefaultEditingMode && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ nodeRef }\n\t\t\t\t\t\t\t{ ...showHoveredOrFocusedGestures }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToolbarGroup className=\"block-editor-block-toolbar__block-controls\">\n\t\t\t\t\t\t\t\t<BlockSwitcher clientIds={ blockClientIds } />\n\t\t\t\t\t\t\t\t{ ! isMultiToolbar && (\n\t\t\t\t\t\t\t\t\t<BlockLockToolbar\n\t\t\t\t\t\t\t\t\t\tclientId={ blockClientId }\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<BlockMover\n\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\thideDragHandle={ hideDragHandle }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t{ shouldShowVisualToolbar && isMultiToolbar && (\n\t\t\t\t\t<BlockGroupToolbar />\n\t\t\t\t) }\n\t\t\t\t{ shouldShowVisualToolbar && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"parent\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"block\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot className=\"block-editor-block-toolbar__slot\" />\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"inline\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"other\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<__unstableBlockNameContext.Provider\n\t\t\t\t\t\t\tvalue={ blockType?.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<__unstableBlockToolbarLastItem.Slot />\n\t\t\t\t\t\t</__unstableBlockNameContext.Provider>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<BlockEditVisuallyButton clientIds={ blockClientIds } />\n\t\t\t\t{ isDefaultEditingMode && (\n\t\t\t\t\t<BlockSettingsMenu clientIds={ blockClientIds } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</NavigableToolbar>\n\t);\n}\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport default function BlockToolbar( { hideDragHandle, variant } ) {\n\treturn (\n\t\t<PrivateBlockToolbar\n\t\t\thideDragHandle={ hideDragHandle }\n\t\t\tvariant={ variant }\n\t\t\tfocusOnMount={ undefined }\n\t\t\t__experimentalInitialIndex={ undefined }\n\t\t\t__experimentalOnIndexChange={ undefined }\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_data","_element","_compose","_blocks","_components","_blockMover","_blockParentSelector","_blockSwitcher","_blockControls","_blockToolbarLastItem","_blockSettingsMenu","_blockLock","_convertToGroupButtons","_blockEditVisuallyButton","_utils","_store","_blockNameContext","_navigableToolbar","_useHasBlockControls","_blockBindingsToolbarIndicator","_useBindingsAttributes","PrivateBlockToolbar","hideDragHandle","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","variant","blockClientId","blockClientIds","isDefaultEditingMode","blockType","blockName","shouldShowVisualToolbar","showParentSelector","isUsingBindings","useSelect","select","getBlockName","getBlockMode","getBlockParents","getSelectedBlockClientIds","isBlockValid","getBlockRootClientId","getBlockEditingMode","getBlockAttributes","blockEditorStore","selectedBlockClientIds","selectedBlockClientId","blockRootClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","getBlockType","_isDefaultEditingMode","_blockName","isValid","every","id","isVisual","_isUsingBindings","metadata","bindings","rootClientId","hasBlockSupport","toolbarWrapperRef","useRef","nodeRef","showHoveredOrFocusedGestures","useShowHoveredOrFocusedGestures","ref","isLargeViewport","useViewportMatch","isToolbarEnabled","hasAnyBlockControls","useHasAnyBlockControls","isMultiToolbar","isSynced","isReusableBlock","isTemplatePart","classes","classnames","innerClasses","_react","createElement","default","focusEditorOnEscape","className","__","undefined","key","canBindBlock","ToolbarGroup","clientIds","BlockLockToolbar","clientId","BlockGroupToolbar","Fragment","Slot","group","Provider","value","name","BlockToolbar"],"sources":["@wordpress/block-editor/src/components/block-toolbar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\thasBlockSupport,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockMover from '../block-mover';\nimport BlockParentSelector from '../block-parent-selector';\nimport BlockSwitcher from '../block-switcher';\nimport BlockControls from '../block-controls';\nimport __unstableBlockToolbarLastItem from './block-toolbar-last-item';\nimport BlockSettingsMenu from '../block-settings-menu';\nimport { BlockLockToolbar } from '../block-lock';\nimport { BlockGroupToolbar } from '../convert-to-group-buttons';\nimport BlockEditVisuallyButton from '../block-edit-visually-button';\nimport { useShowHoveredOrFocusedGestures } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport __unstableBlockNameContext from './block-name-context';\nimport NavigableToolbar from '../navigable-toolbar';\nimport { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';\nimport BlockBindingsIndicator from '../block-bindings-toolbar-indicator';\nimport { canBindBlock } from '../../hooks/use-bindings-attributes';\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {boolean} props.focusOnMount Focus the toolbar when mounted.\n * @param {number} props.__experimentalInitialIndex The initial index of the toolbar item to focus.\n * @param {Function} props.__experimentalOnIndexChange Callback function to be called when the index of the focused toolbar item changes.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport function PrivateBlockToolbar( {\n\thideDragHandle,\n\tfocusOnMount,\n\t__experimentalInitialIndex,\n\t__experimentalOnIndexChange,\n\tvariant = 'unstyled',\n} ) {\n\tconst {\n\t\tblockClientId,\n\t\tblockClientIds,\n\t\tisDefaultEditingMode,\n\t\tblockType,\n\t\tblockName,\n\t\tshouldShowVisualToolbar,\n\t\tshowParentSelector,\n\t\tisUsingBindings,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockMode,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisBlockValid,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockEditingMode,\n\t\t\tgetBlockAttributes,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst blockRootClientId = getBlockRootClientId( selectedBlockClientId );\n\t\tconst parents = getBlockParents( selectedBlockClientId );\n\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\t\tconst _isDefaultEditingMode =\n\t\t\tgetBlockEditingMode( selectedBlockClientId ) === 'default';\n\t\tconst _blockName = getBlockName( selectedBlockClientId );\n\t\tconst isValid = selectedBlockClientIds.every( ( id ) =>\n\t\t\tisBlockValid( id )\n\t\t);\n\t\tconst isVisual = selectedBlockClientIds.every(\n\t\t\t( id ) => getBlockMode( id ) === 'visual'\n\t\t);\n\t\tconst _isUsingBindings = !! getBlockAttributes( selectedBlockClientId )\n\t\t\t?.metadata?.bindings;\n\t\treturn {\n\t\t\tblockClientId: selectedBlockClientId,\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tisDefaultEditingMode: _isDefaultEditingMode,\n\t\t\tblockName: _blockName,\n\t\t\tblockType: selectedBlockClientId && getBlockType( _blockName ),\n\t\t\tshouldShowVisualToolbar: isValid && isVisual,\n\t\t\trootClientId: blockRootClientId,\n\t\t\tshowParentSelector:\n\t\t\t\tparentBlockType &&\n\t\t\t\tgetBlockEditingMode( firstParentClientId ) === 'default' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\tparentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t) &&\n\t\t\t\tselectedBlockClientIds.length === 1 &&\n\t\t\t\t_isDefaultEditingMode,\n\t\t\tisUsingBindings: _isUsingBindings,\n\t\t};\n\t}, [] );\n\n\tconst toolbarWrapperRef = useRef( null );\n\n\t// Handles highlighting the current block outline on hover or focus of the\n\t// block type toolbar area.\n\tconst nodeRef = useRef();\n\tconst showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: nodeRef,\n\t} );\n\n\tconst isLargeViewport = ! useViewportMatch( 'medium', '<' );\n\n\tconst isToolbarEnabled =\n\t\tblockType &&\n\t\thasBlockSupport( blockType, '__experimentalToolbar', true );\n\tconst hasAnyBlockControls = useHasAnyBlockControls();\n\n\tif (\n\t\t! isToolbarEnabled ||\n\t\t( ! isDefaultEditingMode && ! hasAnyBlockControls )\n\t) {\n\t\treturn null;\n\t}\n\n\tconst isMultiToolbar = blockClientIds.length > 1;\n\tconst isSynced =\n\t\tisReusableBlock( blockType ) || isTemplatePart( blockType );\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = classnames( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': showParentSelector,\n\t} );\n\n\tconst innerClasses = classnames( 'block-editor-block-toolbar', {\n\t\t'is-synced': isSynced,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusEditorOnEscape\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t// The variant is applied as \"toolbar\" when undefined, which is the black border style of the dropdown from the toolbar popover.\n\t\t\tvariant={ variant === 'toolbar' ? undefined : variant }\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t__experimentalInitialIndex={ __experimentalInitialIndex }\n\t\t\t__experimentalOnIndexChange={ __experimentalOnIndexChange }\n\t\t\t// Resets the index whenever the active block changes so\n\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\tkey={ blockClientId }\n\t\t>\n\t\t\t<div ref={ toolbarWrapperRef } className={ innerClasses }>\n\t\t\t\t{ ! isMultiToolbar &&\n\t\t\t\t\tisLargeViewport &&\n\t\t\t\t\tisDefaultEditingMode && <BlockParentSelector /> }\n\t\t\t\t{ isUsingBindings && canBindBlock( blockName ) && (\n\t\t\t\t\t<BlockBindingsIndicator />\n\t\t\t\t) }\n\t\t\t\t{ ( shouldShowVisualToolbar || isMultiToolbar ) &&\n\t\t\t\t\tisDefaultEditingMode && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ nodeRef }\n\t\t\t\t\t\t\t{ ...showHoveredOrFocusedGestures }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToolbarGroup className=\"block-editor-block-toolbar__block-controls\">\n\t\t\t\t\t\t\t\t<BlockSwitcher clientIds={ blockClientIds } />\n\t\t\t\t\t\t\t\t{ ! isMultiToolbar && (\n\t\t\t\t\t\t\t\t\t<BlockLockToolbar\n\t\t\t\t\t\t\t\t\t\tclientId={ blockClientId }\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<BlockMover\n\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\thideDragHandle={ hideDragHandle }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t{ shouldShowVisualToolbar && isMultiToolbar && (\n\t\t\t\t\t<BlockGroupToolbar />\n\t\t\t\t) }\n\t\t\t\t{ shouldShowVisualToolbar && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"parent\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"block\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot className=\"block-editor-block-toolbar__slot\" />\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"inline\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"other\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<__unstableBlockNameContext.Provider\n\t\t\t\t\t\t\tvalue={ blockType?.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<__unstableBlockToolbarLastItem.Slot />\n\t\t\t\t\t\t</__unstableBlockNameContext.Provider>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<BlockEditVisuallyButton clientIds={ blockClientIds } />\n\t\t\t\t{ isDefaultEditingMode && (\n\t\t\t\t\t<BlockSettingsMenu clientIds={ blockClientIds } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</NavigableToolbar>\n\t);\n}\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport default function BlockToolbar( { hideDragHandle, variant } ) {\n\treturn (\n\t\t<PrivateBlockToolbar\n\t\t\thideDragHandle={ hideDragHandle }\n\t\t\tvariant={ variant }\n\t\t\tfocusOnMount={ undefined }\n\t\t\t__experimentalInitialIndex={ undefined }\n\t\t\t__experimentalOnIndexChange={ undefined }\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
@@ -24,6 +24,7 @@ var _blockLock = require("../block-lock");
24
24
  var _store = require("../../store");
25
25
  var _useListViewImages = _interopRequireDefault(require("./use-list-view-images"));
26
26
  var _context = require("./context");
27
+ var _useBindingsAttributes = require("../../hooks/use-bindings-attributes");
27
28
  /**
28
29
  * External dependencies
29
30
  */
@@ -39,7 +40,8 @@ var _context = require("./context");
39
40
  function ListViewBlockSelectButton({
40
41
  className,
41
42
  block: {
42
- clientId
43
+ clientId,
44
+ name: blockName
43
45
  },
44
46
  onClick,
45
47
  onContextMenu,
@@ -70,6 +72,7 @@ function ListViewBlockSelectButton({
70
72
  getBlockRootClientId,
71
73
  getBlockOrder,
72
74
  getBlocksByClientId,
75
+ getBlockAttributes,
73
76
  canRemoveBlocks
74
77
  } = (0, _data.useSelect)(_store.store);
75
78
  const {
@@ -86,6 +89,7 @@ function ListViewBlockSelectButton({
86
89
  const {
87
90
  rootClientId
88
91
  } = (0, _context.useListViewContext)();
92
+ const isConnected = getBlockAttributes(clientId)?.metadata?.bindings;
89
93
  const positionLabel = blockInformation?.positionLabel ? (0, _i18n.sprintf)(
90
94
  // translators: 1: Position of selected block, e.g. "Sticky" or "Fixed".
91
95
  (0, _i18n.__)('Position: %1$s'), blockInformation.positionLabel) : '';
@@ -239,7 +243,11 @@ function ListViewBlockSelectButton({
239
243
  }, (0, _react.createElement)(_components.__experimentalTruncate, {
240
244
  className: "block-editor-list-view-block-select-button__anchor",
241
245
  ellipsizeMode: "auto"
242
- }, blockInformation.anchor)), positionLabel && isSticky && (0, _react.createElement)(_components.Tooltip, {
246
+ }, blockInformation.anchor)), isConnected && (0, _useBindingsAttributes.canBindBlock)(blockName) && (0, _react.createElement)("span", {
247
+ className: "block-editor-list-view-block-select-button__bindings"
248
+ }, (0, _react.createElement)(_icons.Icon, {
249
+ icon: _icons.connection
250
+ })), positionLabel && isSticky && (0, _react.createElement)(_components.Tooltip, {
243
251
  text: positionLabel
244
252
  }, (0, _react.createElement)(_icons.Icon, {
245
253
  icon: _icons.pinSmall
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_blocks","_components","_element","_icons","_keycodes","_data","_keyboardShortcuts","_i18n","_isShallowEqual","_blockIcon","_useBlockDisplayInformation","_useBlockDisplayTitle","_expander","_blockLock","_store","_useListViewImages","_context","ListViewBlockSelectButton","className","block","clientId","onClick","onContextMenu","onMouseDown","onToggleExpanded","tabIndex","onFocus","onDragStart","onDragEnd","draggable","isExpanded","ariaLabel","ariaDescribedBy","updateFocusAndSelection","ref","blockInformation","useBlockDisplayInformation","blockTitle","useBlockDisplayTitle","context","isLocked","useBlockLock","canInsertBlockType","getSelectedBlockClientIds","getPreviousBlockClientId","getBlockRootClientId","getBlockOrder","getBlocksByClientId","canRemoveBlocks","useSelect","blockEditorStore","duplicateBlocks","multiSelect","removeBlocks","useDispatch","isMatch","useShortcutEventMatch","isSticky","positionType","images","useListViewImages","rootClientId","useListViewContext","positionLabel","sprintf","__","onDragStartHandler","event","dataTransfer","clearData","getBlocksToUpdate","selectedBlockClientIds","isUpdatingSelectedBlocks","includes","firstBlockClientId","firstBlockRootClientId","blocksToUpdate","onKeyDownHandler","keyCode","ENTER","SPACE","BACKSPACE","DELETE","_getPreviousBlockClie","blocksToDelete","blockToFocus","shouldUpdateSelection","length","defaultPrevented","preventDefault","canDuplicate","every","hasBlockSupport","name","updatedBlocks","blockClientIds","isShallowEqual","_react","createElement","Fragment","Button","classnames","onKeyDown","href","default","icon","showColors","__experimentalHStack","alignment","justify","spacing","__experimentalTruncate","ellipsizeMode","anchor","Tooltip","text","Icon","pinSmall","map","image","index","key","style","backgroundImage","url","zIndex","lock","_default","exports","forwardRef"],"sources":["@wordpress/block-editor/src/components/list-view/block-select-button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tTooltip,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, lockSmall as lock, pinSmall } from '@wordpress/icons';\nimport { SPACE, ENTER, BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { __, sprintf } from '@wordpress/i18n';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport ListViewExpander from './expander';\nimport { useBlockLock } from '../block-lock';\nimport { store as blockEditorStore } from '../../store';\nimport useListViewImages from './use-list-view-images';\nimport { useListViewContext } from './context';\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId },\n\t\tonClick,\n\t\tonContextMenu,\n\t\tonMouseDown,\n\t\tonToggleExpanded,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t\tisExpanded,\n\t\tariaLabel,\n\t\tariaDescribedBy,\n\t\tupdateFocusAndSelection,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId,\n\t\tcontext: 'list-view',\n\t} );\n\tconst { isLocked } = useBlockLock( clientId );\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetSelectedBlockClientIds,\n\t\tgetPreviousBlockClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlockOrder,\n\t\tgetBlocksByClientId,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { duplicateBlocks, multiSelect, removeBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tconst isMatch = useShortcutEventMatch();\n\tconst isSticky = blockInformation?.positionType === 'sticky';\n\tconst images = useListViewImages( { clientId, isExpanded } );\n\tconst { rootClientId } = useListViewContext();\n\n\tconst positionLabel = blockInformation?.positionLabel\n\t\t? sprintf(\n\t\t\t\t// translators: 1: Position of selected block, e.g. \"Sticky\" or \"Fixed\".\n\t\t\t\t__( 'Position: %1$s' ),\n\t\t\t\tblockInformation.positionLabel\n\t\t )\n\t\t: '';\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart?.( event );\n\t};\n\n\t// Determine which blocks to update:\n\t// If the current (focused) block is part of the block selection, use the whole selection.\n\t// If the focused block is not part of the block selection, only update the focused block.\n\tfunction getBlocksToUpdate() {\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst isUpdatingSelectedBlocks =\n\t\t\tselectedBlockClientIds.includes( clientId );\n\t\tconst firstBlockClientId = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds[ 0 ]\n\t\t\t: clientId;\n\t\tconst firstBlockRootClientId =\n\t\t\tgetBlockRootClientId( firstBlockClientId );\n\n\t\tconst blocksToUpdate = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds\n\t\t\t: [ clientId ];\n\n\t\treturn {\n\t\t\tblocksToUpdate,\n\t\t\tfirstBlockClientId,\n\t\t\tfirstBlockRootClientId,\n\t\t\tselectedBlockClientIds,\n\t\t};\n\t}\n\n\t/**\n\t * @param {KeyboardEvent} event\n\t */\n\tasync function onKeyDownHandler( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tonClick( event );\n\t\t} else if (\n\t\t\tevent.keyCode === BACKSPACE ||\n\t\t\tevent.keyCode === DELETE ||\n\t\t\tisMatch( 'core/block-editor/remove', event )\n\t\t) {\n\t\t\tconst {\n\t\t\t\tblocksToUpdate: blocksToDelete,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\tselectedBlockClientIds,\n\t\t\t} = getBlocksToUpdate();\n\n\t\t\t// Don't update the selection if the blocks cannot be deleted.\n\t\t\tif ( ! canRemoveBlocks( blocksToDelete, firstBlockRootClientId ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet blockToFocus =\n\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ) ??\n\t\t\t\t// If the previous block is not found (when the first block is deleted),\n\t\t\t\t// fallback to focus the parent block.\n\t\t\t\tfirstBlockRootClientId;\n\n\t\t\tremoveBlocks( blocksToDelete, false );\n\n\t\t\t// Update the selection if the original selection has been removed.\n\t\t\tconst shouldUpdateSelection =\n\t\t\t\tselectedBlockClientIds.length > 0 &&\n\t\t\t\tgetSelectedBlockClientIds().length === 0;\n\n\t\t\t// If there's no previous block nor parent block, focus the first block.\n\t\t\tif ( ! blockToFocus ) {\n\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t}\n\n\t\t\tupdateFocusAndSelection( blockToFocus, shouldUpdateSelection );\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate, firstBlockRootClientId } =\n\t\t\t\tgetBlocksToUpdate();\n\n\t\t\tconst canDuplicate = getBlocksByClientId( blocksToUpdate ).every(\n\t\t\t\t( block ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\t\t\t\tcanInsertBlockType( block.name, firstBlockRootClientId )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( canDuplicate ) {\n\t\t\t\tconst updatedBlocks = await duplicateBlocks(\n\t\t\t\t\tblocksToUpdate,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\n\t\t\t\tif ( updatedBlocks?.length ) {\n\t\t\t\t\t// If blocks have been duplicated, focus the first duplicated block.\n\t\t\t\t\tupdateFocusAndSelection( updatedBlocks[ 0 ], false );\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/select-all', event ) ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { firstBlockRootClientId, selectedBlockClientIds } =\n\t\t\t\tgetBlocksToUpdate();\n\t\t\tconst blockClientIds = getBlockOrder( firstBlockRootClientId );\n\t\t\tif ( ! blockClientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If we have selected all sibling nested blocks, try selecting up a level.\n\t\t\t// This is a similar implementation to that used by `useSelectAll`.\n\t\t\t// `isShallowEqual` is used for the list view instead of a length check,\n\t\t\t// as the array of siblings of the currently focused block may be a different\n\t\t\t// set of blocks from the current block selection if the user is focused\n\t\t\t// on a different part of the list view from the block selection.\n\t\t\tif ( isShallowEqual( selectedBlockClientIds, blockClientIds ) ) {\n\t\t\t\t// Only select up a level if the first block is not the root block.\n\t\t\t\t// This ensures that the block selection can't break out of the root block\n\t\t\t\t// used by the list view, if the list view is only showing a partial hierarchy.\n\t\t\t\tif (\n\t\t\t\t\tfirstBlockRootClientId &&\n\t\t\t\t\tfirstBlockRootClientId !== rootClientId\n\t\t\t\t) {\n\t\t\t\t\tupdateFocusAndSelection( firstBlockRootClientId, true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Select all while passing `null` to skip focusing to the editor canvas,\n\t\t\t// and retain focus within the list view.\n\t\t\tmultiSelect(\n\t\t\t\tblockClientIds[ 0 ],\n\t\t\t\tblockClientIds[ blockClientIds.length - 1 ],\n\t\t\t\tnull\n\t\t\t);\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonContextMenu={ onContextMenu }\n\t\t\t\tonKeyDown={ onKeyDownHandler }\n\t\t\t\tonMouseDown={ onMouseDown }\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tonDragStart={ onDragStartHandler }\n\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\tdraggable={ draggable }\n\t\t\t\thref={ `#block-${ clientId }` }\n\t\t\t\taria-label={ ariaLabel }\n\t\t\t\taria-describedby={ ariaDescribedBy }\n\t\t\t\taria-expanded={ isExpanded }\n\t\t\t>\n\t\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t\t<BlockIcon\n\t\t\t\t\ticon={ blockInformation?.icon }\n\t\t\t\t\tshowColors\n\t\t\t\t\tcontext=\"list-view\"\n\t\t\t\t/>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__label-wrapper\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__title\">\n\t\t\t\t\t\t<Truncate ellipsizeMode=\"auto\">{ blockTitle }</Truncate>\n\t\t\t\t\t</span>\n\t\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor-wrapper\">\n\t\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__anchor\"\n\t\t\t\t\t\t\t\tellipsizeMode=\"auto\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t{ positionLabel && isSticky && (\n\t\t\t\t\t\t<Tooltip text={ positionLabel }>\n\t\t\t\t\t\t\t<Icon icon={ pinSmall } />\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t{ images.length ? (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__images\"\n\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ images.map( ( image, index ) => (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__image\"\n\t\t\t\t\t\t\t\t\tkey={ image.clientId }\n\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\tbackgroundImage: `url(${ image.url })`,\n\t\t\t\t\t\t\t\t\t\tzIndex: images.length - index, // Ensure the first image is on top, and subsequent images are behind.\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) ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : null }\n\t\t\t\t\t{ isLocked && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__lock\">\n\t\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</Button>\n\t\t</>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_blocks","_components","_element","_icons","_keycodes","_data","_keyboardShortcuts","_i18n","_isShallowEqual","_blockIcon","_useBlockDisplayInformation","_useBlockDisplayTitle","_expander","_blockLock","_store","_useListViewImages","_context","_useBindingsAttributes","ListViewBlockSelectButton","className","block","clientId","name","blockName","onClick","onContextMenu","onMouseDown","onToggleExpanded","tabIndex","onFocus","onDragStart","onDragEnd","draggable","isExpanded","ariaLabel","ariaDescribedBy","updateFocusAndSelection","ref","blockInformation","useBlockDisplayInformation","blockTitle","useBlockDisplayTitle","context","isLocked","useBlockLock","canInsertBlockType","getSelectedBlockClientIds","getPreviousBlockClientId","getBlockRootClientId","getBlockOrder","getBlocksByClientId","getBlockAttributes","canRemoveBlocks","useSelect","blockEditorStore","duplicateBlocks","multiSelect","removeBlocks","useDispatch","isMatch","useShortcutEventMatch","isSticky","positionType","images","useListViewImages","rootClientId","useListViewContext","isConnected","metadata","bindings","positionLabel","sprintf","__","onDragStartHandler","event","dataTransfer","clearData","getBlocksToUpdate","selectedBlockClientIds","isUpdatingSelectedBlocks","includes","firstBlockClientId","firstBlockRootClientId","blocksToUpdate","onKeyDownHandler","keyCode","ENTER","SPACE","BACKSPACE","DELETE","_getPreviousBlockClie","blocksToDelete","blockToFocus","shouldUpdateSelection","length","defaultPrevented","preventDefault","canDuplicate","every","hasBlockSupport","updatedBlocks","blockClientIds","isShallowEqual","_react","createElement","Fragment","Button","classnames","onKeyDown","href","default","icon","showColors","__experimentalHStack","alignment","justify","spacing","__experimentalTruncate","ellipsizeMode","anchor","canBindBlock","Icon","connection","Tooltip","text","pinSmall","map","image","index","key","style","backgroundImage","url","zIndex","lock","_default","exports","forwardRef"],"sources":["@wordpress/block-editor/src/components/list-view/block-select-button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tTooltip,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport {\n\tIcon,\n\tconnection,\n\tlockSmall as lock,\n\tpinSmall,\n} from '@wordpress/icons';\nimport { SPACE, ENTER, BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { __, sprintf } from '@wordpress/i18n';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport ListViewExpander from './expander';\nimport { useBlockLock } from '../block-lock';\nimport { store as blockEditorStore } from '../../store';\nimport useListViewImages from './use-list-view-images';\nimport { useListViewContext } from './context';\nimport { canBindBlock } from '../../hooks/use-bindings-attributes';\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId, name: blockName },\n\t\tonClick,\n\t\tonContextMenu,\n\t\tonMouseDown,\n\t\tonToggleExpanded,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t\tisExpanded,\n\t\tariaLabel,\n\t\tariaDescribedBy,\n\t\tupdateFocusAndSelection,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId,\n\t\tcontext: 'list-view',\n\t} );\n\tconst { isLocked } = useBlockLock( clientId );\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetSelectedBlockClientIds,\n\t\tgetPreviousBlockClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlockOrder,\n\t\tgetBlocksByClientId,\n\t\tgetBlockAttributes,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { duplicateBlocks, multiSelect, removeBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tconst isMatch = useShortcutEventMatch();\n\tconst isSticky = blockInformation?.positionType === 'sticky';\n\tconst images = useListViewImages( { clientId, isExpanded } );\n\tconst { rootClientId } = useListViewContext();\n\n\tconst isConnected = getBlockAttributes( clientId )?.metadata?.bindings;\n\n\tconst positionLabel = blockInformation?.positionLabel\n\t\t? sprintf(\n\t\t\t\t// translators: 1: Position of selected block, e.g. \"Sticky\" or \"Fixed\".\n\t\t\t\t__( 'Position: %1$s' ),\n\t\t\t\tblockInformation.positionLabel\n\t\t )\n\t\t: '';\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart?.( event );\n\t};\n\n\t// Determine which blocks to update:\n\t// If the current (focused) block is part of the block selection, use the whole selection.\n\t// If the focused block is not part of the block selection, only update the focused block.\n\tfunction getBlocksToUpdate() {\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst isUpdatingSelectedBlocks =\n\t\t\tselectedBlockClientIds.includes( clientId );\n\t\tconst firstBlockClientId = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds[ 0 ]\n\t\t\t: clientId;\n\t\tconst firstBlockRootClientId =\n\t\t\tgetBlockRootClientId( firstBlockClientId );\n\n\t\tconst blocksToUpdate = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds\n\t\t\t: [ clientId ];\n\n\t\treturn {\n\t\t\tblocksToUpdate,\n\t\t\tfirstBlockClientId,\n\t\t\tfirstBlockRootClientId,\n\t\t\tselectedBlockClientIds,\n\t\t};\n\t}\n\n\t/**\n\t * @param {KeyboardEvent} event\n\t */\n\tasync function onKeyDownHandler( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tonClick( event );\n\t\t} else if (\n\t\t\tevent.keyCode === BACKSPACE ||\n\t\t\tevent.keyCode === DELETE ||\n\t\t\tisMatch( 'core/block-editor/remove', event )\n\t\t) {\n\t\t\tconst {\n\t\t\t\tblocksToUpdate: blocksToDelete,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\tselectedBlockClientIds,\n\t\t\t} = getBlocksToUpdate();\n\n\t\t\t// Don't update the selection if the blocks cannot be deleted.\n\t\t\tif ( ! canRemoveBlocks( blocksToDelete, firstBlockRootClientId ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet blockToFocus =\n\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ) ??\n\t\t\t\t// If the previous block is not found (when the first block is deleted),\n\t\t\t\t// fallback to focus the parent block.\n\t\t\t\tfirstBlockRootClientId;\n\n\t\t\tremoveBlocks( blocksToDelete, false );\n\n\t\t\t// Update the selection if the original selection has been removed.\n\t\t\tconst shouldUpdateSelection =\n\t\t\t\tselectedBlockClientIds.length > 0 &&\n\t\t\t\tgetSelectedBlockClientIds().length === 0;\n\n\t\t\t// If there's no previous block nor parent block, focus the first block.\n\t\t\tif ( ! blockToFocus ) {\n\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t}\n\n\t\t\tupdateFocusAndSelection( blockToFocus, shouldUpdateSelection );\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate, firstBlockRootClientId } =\n\t\t\t\tgetBlocksToUpdate();\n\n\t\t\tconst canDuplicate = getBlocksByClientId( blocksToUpdate ).every(\n\t\t\t\t( block ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\t\t\t\tcanInsertBlockType( block.name, firstBlockRootClientId )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( canDuplicate ) {\n\t\t\t\tconst updatedBlocks = await duplicateBlocks(\n\t\t\t\t\tblocksToUpdate,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\n\t\t\t\tif ( updatedBlocks?.length ) {\n\t\t\t\t\t// If blocks have been duplicated, focus the first duplicated block.\n\t\t\t\t\tupdateFocusAndSelection( updatedBlocks[ 0 ], false );\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/select-all', event ) ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { firstBlockRootClientId, selectedBlockClientIds } =\n\t\t\t\tgetBlocksToUpdate();\n\t\t\tconst blockClientIds = getBlockOrder( firstBlockRootClientId );\n\t\t\tif ( ! blockClientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If we have selected all sibling nested blocks, try selecting up a level.\n\t\t\t// This is a similar implementation to that used by `useSelectAll`.\n\t\t\t// `isShallowEqual` is used for the list view instead of a length check,\n\t\t\t// as the array of siblings of the currently focused block may be a different\n\t\t\t// set of blocks from the current block selection if the user is focused\n\t\t\t// on a different part of the list view from the block selection.\n\t\t\tif ( isShallowEqual( selectedBlockClientIds, blockClientIds ) ) {\n\t\t\t\t// Only select up a level if the first block is not the root block.\n\t\t\t\t// This ensures that the block selection can't break out of the root block\n\t\t\t\t// used by the list view, if the list view is only showing a partial hierarchy.\n\t\t\t\tif (\n\t\t\t\t\tfirstBlockRootClientId &&\n\t\t\t\t\tfirstBlockRootClientId !== rootClientId\n\t\t\t\t) {\n\t\t\t\t\tupdateFocusAndSelection( firstBlockRootClientId, true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Select all while passing `null` to skip focusing to the editor canvas,\n\t\t\t// and retain focus within the list view.\n\t\t\tmultiSelect(\n\t\t\t\tblockClientIds[ 0 ],\n\t\t\t\tblockClientIds[ blockClientIds.length - 1 ],\n\t\t\t\tnull\n\t\t\t);\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonContextMenu={ onContextMenu }\n\t\t\t\tonKeyDown={ onKeyDownHandler }\n\t\t\t\tonMouseDown={ onMouseDown }\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tonDragStart={ onDragStartHandler }\n\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\tdraggable={ draggable }\n\t\t\t\thref={ `#block-${ clientId }` }\n\t\t\t\taria-label={ ariaLabel }\n\t\t\t\taria-describedby={ ariaDescribedBy }\n\t\t\t\taria-expanded={ isExpanded }\n\t\t\t>\n\t\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t\t<BlockIcon\n\t\t\t\t\ticon={ blockInformation?.icon }\n\t\t\t\t\tshowColors\n\t\t\t\t\tcontext=\"list-view\"\n\t\t\t\t/>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__label-wrapper\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__title\">\n\t\t\t\t\t\t<Truncate ellipsizeMode=\"auto\">{ blockTitle }</Truncate>\n\t\t\t\t\t</span>\n\t\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor-wrapper\">\n\t\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__anchor\"\n\t\t\t\t\t\t\t\tellipsizeMode=\"auto\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isConnected && canBindBlock( blockName ) && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__bindings\">\n\t\t\t\t\t\t\t<Icon icon={ connection } />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t{ positionLabel && isSticky && (\n\t\t\t\t\t\t<Tooltip text={ positionLabel }>\n\t\t\t\t\t\t\t<Icon icon={ pinSmall } />\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t{ images.length ? (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__images\"\n\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ images.map( ( image, index ) => (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__image\"\n\t\t\t\t\t\t\t\t\tkey={ image.clientId }\n\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\tbackgroundImage: `url(${ image.url })`,\n\t\t\t\t\t\t\t\t\t\tzIndex: images.length - index, // Ensure the first image is on top, and subsequent images are behind.\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) ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : null }\n\t\t\t\t\t{ isLocked && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__lock\">\n\t\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</Button>\n\t\t</>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"],"mappings":"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"}
@@ -23,6 +23,7 @@ var _utils2 = require("../writing-flow/utils");
23
23
  function useClipboardHandler({
24
24
  selectBlock
25
25
  }) {
26
+ const registry = (0, _data.useRegistry)();
26
27
  const {
27
28
  getBlockOrder,
28
29
  getBlockRootClientId,
@@ -99,7 +100,7 @@ function useClipboardHandler({
99
100
  }
100
101
  notifyCopy(event.type, selectedBlockClientIds);
101
102
  const blocks = getBlocksByClientId(selectedBlockClientIds);
102
- (0, _utils2.setClipboardBlocks)(event, blocks);
103
+ (0, _utils2.setClipboardBlocks)(event, blocks, registry);
103
104
  }
104
105
  if (event.type === 'cut') {
105
106
  var _getPreviousBlockClie;
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_compose","_store","_useNotifyCopy","_utils","_utils2","useClipboardHandler","selectBlock","getBlockOrder","getBlockRootClientId","getBlocksByClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getSettings","canInsertBlockType","canRemoveBlocks","useSelect","blockEditorStore","flashBlock","removeBlocks","replaceBlocks","insertBlocks","useDispatch","notifyCopy","useNotifyCopy","useRefEffect","node","updateFocusAndSelection","focusClientId","shouldSelectBlock","undefined","focusListItem","getBlocksToUpdate","clientId","selectedBlockClientIds","isUpdatingSelectedBlocks","includes","firstBlockClientId","firstBlockRootClientId","blocksToUpdate","originallySelectedBlockClientIds","handler","event","defaultPrevented","contains","target","ownerDocument","activeElement","listViewRow","closest","dataset","block","length","preventDefault","type","blocks","setClipboardBlocks","_getPreviousBlockClie","blockToFocus","shouldUpdateSelection","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","getPasteBlocks","selectedBlockClientId","every","name","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/list-view/use-clipboard-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport { focusListItem } from './utils';\nimport { getPasteBlocks, setClipboardBlocks } from '../writing-flow/utils';\n\n// This hook borrows from useClipboardHandler in ../writing-flow/use-clipboard-handler.js\n// and adds behaviour for the list view, while skipping partial selection.\nexport default function useClipboardHandler( { selectBlock } ) {\n\tconst {\n\t\tgetBlockOrder,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetSelectedBlockClientIds,\n\t\tgetSettings,\n\t\tcanInsertBlockType,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { flashBlock, removeBlocks, replaceBlocks, insertBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction updateFocusAndSelection( focusClientId, shouldSelectBlock ) {\n\t\t\tif ( shouldSelectBlock ) {\n\t\t\t\tselectBlock( undefined, focusClientId, null, null );\n\t\t\t}\n\n\t\t\tfocusListItem( focusClientId, node );\n\t\t}\n\n\t\t// Determine which blocks to update:\n\t\t// If the current (focused) block is part of the block selection, use the whole selection.\n\t\t// If the focused block is not part of the block selection, only update the focused block.\n\t\tfunction getBlocksToUpdate( clientId ) {\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst isUpdatingSelectedBlocks =\n\t\t\t\tselectedBlockClientIds.includes( clientId );\n\t\t\tconst firstBlockClientId = isUpdatingSelectedBlocks\n\t\t\t\t? selectedBlockClientIds[ 0 ]\n\t\t\t\t: clientId;\n\t\t\tconst firstBlockRootClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\n\t\t\tconst blocksToUpdate = isUpdatingSelectedBlocks\n\t\t\t\t? selectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\treturn {\n\t\t\t\tblocksToUpdate,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\toriginallySelectedBlockClientIds: selectedBlockClientIds,\n\t\t\t};\n\t\t}\n\n\t\tfunction handler( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t// This was possibly already handled in rich-text/use-paste-handler.js.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only handle events that occur within the list view.\n\t\t\tif ( ! node.contains( event.target.ownerDocument.activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Retrieve the block clientId associated with the focused list view row.\n\t\t\t// This enables applying copy / cut / paste behavior to the focused block,\n\t\t\t// rather than just the blocks that are currently selected.\n\t\t\tconst listViewRow =\n\t\t\t\tevent.target.ownerDocument.activeElement?.closest(\n\t\t\t\t\t'[role=row]'\n\t\t\t\t);\n\t\t\tconst clientId = listViewRow?.dataset?.block;\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tblocksToUpdate: selectedBlockClientIds,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\toriginallySelectedBlockClientIds,\n\t\t\t} = getBlocksToUpdate( clientId );\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\tconst blocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\tsetClipboardBlocks( event, blocks );\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// Don't update the selection if the blocks cannot be deleted.\n\t\t\t\tif (\n\t\t\t\t\t! canRemoveBlocks(\n\t\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\t\tfirstBlockRootClientId\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet blockToFocus =\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ) ??\n\t\t\t\t\t// If the previous block is not found (when the first block is deleted),\n\t\t\t\t\t// fallback to focus the parent block.\n\t\t\t\t\tfirstBlockRootClientId;\n\n\t\t\t\t// Remove blocks, but don't update selection, and it will be handled below.\n\t\t\t\tremoveBlocks( selectedBlockClientIds, false );\n\n\t\t\t\t// Update the selection if the original selection has been removed.\n\t\t\t\tconst shouldUpdateSelection =\n\t\t\t\t\toriginallySelectedBlockClientIds.length > 0 &&\n\t\t\t\t\tgetSelectedBlockClientIds().length === 0;\n\n\t\t\t\t// If there's no previous block nor parent block, focus the first block.\n\t\t\t\tif ( ! blockToFocus ) {\n\t\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t\t}\n\n\t\t\t\tupdateFocusAndSelection( blockToFocus, shouldUpdateSelection );\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst blocks = getPasteBlocks(\n\t\t\t\t\tevent,\n\t\t\t\t\tcanUserUseUnfilteredHTML\n\t\t\t\t);\n\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tconst [ selectedBlockClientId ] = selectedBlockClientIds;\n\n\t\t\t\t\t// If a single block is focused, and the blocks to be posted can\n\t\t\t\t\t// be inserted within the block, then append the pasted blocks\n\t\t\t\t\t// within the focused block. For example, if you have copied a paragraph\n\t\t\t\t\t// block and paste it within a single Group block, this will append\n\t\t\t\t\t// the paragraph block within the Group block.\n\t\t\t\t\tif (\n\t\t\t\t\t\tblocks.every( ( block ) =>\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\t\t\tselectedBlockClientId\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\t\tinsertBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t\tupdateFocusAndSelection( blocks[ 0 ]?.clientId, false );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\tblocks,\n\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t-1\n\t\t\t\t);\n\t\t\t\tupdateFocusAndSelection( blocks[ 0 ]?.clientId, false );\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAZA;AACA;AACA;;AAIA;AACA;AACA;;AAMA;AACA;AACe,SAASM,mBAAmBA,CAAE;EAAEC;AAAY,CAAC,EAAG;EAC9D,MAAM;IACLC,aAAa;IACbC,oBAAoB;IACpBC,mBAAmB;IACnBC,wBAAwB;IACxBC,yBAAyB;IACzBC,WAAW;IACXC,kBAAkB;IAClBC;EACD,CAAC,GAAG,IAAAC,eAAS,EAAEC,YAAiB,CAAC;EACjC,MAAM;IAAEC,UAAU;IAAEC,YAAY;IAAEC,aAAa;IAAEC;EAAa,CAAC,GAC9D,IAAAC,iBAAW,EAAEL,YAAiB,CAAC;EAChC,MAAMM,UAAU,GAAG,IAAAC,4BAAa,EAAC,CAAC;EAElC,OAAO,IAAAC,qBAAY,EAAIC,IAAI,IAAM;IAChC,SAASC,uBAAuBA,CAAEC,aAAa,EAAEC,iBAAiB,EAAG;MACpE,IAAKA,iBAAiB,EAAG;QACxBtB,WAAW,CAAEuB,SAAS,EAAEF,aAAa,EAAE,IAAI,EAAE,IAAK,CAAC;MACpD;MAEA,IAAAG,oBAAa,EAAEH,aAAa,EAAEF,IAAK,CAAC;IACrC;;IAEA;IACA;IACA;IACA,SAASM,iBAAiBA,CAAEC,QAAQ,EAAG;MACtC,MAAMC,sBAAsB,GAAGtB,yBAAyB,CAAC,CAAC;MAC1D,MAAMuB,wBAAwB,GAC7BD,sBAAsB,CAACE,QAAQ,CAAEH,QAAS,CAAC;MAC5C,MAAMI,kBAAkB,GAAGF,wBAAwB,GAChDD,sBAAsB,CAAE,CAAC,CAAE,GAC3BD,QAAQ;MACX,MAAMK,sBAAsB,GAC3B7B,oBAAoB,CAAE4B,kBAAmB,CAAC;MAE3C,MAAME,cAAc,GAAGJ,wBAAwB,GAC5CD,sBAAsB,GACtB,CAAED,QAAQ,CAAE;MAEf,OAAO;QACNM,cAAc;QACdF,kBAAkB;QAClBC,sBAAsB;QACtBE,gCAAgC,EAAEN;MACnC,CAAC;IACF;IAEA,SAASO,OAAOA,CAAEC,KAAK,EAAG;MACzB,IAAKA,KAAK,CAACC,gBAAgB,EAAG;QAC7B;QACA;MACD;;MAEA;MACA,IAAK,CAAEjB,IAAI,CAACkB,QAAQ,CAAEF,KAAK,CAACG,MAAM,CAACC,aAAa,CAACC,aAAc,CAAC,EAAG;QAClE;MACD;;MAEA;MACA;MACA;MACA,MAAMC,WAAW,GAChBN,KAAK,CAACG,MAAM,CAACC,aAAa,CAACC,aAAa,EAAEE,OAAO,CAChD,YACD,CAAC;MACF,MAAMhB,QAAQ,GAAGe,WAAW,EAAEE,OAAO,EAAEC,KAAK;MAC5C,IAAK,CAAElB,QAAQ,EAAG;QACjB;MACD;MAEA,MAAM;QACLM,cAAc,EAAEL,sBAAsB;QACtCG,kBAAkB;QAClBC,sBAAsB;QACtBE;MACD,CAAC,GAAGR,iBAAiB,CAAEC,QAAS,CAAC;MAEjC,IAAKC,sBAAsB,CAACkB,MAAM,KAAK,CAAC,EAAG;QAC1C;MACD;MAEAV,KAAK,CAACW,cAAc,CAAC,CAAC;MAEtB,IAAKX,KAAK,CAACY,IAAI,KAAK,MAAM,IAAIZ,KAAK,CAACY,IAAI,KAAK,KAAK,EAAG;QACpD,IAAKpB,sBAAsB,CAACkB,MAAM,KAAK,CAAC,EAAG;UAC1ClC,UAAU,CAAEgB,sBAAsB,CAAE,CAAC,CAAG,CAAC;QAC1C;QAEAX,UAAU,CAAEmB,KAAK,CAACY,IAAI,EAAEpB,sBAAuB,CAAC;QAChD,MAAMqB,MAAM,GAAG7C,mBAAmB,CAAEwB,sBAAuB,CAAC;QAC5D,IAAAsB,0BAAkB,EAAEd,KAAK,EAAEa,MAAO,CAAC;MACpC;MAEA,IAAKb,KAAK,CAACY,IAAI,KAAK,KAAK,EAAG;QAAA,IAAAG,qBAAA;QAC3B;QACA,IACC,CAAE1C,eAAe,CAChBmB,sBAAsB,EACtBI,sBACD,CAAC,EACA;UACD;QACD;QAEA,IAAIoB,YAAY,IAAAD,qBAAA,GACf9C,wBAAwB,CAAE0B,kBAAmB,CAAC,cAAAoB,qBAAA,cAAAA,qBAAA;QAC9C;QACA;QACAnB,sBAAsB;;QAEvB;QACAnB,YAAY,CAAEe,sBAAsB,EAAE,KAAM,CAAC;;QAE7C;QACA,MAAMyB,qBAAqB,GAC1BnB,gCAAgC,CAACY,MAAM,GAAG,CAAC,IAC3CxC,yBAAyB,CAAC,CAAC,CAACwC,MAAM,KAAK,CAAC;;QAEzC;QACA,IAAK,CAAEM,YAAY,EAAG;UACrBA,YAAY,GAAGlD,aAAa,CAAC,CAAC,CAAE,CAAC,CAAE;QACpC;QAEAmB,uBAAuB,CAAE+B,YAAY,EAAEC,qBAAsB,CAAC;MAC/D,CAAC,MAAM,IAAKjB,KAAK,CAACY,IAAI,KAAK,OAAO,EAAG;QACpC,MAAM;UACLM,sCAAsC,EACrCC;QACF,CAAC,GAAGhD,WAAW,CAAC,CAAC;QACjB,MAAM0C,MAAM,GAAG,IAAAO,sBAAc,EAC5BpB,KAAK,EACLmB,wBACD,CAAC;QAED,IAAK3B,sBAAsB,CAACkB,MAAM,KAAK,CAAC,EAAG;UAC1C,MAAM,CAAEW,qBAAqB,CAAE,GAAG7B,sBAAsB;;UAExD;UACA;UACA;UACA;UACA;UACA,IACCqB,MAAM,CAACS,KAAK,CAAIb,KAAK,IACpBrC,kBAAkB,CACjBqC,KAAK,CAACc,IAAI,EACVF,qBACD,CACD,CAAC,EACA;YACD1C,YAAY,CACXkC,MAAM,EACNzB,SAAS,EACTiC,qBACD,CAAC;YACDpC,uBAAuB,CAAE4B,MAAM,CAAE,CAAC,CAAE,EAAEtB,QAAQ,EAAE,KAAM,CAAC;YACvD;UACD;QACD;QAEAb,aAAa,CACZc,sBAAsB,EACtBqB,MAAM,EACNA,MAAM,CAACH,MAAM,GAAG,CAAC,EACjB,CAAC,CACF,CAAC;QACDzB,uBAAuB,CAAE4B,MAAM,CAAE,CAAC,CAAE,EAAEtB,QAAQ,EAAE,KAAM,CAAC;MACxD;IACD;IAEAP,IAAI,CAACoB,aAAa,CAACoB,gBAAgB,CAAE,MAAM,EAAEzB,OAAQ,CAAC;IACtDf,IAAI,CAACoB,aAAa,CAACoB,gBAAgB,CAAE,KAAK,EAAEzB,OAAQ,CAAC;IACrDf,IAAI,CAACoB,aAAa,CAACoB,gBAAgB,CAAE,OAAO,EAAEzB,OAAQ,CAAC;IAEvD,OAAO,MAAM;MACZf,IAAI,CAACoB,aAAa,CAACqB,mBAAmB,CAAE,MAAM,EAAE1B,OAAQ,CAAC;MACzDf,IAAI,CAACoB,aAAa,CAACqB,mBAAmB,CAAE,KAAK,EAAE1B,OAAQ,CAAC;MACxDf,IAAI,CAACoB,aAAa,CAACqB,mBAAmB,CAAE,OAAO,EAAE1B,OAAQ,CAAC;IAC3D,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;AACR"}
1
+ {"version":3,"names":["_data","require","_compose","_store","_useNotifyCopy","_utils","_utils2","useClipboardHandler","selectBlock","registry","useRegistry","getBlockOrder","getBlockRootClientId","getBlocksByClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getSettings","canInsertBlockType","canRemoveBlocks","useSelect","blockEditorStore","flashBlock","removeBlocks","replaceBlocks","insertBlocks","useDispatch","notifyCopy","useNotifyCopy","useRefEffect","node","updateFocusAndSelection","focusClientId","shouldSelectBlock","undefined","focusListItem","getBlocksToUpdate","clientId","selectedBlockClientIds","isUpdatingSelectedBlocks","includes","firstBlockClientId","firstBlockRootClientId","blocksToUpdate","originallySelectedBlockClientIds","handler","event","defaultPrevented","contains","target","ownerDocument","activeElement","listViewRow","closest","dataset","block","length","preventDefault","type","blocks","setClipboardBlocks","_getPreviousBlockClie","blockToFocus","shouldUpdateSelection","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","getPasteBlocks","selectedBlockClientId","every","name","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/list-view/use-clipboard-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport { focusListItem } from './utils';\nimport { getPasteBlocks, setClipboardBlocks } from '../writing-flow/utils';\n\n// This hook borrows from useClipboardHandler in ../writing-flow/use-clipboard-handler.js\n// and adds behaviour for the list view, while skipping partial selection.\nexport default function useClipboardHandler( { selectBlock } ) {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetBlockOrder,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetSelectedBlockClientIds,\n\t\tgetSettings,\n\t\tcanInsertBlockType,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { flashBlock, removeBlocks, replaceBlocks, insertBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction updateFocusAndSelection( focusClientId, shouldSelectBlock ) {\n\t\t\tif ( shouldSelectBlock ) {\n\t\t\t\tselectBlock( undefined, focusClientId, null, null );\n\t\t\t}\n\n\t\t\tfocusListItem( focusClientId, node );\n\t\t}\n\n\t\t// Determine which blocks to update:\n\t\t// If the current (focused) block is part of the block selection, use the whole selection.\n\t\t// If the focused block is not part of the block selection, only update the focused block.\n\t\tfunction getBlocksToUpdate( clientId ) {\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst isUpdatingSelectedBlocks =\n\t\t\t\tselectedBlockClientIds.includes( clientId );\n\t\t\tconst firstBlockClientId = isUpdatingSelectedBlocks\n\t\t\t\t? selectedBlockClientIds[ 0 ]\n\t\t\t\t: clientId;\n\t\t\tconst firstBlockRootClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\n\t\t\tconst blocksToUpdate = isUpdatingSelectedBlocks\n\t\t\t\t? selectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\treturn {\n\t\t\t\tblocksToUpdate,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\toriginallySelectedBlockClientIds: selectedBlockClientIds,\n\t\t\t};\n\t\t}\n\n\t\tfunction handler( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t// This was possibly already handled in rich-text/use-paste-handler.js.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only handle events that occur within the list view.\n\t\t\tif ( ! node.contains( event.target.ownerDocument.activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Retrieve the block clientId associated with the focused list view row.\n\t\t\t// This enables applying copy / cut / paste behavior to the focused block,\n\t\t\t// rather than just the blocks that are currently selected.\n\t\t\tconst listViewRow =\n\t\t\t\tevent.target.ownerDocument.activeElement?.closest(\n\t\t\t\t\t'[role=row]'\n\t\t\t\t);\n\t\t\tconst clientId = listViewRow?.dataset?.block;\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tblocksToUpdate: selectedBlockClientIds,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\toriginallySelectedBlockClientIds,\n\t\t\t} = getBlocksToUpdate( clientId );\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\tconst blocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\tsetClipboardBlocks( event, blocks, registry );\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// Don't update the selection if the blocks cannot be deleted.\n\t\t\t\tif (\n\t\t\t\t\t! canRemoveBlocks(\n\t\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\t\tfirstBlockRootClientId\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet blockToFocus =\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ) ??\n\t\t\t\t\t// If the previous block is not found (when the first block is deleted),\n\t\t\t\t\t// fallback to focus the parent block.\n\t\t\t\t\tfirstBlockRootClientId;\n\n\t\t\t\t// Remove blocks, but don't update selection, and it will be handled below.\n\t\t\t\tremoveBlocks( selectedBlockClientIds, false );\n\n\t\t\t\t// Update the selection if the original selection has been removed.\n\t\t\t\tconst shouldUpdateSelection =\n\t\t\t\t\toriginallySelectedBlockClientIds.length > 0 &&\n\t\t\t\t\tgetSelectedBlockClientIds().length === 0;\n\n\t\t\t\t// If there's no previous block nor parent block, focus the first block.\n\t\t\t\tif ( ! blockToFocus ) {\n\t\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t\t}\n\n\t\t\t\tupdateFocusAndSelection( blockToFocus, shouldUpdateSelection );\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst blocks = getPasteBlocks(\n\t\t\t\t\tevent,\n\t\t\t\t\tcanUserUseUnfilteredHTML\n\t\t\t\t);\n\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tconst [ selectedBlockClientId ] = selectedBlockClientIds;\n\n\t\t\t\t\t// If a single block is focused, and the blocks to be posted can\n\t\t\t\t\t// be inserted within the block, then append the pasted blocks\n\t\t\t\t\t// within the focused block. For example, if you have copied a paragraph\n\t\t\t\t\t// block and paste it within a single Group block, this will append\n\t\t\t\t\t// the paragraph block within the Group block.\n\t\t\t\t\tif (\n\t\t\t\t\t\tblocks.every( ( block ) =>\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\t\t\tselectedBlockClientId\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\t\tinsertBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t\tupdateFocusAndSelection( blocks[ 0 ]?.clientId, false );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\tblocks,\n\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t-1\n\t\t\t\t);\n\t\t\t\tupdateFocusAndSelection( blocks[ 0 ]?.clientId, false );\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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"}
@@ -177,7 +177,7 @@ function RichTextWrapper({
177
177
  const disableBoundBlocks = (0, _data.useSelect)(select => {
178
178
  // Disable Rich Text editing if block bindings specify that.
179
179
  let _disableBoundBlocks = false;
180
- if (blockBindings && blockName in _useBindingsAttributes.BLOCK_BINDINGS_ALLOWED_BLOCKS) {
180
+ if (blockBindings && (0, _useBindingsAttributes.canBindBlock)(blockName)) {
181
181
  const blockTypeAttributes = (0, _blocks.getBlockType)(blockName).attributes;
182
182
  const {
183
183
  getBlockBindingsSource
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_data","_compose","_richText","_components","_blocks","_autocomplete","_blockEdit","_context","_formatToolbarContainer","_store","_useUndoAutomaticChange","_useMarkPersistent","_usePasteHandler","_useBeforeInputRules","_useInputRules","_useDelete","_useEnter","_useFormatTypes","_useRemoveBrowserShortcuts","_useShortcuts","_useInputEvents","_useInsertReplacementText","_useFirefoxCompat","_formatEdit","_utils","_content","_withDeprecations","_lockUnlock","_useBindingsAttributes","_shortcut","_toolbarButton","_inputEvent","keyboardShortcutContext","exports","createContext","inputEventContext","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","setRef","disableSuggestions","disableAutocorrection","restProps","RichTextWrapper","children","tagName","value","adjustedValue","onChange","adjustedOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","__unstableAllowPrefixTransformations","disableEditing","forwardedRef","anchorRef","useRef","context","useBlockEditContext","clientId","isBlockSelected","name","blockName","blockBindings","blockBindingsKey","selector","select","getSelectionStart","getSelectionEnd","blockEditorStore","selectionStart","selectionEnd","undefined","attributeKey","offset","useSelect","disableBoundBlocks","_disableBoundBlocks","BLOCK_BINDINGS_ALLOWED_BLOCKS","blockTypeAttributes","getBlockType","attributes","getBlockBindingsSource","unlock","blocksStore","attribute","args","Object","entries","source","blockBindingsSource","lockAttributesEditing","shouldDisableEditing","getBlockRootClientId","selectionChange","useDispatch","adjustedAllowedFormats","getAllowedFormats","hasFormats","length","onSelectionChange","useCallback","start","end","selection","unset","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","useFormatTypes","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","removeFormat","addInvisibleFormats","getValue","ref","richTextRef","useRichText","html","__unstableFormats","__unstableText","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","useBlockEditorAutocompleteProps","completers","record","useMarkPersistent","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","_react","createElement","Fragment","Provider","Popover","__unstableSlotNameProvider","default","inline","editableContentElement","role","useMergeRefs","useBeforeInputRules","useInputRules","useInsertReplacementText","useRemoveBrowserShortcuts","useShortcuts","useInputEvents","useUndoAutomaticChange","usePasteHandler","useDelete","useEnter","useFirefoxCompat","contentEditable","suppressContentEditableWarning","className","classnames","tabIndex","PrivateRichText","withDeprecations","forwardRef","Content","isEmpty","PublicForwardedRichTextContainer","_default"],"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport { Popover } from '@wordpress/components';\nimport { getBlockType, store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { blockBindingsKey } from '../block-edit/context';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useUndoAutomaticChange } from './use-undo-automatic-change';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { usePasteHandler } from './use-paste-handler';\nimport { useBeforeInputRules } from './use-before-input-rules';\nimport { useInputRules } from './use-input-rules';\nimport { useDelete } from './use-delete';\nimport { useEnter } from './use-enter';\nimport { useFormatTypes } from './use-format-types';\nimport { useRemoveBrowserShortcuts } from './use-remove-browser-shortcuts';\nimport { useShortcuts } from './use-shortcuts';\nimport { useInputEvents } from './use-input-events';\nimport { useInsertReplacementText } from './use-insert-replacement-text';\nimport { useFirefoxCompat } from './use-firefox-compat';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content } from './content';\nimport { withDeprecations } from './with-deprecations';\nimport { unlock } from '../../lock-unlock';\nimport { BLOCK_BINDINGS_ALLOWED_BLOCKS } from '../../hooks/use-bindings-attributes';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\tconst {\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tsetRef,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\t...restProps\n\t} = props;\n\treturn restProps;\n}\n\nexport function RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: adjustedValue = '',\n\t\tonChange: adjustedOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\t__unstableAllowPrefixTransformations,\n\t\tdisableEditing,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tconst anchorRef = useRef();\n\tconst context = useBlockEditContext();\n\tconst { clientId, isSelected: isBlockSelected, name: blockName } = context;\n\tconst blockBindings = context[ blockBindingsKey ];\n\tconst selector = ( select ) => {\n\t\t// Avoid subscribing to the block editor store if the block is not\n\t\t// selected.\n\t\tif ( ! isBlockSelected ) {\n\t\t\treturn { isSelected: false };\n\t\t}\n\n\t\tconst { getSelectionStart, getSelectionEnd } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t};\n\t};\n\tconst { selectionStart, selectionEnd, isSelected } = useSelect( selector, [\n\t\tclientId,\n\t\tidentifier,\n\t\toriginalIsSelected,\n\t\tisBlockSelected,\n\t] );\n\n\tconst disableBoundBlocks = useSelect(\n\t\t( select ) => {\n\t\t\t// Disable Rich Text editing if block bindings specify that.\n\t\t\tlet _disableBoundBlocks = false;\n\t\t\tif ( blockBindings && blockName in BLOCK_BINDINGS_ALLOWED_BLOCKS ) {\n\t\t\t\tconst blockTypeAttributes =\n\t\t\t\t\tgetBlockType( blockName ).attributes;\n\t\t\t\tconst { getBlockBindingsSource } = unlock(\n\t\t\t\t\tselect( blocksStore )\n\t\t\t\t);\n\t\t\t\tfor ( const [ attribute, args ] of Object.entries(\n\t\t\t\t\tblockBindings\n\t\t\t\t) ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockTypeAttributes?.[ attribute ]?.source !==\n\t\t\t\t\t\t'rich-text'\n\t\t\t\t\t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If the source is not defined, or if its value of `lockAttributesEditing` is `true`, disable it.\n\t\t\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\t\t\targs.source\n\t\t\t\t\t);\n\t\t\t\t\tif (\n\t\t\t\t\t\t! blockBindingsSource ||\n\t\t\t\t\t\tblockBindingsSource.lockAttributesEditing\n\t\t\t\t\t) {\n\t\t\t\t\t\t_disableBoundBlocks = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn _disableBoundBlocks;\n\t\t},\n\t\t[ blockBindings, blockName ]\n\t);\n\n\tconst shouldDisableEditing = disableEditing || disableBoundBlocks;\n\n\tconst { getSelectionStart, getSelectionEnd, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\t// If we are only setting the start (or the end below), which\n\t\t\t\t// means a partial selection, and we're not updating a selection\n\t\t\t\t// with the same client ID, abort. This means the selected block\n\t\t\t\t// is a parent block.\n\t\t\t\tif (\n\t\t\t\t\tend === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionEnd().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.start = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tif (\n\t\t\t\t\tstart === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionStart().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.end = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tgetValue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onFocus() {\n\t\tanchorRef.current?.focus();\n\t}\n\n\tconst TagName = tagName;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\teditableContentElement={ anchorRef.current }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-label={ placeholder }\n\t\t\t\taria-readonly={ shouldDisableEditing }\n\t\t\t\t{ ...props }\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t// Rich text ref must be first because its focus listener\n\t\t\t\t\t// must be set up before any other ref calls .focus() on\n\t\t\t\t\t// mount.\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\tuseBeforeInputRules( { value, onChange } ),\n\t\t\t\t\tuseInputRules( {\n\t\t\t\t\t\tgetValue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseInsertReplacementText(),\n\t\t\t\t\tuseRemoveBrowserShortcuts(),\n\t\t\t\t\tuseShortcuts( keyboardShortcuts ),\n\t\t\t\t\tuseInputEvents( inputEvents ),\n\t\t\t\t\tuseUndoAutomaticChange(),\n\t\t\t\t\tusePasteHandler( {\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseDelete( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseEnter( {\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t\tonSplitAtDoubleLineEnd,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseFirefoxCompat(),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ ! shouldDisableEditing }\n\t\t\t\tsuppressContentEditableWarning={ true }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\t// Setting tabIndex to 0 is unnecessary, the element is already\n\t\t\t\t// focusable because it's contentEditable. This also fixes a\n\t\t\t\t// Safari bug where it's not possible to Shift+Click multi\n\t\t\t\t// select blocks when Shift Clicking into an element with\n\t\t\t\t// tabIndex because Safari will focus the element. However,\n\t\t\t\t// Safari will correctly ignore nested contentEditable elements.\n\t\t\t\ttabIndex={\n\t\t\t\t\tprops.tabIndex === 0 && ! shouldDisableEditing\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: props.tabIndex\n\t\t\t\t}\n\t\t\t\tdata-wp-block-attribute-key={ identifier }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\n// This is the private API for the RichText component.\n// It allows access to all props, not just the public ones.\nexport const PrivateRichText = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nPrivateRichText.Content = Content;\nPrivateRichText.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n// This is the public API for the RichText component.\n// We wrap the PrivateRichText component to hide some props from the public API.\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nconst PublicForwardedRichTextContainer = forwardRef( ( props, ref ) => {\n\treturn (\n\t\t<PrivateRichText ref={ ref } { ...props } disableEditing={ false } />\n\t);\n} );\n\nPublicForwardedRichTextContainer.Content = Content;\nPublicForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nexport default PublicForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_data","_compose","_richText","_components","_blocks","_autocomplete","_blockEdit","_context","_formatToolbarContainer","_store","_useUndoAutomaticChange","_useMarkPersistent","_usePasteHandler","_useBeforeInputRules","_useInputRules","_useDelete","_useEnter","_useFormatTypes","_useRemoveBrowserShortcuts","_useShortcuts","_useInputEvents","_useInsertReplacementText","_useFirefoxCompat","_formatEdit","_utils","_content","_withDeprecations","_lockUnlock","_useBindingsAttributes","_shortcut","_toolbarButton","_inputEvent","keyboardShortcutContext","exports","createContext","inputEventContext","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","setRef","disableSuggestions","disableAutocorrection","restProps","RichTextWrapper","children","tagName","value","adjustedValue","onChange","adjustedOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","__unstableAllowPrefixTransformations","disableEditing","forwardedRef","anchorRef","useRef","context","useBlockEditContext","clientId","isBlockSelected","name","blockName","blockBindings","blockBindingsKey","selector","select","getSelectionStart","getSelectionEnd","blockEditorStore","selectionStart","selectionEnd","undefined","attributeKey","offset","useSelect","disableBoundBlocks","_disableBoundBlocks","canBindBlock","blockTypeAttributes","getBlockType","attributes","getBlockBindingsSource","unlock","blocksStore","attribute","args","Object","entries","source","blockBindingsSource","lockAttributesEditing","shouldDisableEditing","getBlockRootClientId","selectionChange","useDispatch","adjustedAllowedFormats","getAllowedFormats","hasFormats","length","onSelectionChange","useCallback","start","end","selection","unset","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","useFormatTypes","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","removeFormat","addInvisibleFormats","getValue","ref","richTextRef","useRichText","html","__unstableFormats","__unstableText","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","useBlockEditorAutocompleteProps","completers","record","useMarkPersistent","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","_react","createElement","Fragment","Provider","Popover","__unstableSlotNameProvider","default","inline","editableContentElement","role","useMergeRefs","useBeforeInputRules","useInputRules","useInsertReplacementText","useRemoveBrowserShortcuts","useShortcuts","useInputEvents","useUndoAutomaticChange","usePasteHandler","useDelete","useEnter","useFirefoxCompat","contentEditable","suppressContentEditableWarning","className","classnames","tabIndex","PrivateRichText","withDeprecations","forwardRef","Content","isEmpty","PublicForwardedRichTextContainer","_default"],"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport { Popover } from '@wordpress/components';\nimport { getBlockType, store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { blockBindingsKey } from '../block-edit/context';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useUndoAutomaticChange } from './use-undo-automatic-change';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { usePasteHandler } from './use-paste-handler';\nimport { useBeforeInputRules } from './use-before-input-rules';\nimport { useInputRules } from './use-input-rules';\nimport { useDelete } from './use-delete';\nimport { useEnter } from './use-enter';\nimport { useFormatTypes } from './use-format-types';\nimport { useRemoveBrowserShortcuts } from './use-remove-browser-shortcuts';\nimport { useShortcuts } from './use-shortcuts';\nimport { useInputEvents } from './use-input-events';\nimport { useInsertReplacementText } from './use-insert-replacement-text';\nimport { useFirefoxCompat } from './use-firefox-compat';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content } from './content';\nimport { withDeprecations } from './with-deprecations';\nimport { unlock } from '../../lock-unlock';\nimport { canBindBlock } from '../../hooks/use-bindings-attributes';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\tconst {\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tsetRef,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\t...restProps\n\t} = props;\n\treturn restProps;\n}\n\nexport function RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: adjustedValue = '',\n\t\tonChange: adjustedOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\t__unstableAllowPrefixTransformations,\n\t\tdisableEditing,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tconst anchorRef = useRef();\n\tconst context = useBlockEditContext();\n\tconst { clientId, isSelected: isBlockSelected, name: blockName } = context;\n\tconst blockBindings = context[ blockBindingsKey ];\n\tconst selector = ( select ) => {\n\t\t// Avoid subscribing to the block editor store if the block is not\n\t\t// selected.\n\t\tif ( ! isBlockSelected ) {\n\t\t\treturn { isSelected: false };\n\t\t}\n\n\t\tconst { getSelectionStart, getSelectionEnd } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t};\n\t};\n\tconst { selectionStart, selectionEnd, isSelected } = useSelect( selector, [\n\t\tclientId,\n\t\tidentifier,\n\t\toriginalIsSelected,\n\t\tisBlockSelected,\n\t] );\n\n\tconst disableBoundBlocks = useSelect(\n\t\t( select ) => {\n\t\t\t// Disable Rich Text editing if block bindings specify that.\n\t\t\tlet _disableBoundBlocks = false;\n\t\t\tif ( blockBindings && canBindBlock( blockName ) ) {\n\t\t\t\tconst blockTypeAttributes =\n\t\t\t\t\tgetBlockType( blockName ).attributes;\n\t\t\t\tconst { getBlockBindingsSource } = unlock(\n\t\t\t\t\tselect( blocksStore )\n\t\t\t\t);\n\t\t\t\tfor ( const [ attribute, args ] of Object.entries(\n\t\t\t\t\tblockBindings\n\t\t\t\t) ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockTypeAttributes?.[ attribute ]?.source !==\n\t\t\t\t\t\t'rich-text'\n\t\t\t\t\t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If the source is not defined, or if its value of `lockAttributesEditing` is `true`, disable it.\n\t\t\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\t\t\targs.source\n\t\t\t\t\t);\n\t\t\t\t\tif (\n\t\t\t\t\t\t! blockBindingsSource ||\n\t\t\t\t\t\tblockBindingsSource.lockAttributesEditing\n\t\t\t\t\t) {\n\t\t\t\t\t\t_disableBoundBlocks = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn _disableBoundBlocks;\n\t\t},\n\t\t[ blockBindings, blockName ]\n\t);\n\n\tconst shouldDisableEditing = disableEditing || disableBoundBlocks;\n\n\tconst { getSelectionStart, getSelectionEnd, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\t// If we are only setting the start (or the end below), which\n\t\t\t\t// means a partial selection, and we're not updating a selection\n\t\t\t\t// with the same client ID, abort. This means the selected block\n\t\t\t\t// is a parent block.\n\t\t\t\tif (\n\t\t\t\t\tend === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionEnd().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.start = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tif (\n\t\t\t\t\tstart === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionStart().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.end = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tgetValue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onFocus() {\n\t\tanchorRef.current?.focus();\n\t}\n\n\tconst TagName = tagName;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\teditableContentElement={ anchorRef.current }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-label={ placeholder }\n\t\t\t\taria-readonly={ shouldDisableEditing }\n\t\t\t\t{ ...props }\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t// Rich text ref must be first because its focus listener\n\t\t\t\t\t// must be set up before any other ref calls .focus() on\n\t\t\t\t\t// mount.\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\tuseBeforeInputRules( { value, onChange } ),\n\t\t\t\t\tuseInputRules( {\n\t\t\t\t\t\tgetValue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseInsertReplacementText(),\n\t\t\t\t\tuseRemoveBrowserShortcuts(),\n\t\t\t\t\tuseShortcuts( keyboardShortcuts ),\n\t\t\t\t\tuseInputEvents( inputEvents ),\n\t\t\t\t\tuseUndoAutomaticChange(),\n\t\t\t\t\tusePasteHandler( {\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseDelete( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseEnter( {\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t\tonSplitAtDoubleLineEnd,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseFirefoxCompat(),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ ! shouldDisableEditing }\n\t\t\t\tsuppressContentEditableWarning={ true }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\t// Setting tabIndex to 0 is unnecessary, the element is already\n\t\t\t\t// focusable because it's contentEditable. This also fixes a\n\t\t\t\t// Safari bug where it's not possible to Shift+Click multi\n\t\t\t\t// select blocks when Shift Clicking into an element with\n\t\t\t\t// tabIndex because Safari will focus the element. However,\n\t\t\t\t// Safari will correctly ignore nested contentEditable elements.\n\t\t\t\ttabIndex={\n\t\t\t\t\tprops.tabIndex === 0 && ! shouldDisableEditing\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: props.tabIndex\n\t\t\t\t}\n\t\t\t\tdata-wp-block-attribute-key={ identifier }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\n// This is the private API for the RichText component.\n// It allows access to all props, not just the public ones.\nexport const PrivateRichText = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nPrivateRichText.Content = Content;\nPrivateRichText.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n// This is the public API for the RichText component.\n// We wrap the PrivateRichText component to hide some props from the public API.\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nconst PublicForwardedRichTextContainer = forwardRef( ( props, ref ) => {\n\treturn (\n\t\t<PrivateRichText ref={ ref } { ...props } disableEditing={ false } />\n\t);\n} );\n\nPublicForwardedRichTextContainer.Content = Content;\nPublicForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nexport default PublicForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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"}
@@ -80,9 +80,9 @@ const URLPopover = (0, _element.forwardRef)(({
80
80
  onClick: toggleSettingsVisibility,
81
81
  "aria-expanded": isSettingsExpanded,
82
82
  size: "compact"
83
- })), showSettings && (0, _react.createElement)("div", {
84
- className: "block-editor-url-popover__row block-editor-url-popover__settings"
85
- }, renderSettings())), additionalControls && !showSettings && (0, _react.createElement)("div", {
83
+ }))), showSettings && (0, _react.createElement)("div", {
84
+ className: "block-editor-url-popover__settings"
85
+ }, renderSettings()), additionalControls && !showSettings && (0, _react.createElement)("div", {
86
86
  className: "block-editor-url-popover__additional-controls"
87
87
  }, additionalControls));
88
88
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_element","_components","_icons","_deprecated","_interopRequireDefault","_linkViewer","_linkEditor","_lockUnlock","__experimentalPopoverLegacyPositionToPlacement","unlock","componentsPrivateApis","DEFAULT_PLACEMENT","URLPopover","forwardRef","additionalControls","children","renderSettings","placement","focusOnMount","position","popoverProps","ref","undefined","deprecated","since","alternative","computedPlacement","isSettingsExpanded","setIsSettingsExpanded","useState","showSettings","toggleSettingsVisibility","_react","createElement","Popover","className","shift","variant","Button","icon","chevronDown","label","__","onClick","size","LinkEditor","LinkViewer","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/url-popover/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tPopover,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { chevronDown } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport LinkViewer from './link-viewer';\nimport LinkEditor from './link-editor';\nimport { unlock } from '../../lock-unlock';\n\nconst { __experimentalPopoverLegacyPositionToPlacement } = unlock(\n\tcomponentsPrivateApis\n);\n\nconst DEFAULT_PLACEMENT = 'bottom';\n\nconst URLPopover = forwardRef(\n\t(\n\t\t{\n\t\t\tadditionalControls,\n\t\t\tchildren,\n\t\t\trenderSettings,\n\t\t\t// The DEFAULT_PLACEMENT value is assigned inside the function's body\n\t\t\tplacement,\n\t\t\tfocusOnMount = 'firstElement',\n\t\t\t// Deprecated\n\t\t\tposition,\n\t\t\t// Rest\n\t\t\t...popoverProps\n\t\t},\n\t\tref\n\t) => {\n\t\tif ( position !== undefined ) {\n\t\t\tdeprecated( '`position` prop in wp.blockEditor.URLPopover', {\n\t\t\t\tsince: '6.2',\n\t\t\t\talternative: '`placement` prop',\n\t\t\t} );\n\t\t}\n\n\t\t// Compute popover's placement:\n\t\t// - give priority to `placement` prop, if defined\n\t\t// - otherwise, compute it from the legacy `position` prop (if defined)\n\t\t// - finally, fallback to the DEFAULT_PLACEMENT.\n\t\tlet computedPlacement;\n\t\tif ( placement !== undefined ) {\n\t\t\tcomputedPlacement = placement;\n\t\t} else if ( position !== undefined ) {\n\t\t\tcomputedPlacement =\n\t\t\t\t__experimentalPopoverLegacyPositionToPlacement( position );\n\t\t}\n\t\tcomputedPlacement = computedPlacement || DEFAULT_PLACEMENT;\n\n\t\tconst [ isSettingsExpanded, setIsSettingsExpanded ] = useState( false );\n\n\t\tconst showSettings = !! renderSettings && isSettingsExpanded;\n\n\t\tconst toggleSettingsVisibility = () => {\n\t\t\tsetIsSettingsExpanded( ! isSettingsExpanded );\n\t\t};\n\n\t\treturn (\n\t\t\t<Popover\n\t\t\t\tref={ ref }\n\t\t\t\tclassName=\"block-editor-url-popover\"\n\t\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t\tplacement={ computedPlacement }\n\t\t\t\tshift\n\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-url-popover__input-container\">\n\t\t\t\t\t<div className=\"block-editor-url-popover__row\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t{ !! renderSettings && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"block-editor-url-popover__settings-toggle\"\n\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={ __( 'Link settings' ) }\n\t\t\t\t\t\t\t\tonClick={ toggleSettingsVisibility }\n\t\t\t\t\t\t\t\taria-expanded={ isSettingsExpanded }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t\t{ showSettings && (\n\t\t\t\t\t\t<div className=\"block-editor-url-popover__row block-editor-url-popover__settings\">\n\t\t\t\t\t\t\t{ renderSettings() }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t{ additionalControls && ! showSettings && (\n\t\t\t\t\t<div className=\"block-editor-url-popover__additional-controls\">\n\t\t\t\t\t\t{ additionalControls }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</Popover>\n\t\t);\n\t}\n);\n\nURLPopover.LinkEditor = LinkEditor;\n\nURLPopover.LinkViewer = LinkViewer;\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-popover/README.md\n */\nexport default URLPopover;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_element","_components","_icons","_deprecated","_interopRequireDefault","_linkViewer","_linkEditor","_lockUnlock","__experimentalPopoverLegacyPositionToPlacement","unlock","componentsPrivateApis","DEFAULT_PLACEMENT","URLPopover","forwardRef","additionalControls","children","renderSettings","placement","focusOnMount","position","popoverProps","ref","undefined","deprecated","since","alternative","computedPlacement","isSettingsExpanded","setIsSettingsExpanded","useState","showSettings","toggleSettingsVisibility","_react","createElement","Popover","className","shift","variant","Button","icon","chevronDown","label","__","onClick","size","LinkEditor","LinkViewer","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/url-popover/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tPopover,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { chevronDown } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport LinkViewer from './link-viewer';\nimport LinkEditor from './link-editor';\nimport { unlock } from '../../lock-unlock';\n\nconst { __experimentalPopoverLegacyPositionToPlacement } = unlock(\n\tcomponentsPrivateApis\n);\n\nconst DEFAULT_PLACEMENT = 'bottom';\n\nconst URLPopover = forwardRef(\n\t(\n\t\t{\n\t\t\tadditionalControls,\n\t\t\tchildren,\n\t\t\trenderSettings,\n\t\t\t// The DEFAULT_PLACEMENT value is assigned inside the function's body\n\t\t\tplacement,\n\t\t\tfocusOnMount = 'firstElement',\n\t\t\t// Deprecated\n\t\t\tposition,\n\t\t\t// Rest\n\t\t\t...popoverProps\n\t\t},\n\t\tref\n\t) => {\n\t\tif ( position !== undefined ) {\n\t\t\tdeprecated( '`position` prop in wp.blockEditor.URLPopover', {\n\t\t\t\tsince: '6.2',\n\t\t\t\talternative: '`placement` prop',\n\t\t\t} );\n\t\t}\n\n\t\t// Compute popover's placement:\n\t\t// - give priority to `placement` prop, if defined\n\t\t// - otherwise, compute it from the legacy `position` prop (if defined)\n\t\t// - finally, fallback to the DEFAULT_PLACEMENT.\n\t\tlet computedPlacement;\n\t\tif ( placement !== undefined ) {\n\t\t\tcomputedPlacement = placement;\n\t\t} else if ( position !== undefined ) {\n\t\t\tcomputedPlacement =\n\t\t\t\t__experimentalPopoverLegacyPositionToPlacement( position );\n\t\t}\n\t\tcomputedPlacement = computedPlacement || DEFAULT_PLACEMENT;\n\n\t\tconst [ isSettingsExpanded, setIsSettingsExpanded ] = useState( false );\n\n\t\tconst showSettings = !! renderSettings && isSettingsExpanded;\n\n\t\tconst toggleSettingsVisibility = () => {\n\t\t\tsetIsSettingsExpanded( ! isSettingsExpanded );\n\t\t};\n\n\t\treturn (\n\t\t\t<Popover\n\t\t\t\tref={ ref }\n\t\t\t\tclassName=\"block-editor-url-popover\"\n\t\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t\tplacement={ computedPlacement }\n\t\t\t\tshift\n\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-url-popover__input-container\">\n\t\t\t\t\t<div className=\"block-editor-url-popover__row\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t{ !! renderSettings && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"block-editor-url-popover__settings-toggle\"\n\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={ __( 'Link settings' ) }\n\t\t\t\t\t\t\t\tonClick={ toggleSettingsVisibility }\n\t\t\t\t\t\t\t\taria-expanded={ isSettingsExpanded }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t{ showSettings && (\n\t\t\t\t\t<div className=\"block-editor-url-popover__settings\">\n\t\t\t\t\t\t{ renderSettings() }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t{ additionalControls && ! showSettings && (\n\t\t\t\t\t<div className=\"block-editor-url-popover__additional-controls\">\n\t\t\t\t\t\t{ additionalControls }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</Popover>\n\t\t);\n\t}\n);\n\nURLPopover.LinkEditor = LinkEditor;\n\nURLPopover.LinkViewer = LinkViewer;\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-popover/README.md\n */\nexport default URLPopover;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAC,sBAAA,CAAAL,OAAA;AAKA,IAAAM,WAAA,GAAAD,sBAAA,CAAAL,OAAA;AACA,IAAAO,WAAA,GAAAF,sBAAA,CAAAL,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AAlBA;AACA;AACA;;AAWA;AACA;AACA;;AAKA,MAAM;EAAES;AAA+C,CAAC,GAAG,IAAAC,kBAAM,EAChEC,uBACD,CAAC;AAED,MAAMC,iBAAiB,GAAG,QAAQ;AAElC,MAAMC,UAAU,GAAG,IAAAC,mBAAU,EAC5B,CACC;EACCC,kBAAkB;EAClBC,QAAQ;EACRC,cAAc;EACd;EACAC,SAAS;EACTC,YAAY,GAAG,cAAc;EAC7B;EACAC,QAAQ;EACR;EACA,GAAGC;AACJ,CAAC,EACDC,GAAG,KACC;EACJ,IAAKF,QAAQ,KAAKG,SAAS,EAAG;IAC7B,IAAAC,mBAAU,EAAE,8CAA8C,EAAE;MAC3DC,KAAK,EAAE,KAAK;MACZC,WAAW,EAAE;IACd,CAAE,CAAC;EACJ;;EAEA;EACA;EACA;EACA;EACA,IAAIC,iBAAiB;EACrB,IAAKT,SAAS,KAAKK,SAAS,EAAG;IAC9BI,iBAAiB,GAAGT,SAAS;EAC9B,CAAC,MAAM,IAAKE,QAAQ,KAAKG,SAAS,EAAG;IACpCI,iBAAiB,GAChBlB,8CAA8C,CAAEW,QAAS,CAAC;EAC5D;EACAO,iBAAiB,GAAGA,iBAAiB,IAAIf,iBAAiB;EAE1D,MAAM,CAAEgB,kBAAkB,EAAEC,qBAAqB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAEvE,MAAMC,YAAY,GAAG,CAAC,CAAEd,cAAc,IAAIW,kBAAkB;EAE5D,MAAMI,wBAAwB,GAAGA,CAAA,KAAM;IACtCH,qBAAqB,CAAE,CAAED,kBAAmB,CAAC;EAC9C,CAAC;EAED,OACC,IAAAK,MAAA,CAAAC,aAAA,EAAChC,WAAA,CAAAiC,OAAO;IACPb,GAAG,EAAGA,GAAK;IACXc,SAAS,EAAC,0BAA0B;IACpCjB,YAAY,EAAGA,YAAc;IAC7BD,SAAS,EAAGS,iBAAmB;IAC/BU,KAAK;IACLC,OAAO,EAAC,SAAS;IAAA,GACZjB;EAAY,GAEjB,IAAAY,MAAA,CAAAC,aAAA;IAAKE,SAAS,EAAC;EAA2C,GACzD,IAAAH,MAAA,CAAAC,aAAA;IAAKE,SAAS,EAAC;EAA+B,GAC3CpB,QAAQ,EACR,CAAC,CAAEC,cAAc,IAClB,IAAAgB,MAAA,CAAAC,aAAA,EAAChC,WAAA,CAAAqC,MAAM;IACNH,SAAS,EAAC,2CAA2C;IACrDI,IAAI,EAAGC,kBAAa;IACpBC,KAAK,EAAG,IAAAC,QAAE,EAAE,eAAgB,CAAG;IAC/BC,OAAO,EAAGZ,wBAA0B;IACpC,iBAAgBJ,kBAAoB;IACpCiB,IAAI,EAAC;EAAS,CACd,CAEE,CACD,CAAC,EACJd,YAAY,IACb,IAAAE,MAAA,CAAAC,aAAA;IAAKE,SAAS,EAAC;EAAoC,GAChDnB,cAAc,CAAC,CACb,CACL,EACCF,kBAAkB,IAAI,CAAEgB,YAAY,IACrC,IAAAE,MAAA,CAAAC,aAAA;IAAKE,SAAS,EAAC;EAA+C,GAC3DrB,kBACE,CAEE,CAAC;AAEZ,CACD,CAAC;AAEDF,UAAU,CAACiC,UAAU,GAAGA,mBAAU;AAElCjC,UAAU,CAACkC,UAAU,GAAGA,mBAAU;;AAElC;AACA;AACA;AAFA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGerC,UAAU"}
@@ -19,6 +19,7 @@ var _utils = require("./utils");
19
19
  */
20
20
 
21
21
  function useClipboardHandler() {
22
+ const registry = (0, _data.useRegistry)();
22
23
  const {
23
24
  getBlocksByClientId,
24
25
  getSelectedBlockClientIds,
@@ -93,7 +94,7 @@ function useClipboardHandler() {
93
94
  const inBetweenBlocks = getBlocksByClientId(selectedBlockClientIds.slice(1, selectedBlockClientIds.length - 1));
94
95
  blocks = [head, ...inBetweenBlocks, tail];
95
96
  }
96
- (0, _utils.setClipboardBlocks)(event, blocks);
97
+ (0, _utils.setClipboardBlocks)(event, blocks, registry);
97
98
  }
98
99
  }
99
100
  if (event.type === 'cut') {