@wordpress/block-editor 14.3.1 → 14.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/build/components/block-heading-level-dropdown/index.js +3 -1
- package/build/components/block-heading-level-dropdown/index.js.map +1 -1
- package/build/components/block-list/block.js +27 -4
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +0 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -4
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
- package/build/components/block-list/zoom-out-separator.js +18 -1
- package/build/components/block-list/zoom-out-separator.js.map +1 -1
- package/build/components/block-switcher/utils.js +1 -1
- package/build/components/block-switcher/utils.js.map +1 -1
- package/build/components/block-tools/zoom-out-toolbar.js +5 -2
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +12 -6
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/rich-text/event-listeners/paste-handler.js +2 -13
- package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
- package/build/components/rich-text/index.js +34 -20
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/tool-selector/index.js +2 -1
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/writing-flow/index.js +1 -2
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +1 -4
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-input.js +1 -31
- package/build/components/writing-flow/use-input.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js +1 -14
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +2 -6
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/components/writing-flow/utils.js +0 -27
- package/build/components/writing-flow/utils.js.map +1 -1
- package/build/hooks/layout.js +12 -8
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +22 -28
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/use-zoom-out.js +20 -23
- package/build/hooks/use-zoom-out.js.map +1 -1
- package/build/store/private-actions.js +25 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +22 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +21 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +12 -5
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/index.js +3 -1
- package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
- package/build-module/components/block-list/block.js +28 -7
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +0 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -4
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
- package/build-module/components/block-list/zoom-out-separator.js +18 -1
- package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
- package/build-module/components/block-switcher/utils.js +1 -1
- package/build-module/components/block-switcher/utils.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-toolbar.js +5 -2
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +12 -6
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/paste-handler.js +2 -13
- package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
- package/build-module/components/rich-text/index.js +34 -20
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +2 -1
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +1 -2
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +1 -4
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-input.js +1 -31
- package/build-module/components/writing-flow/use-input.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js +1 -14
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +2 -6
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/components/writing-flow/utils.js +0 -26
- package/build-module/components/writing-flow/utils.js.map +1 -1
- package/build-module/hooks/layout.js +13 -9
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +22 -28
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/use-zoom-out.js +20 -23
- package/build-module/hooks/use-zoom-out.js.map +1 -1
- package/build-module/store/private-actions.js +23 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +20 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +20 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +12 -5
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/content-rtl.css +10 -0
- package/build-style/content.css +10 -0
- package/build-style/style-rtl.css +4 -0
- package/build-style/style.css +4 -0
- package/package.json +20 -20
- package/src/components/block-heading-level-dropdown/index.js +7 -1
- package/src/components/block-list/block.js +47 -11
- package/src/components/block-list/content.scss +12 -0
- package/src/components/block-list/use-block-props/use-focus-first-element.js +0 -1
- package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +7 -3
- package/src/components/block-list/zoom-out-separator.js +14 -1
- package/src/components/block-switcher/test/use-transformed.patterns.js +3 -3
- package/src/components/block-switcher/test/utils.js +3 -3
- package/src/components/block-switcher/utils.js +1 -1
- package/src/components/block-toolbar/style.scss +7 -0
- package/src/components/block-tools/zoom-out-toolbar.js +5 -2
- package/src/components/block-variation-transforms/index.js +13 -4
- package/src/components/rich-text/event-listeners/paste-handler.js +2 -7
- package/src/components/rich-text/index.js +36 -23
- package/src/components/tool-selector/index.js +4 -1
- package/src/components/writing-flow/index.js +0 -2
- package/src/components/writing-flow/use-arrow-nav.js +2 -9
- package/src/components/writing-flow/use-input.js +1 -36
- package/src/components/writing-flow/use-select-all.js +1 -18
- package/src/components/writing-flow/use-selection-observer.js +3 -14
- package/src/components/writing-flow/utils.js +0 -30
- package/src/hooks/layout.js +17 -12
- package/src/hooks/use-bindings-attributes.js +26 -32
- package/src/hooks/use-zoom-out.js +21 -27
- package/src/store/private-actions.js +23 -0
- package/src/store/private-selectors.js +20 -0
- package/src/store/reducer.js +20 -0
- package/src/store/selectors.js +13 -8
- package/src/store/test/private-selectors.js +2 -2
- package/src/store/test/selectors.js +10 -6
- package/build/components/writing-flow/use-event-redirect.js +0 -66
- package/build/components/writing-flow/use-event-redirect.js.map +0 -1
- package/build-module/components/writing-flow/use-event-redirect.js +0 -60
- package/build-module/components/writing-flow/use-event-redirect.js.map +0 -1
- package/src/components/writing-flow/use-event-redirect.js +0 -72
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","dragHandle","trash","edit","Button","ToolbarButton","useSelect","useDispatch","store","blocksStore","__","blockEditorStore","BlockDraggable","BlockMover","Shuffle","NavigableToolbar","jsx","_jsx","jsxs","_jsxs","ZoomOutToolbar","clientId","__unstableContentRef","selected","select","getBlock","hasBlockMovingClientId","getNextBlockClientId","getPreviousBlockClientId","canRemoveBlock","canMoveBlock","getSettings","__experimentalSetIsInserterOpened","setIsInserterOpened","getBlockType","name","blockType","isBlockTemplatePart","isNextBlockTemplatePart","nextClientId","nextName","nextBlockType","isPrevBlockTemplatePart","prevClientId","prevName","prevBlockType","blockMovingMode","canRemove","canMove","removeBlock","__unstableSetEditorMode","classNames","showBlockDraggable","className","variant","orientation","children","clientIds","draggableProps","icon","label","iconSize","size","tabIndex","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","as","onClick","current","focus"],"sources":["@wordpress/block-editor/src/components/block-tools/zoom-out-toolbar.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle, trash, edit } from '@wordpress/icons';\nimport { Button, ToolbarButton } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport BlockMover from '../block-mover';\nimport Shuffle from '../block-toolbar/shuffle';\nimport NavigableToolbar from '../navigable-toolbar';\n\nexport default function ZoomOutToolbar( { clientId, __unstableContentRef } ) {\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst { __experimentalSetIsInserterOpened: setIsInserterOpened } =\n\t\t\t\tgetSettings();\n\n\t\t\tconst { getBlockType } = select( blocksStore );\n\t\t\tconst { name } = getBlock( clientId );\n\t\t\tconst blockType = getBlockType( name );\n\t\t\tconst isBlockTemplatePart =\n\t\t\t\tblockType?.name === 'core/template-part';\n\n\t\t\tlet isNextBlockTemplatePart = false;\n\t\t\tconst nextClientId = getNextBlockClientId();\n\t\t\tif ( nextClientId ) {\n\t\t\t\tconst { name: nextName } = getBlock( nextClientId );\n\t\t\t\tconst nextBlockType = getBlockType( nextName );\n\t\t\t\tisNextBlockTemplatePart =\n\t\t\t\t\tnextBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\tlet isPrevBlockTemplatePart = false;\n\t\t\tconst prevClientId = getPreviousBlockClientId();\n\t\t\tif ( prevClientId ) {\n\t\t\t\tconst { name: prevName } = getBlock( prevClientId );\n\t\t\t\tconst prevBlockType = getBlockType( prevName );\n\t\t\t\tisPrevBlockTemplatePart =\n\t\t\t\t\tprevBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tblockMovingMode: hasBlockMovingClientId(),\n\t\t\t\tisBlockTemplatePart,\n\t\t\t\tisNextBlockTemplatePart,\n\t\t\t\tisPrevBlockTemplatePart,\n\t\t\t\tcanRemove: canRemoveBlock( clientId ),\n\t\t\t\tcanMove: canMoveBlock( clientId ),\n\t\t\t\tsetIsInserterOpened,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst {\n\t\tblockMovingMode,\n\t\tisBlockTemplatePart,\n\t\tisNextBlockTemplatePart,\n\t\tisPrevBlockTemplatePart,\n\t\tcanRemove,\n\t\tcanMove,\n\t\tsetIsInserterOpened,\n\t} = selected;\n\n\tconst { removeBlock, __unstableSetEditorMode }
|
|
1
|
+
{"version":3,"names":["clsx","dragHandle","trash","edit","Button","ToolbarButton","useSelect","useDispatch","store","blocksStore","__","blockEditorStore","BlockDraggable","BlockMover","Shuffle","NavigableToolbar","unlock","jsx","_jsx","jsxs","_jsxs","ZoomOutToolbar","clientId","__unstableContentRef","selected","select","getBlock","hasBlockMovingClientId","getNextBlockClientId","getPreviousBlockClientId","canRemoveBlock","canMoveBlock","getSettings","__experimentalSetIsInserterOpened","setIsInserterOpened","getBlockType","name","blockType","isBlockTemplatePart","isNextBlockTemplatePart","nextClientId","nextName","nextBlockType","isPrevBlockTemplatePart","prevClientId","prevName","prevBlockType","blockMovingMode","canRemove","canMove","removeBlock","__unstableSetEditorMode","resetZoomLevel","classNames","showBlockDraggable","className","variant","orientation","children","clientIds","draggableProps","icon","label","iconSize","size","tabIndex","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","as","onClick","current","focus"],"sources":["@wordpress/block-editor/src/components/block-tools/zoom-out-toolbar.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle, trash, edit } from '@wordpress/icons';\nimport { Button, ToolbarButton } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport BlockMover from '../block-mover';\nimport Shuffle from '../block-toolbar/shuffle';\nimport NavigableToolbar from '../navigable-toolbar';\nimport { unlock } from '../../lock-unlock';\n\nexport default function ZoomOutToolbar( { clientId, __unstableContentRef } ) {\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst { __experimentalSetIsInserterOpened: setIsInserterOpened } =\n\t\t\t\tgetSettings();\n\n\t\t\tconst { getBlockType } = select( blocksStore );\n\t\t\tconst { name } = getBlock( clientId );\n\t\t\tconst blockType = getBlockType( name );\n\t\t\tconst isBlockTemplatePart =\n\t\t\t\tblockType?.name === 'core/template-part';\n\n\t\t\tlet isNextBlockTemplatePart = false;\n\t\t\tconst nextClientId = getNextBlockClientId();\n\t\t\tif ( nextClientId ) {\n\t\t\t\tconst { name: nextName } = getBlock( nextClientId );\n\t\t\t\tconst nextBlockType = getBlockType( nextName );\n\t\t\t\tisNextBlockTemplatePart =\n\t\t\t\t\tnextBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\tlet isPrevBlockTemplatePart = false;\n\t\t\tconst prevClientId = getPreviousBlockClientId();\n\t\t\tif ( prevClientId ) {\n\t\t\t\tconst { name: prevName } = getBlock( prevClientId );\n\t\t\t\tconst prevBlockType = getBlockType( prevName );\n\t\t\t\tisPrevBlockTemplatePart =\n\t\t\t\t\tprevBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tblockMovingMode: hasBlockMovingClientId(),\n\t\t\t\tisBlockTemplatePart,\n\t\t\t\tisNextBlockTemplatePart,\n\t\t\t\tisPrevBlockTemplatePart,\n\t\t\t\tcanRemove: canRemoveBlock( clientId ),\n\t\t\t\tcanMove: canMoveBlock( clientId ),\n\t\t\t\tsetIsInserterOpened,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst {\n\t\tblockMovingMode,\n\t\tisBlockTemplatePart,\n\t\tisNextBlockTemplatePart,\n\t\tisPrevBlockTemplatePart,\n\t\tcanRemove,\n\t\tcanMove,\n\t\tsetIsInserterOpened,\n\t} = selected;\n\n\tconst { removeBlock, __unstableSetEditorMode, resetZoomLevel } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst classNames = clsx( 'zoom-out-toolbar', {\n\t\t'is-block-moving-mode': !! blockMovingMode,\n\t} );\n\n\tconst showBlockDraggable = canMove && ! isBlockTemplatePart;\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tclassName={ classNames }\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=\"unstyled\"\n\t\t\torientation=\"vertical\"\n\t\t>\n\t\t\t{ showBlockDraggable && (\n\t\t\t\t<BlockDraggable clientIds={ [ clientId ] }>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-selection-button_drag-handle zoom-out-toolbar-button\"\n\t\t\t\t\t\t\tlabel={ __( 'Drag' ) }\n\t\t\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t{ ! isBlockTemplatePart && (\n\t\t\t\t<BlockMover\n\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\thideDragHandle\n\t\t\t\t\tisBlockMoverUpButtonDisabled={ isPrevBlockTemplatePart }\n\t\t\t\t\tisBlockMoverDownButtonDisabled={ isNextBlockTemplatePart }\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ canMove && canRemove && (\n\t\t\t\t<Shuffle clientId={ clientId } as={ ToolbarButton } />\n\t\t\t) }\n\n\t\t\t{ ! isBlockTemplatePart && (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tclassName=\"zoom-out-toolbar-button\"\n\t\t\t\t\ticon={ edit }\n\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t// Setting may be undefined.\n\t\t\t\t\t\tif ( typeof setIsInserterOpened === 'function' ) {\n\t\t\t\t\t\t\tsetIsInserterOpened( false );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__unstableSetEditorMode( 'edit' );\n\t\t\t\t\t\tresetZoomLevel();\n\t\t\t\t\t\t__unstableContentRef.current?.focus();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ canRemove && ! isBlockTemplatePart && (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tclassName=\"zoom-out-toolbar-button\"\n\t\t\t\t\ticon={ trash }\n\t\t\t\t\tlabel={ __( 'Delete' ) }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</NavigableToolbar>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,6 +13,7 @@ import { chevronDown } from '@wordpress/icons';
|
|
|
13
13
|
*/
|
|
14
14
|
import BlockIcon from '../block-icon';
|
|
15
15
|
import { store as blockEditorStore } from '../../store';
|
|
16
|
+
import { unlock } from '../../lock-unlock';
|
|
16
17
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
17
18
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
18
19
|
function VariationsButtons({
|
|
@@ -117,7 +118,8 @@ function __experimentalBlockVariationTransforms({
|
|
|
117
118
|
} = useDispatch(blockEditorStore);
|
|
118
119
|
const {
|
|
119
120
|
activeBlockVariation,
|
|
120
|
-
variations
|
|
121
|
+
variations,
|
|
122
|
+
isContentOnly
|
|
121
123
|
} = useSelect(select => {
|
|
122
124
|
const {
|
|
123
125
|
getActiveBlockVariation,
|
|
@@ -125,12 +127,18 @@ function __experimentalBlockVariationTransforms({
|
|
|
125
127
|
} = select(blocksStore);
|
|
126
128
|
const {
|
|
127
129
|
getBlockName,
|
|
128
|
-
getBlockAttributes
|
|
130
|
+
getBlockAttributes,
|
|
131
|
+
getBlockEditingMode
|
|
129
132
|
} = select(blockEditorStore);
|
|
130
133
|
const name = blockClientId && getBlockName(blockClientId);
|
|
134
|
+
const {
|
|
135
|
+
hasContentRoleAttribute
|
|
136
|
+
} = unlock(select(blocksStore));
|
|
137
|
+
const isContentBlock = hasContentRoleAttribute(name);
|
|
131
138
|
return {
|
|
132
139
|
activeBlockVariation: getActiveBlockVariation(name, getBlockAttributes(blockClientId)),
|
|
133
|
-
variations: name && getBlockVariations(name, 'transform')
|
|
140
|
+
variations: name && getBlockVariations(name, 'transform'),
|
|
141
|
+
isContentOnly: getBlockEditingMode(blockClientId) === 'contentOnly' && !isContentBlock
|
|
134
142
|
};
|
|
135
143
|
}, [blockClientId]);
|
|
136
144
|
const selectedValue = activeBlockVariation?.name;
|
|
@@ -155,9 +163,7 @@ function __experimentalBlockVariationTransforms({
|
|
|
155
163
|
}) => name === variationName).attributes
|
|
156
164
|
});
|
|
157
165
|
};
|
|
158
|
-
|
|
159
|
-
// Skip rendering if there are no variations
|
|
160
|
-
if (!variations?.length) {
|
|
166
|
+
if (!variations?.length || isContentOnly) {
|
|
161
167
|
return null;
|
|
162
168
|
}
|
|
163
169
|
const baseClass = 'block-editor-block-variation-transforms';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["store","blocksStore","__","sprintf","Button","DropdownMenu","MenuGroup","MenuItemsChoice","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOptionIcon","ToggleGroupControlOptionIcon","VisuallyHidden","useSelect","useDispatch","useMemo","chevronDown","BlockIcon","blockEditorStore","jsx","_jsx","jsxs","_jsxs","VariationsButtons","className","onSelectVariation","selectedValue","variations","children","as","map","variation","__next40pxDefaultSize","icon","showColors","isPressed","name","label","title","onClick","showTooltip","VariationsDropdown","selectOptions","description","value","info","text","popoverProps","position","toggleProps","iconPosition","choices","onSelect","VariationsToggleGroupControl","hideLabelFromVision","onChange","__nextHasNoMarginBottom","__experimentalBlockVariationTransforms","blockClientId","updateBlockAttributes","activeBlockVariation","select","getActiveBlockVariation","getBlockVariations","getBlockName","getBlockAttributes","hasUniqueIcons","variationIcons","Set","forEach","add","src","size","length","variationName","find","attributes","baseClass","showButtons","ButtonComponent","Component"],"sources":["@wordpress/block-editor/src/components/block-variation-transforms/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItemsChoice,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { chevronDown } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\n\nfunction VariationsButtons( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<fieldset className={ className }>\n\t\t\t<VisuallyHidden as=\"legend\">\n\t\t\t\t{ __( 'Transform to variation' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t<Button\n\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\ticon={ <BlockIcon icon={ variation.icon } showColors /> }\n\t\t\t\t\tisPressed={ selectedValue === variation.name }\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block variation */\n\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ () => onSelectVariation( variation.name ) }\n\t\t\t\t\taria-label={ variation.title }\n\t\t\t\t\tshowTooltip\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</fieldset>\n\t);\n}\n\nfunction VariationsDropdown( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\tconst selectOptions = variations.map(\n\t\t( { name, title, description } ) => ( {\n\t\t\tvalue: name,\n\t\t\tlabel: title,\n\t\t\tinfo: description,\n\t\t} )\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName={ className }\n\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\ttext={ __( 'Transform to variation' ) }\n\t\t\tpopoverProps={ {\n\t\t\t\tposition: 'bottom center',\n\t\t\t\tclassName: `${ className }__popover`,\n\t\t\t} }\n\t\t\ticon={ chevronDown }\n\t\t\ttoggleProps={ { iconPosition: 'right' } }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<div className={ `${ className }__container` }>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tchoices={ selectOptions }\n\t\t\t\t\t\t\tvalue={ selectedValue }\n\t\t\t\t\t\t\tonSelect={ onSelectVariation }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction VariationsToggleGroupControl( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<div className={ className }>\n\t\t\t<ToggleGroupControl\n\t\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\t\tvalue={ selectedValue }\n\t\t\t\thideLabelFromVision\n\t\t\t\tonChange={ onSelectVariation }\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t>\n\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIcon icon={ variation.icon } showColors />\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ variation.name }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block variation */\n\t\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ToggleGroupControl>\n\t\t</div>\n\t);\n}\n\nfunction __experimentalBlockVariationTransforms( { blockClientId } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { activeBlockVariation, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst name = blockClientId && getBlockName( blockClientId );\n\t\t\treturn {\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tname,\n\t\t\t\t\tgetBlockAttributes( blockClientId )\n\t\t\t\t),\n\t\t\t\tvariations: name && getBlockVariations( name, 'transform' ),\n\t\t\t};\n\t\t},\n\t\t[ blockClientId ]\n\t);\n\n\tconst selectedValue = activeBlockVariation?.name;\n\n\t// Check if each variation has a unique icon.\n\tconst hasUniqueIcons = useMemo( () => {\n\t\tconst variationIcons = new Set();\n\t\tif ( ! variations ) {\n\t\t\treturn false;\n\t\t}\n\t\tvariations.forEach( ( variation ) => {\n\t\t\tif ( variation.icon ) {\n\t\t\t\tvariationIcons.add( variation.icon?.src || variation.icon );\n\t\t\t}\n\t\t} );\n\t\treturn variationIcons.size === variations.length;\n\t}, [ variations ] );\n\n\tconst onSelectVariation = ( variationName ) => {\n\t\tupdateBlockAttributes( blockClientId, {\n\t\t\t...variations.find( ( { name } ) => name === variationName )\n\t\t\t\t.attributes,\n\t\t} );\n\t};\n\n\t// Skip rendering if there are no variations\n\tif ( ! variations?.length ) {\n\t\treturn null;\n\t}\n\n\tconst baseClass = 'block-editor-block-variation-transforms';\n\n\t// Show buttons if there are more than 5 variations because the ToggleGroupControl does not wrap\n\tconst showButtons = variations.length > 5;\n\n\tconst ButtonComponent = showButtons\n\t\t? VariationsButtons\n\t\t: VariationsToggleGroupControl;\n\n\tconst Component = hasUniqueIcons ? ButtonComponent : VariationsDropdown;\n\n\treturn (\n\t\t<Component\n\t\t\tclassName={ baseClass }\n\t\t\tonSelectVariation={ onSelectVariation }\n\t\t\tselectedValue={ selectedValue }\n\t\t\tvariations={ variations }\n\t\t/>\n\t);\n}\n\nexport default __experimentalBlockVariationTransforms;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["store","blocksStore","__","sprintf","Button","DropdownMenu","MenuGroup","MenuItemsChoice","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOptionIcon","ToggleGroupControlOptionIcon","VisuallyHidden","useSelect","useDispatch","useMemo","chevronDown","BlockIcon","blockEditorStore","unlock","jsx","_jsx","jsxs","_jsxs","VariationsButtons","className","onSelectVariation","selectedValue","variations","children","as","map","variation","__next40pxDefaultSize","icon","showColors","isPressed","name","label","title","onClick","showTooltip","VariationsDropdown","selectOptions","description","value","info","text","popoverProps","position","toggleProps","iconPosition","choices","onSelect","VariationsToggleGroupControl","hideLabelFromVision","onChange","__nextHasNoMarginBottom","__experimentalBlockVariationTransforms","blockClientId","updateBlockAttributes","activeBlockVariation","isContentOnly","select","getActiveBlockVariation","getBlockVariations","getBlockName","getBlockAttributes","getBlockEditingMode","hasContentRoleAttribute","isContentBlock","hasUniqueIcons","variationIcons","Set","forEach","add","src","size","length","variationName","find","attributes","baseClass","showButtons","ButtonComponent","Component"],"sources":["@wordpress/block-editor/src/components/block-variation-transforms/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItemsChoice,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { chevronDown } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction VariationsButtons( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<fieldset className={ className }>\n\t\t\t<VisuallyHidden as=\"legend\">\n\t\t\t\t{ __( 'Transform to variation' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t<Button\n\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\ticon={ <BlockIcon icon={ variation.icon } showColors /> }\n\t\t\t\t\tisPressed={ selectedValue === variation.name }\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block variation */\n\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ () => onSelectVariation( variation.name ) }\n\t\t\t\t\taria-label={ variation.title }\n\t\t\t\t\tshowTooltip\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</fieldset>\n\t);\n}\n\nfunction VariationsDropdown( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\tconst selectOptions = variations.map(\n\t\t( { name, title, description } ) => ( {\n\t\t\tvalue: name,\n\t\t\tlabel: title,\n\t\t\tinfo: description,\n\t\t} )\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName={ className }\n\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\ttext={ __( 'Transform to variation' ) }\n\t\t\tpopoverProps={ {\n\t\t\t\tposition: 'bottom center',\n\t\t\t\tclassName: `${ className }__popover`,\n\t\t\t} }\n\t\t\ticon={ chevronDown }\n\t\t\ttoggleProps={ { iconPosition: 'right' } }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<div className={ `${ className }__container` }>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tchoices={ selectOptions }\n\t\t\t\t\t\t\tvalue={ selectedValue }\n\t\t\t\t\t\t\tonSelect={ onSelectVariation }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction VariationsToggleGroupControl( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<div className={ className }>\n\t\t\t<ToggleGroupControl\n\t\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\t\tvalue={ selectedValue }\n\t\t\t\thideLabelFromVision\n\t\t\t\tonChange={ onSelectVariation }\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t>\n\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIcon icon={ variation.icon } showColors />\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ variation.name }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block variation */\n\t\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ToggleGroupControl>\n\t\t</div>\n\t);\n}\n\nfunction __experimentalBlockVariationTransforms( { blockClientId } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { activeBlockVariation, variations, isContentOnly } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\n\t\t\tconst { getBlockName, getBlockAttributes, getBlockEditingMode } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst name = blockClientId && getBlockName( blockClientId );\n\n\t\t\tconst { hasContentRoleAttribute } = unlock( select( blocksStore ) );\n\t\t\tconst isContentBlock = hasContentRoleAttribute( name );\n\n\t\t\treturn {\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tname,\n\t\t\t\t\tgetBlockAttributes( blockClientId )\n\t\t\t\t),\n\t\t\t\tvariations: name && getBlockVariations( name, 'transform' ),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( blockClientId ) === 'contentOnly' &&\n\t\t\t\t\t! isContentBlock,\n\t\t\t};\n\t\t},\n\t\t[ blockClientId ]\n\t);\n\n\tconst selectedValue = activeBlockVariation?.name;\n\n\t// Check if each variation has a unique icon.\n\tconst hasUniqueIcons = useMemo( () => {\n\t\tconst variationIcons = new Set();\n\t\tif ( ! variations ) {\n\t\t\treturn false;\n\t\t}\n\t\tvariations.forEach( ( variation ) => {\n\t\t\tif ( variation.icon ) {\n\t\t\t\tvariationIcons.add( variation.icon?.src || variation.icon );\n\t\t\t}\n\t\t} );\n\t\treturn variationIcons.size === variations.length;\n\t}, [ variations ] );\n\n\tconst onSelectVariation = ( variationName ) => {\n\t\tupdateBlockAttributes( blockClientId, {\n\t\t\t...variations.find( ( { name } ) => name === variationName )\n\t\t\t\t.attributes,\n\t\t} );\n\t};\n\n\tif ( ! variations?.length || isContentOnly ) {\n\t\treturn null;\n\t}\n\n\tconst baseClass = 'block-editor-block-variation-transforms';\n\n\t// Show buttons if there are more than 5 variations because the ToggleGroupControl does not wrap\n\tconst showButtons = variations.length > 5;\n\n\tconst ButtonComponent = showButtons\n\t\t? VariationsButtons\n\t\t: VariationsToggleGroupControl;\n\n\tconst Component = hasUniqueIcons ? ButtonComponent : VariationsDropdown;\n\n\treturn (\n\t\t<Component\n\t\t\tclassName={ baseClass }\n\t\t\tonSelectVariation={ onSelectVariation }\n\t\t\tselectedValue={ selectedValue }\n\t\t\tvariations={ variations }\n\t\t/>\n\t);\n}\n\nexport default __experimentalBlockVariationTransforms;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,WAAW,QAAQ,mBAAmB;AACxD,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SACCC,MAAM,EACNC,YAAY,EACZC,SAAS,EACTC,eAAe,EACfC,gCAAgC,IAAIC,kBAAkB,EACtDC,0CAA0C,IAAIC,4BAA4B,EAC1EC,cAAc,QACR,uBAAuB;AAC9B,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,WAAW,QAAQ,kBAAkB;;AAE9C;AACA;AACA;AACA,OAAOC,SAAS,MAAM,eAAe;AACrC,SAASjB,KAAK,IAAIkB,gBAAgB,QAAQ,aAAa;AACvD,SAASC,MAAM,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE3C,SAASC,iBAAiBA,CAAE;EAC3BC,SAAS;EACTC,iBAAiB;EACjBC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,oBACCL,KAAA;IAAUE,SAAS,EAAGA,SAAW;IAAAI,QAAA,gBAChCR,IAAA,CAACT,cAAc;MAACkB,EAAE,EAAC,QAAQ;MAAAD,QAAA,EACxB3B,EAAE,CAAE,wBAAyB;IAAC,CACjB,CAAC,EACf0B,UAAU,CAACG,GAAG,CAAIC,SAAS,iBAC5BX,IAAA,CAACjB;IACA;IAAA;MACA6B,qBAAqB,EAAG,KAAO;MAE/BC,IAAI,eAAGb,IAAA,CAACJ,SAAS;QAACiB,IAAI,EAAGF,SAAS,CAACE,IAAM;QAACC,UAAU;MAAA,CAAE,CAAG;MACzDC,SAAS,EAAGT,aAAa,KAAKK,SAAS,CAACK,IAAM;MAC9CC,KAAK,EACJX,aAAa,KAAKK,SAAS,CAACK,IAAI,GAC7BL,SAAS,CAACO,KAAK,GACfpC,OAAO,EACP;MACAD,EAAE,CAAE,iBAAkB,CAAC,EACvB8B,SAAS,CAACO,KACV,CACH;MACDC,OAAO,EAAGA,CAAA,KAAMd,iBAAiB,CAAEM,SAAS,CAACK,IAAK,CAAG;MACrD,cAAaL,SAAS,CAACO,KAAO;MAC9BE,WAAW;IAAA,GAdLT,SAAS,CAACK,IAehB,CACA,CAAC;EAAA,CACM,CAAC;AAEb;AAEA,SAASK,kBAAkBA,CAAE;EAC5BjB,SAAS;EACTC,iBAAiB;EACjBC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,MAAMe,aAAa,GAAGf,UAAU,CAACG,GAAG,CACnC,CAAE;IAAEM,IAAI;IAAEE,KAAK;IAAEK;EAAY,CAAC,MAAQ;IACrCC,KAAK,EAAER,IAAI;IACXC,KAAK,EAAEC,KAAK;IACZO,IAAI,EAAEF;EACP,CAAC,CACF,CAAC;EAED,oBACCvB,IAAA,CAAChB,YAAY;IACZoB,SAAS,EAAGA,SAAW;IACvBa,KAAK,EAAGpC,EAAE,CAAE,wBAAyB,CAAG;IACxC6C,IAAI,EAAG7C,EAAE,CAAE,wBAAyB,CAAG;IACvC8C,YAAY,EAAG;MACdC,QAAQ,EAAE,eAAe;MACzBxB,SAAS,EAAG,GAAGA,SAAW;IAC3B,CAAG;IACHS,IAAI,EAAGlB,WAAa;IACpBkC,WAAW,EAAG;MAAEC,YAAY,EAAE;IAAQ,CAAG;IAAAtB,QAAA,EAEvCA,CAAA,kBACDR,IAAA;MAAKI,SAAS,EAAI,GAAGA,SAAW,aAAc;MAAAI,QAAA,eAC7CR,IAAA,CAACf,SAAS;QAAAuB,QAAA,eACTR,IAAA,CAACd,eAAe;UACf6C,OAAO,EAAGT,aAAe;UACzBE,KAAK,EAAGlB,aAAe;UACvB0B,QAAQ,EAAG3B;QAAmB,CAC9B;MAAC,CACQ;IAAC,CACR;EACL,CACY,CAAC;AAEjB;AAEA,SAAS4B,4BAA4BA,CAAE;EACtC7B,SAAS;EACTC,iBAAiB;EACjBC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,oBACCP,IAAA;IAAKI,SAAS,EAAGA,SAAW;IAAAI,QAAA,eAC3BR,IAAA,CAACZ,kBAAkB;MAClB6B,KAAK,EAAGpC,EAAE,CAAE,wBAAyB,CAAG;MACxC2C,KAAK,EAAGlB,aAAe;MACvB4B,mBAAmB;MACnBC,QAAQ,EAAG9B,iBAAmB;MAC9BO,qBAAqB;MACrBwB,uBAAuB;MAAA5B,QAAA,EAErBD,UAAU,CAACG,GAAG,CAAIC,SAAS,iBAC5BX,IAAA,CAACV,4BAA4B;QAE5BuB,IAAI,eACHb,IAAA,CAACJ,SAAS;UAACiB,IAAI,EAAGF,SAAS,CAACE,IAAM;UAACC,UAAU;QAAA,CAAE,CAC/C;QACDU,KAAK,EAAGb,SAAS,CAACK,IAAM;QACxBC,KAAK,EACJX,aAAa,KAAKK,SAAS,CAACK,IAAI,GAC7BL,SAAS,CAACO,KAAK,GACfpC,OAAO,EACP;QACAD,EAAE,CAAE,iBAAkB,CAAC,EACvB8B,SAAS,CAACO,KACV;MACH,GAbKP,SAAS,CAACK,IAchB,CACA;IAAC,CACgB;EAAC,CACjB,CAAC;AAER;AAEA,SAASqB,sCAAsCA,CAAE;EAAEC;AAAc,CAAC,EAAG;EACpE,MAAM;IAAEC;EAAsB,CAAC,GAAG9C,WAAW,CAAEI,gBAAiB,CAAC;EACjE,MAAM;IAAE2C,oBAAoB;IAAEjC,UAAU;IAAEkC;EAAc,CAAC,GAAGjD,SAAS,CAClEkD,MAAM,IAAM;IACb,MAAM;MAAEC,uBAAuB;MAAEC;IAAmB,CAAC,GACpDF,MAAM,CAAE9D,WAAY,CAAC;IAEtB,MAAM;MAAEiE,YAAY;MAAEC,kBAAkB;MAAEC;IAAoB,CAAC,GAC9DL,MAAM,CAAE7C,gBAAiB,CAAC;IAE3B,MAAMmB,IAAI,GAAGsB,aAAa,IAAIO,YAAY,CAAEP,aAAc,CAAC;IAE3D,MAAM;MAAEU;IAAwB,CAAC,GAAGlD,MAAM,CAAE4C,MAAM,CAAE9D,WAAY,CAAE,CAAC;IACnE,MAAMqE,cAAc,GAAGD,uBAAuB,CAAEhC,IAAK,CAAC;IAEtD,OAAO;MACNwB,oBAAoB,EAAEG,uBAAuB,CAC5C3B,IAAI,EACJ8B,kBAAkB,CAAER,aAAc,CACnC,CAAC;MACD/B,UAAU,EAAES,IAAI,IAAI4B,kBAAkB,CAAE5B,IAAI,EAAE,WAAY,CAAC;MAC3DyB,aAAa,EACZM,mBAAmB,CAAET,aAAc,CAAC,KAAK,aAAa,IACtD,CAAEW;IACJ,CAAC;EACF,CAAC,EACD,CAAEX,aAAa,CAChB,CAAC;EAED,MAAMhC,aAAa,GAAGkC,oBAAoB,EAAExB,IAAI;;EAEhD;EACA,MAAMkC,cAAc,GAAGxD,OAAO,CAAE,MAAM;IACrC,MAAMyD,cAAc,GAAG,IAAIC,GAAG,CAAC,CAAC;IAChC,IAAK,CAAE7C,UAAU,EAAG;MACnB,OAAO,KAAK;IACb;IACAA,UAAU,CAAC8C,OAAO,CAAI1C,SAAS,IAAM;MACpC,IAAKA,SAAS,CAACE,IAAI,EAAG;QACrBsC,cAAc,CAACG,GAAG,CAAE3C,SAAS,CAACE,IAAI,EAAE0C,GAAG,IAAI5C,SAAS,CAACE,IAAK,CAAC;MAC5D;IACD,CAAE,CAAC;IACH,OAAOsC,cAAc,CAACK,IAAI,KAAKjD,UAAU,CAACkD,MAAM;EACjD,CAAC,EAAE,CAAElD,UAAU,CAAG,CAAC;EAEnB,MAAMF,iBAAiB,GAAKqD,aAAa,IAAM;IAC9CnB,qBAAqB,CAAED,aAAa,EAAE;MACrC,GAAG/B,UAAU,CAACoD,IAAI,CAAE,CAAE;QAAE3C;MAAK,CAAC,KAAMA,IAAI,KAAK0C,aAAc,CAAC,CAC1DE;IACH,CAAE,CAAC;EACJ,CAAC;EAED,IAAK,CAAErD,UAAU,EAAEkD,MAAM,IAAIhB,aAAa,EAAG;IAC5C,OAAO,IAAI;EACZ;EAEA,MAAMoB,SAAS,GAAG,yCAAyC;;EAE3D;EACA,MAAMC,WAAW,GAAGvD,UAAU,CAACkD,MAAM,GAAG,CAAC;EAEzC,MAAMM,eAAe,GAAGD,WAAW,GAChC3D,iBAAiB,GACjB8B,4BAA4B;EAE/B,MAAM+B,SAAS,GAAGd,cAAc,GAAGa,eAAe,GAAG1C,kBAAkB;EAEvE,oBACCrB,IAAA,CAACgE,SAAS;IACT5D,SAAS,EAAGyD,SAAW;IACvBxD,iBAAiB,EAAGA,iBAAmB;IACvCC,aAAa,EAAGA,aAAe;IAC/BC,UAAU,EAAGA;EAAY,CACzB,CAAC;AAEJ;AAEA,eAAe8B,sCAAsC","ignoreList":[]}
|
|
@@ -26,21 +26,10 @@ export default (props => element => {
|
|
|
26
26
|
preserveWhiteSpace,
|
|
27
27
|
pastePlainText
|
|
28
28
|
} = props.current;
|
|
29
|
-
const {
|
|
30
|
-
ownerDocument
|
|
31
|
-
} = element;
|
|
32
|
-
const {
|
|
33
|
-
defaultView
|
|
34
|
-
} = ownerDocument;
|
|
35
|
-
const {
|
|
36
|
-
anchorNode,
|
|
37
|
-
focusNode
|
|
38
|
-
} = defaultView.getSelection();
|
|
39
|
-
const containsSelection = element.contains(anchorNode) && element.contains(focusNode);
|
|
40
29
|
|
|
41
30
|
// The event listener is attached to the window, so we need to check if
|
|
42
|
-
// the target is the element.
|
|
43
|
-
if (!
|
|
31
|
+
// the target is the element or inside the element.
|
|
32
|
+
if (!element.contains(event.target)) {
|
|
44
33
|
return;
|
|
45
34
|
}
|
|
46
35
|
if (event.defaultPrevented) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pasteHandler","isEmpty","insert","create","isURL","addActiveFormats","getPasteEventData","props","element","_onPaste","event","disableFormats","onChange","value","formatTypes","tagName","onReplace","__unstableEmbedURLOnPaste","preserveWhiteSpace","pastePlainText","current","
|
|
1
|
+
{"version":3,"names":["pasteHandler","isEmpty","insert","create","isURL","addActiveFormats","getPasteEventData","props","element","_onPaste","event","disableFormats","onChange","value","formatTypes","tagName","onReplace","__unstableEmbedURLOnPaste","preserveWhiteSpace","pastePlainText","current","contains","target","defaultPrevented","plainText","html","preventDefault","window","console","log","isInternal","clipboardData","getData","pasteInline","content","transformed","reduce","accumulator","__unstablePasteRule","valueToInsert","activeFormats","text","mode","trimmedPlainText","trim","test","HTML","length","defaultView","ownerDocument","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/rich-text/event-listeners/paste-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { pasteHandler } from '@wordpress/blocks';\nimport { isEmpty, insert, create } from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { addActiveFormats } from '../utils';\nimport { getPasteEventData } from '../../../utils/pasting';\n\n/** @typedef {import('@wordpress/rich-text').RichTextValue} RichTextValue */\n\nexport default ( props ) => ( element ) => {\n\tfunction _onPaste( event ) {\n\t\tconst {\n\t\t\tdisableFormats,\n\t\t\tonChange,\n\t\t\tvalue,\n\t\t\tformatTypes,\n\t\t\ttagName,\n\t\t\tonReplace,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\tpreserveWhiteSpace,\n\t\t\tpastePlainText,\n\t\t} = props.current;\n\n\t\t// The event listener is attached to the window, so we need to check if\n\t\t// the target is the element or inside the element.\n\t\tif ( ! element.contains( event.target ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { plainText, html } = getPasteEventData( event );\n\n\t\tevent.preventDefault();\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Received HTML:\\n\\n', html );\n\t\twindow.console.log( 'Received plain text:\\n\\n', plainText );\n\n\t\tif ( disableFormats ) {\n\t\t\tonChange( insert( value, plainText ) );\n\t\t\treturn;\n\t\t}\n\n\t\tconst isInternal =\n\t\t\tevent.clipboardData.getData( 'rich-text' ) === 'true';\n\n\t\tfunction pasteInline( content ) {\n\t\t\tconst transformed = formatTypes.reduce(\n\t\t\t\t( accumulator, { __unstablePasteRule } ) => {\n\t\t\t\t\t// Only allow one transform.\n\t\t\t\t\tif ( __unstablePasteRule && accumulator === value ) {\n\t\t\t\t\t\taccumulator = __unstablePasteRule( value, {\n\t\t\t\t\t\t\thtml,\n\t\t\t\t\t\t\tplainText,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\tvalue\n\t\t\t);\n\t\t\tif ( transformed !== value ) {\n\t\t\t\tonChange( transformed );\n\t\t\t} else {\n\t\t\t\tconst valueToInsert = create( { html: content } );\n\t\t\t\taddActiveFormats( valueToInsert, value.activeFormats );\n\t\t\t\tonChange( insert( value, valueToInsert ) );\n\t\t\t}\n\t\t}\n\n\t\t// If the data comes from a rich text instance, we can directly use it\n\t\t// without filtering the data. The filters are only meant for externally\n\t\t// pasted content and remove inline styles.\n\t\tif ( isInternal ) {\n\t\t\tpasteInline( html );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( pastePlainText ) {\n\t\t\tonChange( insert( value, create( { text: plainText } ) ) );\n\t\t\treturn;\n\t\t}\n\n\t\tlet mode = 'INLINE';\n\n\t\tconst trimmedPlainText = plainText.trim();\n\n\t\tif (\n\t\t\t__unstableEmbedURLOnPaste &&\n\t\t\tisEmpty( value ) &&\n\t\t\tisURL( trimmedPlainText ) &&\n\t\t\t// For the link pasting feature, allow only http(s) protocols.\n\t\t\t/^https?:/.test( trimmedPlainText )\n\t\t) {\n\t\t\tmode = 'BLOCKS';\n\t\t}\n\n\t\tconst content = pasteHandler( {\n\t\t\tHTML: html,\n\t\t\tplainText,\n\t\t\tmode,\n\t\t\ttagName,\n\t\t\tpreserveWhiteSpace,\n\t\t} );\n\n\t\tif ( typeof content === 'string' ) {\n\t\t\tpasteInline( content );\n\t\t} else if ( content.length > 0 ) {\n\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\tonReplace( content, content.length - 1, -1 );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst { defaultView } = element.ownerDocument;\n\n\t// Attach the listener to the window so parent elements have the chance to\n\t// prevent the default behavior.\n\tdefaultView.addEventListener( 'paste', _onPaste );\n\treturn () => {\n\t\tdefaultView.removeEventListener( 'paste', _onPaste );\n\t};\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -149,7 +149,8 @@ export function RichTextWrapper({
|
|
|
149
149
|
} = useSelect(selector, [clientId, identifier, instanceId, originalIsSelected, isBlockSelected]);
|
|
150
150
|
const {
|
|
151
151
|
disableBoundBlock,
|
|
152
|
-
bindingsPlaceholder
|
|
152
|
+
bindingsPlaceholder,
|
|
153
|
+
bindingsLabel
|
|
153
154
|
} = useSelect(select => {
|
|
154
155
|
var _fieldsList$relatedBi;
|
|
155
156
|
if (!blockBindings?.[identifier] || !canBindBlock(blockName)) {
|
|
@@ -160,21 +161,44 @@ export function RichTextWrapper({
|
|
|
160
161
|
getBlockBindingsSource
|
|
161
162
|
} = unlock(select(blocksStore));
|
|
162
163
|
const blockBindingsSource = getBlockBindingsSource(relatedBinding.source);
|
|
163
|
-
const
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
164
|
+
const blockBindingsContext = {};
|
|
165
|
+
if (blockBindingsSource?.usesContext?.length) {
|
|
166
|
+
for (const key of blockBindingsSource.usesContext) {
|
|
167
|
+
blockBindingsContext[key] = blockContext[key];
|
|
168
|
+
}
|
|
169
|
+
}
|
|
167
170
|
const _disableBoundBlock = !blockBindingsSource?.canUserEditValue?.({
|
|
168
|
-
|
|
169
|
-
context:
|
|
171
|
+
registry,
|
|
172
|
+
context: blockBindingsContext,
|
|
170
173
|
args: relatedBinding.args
|
|
171
174
|
});
|
|
175
|
+
|
|
176
|
+
// Don't modify placeholders if value is not empty.
|
|
177
|
+
if (adjustedValue.length > 0) {
|
|
178
|
+
return {
|
|
179
|
+
disableBoundBlock: _disableBoundBlock,
|
|
180
|
+
// Null values will make them fall back to the default behavior.
|
|
181
|
+
bindingsPlaceholder: null,
|
|
182
|
+
bindingsLabel: null
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
const {
|
|
186
|
+
getBlockAttributes
|
|
187
|
+
} = select(blockEditorStore);
|
|
188
|
+
const blockAttributes = getBlockAttributes(clientId);
|
|
189
|
+
const fieldsList = blockBindingsSource?.getFieldsList?.({
|
|
190
|
+
registry,
|
|
191
|
+
context: blockBindingsContext
|
|
192
|
+
});
|
|
172
193
|
const bindingKey = (_fieldsList$relatedBi = fieldsList?.[relatedBinding?.args?.key]?.label) !== null && _fieldsList$relatedBi !== void 0 ? _fieldsList$relatedBi : blockBindingsSource?.label;
|
|
173
194
|
const _bindingsPlaceholder = _disableBoundBlock ? bindingKey : sprintf( /* translators: %s: connected field label or source label */
|
|
174
195
|
__('Add %s'), bindingKey);
|
|
196
|
+
const _bindingsLabel = _disableBoundBlock ? relatedBinding?.args?.key || blockBindingsSource?.label : sprintf( /* translators: %s: source label or key */
|
|
197
|
+
__('Empty %s; start writing to edit its value'), relatedBinding?.args?.key || blockBindingsSource?.label);
|
|
175
198
|
return {
|
|
176
199
|
disableBoundBlock: _disableBoundBlock,
|
|
177
|
-
bindingsPlaceholder:
|
|
200
|
+
bindingsPlaceholder: blockAttributes?.placeholder || _bindingsPlaceholder,
|
|
201
|
+
bindingsLabel: _bindingsLabel
|
|
178
202
|
};
|
|
179
203
|
}, [blockBindings, identifier, blockName, blockContext, registry, adjustedValue]);
|
|
180
204
|
const shouldDisableEditing = readOnly || disableBoundBlock;
|
|
@@ -290,17 +314,7 @@ export function RichTextWrapper({
|
|
|
290
314
|
const keyboardShortcuts = useRef(new Set());
|
|
291
315
|
const inputEvents = useRef(new Set());
|
|
292
316
|
function onFocus() {
|
|
293
|
-
|
|
294
|
-
if (!element) {
|
|
295
|
-
return;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
// Writing flow might be editable, so we should make sure focus goes to
|
|
299
|
-
// the root editable element.
|
|
300
|
-
while (element.parentElement?.isContentEditable) {
|
|
301
|
-
element = element.parentElement;
|
|
302
|
-
}
|
|
303
|
-
element.focus();
|
|
317
|
+
anchorRef.current?.focus();
|
|
304
318
|
}
|
|
305
319
|
const TagName = tagName;
|
|
306
320
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
@@ -333,7 +347,7 @@ export function RichTextWrapper({
|
|
|
333
347
|
"aria-multiline": !disableLineBreaks,
|
|
334
348
|
"aria-readonly": shouldDisableEditing,
|
|
335
349
|
...props,
|
|
336
|
-
"aria-label":
|
|
350
|
+
"aria-label": bindingsLabel || props['aria-label'] || placeholder,
|
|
337
351
|
...autocompleteProps,
|
|
338
352
|
ref: useMergeRefs([
|
|
339
353
|
// Rich text ref must be first because its focus listener
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","useRef","useCallback","forwardRef","createContext","useContext","useDispatch","useRegistry","useSelect","useMergeRefs","useInstanceId","__unstableUseRichText","useRichText","removeFormat","Popover","store","blocksStore","deprecated","__","sprintf","useBlockEditorAutocompleteProps","useBlockEditContext","blockBindingsKey","isPreviewModeKey","FormatToolbarContainer","blockEditorStore","useMarkPersistent","useFormatTypes","useEventListeners","FormatEdit","getAllowedFormats","Content","valueToHTMLString","withDeprecations","unlock","canBindBlock","BlockContext","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","keyboardShortcutContext","inputEventContext","instanceIdKey","Symbol","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","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","readOnly","forwardedRef","since","alternative","instanceId","anchorRef","context","clientId","isBlockSelected","name","blockName","blockBindings","blockContext","registry","selector","select","getSelectionStart","getSelectionEnd","selectionStart","selectionEnd","undefined","attributeKey","offset","disableBoundBlock","bindingsPlaceholder","_fieldsList$relatedBi","relatedBinding","getBlockBindingsSource","blockBindingsSource","source","fieldsList","getFieldsList","_disableBoundBlock","canUserEditValue","args","bindingKey","key","label","_bindingsPlaceholder","length","shouldDisableEditing","getBlockRootClientId","selectionChange","adjustedAllowedFormats","hasFormats","onSelectionChange","start","end","selection","unset","baseSelection","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","addInvisibleFormats","getValue","ref","richTextRef","html","__unstableFormats","__unstableText","Object","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","completers","record","keyboardShortcuts","Set","inputEvents","onFocus","element","current","parentElement","isContentEditable","focus","TagName","Provider","__unstableSlotNameProvider","inline","editableContentElement","role","contentEditable","suppressContentEditableWarning","className","tabIndex","PrivateRichText","isEmpty","PublicForwardedRichTextContainer","isPreviewMode","Tag","contentProps","dangerouslySetInnerHTML","__html","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useMergeRefs, useInstanceId } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport { Popover } from '@wordpress/components';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { blockBindingsKey, isPreviewModeKey } from '../block-edit/context';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { useFormatTypes } from './use-format-types';\nimport { useEventListeners } from './event-listeners';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content, valueToHTMLString } from './content';\nimport { withDeprecations } from './with-deprecations';\nimport { unlock } from '../../lock-unlock';\nimport { canBindBlock } from '../../hooks/use-bindings-attributes';\nimport BlockContext from '../block-context';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\n\nconst instanceIdKey = Symbol( 'instanceId' );\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\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\treadOnly,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tif ( onSplit ) {\n\t\tdeprecated( 'wp.blockEditor.RichText onSplit prop', {\n\t\t\tsince: '6.4',\n\t\t\talternative: 'block.json support key: \"splitting\"',\n\t\t} );\n\t}\n\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\tconst anchorRef = useRef();\n\tconst context = useBlockEditContext();\n\tconst { clientId, isSelected: isBlockSelected, name: blockName } = context;\n\tconst blockBindings = context[ blockBindingsKey ];\n\tconst blockContext = useContext( BlockContext );\n\tconst registry = useRegistry();\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\t( identifier\n\t\t\t\t\t? selectionStart.attributeKey === identifier\n\t\t\t\t\t: selectionStart[ instanceIdKey ] === instanceId );\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\tinstanceId,\n\t\toriginalIsSelected,\n\t\tisBlockSelected,\n\t] );\n\n\tconst { disableBoundBlock, bindingsPlaceholder } = useSelect(\n\t\t( select ) => {\n\t\t\tif (\n\t\t\t\t! blockBindings?.[ identifier ] ||\n\t\t\t\t! canBindBlock( blockName )\n\t\t\t) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst relatedBinding = blockBindings[ identifier ];\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\trelatedBinding.source\n\t\t\t);\n\t\t\tconst fieldsList = blockBindingsSource?.getFieldsList?.( {\n\t\t\t\tregistry,\n\t\t\t\tcontext: blockContext,\n\t\t\t} );\n\n\t\t\tconst _disableBoundBlock =\n\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\tselect,\n\t\t\t\t\tcontext: blockContext,\n\t\t\t\t\targs: relatedBinding.args,\n\t\t\t\t} );\n\n\t\t\tconst bindingKey =\n\t\t\t\tfieldsList?.[ relatedBinding?.args?.key ]?.label ??\n\t\t\t\tblockBindingsSource?.label;\n\n\t\t\tconst _bindingsPlaceholder = _disableBoundBlock\n\t\t\t\t? bindingKey\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: connected field label or source label */\n\t\t\t\t\t\t__( 'Add %s' ),\n\t\t\t\t\t\tbindingKey\n\t\t\t\t );\n\n\t\t\treturn {\n\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\tbindingsPlaceholder:\n\t\t\t\t\t( ! adjustedValue || adjustedValue.length === 0 ) &&\n\t\t\t\t\t_bindingsPlaceholder,\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tblockBindings,\n\t\t\tidentifier,\n\t\t\tblockName,\n\t\t\tblockContext,\n\t\t\tregistry,\n\t\t\tadjustedValue,\n\t\t]\n\t);\n\n\tconst shouldDisableEditing = readOnly || disableBoundBlock;\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\tconst baseSelection = {\n\t\t\t\tclientId,\n\t\t\t\t[ identifier ? 'attributeKey' : instanceIdKey ]: identifier\n\t\t\t\t\t? identifier\n\t\t\t\t\t: instanceId,\n\t\t\t};\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\t...baseSelection,\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\t...baseSelection,\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[\n\t\t\tclientId,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSelectionStart,\n\t\t\tidentifier,\n\t\t\tinstanceId,\n\t\t\tselectionChange,\n\t\t]\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: bindingsPlaceholder || placeholder,\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\tlet element = anchorRef.current;\n\n\t\tif ( ! element ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Writing flow might be editable, so we should make sure focus goes to\n\t\t// the root editable element.\n\t\twhile ( element.parentElement?.isContentEditable ) {\n\t\t\telement = element.parentElement;\n\t\t}\n\n\t\telement.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/>\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-readonly={ shouldDisableEditing }\n\t\t\t\t{ ...props }\n\t\t\t\taria-label={\n\t\t\t\t\tbindingsPlaceholder || props[ 'aria-label' ] || placeholder\n\t\t\t\t}\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\tuseEventListeners( {\n\t\t\t\t\t\tregistry,\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\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\ttagName,\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\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\tremoveEditorOnlyFormats,\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\tkeyboardShortcuts,\n\t\t\t\t\t\tinputEvents,\n\t\t\t\t\t} ),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ ! shouldDisableEditing }\n\t\t\t\tsuppressContentEditableWarning\n\t\t\t\tclassName={ clsx(\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\tconst context = useBlockEditContext();\n\tconst isPreviewMode = context[ isPreviewModeKey ];\n\n\tif ( isPreviewMode ) {\n\t\t// Remove all non-content props.\n\t\tconst {\n\t\t\tchildren,\n\t\t\ttagName: Tag = 'div',\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\tisSelected,\n\t\t\tmultiline,\n\t\t\tinlineToolbar,\n\t\t\twrapperClassName,\n\t\t\tautocompleters,\n\t\t\tonReplace,\n\t\t\tplaceholder,\n\t\t\tallowedFormats,\n\t\t\twithoutInteractiveFormatting,\n\t\t\tonRemove,\n\t\t\tonMerge,\n\t\t\tonSplit,\n\t\t\t__unstableOnSplitAtEnd,\n\t\t\t__unstableOnSplitAtDoubleLineEnd,\n\t\t\tidentifier,\n\t\t\tpreserveWhiteSpace,\n\t\t\t__unstablePastePlainText,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t__unstableDisableFormats,\n\t\t\tdisableLineBreaks,\n\t\t\t__unstableAllowPrefixTransformations,\n\t\t\treadOnly,\n\t\t\t...contentProps\n\t\t} = removeNativeProps( props );\n\t\treturn (\n\t\t\t<Tag\n\t\t\t\t{ ...contentProps }\n\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t__html: valueToHTMLString( value, multiline ),\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn <PrivateRichText ref={ ref } { ...props } readOnly={ false } />;\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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","useRef","useCallback","forwardRef","createContext","useContext","useDispatch","useRegistry","useSelect","useMergeRefs","useInstanceId","__unstableUseRichText","useRichText","removeFormat","Popover","store","blocksStore","deprecated","__","sprintf","useBlockEditorAutocompleteProps","useBlockEditContext","blockBindingsKey","isPreviewModeKey","FormatToolbarContainer","blockEditorStore","useMarkPersistent","useFormatTypes","useEventListeners","FormatEdit","getAllowedFormats","Content","valueToHTMLString","withDeprecations","unlock","canBindBlock","BlockContext","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","keyboardShortcutContext","inputEventContext","instanceIdKey","Symbol","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","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","readOnly","forwardedRef","since","alternative","instanceId","anchorRef","context","clientId","isBlockSelected","name","blockName","blockBindings","blockContext","registry","selector","select","getSelectionStart","getSelectionEnd","selectionStart","selectionEnd","undefined","attributeKey","offset","disableBoundBlock","bindingsPlaceholder","bindingsLabel","_fieldsList$relatedBi","relatedBinding","getBlockBindingsSource","blockBindingsSource","source","blockBindingsContext","usesContext","length","key","_disableBoundBlock","canUserEditValue","args","getBlockAttributes","blockAttributes","fieldsList","getFieldsList","bindingKey","label","_bindingsPlaceholder","_bindingsLabel","shouldDisableEditing","getBlockRootClientId","selectionChange","adjustedAllowedFormats","hasFormats","onSelectionChange","start","end","selection","unset","baseSelection","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","addInvisibleFormats","getValue","ref","richTextRef","html","__unstableFormats","__unstableText","Object","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","completers","record","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","Provider","__unstableSlotNameProvider","inline","editableContentElement","role","contentEditable","suppressContentEditableWarning","className","tabIndex","PrivateRichText","isEmpty","PublicForwardedRichTextContainer","isPreviewMode","Tag","contentProps","dangerouslySetInnerHTML","__html","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useMergeRefs, useInstanceId } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport { Popover } from '@wordpress/components';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { blockBindingsKey, isPreviewModeKey } from '../block-edit/context';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { useFormatTypes } from './use-format-types';\nimport { useEventListeners } from './event-listeners';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content, valueToHTMLString } from './content';\nimport { withDeprecations } from './with-deprecations';\nimport { unlock } from '../../lock-unlock';\nimport { canBindBlock } from '../../hooks/use-bindings-attributes';\nimport BlockContext from '../block-context';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\n\nconst instanceIdKey = Symbol( 'instanceId' );\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\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\treadOnly,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tif ( onSplit ) {\n\t\tdeprecated( 'wp.blockEditor.RichText onSplit prop', {\n\t\t\tsince: '6.4',\n\t\t\talternative: 'block.json support key: \"splitting\"',\n\t\t} );\n\t}\n\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\tconst anchorRef = useRef();\n\tconst context = useBlockEditContext();\n\tconst { clientId, isSelected: isBlockSelected, name: blockName } = context;\n\tconst blockBindings = context[ blockBindingsKey ];\n\tconst blockContext = useContext( BlockContext );\n\tconst registry = useRegistry();\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\t( identifier\n\t\t\t\t\t? selectionStart.attributeKey === identifier\n\t\t\t\t\t: selectionStart[ instanceIdKey ] === instanceId );\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\tinstanceId,\n\t\toriginalIsSelected,\n\t\tisBlockSelected,\n\t] );\n\n\tconst { disableBoundBlock, bindingsPlaceholder, bindingsLabel } = useSelect(\n\t\t( select ) => {\n\t\t\tif (\n\t\t\t\t! blockBindings?.[ identifier ] ||\n\t\t\t\t! canBindBlock( blockName )\n\t\t\t) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst relatedBinding = blockBindings[ identifier ];\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\trelatedBinding.source\n\t\t\t);\n\t\t\tconst blockBindingsContext = {};\n\t\t\tif ( blockBindingsSource?.usesContext?.length ) {\n\t\t\t\tfor ( const key of blockBindingsSource.usesContext ) {\n\t\t\t\t\tblockBindingsContext[ key ] = blockContext[ key ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _disableBoundBlock =\n\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\tregistry,\n\t\t\t\t\tcontext: blockBindingsContext,\n\t\t\t\t\targs: relatedBinding.args,\n\t\t\t\t} );\n\n\t\t\t// Don't modify placeholders if value is not empty.\n\t\t\tif ( adjustedValue.length > 0 ) {\n\t\t\t\treturn {\n\t\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\t\t// Null values will make them fall back to the default behavior.\n\t\t\t\t\tbindingsPlaceholder: null,\n\t\t\t\t\tbindingsLabel: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\t\t\tconst blockAttributes = getBlockAttributes( clientId );\n\t\t\tconst fieldsList = blockBindingsSource?.getFieldsList?.( {\n\t\t\t\tregistry,\n\t\t\t\tcontext: blockBindingsContext,\n\t\t\t} );\n\t\t\tconst bindingKey =\n\t\t\t\tfieldsList?.[ relatedBinding?.args?.key ]?.label ??\n\t\t\t\tblockBindingsSource?.label;\n\n\t\t\tconst _bindingsPlaceholder = _disableBoundBlock\n\t\t\t\t? bindingKey\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: connected field label or source label */\n\t\t\t\t\t\t__( 'Add %s' ),\n\t\t\t\t\t\tbindingKey\n\t\t\t\t );\n\t\t\tconst _bindingsLabel = _disableBoundBlock\n\t\t\t\t? relatedBinding?.args?.key || blockBindingsSource?.label\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: source label or key */\n\t\t\t\t\t\t__( 'Empty %s; start writing to edit its value' ),\n\t\t\t\t\t\trelatedBinding?.args?.key || blockBindingsSource?.label\n\t\t\t\t );\n\n\t\t\treturn {\n\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\tbindingsPlaceholder:\n\t\t\t\t\tblockAttributes?.placeholder || _bindingsPlaceholder,\n\t\t\t\tbindingsLabel: _bindingsLabel,\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tblockBindings,\n\t\t\tidentifier,\n\t\t\tblockName,\n\t\t\tblockContext,\n\t\t\tregistry,\n\t\t\tadjustedValue,\n\t\t]\n\t);\n\n\tconst shouldDisableEditing = readOnly || disableBoundBlock;\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\tconst baseSelection = {\n\t\t\t\tclientId,\n\t\t\t\t[ identifier ? 'attributeKey' : instanceIdKey ]: identifier\n\t\t\t\t\t? identifier\n\t\t\t\t\t: instanceId,\n\t\t\t};\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\t...baseSelection,\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\t...baseSelection,\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[\n\t\t\tclientId,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSelectionStart,\n\t\t\tidentifier,\n\t\t\tinstanceId,\n\t\t\tselectionChange,\n\t\t]\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: bindingsPlaceholder || placeholder,\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/>\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-readonly={ shouldDisableEditing }\n\t\t\t\t{ ...props }\n\t\t\t\taria-label={\n\t\t\t\t\tbindingsLabel || props[ 'aria-label' ] || placeholder\n\t\t\t\t}\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\tuseEventListeners( {\n\t\t\t\t\t\tregistry,\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\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\ttagName,\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\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\tremoveEditorOnlyFormats,\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\tkeyboardShortcuts,\n\t\t\t\t\t\tinputEvents,\n\t\t\t\t\t} ),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ ! shouldDisableEditing }\n\t\t\t\tsuppressContentEditableWarning\n\t\t\t\tclassName={ clsx(\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\tconst context = useBlockEditContext();\n\tconst isPreviewMode = context[ isPreviewModeKey ];\n\n\tif ( isPreviewMode ) {\n\t\t// Remove all non-content props.\n\t\tconst {\n\t\t\tchildren,\n\t\t\ttagName: Tag = 'div',\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\tisSelected,\n\t\t\tmultiline,\n\t\t\tinlineToolbar,\n\t\t\twrapperClassName,\n\t\t\tautocompleters,\n\t\t\tonReplace,\n\t\t\tplaceholder,\n\t\t\tallowedFormats,\n\t\t\twithoutInteractiveFormatting,\n\t\t\tonRemove,\n\t\t\tonMerge,\n\t\t\tonSplit,\n\t\t\t__unstableOnSplitAtEnd,\n\t\t\t__unstableOnSplitAtDoubleLineEnd,\n\t\t\tidentifier,\n\t\t\tpreserveWhiteSpace,\n\t\t\t__unstablePastePlainText,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t__unstableDisableFormats,\n\t\t\tdisableLineBreaks,\n\t\t\t__unstableAllowPrefixTransformations,\n\t\t\treadOnly,\n\t\t\t...contentProps\n\t\t} = removeNativeProps( props );\n\t\treturn (\n\t\t\t<Tag\n\t\t\t\t{ ...contentProps }\n\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t__html: valueToHTMLString( value, multiline ),\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn <PrivateRichText ref={ ref } { ...props } readOnly={ false } />;\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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","ignoreList":[]}
|
|
@@ -11,6 +11,7 @@ import { Icon, edit as editIcon } from '@wordpress/icons';
|
|
|
11
11
|
* Internal dependencies
|
|
12
12
|
*/
|
|
13
13
|
import { store as blockEditorStore } from '../../store';
|
|
14
|
+
import { unlock } from '../../lock-unlock';
|
|
14
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
16
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
16
17
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -27,7 +28,7 @@ function ToolSelector(props, ref) {
|
|
|
27
28
|
const mode = useSelect(select => select(blockEditorStore).__unstableGetEditorMode(), []);
|
|
28
29
|
const {
|
|
29
30
|
__unstableSetEditorMode
|
|
30
|
-
} = useDispatch(blockEditorStore);
|
|
31
|
+
} = unlock(useDispatch(blockEditorStore));
|
|
31
32
|
return /*#__PURE__*/_jsx(Dropdown, {
|
|
32
33
|
renderToggle: ({
|
|
33
34
|
isOpen,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Dropdown","Button","MenuItemsChoice","SVG","Path","NavigableMenu","__","useSelect","useDispatch","forwardRef","Icon","edit","editIcon","store","blockEditorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","selectIcon","xmlns","width","height","viewBox","children","d","ToolSelector","props","ref","mode","select","__unstableGetEditorMode","__unstableSetEditorMode","renderToggle","isOpen","onToggle","__next40pxDefaultSize","icon","onClick","label","popoverProps","placement","renderContent","role","value","onSelect","choices","className"],"sources":["@wordpress/block-editor/src/components/tool-selector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\tButton,\n\tMenuItemsChoice,\n\tSVG,\n\tPath,\n\tNavigableMenu,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, edit as editIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst selectIcon = (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\tviewBox=\"0 0 24 24\"\n\t>\n\t\t<Path d=\"M9.4 20.5L5.2 3.8l14.6 9-2 .3c-.2 0-.4.1-.7.1-.9.2-1.6.3-2.2.5-.8.3-1.4.5-1.8.8-.4.3-.8.8-1.3 1.5-.4.5-.8 1.2-1.2 2l-.3.6-.9 1.9zM7.6 7.1l2.4 9.3c.2-.4.5-.8.7-1.1.6-.8 1.1-1.4 1.6-1.8.5-.4 1.3-.8 2.2-1.1l1.2-.3-8.1-5z\" />\n\t</SVG>\n);\n\nfunction ToolSelector( props, ref ) {\n\tconst mode = useSelect(\n\t\t( select ) => select( blockEditorStore ).__unstableGetEditorMode(),\n\t\t[]\n\t);\n\tconst { __unstableSetEditorMode } =
|
|
1
|
+
{"version":3,"names":["Dropdown","Button","MenuItemsChoice","SVG","Path","NavigableMenu","__","useSelect","useDispatch","forwardRef","Icon","edit","editIcon","store","blockEditorStore","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","selectIcon","xmlns","width","height","viewBox","children","d","ToolSelector","props","ref","mode","select","__unstableGetEditorMode","__unstableSetEditorMode","renderToggle","isOpen","onToggle","__next40pxDefaultSize","icon","onClick","label","popoverProps","placement","renderContent","role","value","onSelect","choices","className"],"sources":["@wordpress/block-editor/src/components/tool-selector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\tButton,\n\tMenuItemsChoice,\n\tSVG,\n\tPath,\n\tNavigableMenu,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, edit as editIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst selectIcon = (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\tviewBox=\"0 0 24 24\"\n\t>\n\t\t<Path d=\"M9.4 20.5L5.2 3.8l14.6 9-2 .3c-.2 0-.4.1-.7.1-.9.2-1.6.3-2.2.5-.8.3-1.4.5-1.8.8-.4.3-.8.8-1.3 1.5-.4.5-.8 1.2-1.2 2l-.3.6-.9 1.9zM7.6 7.1l2.4 9.3c.2-.4.5-.8.7-1.1.6-.8 1.1-1.4 1.6-1.8.5-.4 1.3-.8 2.2-1.1l1.2-.3-8.1-5z\" />\n\t</SVG>\n);\n\nfunction ToolSelector( props, ref ) {\n\tconst mode = useSelect(\n\t\t( select ) => select( blockEditorStore ).__unstableGetEditorMode(),\n\t\t[]\n\t);\n\tconst { __unstableSetEditorMode } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<Button\n\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\ticon={ mode === 'navigation' ? selectIcon : editIcon }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\tlabel={ __( 'Tools' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\tpopoverProps={ { placement: 'bottom-start' } }\n\t\t\trenderContent={ () => (\n\t\t\t\t<>\n\t\t\t\t\t<NavigableMenu role=\"menu\" aria-label={ __( 'Tools' ) }>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tmode === 'navigation' ? 'navigation' : 'edit'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonSelect={ __unstableSetEditorMode }\n\t\t\t\t\t\t\tchoices={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'edit',\n\t\t\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ editIcon } />\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'navigation',\n\t\t\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ selectIcon }\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Select' ) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t<div className=\"block-editor-tool-selector__help\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Tools provide different interactions for selecting, navigating, and editing blocks. Toggle between select and edit by pressing Escape and Enter.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( ToolSelector );\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,QAAQ,EACRC,MAAM,EACNC,eAAe,EACfC,GAAG,EACHC,IAAI,EACJC,aAAa,QACP,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,IAAI,EAAEC,IAAI,IAAIC,QAAQ,QAAQ,kBAAkB;;AAEzD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,SAASC,MAAM,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE3C,MAAMC,UAAU,gBACfL,IAAA,CAACd,GAAG;EACHoB,KAAK,EAAC,4BAA4B;EAClCC,KAAK,EAAC,IAAI;EACVC,MAAM,EAAC,IAAI;EACXC,OAAO,EAAC,WAAW;EAAAC,QAAA,eAEnBV,IAAA,CAACb,IAAI;IAACwB,CAAC,EAAC;EAA2N,CAAE;AAAC,CAClO,CACL;AAED,SAASC,YAAYA,CAAEC,KAAK,EAAEC,GAAG,EAAG;EACnC,MAAMC,IAAI,GAAGzB,SAAS,CACnB0B,MAAM,IAAMA,MAAM,CAAEnB,gBAAiB,CAAC,CAACoB,uBAAuB,CAAC,CAAC,EAClE,EACD,CAAC;EACD,MAAM;IAAEC;EAAwB,CAAC,GAAGpB,MAAM,CACzCP,WAAW,CAAEM,gBAAiB,CAC/B,CAAC;EAED,oBACCG,IAAA,CAACjB,QAAQ;IACRoC,YAAY,EAAGA,CAAE;MAAEC,MAAM;MAAEC;IAAS,CAAC,kBACpCrB,IAAA,CAAChB;IACA;IAAA;MACAsC,qBAAqB,EAAG,KAAO;MAAA,GAC1BT,KAAK;MACVC,GAAG,EAAGA,GAAK;MACXS,IAAI,EAAGR,IAAI,KAAK,YAAY,GAAGV,UAAU,GAAGV,QAAU;MACtD,iBAAgByB,MAAQ;MACxB,iBAAc,MAAM;MACpBI,OAAO,EAAGH;MACV;MACAI,KAAK,EAAGpC,EAAE,CAAE,OAAQ;IAAG,CACvB,CACC;IACHqC,YAAY,EAAG;MAAEC,SAAS,EAAE;IAAe,CAAG;IAC9CC,aAAa,EAAGA,CAAA,kBACfxB,KAAA,CAAAF,SAAA;MAAAQ,QAAA,gBACCV,IAAA,CAACZ,aAAa;QAACyC,IAAI,EAAC,MAAM;QAAC,cAAaxC,EAAE,CAAE,OAAQ,CAAG;QAAAqB,QAAA,eACtDV,IAAA,CAACf,eAAe;UACf6C,KAAK,EACJf,IAAI,KAAK,YAAY,GAAG,YAAY,GAAG,MACvC;UACDgB,QAAQ,EAAGb,uBAAyB;UACpCc,OAAO,EAAG,CACT;YACCF,KAAK,EAAE,MAAM;YACbL,KAAK,eACJrB,KAAA,CAAAF,SAAA;cAAAQ,QAAA,gBACCV,IAAA,CAACP,IAAI;gBAAC8B,IAAI,EAAG5B;cAAU,CAAE,CAAC,EACxBN,EAAE,CAAE,MAAO,CAAC;YAAA,CACb;UAEJ,CAAC,EACD;YACCyC,KAAK,EAAE,YAAY;YACnBL,KAAK,eACJrB,KAAA,CAAAF,SAAA;cAAAQ,QAAA,GACGL,UAAU,EACVhB,EAAE,CAAE,QAAS,CAAC;YAAA,CACf;UAEJ,CAAC;QACC,CACH;MAAC,CACY,CAAC,eAChBW,IAAA;QAAKiC,SAAS,EAAC,kCAAkC;QAAAvB,QAAA,EAC9CrB,EAAE,CACH,kJACD;MAAC,CACG,CAAC;IAAA,CACL;EACA,CACH,CAAC;AAEJ;AAEA,eAAeG,UAAU,CAAEoB,YAAa,CAAC","ignoreList":[]}
|
|
@@ -23,7 +23,6 @@ import useSelectionObserver from './use-selection-observer';
|
|
|
23
23
|
import useClickSelection from './use-click-selection';
|
|
24
24
|
import useInput from './use-input';
|
|
25
25
|
import useClipboardHandler from './use-clipboard-handler';
|
|
26
|
-
import useEventRedirect from './use-event-redirect';
|
|
27
26
|
import { store as blockEditorStore } from '../../store';
|
|
28
27
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
29
28
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
@@ -42,7 +41,7 @@ export function useWritingFlow() {
|
|
|
42
41
|
node.classList.remove('has-multi-selection');
|
|
43
42
|
node.removeAttribute('aria-label');
|
|
44
43
|
};
|
|
45
|
-
}, [hasMultiSelection])
|
|
44
|
+
}, [hasMultiSelection])]), after];
|
|
46
45
|
}
|
|
47
46
|
function WritingFlow({
|
|
48
47
|
children,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","useSelect","__","useMergeRefs","useRefEffect","forwardRef","useMultiSelection","useTabNav","useArrowNav","useSelectAll","useDragSelection","useSelectionObserver","useClickSelection","useInput","useClipboardHandler","
|
|
1
|
+
{"version":3,"names":["clsx","useSelect","__","useMergeRefs","useRefEffect","forwardRef","useMultiSelection","useTabNav","useArrowNav","useSelectAll","useDragSelection","useSelectionObserver","useClickSelection","useInput","useClipboardHandler","store","blockEditorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useWritingFlow","before","ref","after","hasMultiSelection","select","node","tabIndex","classList","add","setAttribute","remove","removeAttribute","WritingFlow","children","props","forwardedRef","className"],"sources":["@wordpress/block-editor/src/components/writing-flow/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useMultiSelection from './use-multi-selection';\nimport useTabNav from './use-tab-nav';\nimport useArrowNav from './use-arrow-nav';\nimport useSelectAll from './use-select-all';\nimport useDragSelection from './use-drag-selection';\nimport useSelectionObserver from './use-selection-observer';\nimport useClickSelection from './use-click-selection';\nimport useInput from './use-input';\nimport useClipboardHandler from './use-clipboard-handler';\nimport { store as blockEditorStore } from '../../store';\n\nexport function useWritingFlow() {\n\tconst [ before, ref, after ] = useTabNav();\n\tconst hasMultiSelection = useSelect(\n\t\t( select ) => select( blockEditorStore ).hasMultiSelection(),\n\t\t[]\n\t);\n\n\treturn [\n\t\tbefore,\n\t\tuseMergeRefs( [\n\t\t\tref,\n\t\t\tuseClipboardHandler(),\n\t\t\tuseInput(),\n\t\t\tuseDragSelection(),\n\t\t\tuseSelectionObserver(),\n\t\t\tuseClickSelection(),\n\t\t\tuseMultiSelection(),\n\t\t\tuseSelectAll(),\n\t\t\tuseArrowNav(),\n\t\t\tuseRefEffect(\n\t\t\t\t( node ) => {\n\t\t\t\t\tnode.tabIndex = 0;\n\n\t\t\t\t\tif ( ! hasMultiSelection ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tnode.classList.add( 'has-multi-selection' );\n\t\t\t\t\tnode.setAttribute(\n\t\t\t\t\t\t'aria-label',\n\t\t\t\t\t\t__( 'Multiple selected blocks' )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tnode.classList.remove( 'has-multi-selection' );\n\t\t\t\t\t\tnode.removeAttribute( 'aria-label' );\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t[ hasMultiSelection ]\n\t\t\t),\n\t\t] ),\n\t\tafter,\n\t];\n}\n\nfunction WritingFlow( { children, ...props }, forwardedRef ) {\n\tconst [ before, ref, after ] = useWritingFlow();\n\treturn (\n\t\t<>\n\t\t\t{ before }\n\t\t\t<div\n\t\t\t\t{ ...props }\n\t\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'block-editor-writing-flow'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t\t{ after }\n\t\t</>\n\t);\n}\n\n/**\n * Handles selection and navigation across blocks. This component should be\n * wrapped around BlockList.\n *\n * @param {Object} props Component properties.\n * @param {Element} props.children Children to be rendered.\n */\nexport default forwardRef( WritingFlow );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,YAAY,EAAEC,YAAY,QAAQ,oBAAoB;AAC/D,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,OAAOC,iBAAiB,MAAM,uBAAuB;AACrD,OAAOC,SAAS,MAAM,eAAe;AACrC,OAAOC,WAAW,MAAM,iBAAiB;AACzC,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,OAAOC,gBAAgB,MAAM,sBAAsB;AACnD,OAAOC,oBAAoB,MAAM,0BAA0B;AAC3D,OAAOC,iBAAiB,MAAM,uBAAuB;AACrD,OAAOC,QAAQ,MAAM,aAAa;AAClC,OAAOC,mBAAmB,MAAM,yBAAyB;AACzD,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAExD,OAAO,SAASC,cAAcA,CAAA,EAAG;EAChC,MAAM,CAAEC,MAAM,EAAEC,GAAG,EAAEC,KAAK,CAAE,GAAGnB,SAAS,CAAC,CAAC;EAC1C,MAAMoB,iBAAiB,GAAG1B,SAAS,CAChC2B,MAAM,IAAMA,MAAM,CAAEZ,gBAAiB,CAAC,CAACW,iBAAiB,CAAC,CAAC,EAC5D,EACD,CAAC;EAED,OAAO,CACNH,MAAM,EACNrB,YAAY,CAAE,CACbsB,GAAG,EACHX,mBAAmB,CAAC,CAAC,EACrBD,QAAQ,CAAC,CAAC,EACVH,gBAAgB,CAAC,CAAC,EAClBC,oBAAoB,CAAC,CAAC,EACtBC,iBAAiB,CAAC,CAAC,EACnBN,iBAAiB,CAAC,CAAC,EACnBG,YAAY,CAAC,CAAC,EACdD,WAAW,CAAC,CAAC,EACbJ,YAAY,CACTyB,IAAI,IAAM;IACXA,IAAI,CAACC,QAAQ,GAAG,CAAC;IAEjB,IAAK,CAAEH,iBAAiB,EAAG;MAC1B;IACD;IAEAE,IAAI,CAACE,SAAS,CAACC,GAAG,CAAE,qBAAsB,CAAC;IAC3CH,IAAI,CAACI,YAAY,CAChB,YAAY,EACZ/B,EAAE,CAAE,0BAA2B,CAChC,CAAC;IAED,OAAO,MAAM;MACZ2B,IAAI,CAACE,SAAS,CAACG,MAAM,CAAE,qBAAsB,CAAC;MAC9CL,IAAI,CAACM,eAAe,CAAE,YAAa,CAAC;IACrC,CAAC;EACF,CAAC,EACD,CAAER,iBAAiB,CACpB,CAAC,CACA,CAAC,EACHD,KAAK,CACL;AACF;AAEA,SAASU,WAAWA,CAAE;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,YAAY,EAAG;EAC5D,MAAM,CAAEf,MAAM,EAAEC,GAAG,EAAEC,KAAK,CAAE,GAAGH,cAAc,CAAC,CAAC;EAC/C,oBACCD,KAAA,CAAAF,SAAA;IAAAiB,QAAA,GACGb,MAAM,eACRN,IAAA;MAAA,GACMoB,KAAK;MACVb,GAAG,EAAGtB,YAAY,CAAE,CAAEsB,GAAG,EAAEc,YAAY,CAAG,CAAG;MAC7CC,SAAS,EAAGxC,IAAI,CACfsC,KAAK,CAACE,SAAS,EACf,2BACD,CAAG;MAAAH,QAAA,EAEDA;IAAQ,CACN,CAAC,EACJX,KAAK;EAAA,CACN,CAAC;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAerB,UAAU,CAAE+B,WAAY,CAAC","ignoreList":[]}
|