@wordpress/block-editor 5.2.10 → 5.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/block-compare/block-view.js +6 -7
- package/build/components/block-compare/block-view.js.map +1 -1
- package/build/components/block-compare/index.js +5 -15
- package/build/components/block-compare/index.js.map +1 -1
- package/build/components/block-list/block.js +4 -1
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/insertion-point.js +12 -4
- package/build/components/block-list/insertion-point.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +1 -1
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/block-compare/block-view.js +5 -6
- package/build-module/components/block-compare/block-view.js.map +1 -1
- package/build-module/components/block-compare/index.js +6 -16
- package/build-module/components/block-compare/index.js.map +1 -1
- package/build-module/components/block-list/block.js +5 -3
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/insertion-point.js +12 -4
- package/build-module/components/block-list/insertion-point.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +1 -1
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-style/style-rtl.css +8 -0
- package/build-style/style.css +8 -0
- package/package.json +12 -12
- package/src/components/block-compare/block-view.js +6 -6
- package/src/components/block-compare/index.js +6 -19
- package/src/components/block-compare/test/__snapshots__/block-view.js.snap +3 -1
- package/src/components/block-list/block.js +6 -2
- package/src/components/block-list/insertion-point.js +16 -7
- package/src/components/inserter/block-types-tab.js +1 -1
- package/src/components/rich-text/style.scss +9 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-compare/index.js"],"names":["classnames","castArray","diffChars","__","getSaveContent","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-compare/index.js"],"names":["classnames","castArray","diffChars","__","getSaveContent","BlockView","BlockCompare","block","onKeep","onConvert","convertor","convertButtonText","getDifference","originalContent","newContent","difference","map","item","pos","classes","added","removed","value","getConvertedContent","convertedBlock","newBlocks","name","attributes","innerBlocks","join","converted"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AACA,SAASC,SAAT,QAA0B,QAA1B,C,CACA;AACA;;AACA,SAASC,SAAT,QAA0B,yBAA1B;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,cAAT,QAA+B,mBAA/B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,cAAtB;;AAEA,SAASC,YAAT,OAMI;AAAA,MALHC,KAKG,QALHA,KAKG;AAAA,MAJHC,MAIG,QAJHA,MAIG;AAAA,MAHHC,SAGG,QAHHA,SAGG;AAAA,MAFHC,SAEG,QAFHA,SAEG;AAAA,MADHC,iBACG,QADHA,iBACG;;AACH,WAASC,aAAT,CAAwBC,eAAxB,EAAyCC,UAAzC,EAAsD;AACrD,QAAMC,UAAU,GAAGb,SAAS,CAAEW,eAAF,EAAmBC,UAAnB,CAA5B;AAEA,WAAOC,UAAU,CAACC,GAAX,CAAgB,UAAEC,IAAF,EAAQC,GAAR,EAAiB;AACvC,UAAMC,OAAO,GAAGnB,UAAU,CAAE;AAC3B,6CAAqCiB,IAAI,CAACG,KADf;AAE3B,+CAAuCH,IAAI,CAACI;AAFjB,OAAF,CAA1B;AAKA,aACC;AAAM,QAAA,GAAG,EAAGH,GAAZ;AAAkB,QAAA,SAAS,EAAGC;AAA9B,SACGF,IAAI,CAACK,KADR,CADD;AAKA,KAXM,CAAP;AAYA;;AAED,WAASC,mBAAT,CAA8BC,cAA9B,EAA+C;AAC9C;AACA,QAAMC,SAAS,GAAGxB,SAAS,CAAEuB,cAAF,CAA3B,CAF8C,CAI9C;;AACA,QAAMV,UAAU,GAAGW,SAAS,CAACT,GAAV,CAAe,UAAEC,IAAF;AAAA,aACjCb,cAAc,CAAEa,IAAI,CAACS,IAAP,EAAaT,IAAI,CAACU,UAAlB,EAA8BV,IAAI,CAACW,WAAnC,CADmB;AAAA,KAAf,CAAnB;AAIA,WAAOd,UAAU,CAACe,IAAX,CAAiB,EAAjB,CAAP;AACA;;AAED,MAAMC,SAAS,GAAGP,mBAAmB,CAAEb,SAAS,CAAEH,KAAF,CAAX,CAArC;AACA,MAAMQ,UAAU,GAAGH,aAAa,CAAEL,KAAK,CAACM,eAAR,EAAyBiB,SAAzB,CAAhC;AAEA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,SAAD;AACC,IAAA,KAAK,EAAG3B,EAAE,CAAE,SAAF,CADX;AAEC,IAAA,SAAS,EAAC,qCAFX;AAGC,IAAA,MAAM,EAAGK,MAHV;AAIC,IAAA,UAAU,EAAGL,EAAE,CAAE,iBAAF,CAJhB;AAKC,IAAA,UAAU,EAAGI,KAAK,CAACM,eALpB;AAMC,IAAA,eAAe,EAAGN,KAAK,CAACM;AANzB,IADD,EAUC,cAAC,SAAD;AACC,IAAA,KAAK,EAAGV,EAAE,CAAE,kBAAF,CADX;AAEC,IAAA,SAAS,EAAC,uCAFX;AAGC,IAAA,MAAM,EAAGM,SAHV;AAIC,IAAA,UAAU,EAAGE,iBAJd;AAKC,IAAA,UAAU,EAAGI,UALd;AAMC,IAAA,eAAe,EAAGe;AANnB,IAVD,CADD;AAqBA;;AAED,eAAexB,YAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { castArray } from 'lodash';\n// diff doesn't tree-shake correctly, so we import from the individual\n// module here, to avoid including too much of the library\nimport { diffChars } from 'diff/lib/diff/character';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { getSaveContent } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport BlockView from './block-view';\n\nfunction BlockCompare( {\n\tblock,\n\tonKeep,\n\tonConvert,\n\tconvertor,\n\tconvertButtonText,\n} ) {\n\tfunction getDifference( originalContent, newContent ) {\n\t\tconst difference = diffChars( originalContent, newContent );\n\n\t\treturn difference.map( ( item, pos ) => {\n\t\t\tconst classes = classnames( {\n\t\t\t\t'block-editor-block-compare__added': item.added,\n\t\t\t\t'block-editor-block-compare__removed': item.removed,\n\t\t\t} );\n\n\t\t\treturn (\n\t\t\t\t<span key={ pos } className={ classes }>\n\t\t\t\t\t{ item.value }\n\t\t\t\t</span>\n\t\t\t);\n\t\t} );\n\t}\n\n\tfunction getConvertedContent( convertedBlock ) {\n\t\t// The convertor may return an array of items or a single item\n\t\tconst newBlocks = castArray( convertedBlock );\n\n\t\t// Get converted block details\n\t\tconst newContent = newBlocks.map( ( item ) =>\n\t\t\tgetSaveContent( item.name, item.attributes, item.innerBlocks )\n\t\t);\n\n\t\treturn newContent.join( '' );\n\t}\n\n\tconst converted = getConvertedContent( convertor( block ) );\n\tconst difference = getDifference( block.originalContent, converted );\n\n\treturn (\n\t\t<div className=\"block-editor-block-compare__wrapper\">\n\t\t\t<BlockView\n\t\t\t\ttitle={ __( 'Current' ) }\n\t\t\t\tclassName=\"block-editor-block-compare__current\"\n\t\t\t\taction={ onKeep }\n\t\t\t\tactionText={ __( 'Convert to HTML' ) }\n\t\t\t\trawContent={ block.originalContent }\n\t\t\t\trenderedContent={ block.originalContent }\n\t\t\t/>\n\n\t\t\t<BlockView\n\t\t\t\ttitle={ __( 'After Conversion' ) }\n\t\t\t\tclassName=\"block-editor-block-compare__converted\"\n\t\t\t\taction={ onConvert }\n\t\t\t\tactionText={ convertButtonText }\n\t\t\t\trawContent={ difference }\n\t\t\t\trenderedContent={ converted }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default BlockCompare;\n"]}
|
|
@@ -17,11 +17,12 @@ import { omit } from 'lodash';
|
|
|
17
17
|
* WordPress dependencies
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
import { useState, createContext, useMemo, useCallback } from '@wordpress/element';
|
|
21
|
-
import { getBlockType,
|
|
20
|
+
import { useState, createContext, useMemo, useCallback, RawHTML } from '@wordpress/element';
|
|
21
|
+
import { getBlockType, getSaveContent, isReusableBlock, isUnmodifiedDefaultBlock, getUnregisteredTypeHandlerName, hasBlockSupport, getBlockDefaultClassName } from '@wordpress/blocks';
|
|
22
22
|
import { withFilters } from '@wordpress/components';
|
|
23
23
|
import { withDispatch, withSelect, useSelect, useDispatch } from '@wordpress/data';
|
|
24
24
|
import { compose, pure, ifCondition, useViewportMatch } from '@wordpress/compose';
|
|
25
|
+
import { safeHTML } from '@wordpress/dom';
|
|
25
26
|
/**
|
|
26
27
|
* Internal dependencies
|
|
27
28
|
*/
|
|
@@ -207,9 +208,10 @@ function BlockListBlock(_ref2) {
|
|
|
207
208
|
var block;
|
|
208
209
|
|
|
209
210
|
if (!isValid) {
|
|
211
|
+
var saveContent = getSaveContent(blockType, attributes);
|
|
210
212
|
block = createElement(Block, null, createElement(BlockInvalidWarning, {
|
|
211
213
|
clientId: clientId
|
|
212
|
-
}), createElement(
|
|
214
|
+
}), createElement(RawHTML, null, safeHTML(saveContent)));
|
|
213
215
|
} else if (mode === 'html') {
|
|
214
216
|
// Render blockEdit so the inspector controls don't disappear.
|
|
215
217
|
// See #8969.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"names":["classnames","omit","useState","createContext","useMemo","useCallback","getBlockType","getSaveElement","isReusableBlock","isUnmodifiedDefaultBlock","getUnregisteredTypeHandlerName","hasBlockSupport","getBlockDefaultClassName","withFilters","withDispatch","withSelect","useSelect","useDispatch","compose","pure","ifCondition","useViewportMatch","BlockEdit","BlockInvalidWarning","BlockCrashWarning","BlockCrashBoundary","BlockHtml","useBlockProps","BlockListBlockContext","mergeWrapperProps","propsA","propsB","newProps","className","style","Block","children","isHtml","props","__unstableIsHtml","BlockListBlock","mode","isLocked","clientId","isSelected","isMultiSelected","isPartOfMultiSelection","isFirstMultiSelected","isLastMultiSelected","isTypingWithinBlock","isAncestorOfSelectedBlock","isSelectionEnabled","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","index","enableAnimation","activeEntityBlockId","isLargeViewport","select","isBlockBeingDragged","isBlockHighlighted","getSettings","isDragging","isHighlighted","isFocusMode","focusMode","isOutlineMode","outlineMode","removeBlock","onRemove","hasError","setErrorState","onBlockError","blockType","lightBlockWrapper","apiVersion","isUnregisteredBlock","getEditWrapperProps","generatedClassName","customClassName","isAligned","wrapperClassName","blockEdit","undefined","alignmentWrapperProps","value","blockTitle","title","memoizedValue","Object","values","block","display","applyWithSelect","rootClientId","isBlockSelected","isAncestorMultiSelected","isBlockMultiSelected","isFirstMultiSelectedBlock","getLastMultiSelectedBlockClientId","isTyping","getBlockMode","hasSelectedInnerBlock","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","getMultiSelectedBlockClientIds","templateLock","checkDeep","multiSelectedClientIds","applyWithDispatch","dispatch","ownProps","updateBlockAttributes","insertBlocks","mergeBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","newAttributes","clientIds","onInsertBlocks","blocks","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","nextBlockClientId","previousBlockClientId","indexToSelect","initialPosition","length","selectionEnabled"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tcreateContext,\n\tuseMemo,\n\tuseCallback,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveElement,\n\tisReusableBlock,\n\tisUnmodifiedDefaultBlock,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tgetBlockDefaultClassName,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport {\n\twithDispatch,\n\twithSelect,\n\tuseSelect,\n\tuseDispatch,\n} from '@wordpress/data';\nimport {\n\tcompose,\n\tpure,\n\tifCondition,\n\tuseViewportMatch,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\n\nexport const BlockListBlockContext = createContext();\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\tif ( propsA && propsB && propsA.className && propsB.className ) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\tif ( propsA && propsB && propsA.style && propsB.style ) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tmode,\n\tisLocked,\n\tclientId,\n\tisSelected,\n\tisMultiSelected,\n\tisPartOfMultiSelection,\n\tisFirstMultiSelected,\n\tisLastMultiSelected,\n\tisTypingWithinBlock,\n\tisAncestorOfSelectedBlock,\n\tisSelectionEnabled,\n\tclassName,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n\tindex,\n\tenableAnimation,\n\tactiveEntityBlockId,\n} ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\t// In addition to withSelect, we should favor using useSelect in this\n\t// component going forward to avoid leaking new props to the public API\n\t// (editor.BlockListBlock filter)\n\tconst { isDragging, isHighlighted, isFocusMode, isOutlineMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\tgetSettings,\n\t\t\t} = select( 'core/block-editor' );\n\t\t\treturn {\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\tisHighlighted: isBlockHighlighted( clientId ),\n\t\t\t\tisFocusMode: getSettings().focusMode,\n\t\t\t\tisOutlineMode: getSettings().outlineMode,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { removeBlock } = useDispatch( 'core/block-editor' );\n\tconst onRemove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\n\t// Handling the error state\n\tconst [ hasError, setErrorState ] = useState( false );\n\tconst onBlockError = () => setErrorState( true );\n\n\tconst blockType = getBlockType( name );\n\tconst lightBlockWrapper =\n\t\tblockType.apiVersion > 1 ||\n\t\thasBlockSupport( blockType, 'lightBlockWrapper', false );\n\tconst isUnregisteredBlock = name === getUnregisteredTypeHandlerName();\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst generatedClassName =\n\t\tlightBlockWrapper && hasBlockSupport( blockType, 'className', true )\n\t\t\t? getBlockDefaultClassName( name )\n\t\t\t: null;\n\tconst customClassName = lightBlockWrapper ? attributes.className : null;\n\tconst isAligned = wrapperProps && !! wrapperProps[ 'data-align' ];\n\n\t// The wp-block className is important for editor styles.\n\t// Generate the wrapper class names handling the different states of the\n\t// block.\n\tconst wrapperClassName = classnames(\n\t\tgeneratedClassName,\n\t\tcustomClassName,\n\t\t'block-editor-block-list__block',\n\t\t{\n\t\t\t'wp-block': ! isAligned,\n\t\t\t'has-warning': ! isValid || !! hasError || isUnregisteredBlock,\n\t\t\t'is-selected': isSelected && ! isDragging,\n\t\t\t'is-highlighted': isHighlighted,\n\t\t\t'is-multi-selected': isMultiSelected,\n\t\t\t'is-reusable': isReusableBlock( blockType ),\n\t\t\t'is-dragging': isDragging,\n\t\t\t'is-typing': isTypingWithinBlock,\n\t\t\t'is-focused':\n\t\t\t\tisFocusMode &&\n\t\t\t\tisLargeViewport &&\n\t\t\t\t( isSelected || isAncestorOfSelectedBlock ),\n\t\t\t'is-focus-mode': isFocusMode && isLargeViewport,\n\t\t\t'is-outline-mode': isOutlineMode,\n\t\t\t'has-child-selected': isAncestorOfSelectedBlock && ! isDragging,\n\t\t\t'is-active-entity': activeEntityBlockId === clientId,\n\t\t},\n\t\tclassName\n\t);\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ isLocked ? undefined : onReplace }\n\t\t\tonRemove={ isLocked ? undefined : onRemove }\n\t\t\tmergeBlocks={ isLocked ? undefined : onMerge }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t/>\n\t);\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\tif ( isAligned ) {\n\t\tconst alignmentWrapperProps = {\n\t\t\t'data-align': wrapperProps[ 'data-align' ],\n\t\t};\n\t\tblockEdit = (\n\t\t\t<div className=\"wp-block\" { ...alignmentWrapperProps }>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst value = {\n\t\tclientId,\n\t\tisSelected,\n\t\tisFirstMultiSelected,\n\t\tisLastMultiSelected,\n\t\tisPartOfMultiSelection,\n\t\tenableAnimation,\n\t\tindex,\n\t\tclassName: wrapperClassName,\n\t\tisLocked,\n\t\tname,\n\t\tmode,\n\t\tblockTitle: blockType.title,\n\t\twrapperProps: omit( wrapperProps, [ 'data-align' ] ),\n\t};\n\tconst memoizedValue = useMemo( () => value, Object.values( value ) );\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tblock = (\n\t\t\t<Block>\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<div>{ getSaveElement( blockType, attributes ) }</div>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( lightBlockWrapper ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block { ...wrapperProps }>{ blockEdit }</Block>;\n\t}\n\n\treturn (\n\t\t<BlockListBlockContext.Provider value={ memoizedValue }>\n\t\t\t<BlockCrashBoundary onError={ onBlockError }>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t\t{ !! hasError && (\n\t\t\t\t<Block>\n\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t</Block>\n\t\t\t) }\n\t\t</BlockListBlockContext.Provider>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tisAncestorMultiSelected,\n\t\tisBlockMultiSelected,\n\t\tisFirstMultiSelectedBlock,\n\t\tgetLastMultiSelectedBlockClientId,\n\t\tisTyping,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\thasSelectedInnerBlock,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tgetMultiSelectedBlockClientIds,\n\t} = select( 'core/block-editor' );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst checkDeep = true;\n\n\t// \"ancestor\" is the more appropriate label due to \"deep\" check\n\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\tclientId,\n\t\tcheckDeep\n\t);\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\tconst isFirstMultiSelected = isFirstMultiSelectedBlock( clientId );\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tisMultiSelected: isBlockMultiSelected( clientId ),\n\t\tisPartOfMultiSelection:\n\t\t\tisBlockMultiSelected( clientId ) ||\n\t\t\tisAncestorMultiSelected( clientId ),\n\t\tisFirstMultiSelected,\n\t\tisLastMultiSelected: getLastMultiSelectedBlockClientId() === clientId,\n\t\tmultiSelectedClientIds: isFirstMultiSelected\n\t\t\t? getMultiSelectedBlockClientIds()\n\t\t\t: undefined,\n\n\t\t// We only care about this prop when the block is selected\n\t\t// Thus to avoid unnecessary rerenders we avoid updating the prop if\n\t\t// the block is not selected.\n\t\tisTypingWithinBlock:\n\t\t\t( isSelected || isAncestorOfSelectedBlock ) && isTyping(),\n\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t\tisAncestorOfSelectedBlock,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, { select } ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t} = dispatch( 'core/block-editor' );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst {\n\t\t\t\tclientId,\n\t\t\t\tisFirstMultiSelected,\n\t\t\t\tmultiSelectedClientIds,\n\t\t\t} = ownProps;\n\t\t\tconst clientIds = isFirstMultiSelected\n\t\t\t\t? multiSelectedClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = select( 'core/block-editor' );\n\t\t\tconst index = getBlockIndex( clientId, rootClientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { getPreviousBlockClientId, getNextBlockClientId } = select(\n\t\t\t\t'core/block-editor'\n\t\t\t);\n\n\t\t\tif ( forward ) {\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId = getPreviousBlockClientId(\n\t\t\t\t\tclientId\n\t\t\t\t);\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block ),\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"names":["classnames","omit","useState","createContext","useMemo","useCallback","RawHTML","getBlockType","getSaveContent","isReusableBlock","isUnmodifiedDefaultBlock","getUnregisteredTypeHandlerName","hasBlockSupport","getBlockDefaultClassName","withFilters","withDispatch","withSelect","useSelect","useDispatch","compose","pure","ifCondition","useViewportMatch","safeHTML","BlockEdit","BlockInvalidWarning","BlockCrashWarning","BlockCrashBoundary","BlockHtml","useBlockProps","BlockListBlockContext","mergeWrapperProps","propsA","propsB","newProps","className","style","Block","children","isHtml","props","__unstableIsHtml","BlockListBlock","mode","isLocked","clientId","isSelected","isMultiSelected","isPartOfMultiSelection","isFirstMultiSelected","isLastMultiSelected","isTypingWithinBlock","isAncestorOfSelectedBlock","isSelectionEnabled","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","index","enableAnimation","activeEntityBlockId","isLargeViewport","select","isBlockBeingDragged","isBlockHighlighted","getSettings","isDragging","isHighlighted","isFocusMode","focusMode","isOutlineMode","outlineMode","removeBlock","onRemove","hasError","setErrorState","onBlockError","blockType","lightBlockWrapper","apiVersion","isUnregisteredBlock","getEditWrapperProps","generatedClassName","customClassName","isAligned","wrapperClassName","blockEdit","undefined","alignmentWrapperProps","value","blockTitle","title","memoizedValue","Object","values","block","saveContent","display","applyWithSelect","rootClientId","isBlockSelected","isAncestorMultiSelected","isBlockMultiSelected","isFirstMultiSelectedBlock","getLastMultiSelectedBlockClientId","isTyping","getBlockMode","hasSelectedInnerBlock","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","getMultiSelectedBlockClientIds","templateLock","checkDeep","multiSelectedClientIds","applyWithDispatch","dispatch","ownProps","updateBlockAttributes","insertBlocks","mergeBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","newAttributes","clientIds","onInsertBlocks","blocks","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","nextBlockClientId","previousBlockClientId","indexToSelect","initialPosition","length","selectionEnabled"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tcreateContext,\n\tuseMemo,\n\tuseCallback,\n\tRawHTML,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisReusableBlock,\n\tisUnmodifiedDefaultBlock,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tgetBlockDefaultClassName,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport {\n\twithDispatch,\n\twithSelect,\n\tuseSelect,\n\tuseDispatch,\n} from '@wordpress/data';\nimport {\n\tcompose,\n\tpure,\n\tifCondition,\n\tuseViewportMatch,\n} from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\n\nexport const BlockListBlockContext = createContext();\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\tif ( propsA && propsB && propsA.className && propsB.className ) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\tif ( propsA && propsB && propsA.style && propsB.style ) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tmode,\n\tisLocked,\n\tclientId,\n\tisSelected,\n\tisMultiSelected,\n\tisPartOfMultiSelection,\n\tisFirstMultiSelected,\n\tisLastMultiSelected,\n\tisTypingWithinBlock,\n\tisAncestorOfSelectedBlock,\n\tisSelectionEnabled,\n\tclassName,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n\tindex,\n\tenableAnimation,\n\tactiveEntityBlockId,\n} ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\t// In addition to withSelect, we should favor using useSelect in this\n\t// component going forward to avoid leaking new props to the public API\n\t// (editor.BlockListBlock filter)\n\tconst { isDragging, isHighlighted, isFocusMode, isOutlineMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\tgetSettings,\n\t\t\t} = select( 'core/block-editor' );\n\t\t\treturn {\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\tisHighlighted: isBlockHighlighted( clientId ),\n\t\t\t\tisFocusMode: getSettings().focusMode,\n\t\t\t\tisOutlineMode: getSettings().outlineMode,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { removeBlock } = useDispatch( 'core/block-editor' );\n\tconst onRemove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\n\t// Handling the error state\n\tconst [ hasError, setErrorState ] = useState( false );\n\tconst onBlockError = () => setErrorState( true );\n\n\tconst blockType = getBlockType( name );\n\tconst lightBlockWrapper =\n\t\tblockType.apiVersion > 1 ||\n\t\thasBlockSupport( blockType, 'lightBlockWrapper', false );\n\tconst isUnregisteredBlock = name === getUnregisteredTypeHandlerName();\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst generatedClassName =\n\t\tlightBlockWrapper && hasBlockSupport( blockType, 'className', true )\n\t\t\t? getBlockDefaultClassName( name )\n\t\t\t: null;\n\tconst customClassName = lightBlockWrapper ? attributes.className : null;\n\tconst isAligned = wrapperProps && !! wrapperProps[ 'data-align' ];\n\n\t// The wp-block className is important for editor styles.\n\t// Generate the wrapper class names handling the different states of the\n\t// block.\n\tconst wrapperClassName = classnames(\n\t\tgeneratedClassName,\n\t\tcustomClassName,\n\t\t'block-editor-block-list__block',\n\t\t{\n\t\t\t'wp-block': ! isAligned,\n\t\t\t'has-warning': ! isValid || !! hasError || isUnregisteredBlock,\n\t\t\t'is-selected': isSelected && ! isDragging,\n\t\t\t'is-highlighted': isHighlighted,\n\t\t\t'is-multi-selected': isMultiSelected,\n\t\t\t'is-reusable': isReusableBlock( blockType ),\n\t\t\t'is-dragging': isDragging,\n\t\t\t'is-typing': isTypingWithinBlock,\n\t\t\t'is-focused':\n\t\t\t\tisFocusMode &&\n\t\t\t\tisLargeViewport &&\n\t\t\t\t( isSelected || isAncestorOfSelectedBlock ),\n\t\t\t'is-focus-mode': isFocusMode && isLargeViewport,\n\t\t\t'is-outline-mode': isOutlineMode,\n\t\t\t'has-child-selected': isAncestorOfSelectedBlock && ! isDragging,\n\t\t\t'is-active-entity': activeEntityBlockId === clientId,\n\t\t},\n\t\tclassName\n\t);\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ isLocked ? undefined : onReplace }\n\t\t\tonRemove={ isLocked ? undefined : onRemove }\n\t\t\tmergeBlocks={ isLocked ? undefined : onMerge }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t/>\n\t);\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\tif ( isAligned ) {\n\t\tconst alignmentWrapperProps = {\n\t\t\t'data-align': wrapperProps[ 'data-align' ],\n\t\t};\n\t\tblockEdit = (\n\t\t\t<div className=\"wp-block\" { ...alignmentWrapperProps }>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst value = {\n\t\tclientId,\n\t\tisSelected,\n\t\tisFirstMultiSelected,\n\t\tisLastMultiSelected,\n\t\tisPartOfMultiSelection,\n\t\tenableAnimation,\n\t\tindex,\n\t\tclassName: wrapperClassName,\n\t\tisLocked,\n\t\tname,\n\t\tmode,\n\t\tblockTitle: blockType.title,\n\t\twrapperProps: omit( wrapperProps, [ 'data-align' ] ),\n\t};\n\tconst memoizedValue = useMemo( () => value, Object.values( value ) );\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block>\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( lightBlockWrapper ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block { ...wrapperProps }>{ blockEdit }</Block>;\n\t}\n\n\treturn (\n\t\t<BlockListBlockContext.Provider value={ memoizedValue }>\n\t\t\t<BlockCrashBoundary onError={ onBlockError }>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t\t{ !! hasError && (\n\t\t\t\t<Block>\n\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t</Block>\n\t\t\t) }\n\t\t</BlockListBlockContext.Provider>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tisAncestorMultiSelected,\n\t\tisBlockMultiSelected,\n\t\tisFirstMultiSelectedBlock,\n\t\tgetLastMultiSelectedBlockClientId,\n\t\tisTyping,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\thasSelectedInnerBlock,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tgetMultiSelectedBlockClientIds,\n\t} = select( 'core/block-editor' );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst checkDeep = true;\n\n\t// \"ancestor\" is the more appropriate label due to \"deep\" check\n\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\tclientId,\n\t\tcheckDeep\n\t);\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\tconst isFirstMultiSelected = isFirstMultiSelectedBlock( clientId );\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tisMultiSelected: isBlockMultiSelected( clientId ),\n\t\tisPartOfMultiSelection:\n\t\t\tisBlockMultiSelected( clientId ) ||\n\t\t\tisAncestorMultiSelected( clientId ),\n\t\tisFirstMultiSelected,\n\t\tisLastMultiSelected: getLastMultiSelectedBlockClientId() === clientId,\n\t\tmultiSelectedClientIds: isFirstMultiSelected\n\t\t\t? getMultiSelectedBlockClientIds()\n\t\t\t: undefined,\n\n\t\t// We only care about this prop when the block is selected\n\t\t// Thus to avoid unnecessary rerenders we avoid updating the prop if\n\t\t// the block is not selected.\n\t\tisTypingWithinBlock:\n\t\t\t( isSelected || isAncestorOfSelectedBlock ) && isTyping(),\n\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t\tisAncestorOfSelectedBlock,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, { select } ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t} = dispatch( 'core/block-editor' );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst {\n\t\t\t\tclientId,\n\t\t\t\tisFirstMultiSelected,\n\t\t\t\tmultiSelectedClientIds,\n\t\t\t} = ownProps;\n\t\t\tconst clientIds = isFirstMultiSelected\n\t\t\t\t? multiSelectedClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = select( 'core/block-editor' );\n\t\t\tconst index = getBlockIndex( clientId, rootClientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { getPreviousBlockClientId, getNextBlockClientId } = select(\n\t\t\t\t'core/block-editor'\n\t\t\t);\n\n\t\t\tif ( forward ) {\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId = getPreviousBlockClientId(\n\t\t\t\t\tclientId\n\t\t\t\t);\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block ),\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"]}
|
|
@@ -172,7 +172,16 @@ function InsertionPointPopover(_ref2) {
|
|
|
172
172
|
if (event.target !== ref.current) {
|
|
173
173
|
setIsInserterForced(true);
|
|
174
174
|
}
|
|
175
|
-
}
|
|
175
|
+
} // Only show the inserter when there's a `nextElement` (a block after the
|
|
176
|
+
// insertion point). At the end of the block list the trailing appender
|
|
177
|
+
// should serve the purpose of inserting blocks.
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
var showInsertionPointInserter = !isHidden && nextElement && (isInserterShown || isInserterForced); // Show the indicator if the insertion point inserter is visible, or if
|
|
181
|
+
// the `showInsertionPoint` state is `true`. The latter is generally true
|
|
182
|
+
// when hovering blocks for insertion in the block library.
|
|
183
|
+
|
|
184
|
+
var showInsertionPointIndicator = showInsertionPointInserter || !isHidden && showInsertionPoint;
|
|
176
185
|
/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */
|
|
177
186
|
// While ideally it would be enough to capture the
|
|
178
187
|
// bubbling focus event from the Inserter, due to the
|
|
@@ -181,7 +190,6 @@ function InsertionPointPopover(_ref2) {
|
|
|
181
190
|
//
|
|
182
191
|
// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus
|
|
183
192
|
|
|
184
|
-
|
|
185
193
|
return createElement(Popover, {
|
|
186
194
|
noArrow: true,
|
|
187
195
|
animate: false,
|
|
@@ -196,9 +204,9 @@ function InsertionPointPopover(_ref2) {
|
|
|
196
204
|
onFocus: onFocus,
|
|
197
205
|
className: className,
|
|
198
206
|
style: style
|
|
199
|
-
},
|
|
207
|
+
}, showInsertionPointIndicator && createElement("div", {
|
|
200
208
|
className: "block-editor-block-list__insertion-point-indicator"
|
|
201
|
-
}),
|
|
209
|
+
}), showInsertionPointInserter && createElement(InsertionPointInserter, {
|
|
202
210
|
rootClientId: rootClientId,
|
|
203
211
|
clientId: nextClientId,
|
|
204
212
|
setIsInserterForced: setIsInserterForced
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/insertion-point.js"],"names":["classnames","useSelect","useDispatch","useState","useEffect","useCallback","useRef","useMemo","Popover","isRTL","Inserter","getBlockDOMNode","InsertionPointInserter","clientId","rootClientId","setIsInserterForced","InsertionPointPopover","selectedRootClientId","isInserterShown","isInserterForced","containerRef","showInsertionPoint","selectBlock","ref","select","getBlockOrder","getBlockRootClientId","getBlockListSettings","getMultiSelectedBlockClientIds","getSelectedBlockClientId","hasMultiSelection","getSettings","ownerDocument","current","targetRootClientId","blockOrder","length","previous","isLast","next","indexOf","hasReducedUI","multiSelectedBlockClientIds","selectedBlockClientId","blockOrientation","orientation","previousElement","nextElement","nextClientId","isHidden","includes","style","previousRect","getBoundingClientRect","nextRect","width","offsetWidth","height","top","bottom","left","right","offsetHeight","getAnchorRect","className","onClick","event","target","onFocus","useInsertionPoint","setIsInserterShown","inserterClientId","setInserterClientId","_isMultiSelecting","isMultiSelecting","isBlockInsertionPointVisible","getBlockInsertionPoint","_getBlockListSettings","insertionPoint","order","isInserterVisible","selectedClientId","index","onMouseMove","classList","contains","blockElement","getAttribute","closest","rect","offsetTop","clientY","offsetLeft","clientX","children","Array","from","find","blockEl","element","id","firstElementChild","slice","elementRect","enableMouseMove","addEventListener","removeEventListener","isVisible","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseState,\n\tuseEffect,\n\tuseCallback,\n\tuseRef,\n\tuseMemo,\n} from '@wordpress/element';\nimport { Popover } from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { getBlockDOMNode } from '../../utils/dom';\n\nfunction InsertionPointInserter( {\n\tclientId,\n\trootClientId,\n\tsetIsInserterForced,\n} ) {\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-list__insertion-point-inserter'\n\t\t\t) }\n\t\t>\n\t\t\t<Inserter\n\t\t\t\tposition=\"bottom center\"\n\t\t\t\tclientId={ clientId }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t__experimentalIsQuick\n\t\t\t\tonToggle={ setIsInserterForced }\n\t\t\t\tonSelectOrClose={ () => setIsInserterForced( false ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction InsertionPointPopover( {\n\tclientId,\n\tselectedRootClientId,\n\tisInserterShown,\n\tisInserterForced,\n\tsetIsInserterForced,\n\tcontainerRef,\n\tshowInsertionPoint,\n} ) {\n\tconst { selectBlock } = useDispatch( 'core/block-editor' );\n\tconst ref = useRef();\n\n\tconst {\n\t\tpreviousElement,\n\t\tnextElement,\n\t\torientation,\n\t\tisHidden,\n\t\tnextClientId,\n\t\trootClientId,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\thasMultiSelection,\n\t\t\t\tgetSettings,\n\t\t\t} = select( 'core/block-editor' );\n\t\t\tconst { ownerDocument } = containerRef.current;\n\t\t\tconst targetRootClientId = clientId\n\t\t\t\t? getBlockRootClientId( clientId )\n\t\t\t\t: selectedRootClientId;\n\t\t\tconst blockOrder = getBlockOrder( targetRootClientId );\n\t\t\tif ( ! blockOrder.length ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst previous = clientId\n\t\t\t\t? clientId\n\t\t\t\t: blockOrder[ blockOrder.length - 1 ];\n\t\t\tconst isLast = previous === blockOrder[ blockOrder.length - 1 ];\n\t\t\tconst next = isLast\n\t\t\t\t? null\n\t\t\t\t: blockOrder[ blockOrder.indexOf( previous ) + 1 ];\n\t\t\tconst { hasReducedUI } = getSettings();\n\t\t\tconst multiSelectedBlockClientIds = getMultiSelectedBlockClientIds();\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\tconst blockOrientation =\n\t\t\t\tgetBlockListSettings( targetRootClientId )?.orientation ||\n\t\t\t\t'vertical';\n\n\t\t\treturn {\n\t\t\t\tpreviousElement: getBlockDOMNode( previous, ownerDocument ),\n\t\t\t\tnextElement: getBlockDOMNode( next, ownerDocument ),\n\t\t\t\tnextClientId: next,\n\t\t\t\tisHidden:\n\t\t\t\t\thasReducedUI ||\n\t\t\t\t\t( hasMultiSelection()\n\t\t\t\t\t\t? next && multiSelectedBlockClientIds.includes( next )\n\t\t\t\t\t\t: next &&\n\t\t\t\t\t\t blockOrientation === 'vertical' &&\n\t\t\t\t\t\t next === selectedBlockClientId ),\n\t\t\t\torientation: blockOrientation,\n\t\t\t\trootClientId: targetRootClientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId, selectedRootClientId ]\n\t);\n\n\tconst style = useMemo( () => {\n\t\tif ( ! previousElement ) {\n\t\t\treturn {};\n\t\t}\n\t\tconst previousRect = previousElement.getBoundingClientRect();\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( orientation === 'vertical' ) {\n\t\t\treturn {\n\t\t\t\twidth: previousElement.offsetWidth,\n\t\t\t\theight: nextRect ? nextRect.top - previousRect.bottom : 0,\n\t\t\t};\n\t\t}\n\n\t\tlet width = 0;\n\t\tif ( nextElement ) {\n\t\t\twidth = isRTL()\n\t\t\t\t? previousRect.left - nextRect.right\n\t\t\t\t: nextRect.left - previousRect.right;\n\t\t}\n\n\t\treturn {\n\t\t\twidth,\n\t\t\theight: previousElement.offsetHeight,\n\t\t};\n\t}, [ previousElement, nextElement ] );\n\n\tconst getAnchorRect = useCallback( () => {\n\t\tconst previousRect = previousElement.getBoundingClientRect();\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tif ( orientation === 'vertical' ) {\n\t\t\treturn {\n\t\t\t\ttop: previousRect.bottom,\n\t\t\t\tleft: previousRect.left,\n\t\t\t\tright: previousRect.right,\n\t\t\t\tbottom: nextRect ? nextRect.top : previousRect.bottom,\n\t\t\t};\n\t\t}\n\n\t\tif ( isRTL() ) {\n\t\t\treturn {\n\t\t\t\ttop: previousRect.top,\n\t\t\t\tleft: nextRect ? nextRect.right : previousRect.left,\n\t\t\t\tright: previousRect.left,\n\t\t\t\tbottom: previousRect.bottom,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttop: previousRect.top,\n\t\t\tleft: previousRect.right,\n\t\t\tright: nextRect ? nextRect.left : previousRect.right,\n\t\t\tbottom: previousRect.bottom,\n\t\t};\n\t}, [ previousElement, nextElement ] );\n\n\tif ( ! previousElement ) {\n\t\treturn null;\n\t}\n\n\tconst className = classnames(\n\t\t'block-editor-block-list__insertion-point',\n\t\t'is-' + orientation\n\t);\n\n\tfunction onClick( event ) {\n\t\tif ( event.target === ref.current && nextClientId ) {\n\t\t\tselectBlock( nextClientId, -1 );\n\t\t}\n\t}\n\n\tfunction onFocus( event ) {\n\t\t// Only handle click on the wrapper specifically, and not an event\n\t\t// bubbled from the inserter itself.\n\t\tif ( event.target !== ref.current ) {\n\t\t\tsetIsInserterForced( true );\n\t\t}\n\t}\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t// While ideally it would be enough to capture the\n\t// bubbling focus event from the Inserter, due to the\n\t// characteristics of click focusing of `button`s in\n\t// Firefox and Safari, it is not reliable.\n\t//\n\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\treturn (\n\t\t<Popover\n\t\t\tnoArrow\n\t\t\tanimate={ false }\n\t\t\tgetAnchorRect={ getAnchorRect }\n\t\t\tfocusOnMount={ false }\n\t\t\tclassName=\"block-editor-block-list__insertion-point-popover\"\n\t\t\t__unstableSlotName=\"block-toolbar\"\n\t\t>\n\t\t\t<div\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tclassName={ className }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ ! isHidden &&\n\t\t\t\t\t( showInsertionPoint ||\n\t\t\t\t\t\tisInserterShown ||\n\t\t\t\t\t\tisInserterForced ) && (\n\t\t\t\t\t\t<div className=\"block-editor-block-list__insertion-point-indicator\" />\n\t\t\t\t\t) }\n\t\t\t\t{ ! isHidden && ( isInserterShown || isInserterForced ) && (\n\t\t\t\t\t<InsertionPointInserter\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ nextClientId }\n\t\t\t\t\t\tsetIsInserterForced={ setIsInserterForced }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</Popover>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n}\n\nexport default function useInsertionPoint( ref ) {\n\tconst [ isInserterShown, setIsInserterShown ] = useState( false );\n\tconst [ isInserterForced, setIsInserterForced ] = useState( false );\n\tconst [ inserterClientId, setInserterClientId ] = useState( null );\n\tconst {\n\t\tisMultiSelecting,\n\t\tisInserterVisible,\n\t\tselectedClientId,\n\t\tselectedRootClientId,\n\t\tgetBlockListSettings,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisMultiSelecting: _isMultiSelecting,\n\t\t\tisBlockInsertionPointVisible,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockListSettings: _getBlockListSettings,\n\t\t} = select( 'core/block-editor' );\n\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\n\t\treturn {\n\t\t\tgetBlockListSettings: _getBlockListSettings,\n\t\t\tisMultiSelecting: _isMultiSelecting(),\n\t\t\tisInserterVisible: isBlockInsertionPointVisible(),\n\t\t\tselectedClientId: order[ insertionPoint.index - 1 ],\n\t\t\tselectedRootClientId: insertionPoint.rootClientId,\n\t\t};\n\t}, [] );\n\n\tconst onMouseMove = useCallback(\n\t\t( event ) => {\n\t\t\tif (\n\t\t\t\t! event.target.classList.contains(\n\t\t\t\t\t'block-editor-block-list__layout'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif ( isInserterShown ) {\n\t\t\t\t\tsetIsInserterShown( false );\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet rootClientId;\n\t\t\tif ( ! event.target.classList.contains( 'is-root-container' ) ) {\n\t\t\t\tconst blockElement = !! event.target.getAttribute(\n\t\t\t\t\t'data-block'\n\t\t\t\t)\n\t\t\t\t\t? event.target\n\t\t\t\t\t: event.target.closest( '[data-block]' );\n\t\t\t\trootClientId = blockElement.getAttribute( 'data-block' );\n\t\t\t}\n\n\t\t\tconst orientation =\n\t\t\t\tgetBlockListSettings( rootClientId )?.orientation || 'vertical';\n\t\t\tconst rect = event.target.getBoundingClientRect();\n\t\t\tconst offsetTop = event.clientY - rect.top;\n\t\t\tconst offsetLeft = event.clientX - rect.left;\n\n\t\t\tconst children = Array.from( event.target.children );\n\t\t\tconst nextElement = children.find( ( blockEl ) => {\n\t\t\t\treturn (\n\t\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t\tblockEl.offsetTop > offsetTop ) ||\n\t\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t\tblockEl.offsetLeft > offsetLeft )\n\t\t\t\t);\n\t\t\t} );\n\n\t\t\tlet element = nextElement\n\t\t\t\t? children[ children.indexOf( nextElement ) - 1 ]\n\t\t\t\t: children[ children.length - 1 ];\n\n\t\t\tif ( ! element ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// The block may be in an alignment wrapper, so check the first direct\n\t\t\t// child if the element has no ID.\n\t\t\tif ( ! element.id ) {\n\t\t\t\telement = element.firstElementChild;\n\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst clientId = element.id.slice( 'block-'.length );\n\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst elementRect = element.getBoundingClientRect();\n\n\t\t\tif (\n\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t( event.clientY > elementRect.bottom ||\n\t\t\t\t\t\tevent.clientY < elementRect.top ) ) ||\n\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t( event.clientX > elementRect.right ||\n\t\t\t\t\t\tevent.clientX < elementRect.left ) )\n\t\t\t) {\n\t\t\t\tif ( isInserterShown ) {\n\t\t\t\t\tsetIsInserterShown( false );\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsInserterShown( true );\n\t\t\tsetInserterClientId( clientId );\n\t\t},\n\t\t[ isInserterShown, setIsInserterShown, setInserterClientId ]\n\t);\n\n\tconst enableMouseMove = ! isInserterForced && ! isMultiSelecting;\n\n\tuseEffect( () => {\n\t\tif ( ! enableMouseMove ) {\n\t\t\treturn;\n\t\t}\n\n\t\tref.current.addEventListener( 'mousemove', onMouseMove );\n\n\t\treturn () => {\n\t\t\tref.current.removeEventListener( 'mousemove', onMouseMove );\n\t\t};\n\t}, [ enableMouseMove, onMouseMove ] );\n\n\tconst isVisible = isInserterShown || isInserterForced || isInserterVisible;\n\n\treturn (\n\t\t! isMultiSelecting &&\n\t\tisVisible && (\n\t\t\t<InsertionPointPopover\n\t\t\t\tclientId={\n\t\t\t\t\tisInserterVisible ? selectedClientId : inserterClientId\n\t\t\t\t}\n\t\t\t\tselectedRootClientId={ selectedRootClientId }\n\t\t\t\tisInserterShown={ isInserterShown }\n\t\t\t\tisInserterForced={ isInserterForced }\n\t\t\t\tsetIsInserterForced={ ( value ) => {\n\t\t\t\t\tsetIsInserterForced( value );\n\t\t\t\t\tif ( ! value ) {\n\t\t\t\t\t\tsetIsInserterShown( value );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tcontainerRef={ ref }\n\t\t\t\tshowInsertionPoint={ isInserterVisible }\n\t\t\t/>\n\t\t)\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/insertion-point.js"],"names":["classnames","useSelect","useDispatch","useState","useEffect","useCallback","useRef","useMemo","Popover","isRTL","Inserter","getBlockDOMNode","InsertionPointInserter","clientId","rootClientId","setIsInserterForced","InsertionPointPopover","selectedRootClientId","isInserterShown","isInserterForced","containerRef","showInsertionPoint","selectBlock","ref","select","getBlockOrder","getBlockRootClientId","getBlockListSettings","getMultiSelectedBlockClientIds","getSelectedBlockClientId","hasMultiSelection","getSettings","ownerDocument","current","targetRootClientId","blockOrder","length","previous","isLast","next","indexOf","hasReducedUI","multiSelectedBlockClientIds","selectedBlockClientId","blockOrientation","orientation","previousElement","nextElement","nextClientId","isHidden","includes","style","previousRect","getBoundingClientRect","nextRect","width","offsetWidth","height","top","bottom","left","right","offsetHeight","getAnchorRect","className","onClick","event","target","onFocus","showInsertionPointInserter","showInsertionPointIndicator","useInsertionPoint","setIsInserterShown","inserterClientId","setInserterClientId","_isMultiSelecting","isMultiSelecting","isBlockInsertionPointVisible","getBlockInsertionPoint","_getBlockListSettings","insertionPoint","order","isInserterVisible","selectedClientId","index","onMouseMove","classList","contains","blockElement","getAttribute","closest","rect","offsetTop","clientY","offsetLeft","clientX","children","Array","from","find","blockEl","element","id","firstElementChild","slice","elementRect","enableMouseMove","addEventListener","removeEventListener","isVisible","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseState,\n\tuseEffect,\n\tuseCallback,\n\tuseRef,\n\tuseMemo,\n} from '@wordpress/element';\nimport { Popover } from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { getBlockDOMNode } from '../../utils/dom';\n\nfunction InsertionPointInserter( {\n\tclientId,\n\trootClientId,\n\tsetIsInserterForced,\n} ) {\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-list__insertion-point-inserter'\n\t\t\t) }\n\t\t>\n\t\t\t<Inserter\n\t\t\t\tposition=\"bottom center\"\n\t\t\t\tclientId={ clientId }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t__experimentalIsQuick\n\t\t\t\tonToggle={ setIsInserterForced }\n\t\t\t\tonSelectOrClose={ () => setIsInserterForced( false ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction InsertionPointPopover( {\n\tclientId,\n\tselectedRootClientId,\n\tisInserterShown,\n\tisInserterForced,\n\tsetIsInserterForced,\n\tcontainerRef,\n\tshowInsertionPoint,\n} ) {\n\tconst { selectBlock } = useDispatch( 'core/block-editor' );\n\tconst ref = useRef();\n\n\tconst {\n\t\tpreviousElement,\n\t\tnextElement,\n\t\torientation,\n\t\tisHidden,\n\t\tnextClientId,\n\t\trootClientId,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\thasMultiSelection,\n\t\t\t\tgetSettings,\n\t\t\t} = select( 'core/block-editor' );\n\t\t\tconst { ownerDocument } = containerRef.current;\n\t\t\tconst targetRootClientId = clientId\n\t\t\t\t? getBlockRootClientId( clientId )\n\t\t\t\t: selectedRootClientId;\n\t\t\tconst blockOrder = getBlockOrder( targetRootClientId );\n\t\t\tif ( ! blockOrder.length ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst previous = clientId\n\t\t\t\t? clientId\n\t\t\t\t: blockOrder[ blockOrder.length - 1 ];\n\t\t\tconst isLast = previous === blockOrder[ blockOrder.length - 1 ];\n\t\t\tconst next = isLast\n\t\t\t\t? null\n\t\t\t\t: blockOrder[ blockOrder.indexOf( previous ) + 1 ];\n\t\t\tconst { hasReducedUI } = getSettings();\n\t\t\tconst multiSelectedBlockClientIds = getMultiSelectedBlockClientIds();\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\tconst blockOrientation =\n\t\t\t\tgetBlockListSettings( targetRootClientId )?.orientation ||\n\t\t\t\t'vertical';\n\n\t\t\treturn {\n\t\t\t\tpreviousElement: getBlockDOMNode( previous, ownerDocument ),\n\t\t\t\tnextElement: getBlockDOMNode( next, ownerDocument ),\n\t\t\t\tnextClientId: next,\n\t\t\t\tisHidden:\n\t\t\t\t\thasReducedUI ||\n\t\t\t\t\t( hasMultiSelection()\n\t\t\t\t\t\t? next && multiSelectedBlockClientIds.includes( next )\n\t\t\t\t\t\t: next &&\n\t\t\t\t\t\t blockOrientation === 'vertical' &&\n\t\t\t\t\t\t next === selectedBlockClientId ),\n\t\t\t\torientation: blockOrientation,\n\t\t\t\trootClientId: targetRootClientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId, selectedRootClientId ]\n\t);\n\n\tconst style = useMemo( () => {\n\t\tif ( ! previousElement ) {\n\t\t\treturn {};\n\t\t}\n\t\tconst previousRect = previousElement.getBoundingClientRect();\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( orientation === 'vertical' ) {\n\t\t\treturn {\n\t\t\t\twidth: previousElement.offsetWidth,\n\t\t\t\theight: nextRect ? nextRect.top - previousRect.bottom : 0,\n\t\t\t};\n\t\t}\n\n\t\tlet width = 0;\n\t\tif ( nextElement ) {\n\t\t\twidth = isRTL()\n\t\t\t\t? previousRect.left - nextRect.right\n\t\t\t\t: nextRect.left - previousRect.right;\n\t\t}\n\n\t\treturn {\n\t\t\twidth,\n\t\t\theight: previousElement.offsetHeight,\n\t\t};\n\t}, [ previousElement, nextElement ] );\n\n\tconst getAnchorRect = useCallback( () => {\n\t\tconst previousRect = previousElement.getBoundingClientRect();\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tif ( orientation === 'vertical' ) {\n\t\t\treturn {\n\t\t\t\ttop: previousRect.bottom,\n\t\t\t\tleft: previousRect.left,\n\t\t\t\tright: previousRect.right,\n\t\t\t\tbottom: nextRect ? nextRect.top : previousRect.bottom,\n\t\t\t};\n\t\t}\n\n\t\tif ( isRTL() ) {\n\t\t\treturn {\n\t\t\t\ttop: previousRect.top,\n\t\t\t\tleft: nextRect ? nextRect.right : previousRect.left,\n\t\t\t\tright: previousRect.left,\n\t\t\t\tbottom: previousRect.bottom,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttop: previousRect.top,\n\t\t\tleft: previousRect.right,\n\t\t\tright: nextRect ? nextRect.left : previousRect.right,\n\t\t\tbottom: previousRect.bottom,\n\t\t};\n\t}, [ previousElement, nextElement ] );\n\n\tif ( ! previousElement ) {\n\t\treturn null;\n\t}\n\n\tconst className = classnames(\n\t\t'block-editor-block-list__insertion-point',\n\t\t'is-' + orientation\n\t);\n\n\tfunction onClick( event ) {\n\t\tif ( event.target === ref.current && nextClientId ) {\n\t\t\tselectBlock( nextClientId, -1 );\n\t\t}\n\t}\n\n\tfunction onFocus( event ) {\n\t\t// Only handle click on the wrapper specifically, and not an event\n\t\t// bubbled from the inserter itself.\n\t\tif ( event.target !== ref.current ) {\n\t\t\tsetIsInserterForced( true );\n\t\t}\n\t}\n\n\t// Only show the inserter when there's a `nextElement` (a block after the\n\t// insertion point). At the end of the block list the trailing appender\n\t// should serve the purpose of inserting blocks.\n\tconst showInsertionPointInserter =\n\t\t! isHidden && nextElement && ( isInserterShown || isInserterForced );\n\n\t// Show the indicator if the insertion point inserter is visible, or if\n\t// the `showInsertionPoint` state is `true`. The latter is generally true\n\t// when hovering blocks for insertion in the block library.\n\tconst showInsertionPointIndicator =\n\t\tshowInsertionPointInserter || ( ! isHidden && showInsertionPoint );\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t// While ideally it would be enough to capture the\n\t// bubbling focus event from the Inserter, due to the\n\t// characteristics of click focusing of `button`s in\n\t// Firefox and Safari, it is not reliable.\n\t//\n\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\treturn (\n\t\t<Popover\n\t\t\tnoArrow\n\t\t\tanimate={ false }\n\t\t\tgetAnchorRect={ getAnchorRect }\n\t\t\tfocusOnMount={ false }\n\t\t\tclassName=\"block-editor-block-list__insertion-point-popover\"\n\t\t\t__unstableSlotName=\"block-toolbar\"\n\t\t>\n\t\t\t<div\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tclassName={ className }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ showInsertionPointIndicator && (\n\t\t\t\t\t<div className=\"block-editor-block-list__insertion-point-indicator\" />\n\t\t\t\t) }\n\t\t\t\t{ showInsertionPointInserter && (\n\t\t\t\t\t<InsertionPointInserter\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ nextClientId }\n\t\t\t\t\t\tsetIsInserterForced={ setIsInserterForced }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</Popover>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n}\n\nexport default function useInsertionPoint( ref ) {\n\tconst [ isInserterShown, setIsInserterShown ] = useState( false );\n\tconst [ isInserterForced, setIsInserterForced ] = useState( false );\n\tconst [ inserterClientId, setInserterClientId ] = useState( null );\n\tconst {\n\t\tisMultiSelecting,\n\t\tisInserterVisible,\n\t\tselectedClientId,\n\t\tselectedRootClientId,\n\t\tgetBlockListSettings,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisMultiSelecting: _isMultiSelecting,\n\t\t\tisBlockInsertionPointVisible,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockListSettings: _getBlockListSettings,\n\t\t} = select( 'core/block-editor' );\n\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\n\t\treturn {\n\t\t\tgetBlockListSettings: _getBlockListSettings,\n\t\t\tisMultiSelecting: _isMultiSelecting(),\n\t\t\tisInserterVisible: isBlockInsertionPointVisible(),\n\t\t\tselectedClientId: order[ insertionPoint.index - 1 ],\n\t\t\tselectedRootClientId: insertionPoint.rootClientId,\n\t\t};\n\t}, [] );\n\n\tconst onMouseMove = useCallback(\n\t\t( event ) => {\n\t\t\tif (\n\t\t\t\t! event.target.classList.contains(\n\t\t\t\t\t'block-editor-block-list__layout'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif ( isInserterShown ) {\n\t\t\t\t\tsetIsInserterShown( false );\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet rootClientId;\n\t\t\tif ( ! event.target.classList.contains( 'is-root-container' ) ) {\n\t\t\t\tconst blockElement = !! event.target.getAttribute(\n\t\t\t\t\t'data-block'\n\t\t\t\t)\n\t\t\t\t\t? event.target\n\t\t\t\t\t: event.target.closest( '[data-block]' );\n\t\t\t\trootClientId = blockElement.getAttribute( 'data-block' );\n\t\t\t}\n\n\t\t\tconst orientation =\n\t\t\t\tgetBlockListSettings( rootClientId )?.orientation || 'vertical';\n\t\t\tconst rect = event.target.getBoundingClientRect();\n\t\t\tconst offsetTop = event.clientY - rect.top;\n\t\t\tconst offsetLeft = event.clientX - rect.left;\n\n\t\t\tconst children = Array.from( event.target.children );\n\t\t\tconst nextElement = children.find( ( blockEl ) => {\n\t\t\t\treturn (\n\t\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t\tblockEl.offsetTop > offsetTop ) ||\n\t\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t\tblockEl.offsetLeft > offsetLeft )\n\t\t\t\t);\n\t\t\t} );\n\n\t\t\tlet element = nextElement\n\t\t\t\t? children[ children.indexOf( nextElement ) - 1 ]\n\t\t\t\t: children[ children.length - 1 ];\n\n\t\t\tif ( ! element ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// The block may be in an alignment wrapper, so check the first direct\n\t\t\t// child if the element has no ID.\n\t\t\tif ( ! element.id ) {\n\t\t\t\telement = element.firstElementChild;\n\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst clientId = element.id.slice( 'block-'.length );\n\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst elementRect = element.getBoundingClientRect();\n\n\t\t\tif (\n\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t( event.clientY > elementRect.bottom ||\n\t\t\t\t\t\tevent.clientY < elementRect.top ) ) ||\n\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t( event.clientX > elementRect.right ||\n\t\t\t\t\t\tevent.clientX < elementRect.left ) )\n\t\t\t) {\n\t\t\t\tif ( isInserterShown ) {\n\t\t\t\t\tsetIsInserterShown( false );\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsInserterShown( true );\n\t\t\tsetInserterClientId( clientId );\n\t\t},\n\t\t[ isInserterShown, setIsInserterShown, setInserterClientId ]\n\t);\n\n\tconst enableMouseMove = ! isInserterForced && ! isMultiSelecting;\n\n\tuseEffect( () => {\n\t\tif ( ! enableMouseMove ) {\n\t\t\treturn;\n\t\t}\n\n\t\tref.current.addEventListener( 'mousemove', onMouseMove );\n\n\t\treturn () => {\n\t\t\tref.current.removeEventListener( 'mousemove', onMouseMove );\n\t\t};\n\t}, [ enableMouseMove, onMouseMove ] );\n\n\tconst isVisible = isInserterShown || isInserterForced || isInserterVisible;\n\n\treturn (\n\t\t! isMultiSelecting &&\n\t\tisVisible && (\n\t\t\t<InsertionPointPopover\n\t\t\t\tclientId={\n\t\t\t\t\tisInserterVisible ? selectedClientId : inserterClientId\n\t\t\t\t}\n\t\t\t\tselectedRootClientId={ selectedRootClientId }\n\t\t\t\tisInserterShown={ isInserterShown }\n\t\t\t\tisInserterForced={ isInserterForced }\n\t\t\t\tsetIsInserterForced={ ( value ) => {\n\t\t\t\t\tsetIsInserterForced( value );\n\t\t\t\t\tif ( ! value ) {\n\t\t\t\t\t\tsetIsInserterShown( value );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tcontainerRef={ ref }\n\t\t\t\tshowInsertionPoint={ isInserterVisible }\n\t\t\t/>\n\t\t)\n\t);\n}\n"]}
|
|
@@ -112,7 +112,7 @@ export function BlockTypesTab(_ref) {
|
|
|
112
112
|
onHover: onHover,
|
|
113
113
|
label: category.title
|
|
114
114
|
}));
|
|
115
|
-
}),
|
|
115
|
+
}), uncategorizedItems.length > 0 && createElement(InserterPanel, {
|
|
116
116
|
className: "block-editor-inserter__uncategorized-blocks-panel",
|
|
117
117
|
title: __('Uncategorized')
|
|
118
118
|
}, createElement(BlockTypesList, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-types-tab.js"],"names":["map","findIndex","flow","sortBy","groupBy","orderBy","__","_x","useMemo","useEffect","BlockTypesList","InserterPanel","useBlockTypesState","getBlockNamespace","item","name","split","MAX_SUGGESTED_ITEMS","BlockTypesTab","rootClientId","onInsert","onHover","showMostUsedBlocks","items","categories","collections","onSelectItem","suggestedItems","slice","uncategorizedItems","filter","category","itemsPerCategory","getCategoryIndex","slug","itemList","itemsPerCollection","result","Object","keys","forEach","namespace","length","categoryItems","title","icon","collection","collectionItems"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA,SAASA,GAAT,EAAcC,SAAd,EAAyBC,IAAzB,EAA+BC,MAA/B,EAAuCC,OAAvC,EAAgDC,OAAhD,QAA+D,QAA/D;AAEA;AACA;AACA;;AACA,SAASC,EAAT,EAAaC,EAAb,QAAuB,iBAAvB;AACA,SAASC,OAAT,EAAkBC,SAAlB,QAAmC,oBAAnC;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,OAAOC,aAAP,MAA0B,SAA1B;AACA,OAAOC,kBAAP,MAA+B,+BAA/B;;AAEA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAEC,IAAF;AAAA,SAAYA,IAAI,CAACC,IAAL,CAAUC,KAAV,CAAiB,GAAjB,EAAwB,CAAxB,CAAZ;AAAA,CAA1B;;AAEA,IAAMC,mBAAmB,GAAG,CAA5B;AAEA,OAAO,SAASC,aAAT,OAKH;AAAA,MAJHC,YAIG,QAJHA,YAIG;AAAA,MAHHC,QAGG,QAHHA,QAGG;AAAA,MAFHC,OAEG,QAFHA,OAEG;AAAA,MADHC,kBACG,QADHA,kBACG;;AAAA,4BACsDV,kBAAkB,CAC1EO,YAD0E,EAE1EC,QAF0E,CADxE;AAAA;AAAA,MACKG,KADL;AAAA,MACYC,UADZ;AAAA,MACwBC,WADxB;AAAA,MACqCC,YADrC;;AAMH,MAAMC,cAAc,GAAGnB,OAAO,CAAE,YAAM;AACrC,WAAOH,OAAO,CAAEkB,KAAF,EAAS,CAAE,UAAF,CAAT,EAAyB,CAAE,MAAF,CAAzB,CAAP,CAA6CK,KAA7C,CACN,CADM,EAENX,mBAFM,CAAP;AAIA,GAL6B,EAK3B,CAAEM,KAAF,CAL2B,CAA9B;AAOA,MAAMM,kBAAkB,GAAGrB,OAAO,CAAE,YAAM;AACzC,WAAOe,KAAK,CAACO,MAAN,CAAc,UAAEhB,IAAF;AAAA,aAAY,CAAEA,IAAI,CAACiB,QAAnB;AAAA,KAAd,CAAP;AACA,GAFiC,EAE/B,CAAER,KAAF,CAF+B,CAAlC;AAIA,MAAMS,gBAAgB,GAAGxB,OAAO,CAAE,YAAM;AACvC,QAAMyB,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAEnB,IAAF,EAAY;AACpC,aAAOb,SAAS,CACfuB,UADe,EAEf,UAAEO,QAAF;AAAA,eAAgBA,QAAQ,CAACG,IAAT,KAAkBpB,IAAI,CAACiB,QAAvC;AAAA,OAFe,CAAhB;AAIA,KALD;;AAOA,WAAO7B,IAAI,CACV,UAAEiC,QAAF;AAAA,aACCA,QAAQ,CAACL,MAAT,CACC,UAAEhB,IAAF;AAAA,eAAYA,IAAI,CAACiB,QAAL,IAAiBjB,IAAI,CAACiB,QAAL,KAAkB,UAA/C;AAAA,OADD,CADD;AAAA,KADU,EAKV,UAAEI,QAAF;AAAA,aAAgBhC,MAAM,CAAEgC,QAAF,EAAYF,gBAAZ,CAAtB;AAAA,KALU,EAMV,UAAEE,QAAF;AAAA,aAAgB/B,OAAO,CAAE+B,QAAF,EAAY,UAAZ,CAAvB;AAAA,KANU,CAAJ,CAOJZ,KAPI,CAAP;AAQA,GAhB+B,EAgB7B,CAAEA,KAAF,EAASC,UAAT,CAhB6B,CAAhC;AAkBA,MAAMY,kBAAkB,GAAG5B,OAAO,CAAE,YAAM;AACzC;AACA,QAAM6B,MAAM,qBAAQZ,WAAR,CAAZ;;AACAa,IAAAA,MAAM,CAACC,IAAP,CAAad,WAAb,EAA2Be,OAA3B,CAAoC,UAAEC,SAAF,EAAiB;AACpDJ,MAAAA,MAAM,CAAEI,SAAF,CAAN,GAAsBlB,KAAK,CAACO,MAAN,CACrB,UAAEhB,IAAF;AAAA,eAAYD,iBAAiB,CAAEC,IAAF,CAAjB,KAA8B2B,SAA1C;AAAA,OADqB,CAAtB;;AAGA,UAAKJ,MAAM,CAAEI,SAAF,CAAN,CAAoBC,MAApB,KAA+B,CAApC,EAAwC;AACvC,eAAOL,MAAM,CAAEI,SAAF,CAAb;AACA;AACD,KAPD;AASA,WAAOJ,MAAP;AACA,GAbiC,EAa/B,CAAEd,KAAF,EAASE,WAAT,CAb+B,CAAlC,CAnCG,CAkDH;;AACAhB,EAAAA,SAAS,CAAE;AAAA,WAAM;AAAA,aAAMY,OAAO,CAAE,IAAF,CAAb;AAAA,KAAN;AAAA,GAAF,EAA+B,EAA/B,CAAT;AAEA,SACC,2BACGC,kBAAkB,IAAI,CAAC,CAAEK,cAAc,CAACe,MAAxC,IACD,cAAC,aAAD;AAAe,IAAA,KAAK,EAAGnC,EAAE,CAAE,WAAF,EAAe,QAAf;AAAzB,KACC,cAAC,cAAD;AACC,IAAA,KAAK,EAAGoB,cADT;AAEC,IAAA,QAAQ,EAAGD,YAFZ;AAGC,IAAA,OAAO,EAAGL,OAHX;AAIC,IAAA,KAAK,EAAGd,EAAE,CAAE,WAAF,EAAe,QAAf;AAJX,IADD,CAFF,EAYGP,GAAG,CAAEwB,UAAF,EAAc,UAAEO,QAAF,EAAgB;AAClC,QAAMY,aAAa,GAAGX,gBAAgB,CAAED,QAAQ,CAACG,IAAX,CAAtC;;AACA,QAAK,CAAES,aAAF,IAAmB,CAAEA,aAAa,CAACD,MAAxC,EAAiD;AAChD,aAAO,IAAP;AACA;;AACD,WACC,cAAC,aAAD;AACC,MAAA,GAAG,EAAGX,QAAQ,CAACG,IADhB;AAEC,MAAA,KAAK,EAAGH,QAAQ,CAACa,KAFlB;AAGC,MAAA,IAAI,EAAGb,QAAQ,CAACc;AAHjB,OAKC,cAAC,cAAD;AACC,MAAA,KAAK,EAAGF,aADT;AAEC,MAAA,QAAQ,EAAGjB,YAFZ;AAGC,MAAA,OAAO,EAAGL,OAHX;AAIC,MAAA,KAAK,EAAGU,QAAQ,CAACa;AAJlB,MALD,CADD;AAcA,GAnBI,CAZN,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-types-tab.js"],"names":["map","findIndex","flow","sortBy","groupBy","orderBy","__","_x","useMemo","useEffect","BlockTypesList","InserterPanel","useBlockTypesState","getBlockNamespace","item","name","split","MAX_SUGGESTED_ITEMS","BlockTypesTab","rootClientId","onInsert","onHover","showMostUsedBlocks","items","categories","collections","onSelectItem","suggestedItems","slice","uncategorizedItems","filter","category","itemsPerCategory","getCategoryIndex","slug","itemList","itemsPerCollection","result","Object","keys","forEach","namespace","length","categoryItems","title","icon","collection","collectionItems"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { map, findIndex, flow, sortBy, groupBy, orderBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { useMemo, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport InserterPanel from './panel';\nimport useBlockTypesState from './hooks/use-block-types-state';\n\nconst getBlockNamespace = ( item ) => item.name.split( '/' )[ 0 ];\n\nconst MAX_SUGGESTED_ITEMS = 6;\n\nexport function BlockTypesTab( {\n\trootClientId,\n\tonInsert,\n\tonHover,\n\tshowMostUsedBlocks,\n} ) {\n\tconst [ items, categories, collections, onSelectItem ] = useBlockTypesState(\n\t\trootClientId,\n\t\tonInsert\n\t);\n\n\tconst suggestedItems = useMemo( () => {\n\t\treturn orderBy( items, [ 'frecency' ], [ 'desc' ] ).slice(\n\t\t\t0,\n\t\t\tMAX_SUGGESTED_ITEMS\n\t\t);\n\t}, [ items ] );\n\n\tconst uncategorizedItems = useMemo( () => {\n\t\treturn items.filter( ( item ) => ! item.category );\n\t}, [ items ] );\n\n\tconst itemsPerCategory = useMemo( () => {\n\t\tconst getCategoryIndex = ( item ) => {\n\t\t\treturn findIndex(\n\t\t\t\tcategories,\n\t\t\t\t( category ) => category.slug === item.category\n\t\t\t);\n\t\t};\n\n\t\treturn flow(\n\t\t\t( itemList ) =>\n\t\t\t\titemList.filter(\n\t\t\t\t\t( item ) => item.category && item.category !== 'reusable'\n\t\t\t\t),\n\t\t\t( itemList ) => sortBy( itemList, getCategoryIndex ),\n\t\t\t( itemList ) => groupBy( itemList, 'category' )\n\t\t)( items );\n\t}, [ items, categories ] );\n\n\tconst itemsPerCollection = useMemo( () => {\n\t\t// Create a new Object to avoid mutating collection.\n\t\tconst result = { ...collections };\n\t\tObject.keys( collections ).forEach( ( namespace ) => {\n\t\t\tresult[ namespace ] = items.filter(\n\t\t\t\t( item ) => getBlockNamespace( item ) === namespace\n\t\t\t);\n\t\t\tif ( result[ namespace ].length === 0 ) {\n\t\t\t\tdelete result[ namespace ];\n\t\t\t}\n\t\t} );\n\n\t\treturn result;\n\t}, [ items, collections ] );\n\n\t// Hide block preview on unmount.\n\tuseEffect( () => () => onHover( null ), [] );\n\n\treturn (\n\t\t<div>\n\t\t\t{ showMostUsedBlocks && !! suggestedItems.length && (\n\t\t\t\t<InserterPanel title={ _x( 'Most used', 'blocks' ) }>\n\t\t\t\t\t<BlockTypesList\n\t\t\t\t\t\titems={ suggestedItems }\n\t\t\t\t\t\tonSelect={ onSelectItem }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tlabel={ _x( 'Most used', 'blocks' ) }\n\t\t\t\t\t/>\n\t\t\t\t</InserterPanel>\n\t\t\t) }\n\n\t\t\t{ map( categories, ( category ) => {\n\t\t\t\tconst categoryItems = itemsPerCategory[ category.slug ];\n\t\t\t\tif ( ! categoryItems || ! categoryItems.length ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<InserterPanel\n\t\t\t\t\t\tkey={ category.slug }\n\t\t\t\t\t\ttitle={ category.title }\n\t\t\t\t\t\ticon={ category.icon }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockTypesList\n\t\t\t\t\t\t\titems={ categoryItems }\n\t\t\t\t\t\t\tonSelect={ onSelectItem }\n\t\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\t\tlabel={ category.title }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InserterPanel>\n\t\t\t\t);\n\t\t\t} ) }\n\n\t\t\t{ uncategorizedItems.length > 0 && (\n\t\t\t\t<InserterPanel\n\t\t\t\t\tclassName=\"block-editor-inserter__uncategorized-blocks-panel\"\n\t\t\t\t\ttitle={ __( 'Uncategorized' ) }\n\t\t\t\t>\n\t\t\t\t\t<BlockTypesList\n\t\t\t\t\t\titems={ uncategorizedItems }\n\t\t\t\t\t\tonSelect={ onSelectItem }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tlabel={ __( 'Uncategorized' ) }\n\t\t\t\t\t/>\n\t\t\t\t</InserterPanel>\n\t\t\t) }\n\n\t\t\t{ map( collections, ( collection, namespace ) => {\n\t\t\t\tconst collectionItems = itemsPerCollection[ namespace ];\n\t\t\t\tif ( ! collectionItems || ! collectionItems.length ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<InserterPanel\n\t\t\t\t\t\tkey={ namespace }\n\t\t\t\t\t\ttitle={ collection.title }\n\t\t\t\t\t\ticon={ collection.icon }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockTypesList\n\t\t\t\t\t\t\titems={ collectionItems }\n\t\t\t\t\t\t\tonSelect={ onSelectItem }\n\t\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\t\tlabel={ collection.title }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InserterPanel>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n\nexport default BlockTypesTab;\n"]}
|
|
@@ -2508,6 +2508,14 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
|
|
|
2508
2508
|
padding-left: 12px;
|
|
2509
2509
|
}
|
|
2510
2510
|
|
|
2511
|
+
[data-rich-text-script] {
|
|
2512
|
+
display: inline;
|
|
2513
|
+
}
|
|
2514
|
+
[data-rich-text-script]::before {
|
|
2515
|
+
content: "</>";
|
|
2516
|
+
background: yellow;
|
|
2517
|
+
}
|
|
2518
|
+
|
|
2511
2519
|
.block-editor-skip-to-selected-block {
|
|
2512
2520
|
position: absolute;
|
|
2513
2521
|
top: -9999em;
|
package/build-style/style.css
CHANGED
|
@@ -2512,6 +2512,14 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
|
|
|
2512
2512
|
padding-right: 12px;
|
|
2513
2513
|
}
|
|
2514
2514
|
|
|
2515
|
+
[data-rich-text-script] {
|
|
2516
|
+
display: inline;
|
|
2517
|
+
}
|
|
2518
|
+
[data-rich-text-script]::before {
|
|
2519
|
+
content: "</>";
|
|
2520
|
+
background: yellow;
|
|
2521
|
+
}
|
|
2522
|
+
|
|
2515
2523
|
.block-editor-skip-to-selected-block {
|
|
2516
2524
|
position: absolute;
|
|
2517
2525
|
top: -9999em;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/block-editor",
|
|
3
|
-
"version": "5.2.
|
|
3
|
+
"version": "5.2.13",
|
|
4
4
|
"description": "Generic block editor.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -31,26 +31,26 @@
|
|
|
31
31
|
"@babel/runtime": "^7.12.5",
|
|
32
32
|
"@wordpress/a11y": "^2.14.3",
|
|
33
33
|
"@wordpress/blob": "^2.12.1",
|
|
34
|
-
"@wordpress/blocks": "^7.0.
|
|
35
|
-
"@wordpress/components": "^12.0.
|
|
36
|
-
"@wordpress/compose": "^3.24.
|
|
37
|
-
"@wordpress/data": "^4.26.
|
|
38
|
-
"@wordpress/data-controls": "^1.20.
|
|
34
|
+
"@wordpress/blocks": "^7.0.7",
|
|
35
|
+
"@wordpress/components": "^12.0.9",
|
|
36
|
+
"@wordpress/compose": "^3.24.6",
|
|
37
|
+
"@wordpress/data": "^4.26.9",
|
|
38
|
+
"@wordpress/data-controls": "^1.20.10",
|
|
39
39
|
"@wordpress/deprecated": "^2.11.1",
|
|
40
|
-
"@wordpress/dom": "^2.16.
|
|
40
|
+
"@wordpress/dom": "^2.16.3",
|
|
41
41
|
"@wordpress/element": "^2.19.1",
|
|
42
42
|
"@wordpress/hooks": "^2.11.1",
|
|
43
43
|
"@wordpress/html-entities": "^2.10.1",
|
|
44
44
|
"@wordpress/i18n": "^3.18.0",
|
|
45
45
|
"@wordpress/icons": "^2.9.1",
|
|
46
46
|
"@wordpress/is-shallow-equal": "^3.0.1",
|
|
47
|
-
"@wordpress/keyboard-shortcuts": "^1.13.
|
|
47
|
+
"@wordpress/keyboard-shortcuts": "^1.13.9",
|
|
48
48
|
"@wordpress/keycodes": "^2.18.3",
|
|
49
|
-
"@wordpress/notices": "^2.12.
|
|
50
|
-
"@wordpress/rich-text": "^3.24.
|
|
49
|
+
"@wordpress/notices": "^2.12.9",
|
|
50
|
+
"@wordpress/rich-text": "^3.24.9",
|
|
51
51
|
"@wordpress/shortcode": "^2.12.1",
|
|
52
52
|
"@wordpress/token-list": "^1.14.1",
|
|
53
|
-
"@wordpress/url": "^2.21.
|
|
53
|
+
"@wordpress/url": "^2.21.3",
|
|
54
54
|
"@wordpress/wordcount": "^2.14.1",
|
|
55
55
|
"classnames": "^2.2.5",
|
|
56
56
|
"css-mediaquery": "^0.1.2",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"publishConfig": {
|
|
71
71
|
"access": "public"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "14a64efc7cf32f4d37400902a7c1cbb822bc5c2f"
|
|
74
74
|
}
|
|
@@ -2,15 +2,17 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { Button } from '@wordpress/components';
|
|
5
|
+
import { RawHTML } from '@wordpress/element';
|
|
6
|
+
import { safeHTML } from '@wordpress/dom';
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
export default function BlockView( {
|
|
7
9
|
title,
|
|
8
10
|
rawContent,
|
|
9
11
|
renderedContent,
|
|
10
12
|
action,
|
|
11
13
|
actionText,
|
|
12
14
|
className,
|
|
13
|
-
} )
|
|
15
|
+
} ) {
|
|
14
16
|
return (
|
|
15
17
|
<div className={ className }>
|
|
16
18
|
<div className="block-editor-block-compare__content">
|
|
@@ -23,7 +25,7 @@ const BlockView = ( {
|
|
|
23
25
|
</div>
|
|
24
26
|
|
|
25
27
|
<div className="block-editor-block-compare__preview edit-post-visual-editor">
|
|
26
|
-
{ renderedContent }
|
|
28
|
+
<RawHTML>{ safeHTML( renderedContent ) }</RawHTML>
|
|
27
29
|
</div>
|
|
28
30
|
</div>
|
|
29
31
|
|
|
@@ -34,6 +36,4 @@ const BlockView = ( {
|
|
|
34
36
|
</div>
|
|
35
37
|
</div>
|
|
36
38
|
);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export default BlockView;
|
|
39
|
+
}
|
|
@@ -11,7 +11,7 @@ import { diffChars } from 'diff/lib/diff/character';
|
|
|
11
11
|
* WordPress dependencies
|
|
12
12
|
*/
|
|
13
13
|
import { __ } from '@wordpress/i18n';
|
|
14
|
-
import { getSaveContent
|
|
14
|
+
import { getSaveContent } from '@wordpress/blocks';
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Internal dependencies
|
|
@@ -50,25 +50,12 @@ function BlockCompare( {
|
|
|
50
50
|
const newContent = newBlocks.map( ( item ) =>
|
|
51
51
|
getSaveContent( item.name, item.attributes, item.innerBlocks )
|
|
52
52
|
);
|
|
53
|
-
const renderedContent = newBlocks.map( ( item ) =>
|
|
54
|
-
getSaveElement( item.name, item.attributes, item.innerBlocks )
|
|
55
|
-
);
|
|
56
53
|
|
|
57
|
-
return
|
|
58
|
-
rawContent: newContent.join( '' ),
|
|
59
|
-
renderedContent,
|
|
60
|
-
};
|
|
54
|
+
return newContent.join( '' );
|
|
61
55
|
}
|
|
62
56
|
|
|
63
|
-
const original = {
|
|
64
|
-
rawContent: block.originalContent,
|
|
65
|
-
renderedContent: getSaveElement( block.name, block.attributes ),
|
|
66
|
-
};
|
|
67
57
|
const converted = getConvertedContent( convertor( block ) );
|
|
68
|
-
const difference = getDifference(
|
|
69
|
-
original.rawContent,
|
|
70
|
-
converted.rawContent
|
|
71
|
-
);
|
|
58
|
+
const difference = getDifference( block.originalContent, converted );
|
|
72
59
|
|
|
73
60
|
return (
|
|
74
61
|
<div className="block-editor-block-compare__wrapper">
|
|
@@ -77,8 +64,8 @@ function BlockCompare( {
|
|
|
77
64
|
className="block-editor-block-compare__current"
|
|
78
65
|
action={ onKeep }
|
|
79
66
|
actionText={ __( 'Convert to HTML' ) }
|
|
80
|
-
rawContent={
|
|
81
|
-
renderedContent={
|
|
67
|
+
rawContent={ block.originalContent }
|
|
68
|
+
renderedContent={ block.originalContent }
|
|
82
69
|
/>
|
|
83
70
|
|
|
84
71
|
<BlockView
|
|
@@ -87,7 +74,7 @@ function BlockCompare( {
|
|
|
87
74
|
action={ onConvert }
|
|
88
75
|
actionText={ convertButtonText }
|
|
89
76
|
rawContent={ difference }
|
|
90
|
-
renderedContent={ converted
|
|
77
|
+
renderedContent={ converted }
|
|
91
78
|
/>
|
|
92
79
|
</div>
|
|
93
80
|
);
|