@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
|
@@ -3,16 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default =
|
|
6
|
+
exports.default = BlockView;
|
|
7
7
|
|
|
8
8
|
var _element = require("@wordpress/element");
|
|
9
9
|
|
|
10
10
|
var _components = require("@wordpress/components");
|
|
11
11
|
|
|
12
|
+
var _dom = require("@wordpress/dom");
|
|
13
|
+
|
|
12
14
|
/**
|
|
13
15
|
* WordPress dependencies
|
|
14
16
|
*/
|
|
15
|
-
|
|
17
|
+
function BlockView(_ref) {
|
|
16
18
|
var title = _ref.title,
|
|
17
19
|
rawContent = _ref.rawContent,
|
|
18
20
|
renderedContent = _ref.renderedContent,
|
|
@@ -29,15 +31,12 @@ var BlockView = function BlockView(_ref) {
|
|
|
29
31
|
className: "block-editor-block-compare__html"
|
|
30
32
|
}, rawContent), (0, _element.createElement)("div", {
|
|
31
33
|
className: "block-editor-block-compare__preview edit-post-visual-editor"
|
|
32
|
-
}, renderedContent)), (0, _element.createElement)("div", {
|
|
34
|
+
}, (0, _element.createElement)(_element.RawHTML, null, (0, _dom.safeHTML)(renderedContent)))), (0, _element.createElement)("div", {
|
|
33
35
|
className: "block-editor-block-compare__action"
|
|
34
36
|
}, (0, _element.createElement)(_components.Button, {
|
|
35
37
|
isSecondary: true,
|
|
36
38
|
tabIndex: "0",
|
|
37
39
|
onClick: action
|
|
38
40
|
}, actionText)));
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
var _default = BlockView;
|
|
42
|
-
exports.default = _default;
|
|
41
|
+
}
|
|
43
42
|
//# sourceMappingURL=block-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-compare/block-view.js"],"names":["BlockView","title","rawContent","renderedContent","action","actionText","className"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-compare/block-view.js"],"names":["BlockView","title","rawContent","renderedContent","action","actionText","className"],"mappings":";;;;;;;AAIA;;AADA;;AAEA;;AALA;AACA;AACA;AAKe,SAASA,SAAT,OAOX;AAAA,MANHC,KAMG,QANHA,KAMG;AAAA,MALHC,UAKG,QALHA,UAKG;AAAA,MAJHC,eAIG,QAJHA,eAIG;AAAA,MAHHC,MAGG,QAHHA,MAGG;AAAA,MAFHC,UAEG,QAFHA,UAEG;AAAA,MADHC,SACG,QADHA,SACG;AACH,SACC;AAAK,IAAA,SAAS,EAAGA;AAAjB,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAI,IAAA,SAAS,EAAC;AAAd,KACGL,KADH,CADD,EAKC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGC,UADH,CALD,EASC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,gBAAD,QAAW,mBAAUC,eAAV,CAAX,CADD,CATD,CADD,EAeC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,kBAAD;AAAQ,IAAA,WAAW,MAAnB;AAAoB,IAAA,QAAQ,EAAC,GAA7B;AAAiC,IAAA,OAAO,EAAGC;AAA3C,KACGC,UADH,CADD,CAfD,CADD;AAuBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { RawHTML } from '@wordpress/element';\nimport { safeHTML } from '@wordpress/dom';\n\nexport default function BlockView( {\n\ttitle,\n\trawContent,\n\trenderedContent,\n\taction,\n\tactionText,\n\tclassName,\n} ) {\n\treturn (\n\t\t<div className={ className }>\n\t\t\t<div className=\"block-editor-block-compare__content\">\n\t\t\t\t<h2 className=\"block-editor-block-compare__heading\">\n\t\t\t\t\t{ title }\n\t\t\t\t</h2>\n\n\t\t\t\t<div className=\"block-editor-block-compare__html\">\n\t\t\t\t\t{ rawContent }\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"block-editor-block-compare__preview edit-post-visual-editor\">\n\t\t\t\t\t<RawHTML>{ safeHTML( renderedContent ) }</RawHTML>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className=\"block-editor-block-compare__action\">\n\t\t\t\t<Button isSecondary tabIndex=\"0\" onClick={ action }>\n\t\t\t\t\t{ actionText }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -62,21 +62,11 @@ function BlockCompare(_ref) {
|
|
|
62
62
|
var newContent = newBlocks.map(function (item) {
|
|
63
63
|
return (0, _blocks.getSaveContent)(item.name, item.attributes, item.innerBlocks);
|
|
64
64
|
});
|
|
65
|
-
|
|
66
|
-
return (0, _blocks.getSaveElement)(item.name, item.attributes, item.innerBlocks);
|
|
67
|
-
});
|
|
68
|
-
return {
|
|
69
|
-
rawContent: newContent.join(''),
|
|
70
|
-
renderedContent: renderedContent
|
|
71
|
-
};
|
|
65
|
+
return newContent.join('');
|
|
72
66
|
}
|
|
73
67
|
|
|
74
|
-
var original = {
|
|
75
|
-
rawContent: block.originalContent,
|
|
76
|
-
renderedContent: (0, _blocks.getSaveElement)(block.name, block.attributes)
|
|
77
|
-
};
|
|
78
68
|
var converted = getConvertedContent(convertor(block));
|
|
79
|
-
var difference = getDifference(
|
|
69
|
+
var difference = getDifference(block.originalContent, converted);
|
|
80
70
|
return (0, _element.createElement)("div", {
|
|
81
71
|
className: "block-editor-block-compare__wrapper"
|
|
82
72
|
}, (0, _element.createElement)(_blockView.default, {
|
|
@@ -84,15 +74,15 @@ function BlockCompare(_ref) {
|
|
|
84
74
|
className: "block-editor-block-compare__current",
|
|
85
75
|
action: onKeep,
|
|
86
76
|
actionText: (0, _i18n.__)('Convert to HTML'),
|
|
87
|
-
rawContent:
|
|
88
|
-
renderedContent:
|
|
77
|
+
rawContent: block.originalContent,
|
|
78
|
+
renderedContent: block.originalContent
|
|
89
79
|
}), (0, _element.createElement)(_blockView.default, {
|
|
90
80
|
title: (0, _i18n.__)('After Conversion'),
|
|
91
81
|
className: "block-editor-block-compare__converted",
|
|
92
82
|
action: onConvert,
|
|
93
83
|
actionText: convertButtonText,
|
|
94
84
|
rawContent: difference,
|
|
95
|
-
renderedContent: converted
|
|
85
|
+
renderedContent: converted
|
|
96
86
|
}));
|
|
97
87
|
}
|
|
98
88
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-compare/index.js"],"names":["BlockCompare","block","onKeep","onConvert","convertor","convertButtonText","getDifference","originalContent","newContent","difference","map","item","pos","classes","added","removed","value","getConvertedContent","convertedBlock","newBlocks","name","attributes","innerBlocks","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-compare/index.js"],"names":["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":";;;;;;;;;;;AAGA;;AACA;;AAGA;;AAKA;;AACA;;AAKA;;AAlBA;AACA;AACA;AAGA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAGA,SAASA,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,GAAG,0BAAWF,eAAX,EAA4BC,UAA5B,CAAnB;AAEA,WAAOC,UAAU,CAACC,GAAX,CAAgB,UAAEC,IAAF,EAAQC,GAAR,EAAiB;AACvC,UAAMC,OAAO,GAAG,yBAAY;AAC3B,6CAAqCF,IAAI,CAACG,KADf;AAE3B,+CAAuCH,IAAI,CAACI;AAFjB,OAAZ,CAAhB;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,GAAG,uBAAWD,cAAX,CAAlB,CAF8C,CAI9C;;AACA,QAAMV,UAAU,GAAGW,SAAS,CAACT,GAAV,CAAe,UAAEC,IAAF;AAAA,aACjC,4BAAgBA,IAAI,CAACS,IAArB,EAA2BT,IAAI,CAACU,UAAhC,EAA4CV,IAAI,CAACW,WAAjD,CADiC;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,4BAAC,kBAAD;AACC,IAAA,KAAK,EAAG,cAAI,SAAJ,CADT;AAEC,IAAA,SAAS,EAAC,qCAFX;AAGC,IAAA,MAAM,EAAGtB,MAHV;AAIC,IAAA,UAAU,EAAG,cAAI,iBAAJ,CAJd;AAKC,IAAA,UAAU,EAAGD,KAAK,CAACM,eALpB;AAMC,IAAA,eAAe,EAAGN,KAAK,CAACM;AANzB,IADD,EAUC,4BAAC,kBAAD;AACC,IAAA,KAAK,EAAG,cAAI,kBAAJ,CADT;AAEC,IAAA,SAAS,EAAC,uCAFX;AAGC,IAAA,MAAM,EAAGJ,SAHV;AAIC,IAAA,UAAU,EAAGE,iBAJd;AAKC,IAAA,UAAU,EAAGI,UALd;AAMC,IAAA,eAAe,EAAGe;AANnB,IAVD,CADD;AAqBA;;eAEcxB,Y","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"]}
|
|
@@ -29,6 +29,8 @@ var _data = require("@wordpress/data");
|
|
|
29
29
|
|
|
30
30
|
var _compose = require("@wordpress/compose");
|
|
31
31
|
|
|
32
|
+
var _dom = require("@wordpress/dom");
|
|
33
|
+
|
|
32
34
|
var _blockEdit = _interopRequireDefault(require("../block-edit"));
|
|
33
35
|
|
|
34
36
|
var _blockInvalidWarning = _interopRequireDefault(require("./block-invalid-warning"));
|
|
@@ -221,9 +223,10 @@ function BlockListBlock(_ref2) {
|
|
|
221
223
|
var block;
|
|
222
224
|
|
|
223
225
|
if (!isValid) {
|
|
226
|
+
var saveContent = (0, _blocks.getSaveContent)(blockType, attributes);
|
|
224
227
|
block = (0, _element.createElement)(Block, null, (0, _element.createElement)(_blockInvalidWarning.default, {
|
|
225
228
|
clientId: clientId
|
|
226
|
-
}), (0, _element.createElement)(
|
|
229
|
+
}), (0, _element.createElement)(_element.RawHTML, null, (0, _dom.safeHTML)(saveContent)));
|
|
227
230
|
} else if (mode === 'html') {
|
|
228
231
|
// Render blockEdit so the inspector controls don't disappear.
|
|
229
232
|
// See #8969.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"names":["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","pure"],"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":["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","pure"],"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"]}
|
|
@@ -186,7 +186,16 @@ function InsertionPointPopover(_ref2) {
|
|
|
186
186
|
if (event.target !== ref.current) {
|
|
187
187
|
setIsInserterForced(true);
|
|
188
188
|
}
|
|
189
|
-
}
|
|
189
|
+
} // Only show the inserter when there's a `nextElement` (a block after the
|
|
190
|
+
// insertion point). At the end of the block list the trailing appender
|
|
191
|
+
// should serve the purpose of inserting blocks.
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
var showInsertionPointInserter = !isHidden && nextElement && (isInserterShown || isInserterForced); // Show the indicator if the insertion point inserter is visible, or if
|
|
195
|
+
// the `showInsertionPoint` state is `true`. The latter is generally true
|
|
196
|
+
// when hovering blocks for insertion in the block library.
|
|
197
|
+
|
|
198
|
+
var showInsertionPointIndicator = showInsertionPointInserter || !isHidden && showInsertionPoint;
|
|
190
199
|
/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */
|
|
191
200
|
// While ideally it would be enough to capture the
|
|
192
201
|
// bubbling focus event from the Inserter, due to the
|
|
@@ -195,7 +204,6 @@ function InsertionPointPopover(_ref2) {
|
|
|
195
204
|
//
|
|
196
205
|
// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus
|
|
197
206
|
|
|
198
|
-
|
|
199
207
|
return (0, _element.createElement)(_components.Popover, {
|
|
200
208
|
noArrow: true,
|
|
201
209
|
animate: false,
|
|
@@ -210,9 +218,9 @@ function InsertionPointPopover(_ref2) {
|
|
|
210
218
|
onFocus: onFocus,
|
|
211
219
|
className: className,
|
|
212
220
|
style: style
|
|
213
|
-
},
|
|
221
|
+
}, showInsertionPointIndicator && (0, _element.createElement)("div", {
|
|
214
222
|
className: "block-editor-block-list__insertion-point-indicator"
|
|
215
|
-
}),
|
|
223
|
+
}), showInsertionPointInserter && (0, _element.createElement)(InsertionPointInserter, {
|
|
216
224
|
rootClientId: rootClientId,
|
|
217
225
|
clientId: nextClientId,
|
|
218
226
|
setIsInserterForced: setIsInserterForced
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/insertion-point.js"],"names":["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":["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"]}
|
|
@@ -117,7 +117,7 @@ function BlockTypesTab(_ref) {
|
|
|
117
117
|
onHover: onHover,
|
|
118
118
|
label: category.title
|
|
119
119
|
}));
|
|
120
|
-
}),
|
|
120
|
+
}), uncategorizedItems.length > 0 && (0, _element.createElement)(_panel.default, {
|
|
121
121
|
className: "block-editor-inserter__uncategorized-blocks-panel",
|
|
122
122
|
title: (0, _i18n.__)('Uncategorized')
|
|
123
123
|
}, (0, _element.createElement)(_blockTypesList.default, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-types-tab.js"],"names":["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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
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-types-tab.js"],"names":["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"]}
|
|
@@ -4,8 +4,9 @@ import { createElement } from "@wordpress/element";
|
|
|
4
4
|
* WordPress dependencies
|
|
5
5
|
*/
|
|
6
6
|
import { Button } from '@wordpress/components';
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
import { RawHTML } from '@wordpress/element';
|
|
8
|
+
import { safeHTML } from '@wordpress/dom';
|
|
9
|
+
export default function BlockView(_ref) {
|
|
9
10
|
var title = _ref.title,
|
|
10
11
|
rawContent = _ref.rawContent,
|
|
11
12
|
renderedContent = _ref.renderedContent,
|
|
@@ -22,14 +23,12 @@ var BlockView = function BlockView(_ref) {
|
|
|
22
23
|
className: "block-editor-block-compare__html"
|
|
23
24
|
}, rawContent), createElement("div", {
|
|
24
25
|
className: "block-editor-block-compare__preview edit-post-visual-editor"
|
|
25
|
-
}, renderedContent)), createElement("div", {
|
|
26
|
+
}, createElement(RawHTML, null, safeHTML(renderedContent)))), createElement("div", {
|
|
26
27
|
className: "block-editor-block-compare__action"
|
|
27
28
|
}, createElement(Button, {
|
|
28
29
|
isSecondary: true,
|
|
29
30
|
tabIndex: "0",
|
|
30
31
|
onClick: action
|
|
31
32
|
}, actionText)));
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export default BlockView;
|
|
33
|
+
}
|
|
35
34
|
//# sourceMappingURL=block-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-compare/block-view.js"],"names":["Button","BlockView","title","rawContent","renderedContent","action","actionText","className"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,MAAT,QAAuB,uBAAvB
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-compare/block-view.js"],"names":["Button","RawHTML","safeHTML","BlockView","title","rawContent","renderedContent","action","actionText","className"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,MAAT,QAAuB,uBAAvB;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,QAAT,QAAyB,gBAAzB;AAEA,eAAe,SAASC,SAAT,OAOX;AAAA,MANHC,KAMG,QANHA,KAMG;AAAA,MALHC,UAKG,QALHA,UAKG;AAAA,MAJHC,eAIG,QAJHA,eAIG;AAAA,MAHHC,MAGG,QAHHA,MAGG;AAAA,MAFHC,UAEG,QAFHA,UAEG;AAAA,MADHC,SACG,QADHA,SACG;AACH,SACC;AAAK,IAAA,SAAS,EAAGA;AAAjB,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAI,IAAA,SAAS,EAAC;AAAd,KACGL,KADH,CADD,EAKC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGC,UADH,CALD,EASC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,OAAD,QAAWH,QAAQ,CAAEI,eAAF,CAAnB,CADD,CATD,CADD,EAeC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,MAAD;AAAQ,IAAA,WAAW,MAAnB;AAAoB,IAAA,QAAQ,EAAC,GAA7B;AAAiC,IAAA,OAAO,EAAGC;AAA3C,KACGC,UADH,CADD,CAfD,CADD;AAuBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { RawHTML } from '@wordpress/element';\nimport { safeHTML } from '@wordpress/dom';\n\nexport default function BlockView( {\n\ttitle,\n\trawContent,\n\trenderedContent,\n\taction,\n\tactionText,\n\tclassName,\n} ) {\n\treturn (\n\t\t<div className={ className }>\n\t\t\t<div className=\"block-editor-block-compare__content\">\n\t\t\t\t<h2 className=\"block-editor-block-compare__heading\">\n\t\t\t\t\t{ title }\n\t\t\t\t</h2>\n\n\t\t\t\t<div className=\"block-editor-block-compare__html\">\n\t\t\t\t\t{ rawContent }\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"block-editor-block-compare__preview edit-post-visual-editor\">\n\t\t\t\t\t<RawHTML>{ safeHTML( renderedContent ) }</RawHTML>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className=\"block-editor-block-compare__action\">\n\t\t\t\t<Button isSecondary tabIndex=\"0\" onClick={ action }>\n\t\t\t\t\t{ actionText }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -13,7 +13,7 @@ import { diffChars } from 'diff/lib/diff/character';
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import { __ } from '@wordpress/i18n';
|
|
16
|
-
import { getSaveContent
|
|
16
|
+
import { getSaveContent } from '@wordpress/blocks';
|
|
17
17
|
/**
|
|
18
18
|
* Internal dependencies
|
|
19
19
|
*/
|
|
@@ -48,21 +48,11 @@ function BlockCompare(_ref) {
|
|
|
48
48
|
var newContent = newBlocks.map(function (item) {
|
|
49
49
|
return getSaveContent(item.name, item.attributes, item.innerBlocks);
|
|
50
50
|
});
|
|
51
|
-
|
|
52
|
-
return getSaveElement(item.name, item.attributes, item.innerBlocks);
|
|
53
|
-
});
|
|
54
|
-
return {
|
|
55
|
-
rawContent: newContent.join(''),
|
|
56
|
-
renderedContent: renderedContent
|
|
57
|
-
};
|
|
51
|
+
return newContent.join('');
|
|
58
52
|
}
|
|
59
53
|
|
|
60
|
-
var original = {
|
|
61
|
-
rawContent: block.originalContent,
|
|
62
|
-
renderedContent: getSaveElement(block.name, block.attributes)
|
|
63
|
-
};
|
|
64
54
|
var converted = getConvertedContent(convertor(block));
|
|
65
|
-
var difference = getDifference(
|
|
55
|
+
var difference = getDifference(block.originalContent, converted);
|
|
66
56
|
return createElement("div", {
|
|
67
57
|
className: "block-editor-block-compare__wrapper"
|
|
68
58
|
}, createElement(BlockView, {
|
|
@@ -70,15 +60,15 @@ function BlockCompare(_ref) {
|
|
|
70
60
|
className: "block-editor-block-compare__current",
|
|
71
61
|
action: onKeep,
|
|
72
62
|
actionText: __('Convert to HTML'),
|
|
73
|
-
rawContent:
|
|
74
|
-
renderedContent:
|
|
63
|
+
rawContent: block.originalContent,
|
|
64
|
+
renderedContent: block.originalContent
|
|
75
65
|
}), createElement(BlockView, {
|
|
76
66
|
title: __('After Conversion'),
|
|
77
67
|
className: "block-editor-block-compare__converted",
|
|
78
68
|
action: onConvert,
|
|
79
69
|
actionText: convertButtonText,
|
|
80
70
|
rawContent: difference,
|
|
81
|
-
renderedContent: converted
|
|
71
|
+
renderedContent: converted
|
|
82
72
|
}));
|
|
83
73
|
}
|
|
84
74
|
|