@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.
Files changed (30) hide show
  1. package/build/components/block-compare/block-view.js +6 -7
  2. package/build/components/block-compare/block-view.js.map +1 -1
  3. package/build/components/block-compare/index.js +5 -15
  4. package/build/components/block-compare/index.js.map +1 -1
  5. package/build/components/block-list/block.js +4 -1
  6. package/build/components/block-list/block.js.map +1 -1
  7. package/build/components/block-list/insertion-point.js +12 -4
  8. package/build/components/block-list/insertion-point.js.map +1 -1
  9. package/build/components/inserter/block-types-tab.js +1 -1
  10. package/build/components/inserter/block-types-tab.js.map +1 -1
  11. package/build-module/components/block-compare/block-view.js +5 -6
  12. package/build-module/components/block-compare/block-view.js.map +1 -1
  13. package/build-module/components/block-compare/index.js +6 -16
  14. package/build-module/components/block-compare/index.js.map +1 -1
  15. package/build-module/components/block-list/block.js +5 -3
  16. package/build-module/components/block-list/block.js.map +1 -1
  17. package/build-module/components/block-list/insertion-point.js +12 -4
  18. package/build-module/components/block-list/insertion-point.js.map +1 -1
  19. package/build-module/components/inserter/block-types-tab.js +1 -1
  20. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  21. package/build-style/style-rtl.css +8 -0
  22. package/build-style/style.css +8 -0
  23. package/package.json +12 -12
  24. package/src/components/block-compare/block-view.js +6 -6
  25. package/src/components/block-compare/index.js +6 -19
  26. package/src/components/block-compare/test/__snapshots__/block-view.js.snap +3 -1
  27. package/src/components/block-list/block.js +6 -2
  28. package/src/components/block-list/insertion-point.js +16 -7
  29. package/src/components/inserter/block-types-tab.js +1 -1
  30. 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 = void 0;
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
- var BlockView = function BlockView(_ref) {
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":";;;;;;;;;AAGA;;AAHA;AACA;AACA;AAGA,IAAMA,SAAS,GAAG,SAAZA,SAAY,OAOX;AAAA,MANNC,KAMM,QANNA,KAMM;AAAA,MALNC,UAKM,QALNA,UAKM;AAAA,MAJNC,eAIM,QAJNA,eAIM;AAAA,MAHNC,MAGM,QAHNA,MAGM;AAAA,MAFNC,UAEM,QAFNA,UAEM;AAAA,MADNC,SACM,QADNA,SACM;AACN,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,KACGC,eADH,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,CA/BD;;eAiCeL,S","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\n\nconst 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{ renderedContent }\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\nexport default BlockView;\n"]}
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
- var renderedContent = newBlocks.map(function (item) {
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(original.rawContent, converted.rawContent);
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: original.rawContent,
88
- renderedContent: original.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.renderedContent
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","renderedContent","rawContent","join","original","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;AAGA,QAAMC,eAAe,GAAGJ,SAAS,CAACT,GAAV,CAAe,UAAEC,IAAF;AAAA,aACtC,4BAAgBA,IAAI,CAACS,IAArB,EAA2BT,IAAI,CAACU,UAAhC,EAA4CV,IAAI,CAACW,WAAjD,CADsC;AAAA,KAAf,CAAxB;AAIA,WAAO;AACNE,MAAAA,UAAU,EAAEhB,UAAU,CAACiB,IAAX,CAAiB,EAAjB,CADN;AAENF,MAAAA,eAAe,EAAfA;AAFM,KAAP;AAIA;;AAED,MAAMG,QAAQ,GAAG;AAChBF,IAAAA,UAAU,EAAEvB,KAAK,CAACM,eADF;AAEhBgB,IAAAA,eAAe,EAAE,4BAAgBtB,KAAK,CAACmB,IAAtB,EAA4BnB,KAAK,CAACoB,UAAlC;AAFD,GAAjB;AAIA,MAAMM,SAAS,GAAGV,mBAAmB,CAAEb,SAAS,CAAEH,KAAF,CAAX,CAArC;AACA,MAAMQ,UAAU,GAAGH,aAAa,CAC/BoB,QAAQ,CAACF,UADsB,EAE/BG,SAAS,CAACH,UAFqB,CAAhC;AAKA,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,EAAGwB,QAAQ,CAACF,UALvB;AAMC,IAAA,eAAe,EAAGE,QAAQ,CAACH;AAN5B,IADD,EAUC,4BAAC,kBAAD;AACC,IAAA,KAAK,EAAG,cAAI,kBAAJ,CADT;AAEC,IAAA,SAAS,EAAC,uCAFX;AAGC,IAAA,MAAM,EAAGpB,SAHV;AAIC,IAAA,UAAU,EAAGE,iBAJd;AAKC,IAAA,UAAU,EAAGI,UALd;AAMC,IAAA,eAAe,EAAGkB,SAAS,CAACJ;AAN7B,IAVD,CADD;AAqBA;;eAEcvB,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, getSaveElement } 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\t\tconst renderedContent = newBlocks.map( ( item ) =>\n\t\t\tgetSaveElement( item.name, item.attributes, item.innerBlocks )\n\t\t);\n\n\t\treturn {\n\t\t\trawContent: newContent.join( '' ),\n\t\t\trenderedContent,\n\t\t};\n\t}\n\n\tconst original = {\n\t\trawContent: block.originalContent,\n\t\trenderedContent: getSaveElement( block.name, block.attributes ),\n\t};\n\tconst converted = getConvertedContent( convertor( block ) );\n\tconst difference = getDifference(\n\t\toriginal.rawContent,\n\t\tconverted.rawContent\n\t);\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={ original.rawContent }\n\t\t\t\trenderedContent={ original.renderedContent }\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.renderedContent }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default BlockCompare;\n"]}
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)("div", null, (0, _blocks.getSaveElement)(blockType, attributes)));
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
- }, !isHidden && (showInsertionPoint || isInserterShown || isInserterForced) && (0, _element.createElement)("div", {
221
+ }, showInsertionPointIndicator && (0, _element.createElement)("div", {
214
222
  className: "block-editor-block-list__insertion-point-indicator"
215
- }), !isHidden && (isInserterShown || isInserterForced) && (0, _element.createElement)(InsertionPointInserter, {
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
- }), !uncategorizedItems.length && (0, _element.createElement)(_panel.default, {
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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","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 && (\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"]}
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
- var BlockView = function BlockView(_ref) {
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;;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,OAOX;AAAA,MANNC,KAMM,QANNA,KAMM;AAAA,MALNC,UAKM,QALNA,UAKM;AAAA,MAJNC,eAIM,QAJNA,eAIM;AAAA,MAHNC,MAGM,QAHNA,MAGM;AAAA,MAFNC,UAEM,QAFNA,UAEM;AAAA,MADNC,SACM,QADNA,SACM;AACN,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,KACGC,eADH,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,CA/BD;;AAiCA,eAAeL,SAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\n\nconst 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{ renderedContent }\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\nexport default BlockView;\n"]}
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, getSaveElement } from '@wordpress/blocks';
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
- var renderedContent = newBlocks.map(function (item) {
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(original.rawContent, converted.rawContent);
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: original.rawContent,
74
- renderedContent: original.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.renderedContent
71
+ renderedContent: converted
82
72
  }));
83
73
  }
84
74