@wordpress/block-editor 12.8.1 → 12.9.1-next.5a1d1283.0

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 (124) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +5 -12
  3. package/build/components/block-list/block-outline.native.js +4 -3
  4. package/build/components/block-list/block-outline.native.js.map +1 -1
  5. package/build/components/block-list/index.js +4 -3
  6. package/build/components/block-list/index.js.map +1 -1
  7. package/build/components/block-popover/inbetween.js +4 -5
  8. package/build/components/block-popover/inbetween.js.map +1 -1
  9. package/build/components/block-popover/index.js +3 -2
  10. package/build/components/block-popover/index.js.map +1 -1
  11. package/build/components/color-style-selector/index.js +1 -1
  12. package/build/components/color-style-selector/index.js.map +1 -1
  13. package/build/components/inserter/reusable-blocks-tab.native.js +7 -4
  14. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  15. package/build/components/inserter/search-results.native.js +10 -8
  16. package/build/components/inserter/search-results.native.js.map +1 -1
  17. package/build/components/link-control/index.js +2 -7
  18. package/build/components/link-control/index.js.map +1 -1
  19. package/build/components/link-control/settings.js +2 -1
  20. package/build/components/link-control/settings.js.map +1 -1
  21. package/build/components/list-view/block-select-button.js +48 -7
  22. package/build/components/list-view/block-select-button.js.map +1 -1
  23. package/build/components/list-view/drop-indicator.js +3 -3
  24. package/build/components/list-view/drop-indicator.js.map +1 -1
  25. package/build/components/list-view/index.js +14 -8
  26. package/build/components/list-view/index.js.map +1 -1
  27. package/build/components/list-view/use-list-view-images.js +5 -4
  28. package/build/components/list-view/use-list-view-images.js.map +1 -1
  29. package/build/components/preview-options/index.js +3 -1
  30. package/build/components/preview-options/index.js.map +1 -1
  31. package/build/components/provider/index.js +3 -1
  32. package/build/components/provider/index.js.map +1 -1
  33. package/build/components/use-block-commands/index.js +74 -63
  34. package/build/components/use-block-commands/index.js.map +1 -1
  35. package/build/components/warning/index.js +1 -1
  36. package/build/components/warning/index.js.map +1 -1
  37. package/build/hooks/auto-inserting-blocks.js +174 -0
  38. package/build/hooks/auto-inserting-blocks.js.map +1 -0
  39. package/build/hooks/index.js +1 -0
  40. package/build/hooks/index.js.map +1 -1
  41. package/build/hooks/style.js +64 -22
  42. package/build/hooks/style.js.map +1 -1
  43. package/build/hooks/utils.js +4 -0
  44. package/build/hooks/utils.js.map +1 -1
  45. package/build-module/components/block-list/block-outline.native.js +4 -3
  46. package/build-module/components/block-list/block-outline.native.js.map +1 -1
  47. package/build-module/components/block-list/index.js +4 -3
  48. package/build-module/components/block-list/index.js.map +1 -1
  49. package/build-module/components/block-popover/inbetween.js +4 -5
  50. package/build-module/components/block-popover/inbetween.js.map +1 -1
  51. package/build-module/components/block-popover/index.js +3 -2
  52. package/build-module/components/block-popover/index.js.map +1 -1
  53. package/build-module/components/color-style-selector/index.js +1 -1
  54. package/build-module/components/color-style-selector/index.js.map +1 -1
  55. package/build-module/components/inserter/reusable-blocks-tab.native.js +8 -4
  56. package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  57. package/build-module/components/inserter/search-results.native.js +11 -8
  58. package/build-module/components/inserter/search-results.native.js.map +1 -1
  59. package/build-module/components/link-control/index.js +2 -7
  60. package/build-module/components/link-control/index.js.map +1 -1
  61. package/build-module/components/link-control/settings.js +2 -1
  62. package/build-module/components/link-control/settings.js.map +1 -1
  63. package/build-module/components/list-view/block-select-button.js +48 -7
  64. package/build-module/components/list-view/block-select-button.js.map +1 -1
  65. package/build-module/components/list-view/drop-indicator.js +3 -3
  66. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  67. package/build-module/components/list-view/index.js +14 -8
  68. package/build-module/components/list-view/index.js.map +1 -1
  69. package/build-module/components/list-view/use-list-view-images.js +5 -4
  70. package/build-module/components/list-view/use-list-view-images.js.map +1 -1
  71. package/build-module/components/preview-options/index.js +3 -1
  72. package/build-module/components/preview-options/index.js.map +1 -1
  73. package/build-module/components/provider/index.js +3 -1
  74. package/build-module/components/provider/index.js.map +1 -1
  75. package/build-module/components/use-block-commands/index.js +74 -63
  76. package/build-module/components/use-block-commands/index.js.map +1 -1
  77. package/build-module/components/warning/index.js +2 -2
  78. package/build-module/components/warning/index.js.map +1 -1
  79. package/build-module/hooks/auto-inserting-blocks.js +167 -0
  80. package/build-module/hooks/auto-inserting-blocks.js.map +1 -0
  81. package/build-module/hooks/index.js +1 -0
  82. package/build-module/hooks/index.js.map +1 -1
  83. package/build-module/hooks/style.js +63 -21
  84. package/build-module/hooks/style.js.map +1 -1
  85. package/build-module/hooks/utils.js +4 -0
  86. package/build-module/hooks/utils.js.map +1 -1
  87. package/build-style/content-rtl.css +8 -7
  88. package/build-style/content.css +8 -7
  89. package/build-style/style-rtl.css +4 -4
  90. package/build-style/style.css +4 -4
  91. package/package.json +32 -32
  92. package/src/components/block-list/block-outline.native.js +5 -2
  93. package/src/components/block-list/content.scss +2 -3
  94. package/src/components/block-list/index.js +4 -3
  95. package/src/components/block-popover/inbetween.js +4 -3
  96. package/src/components/block-popover/index.js +3 -2
  97. package/src/components/button-block-appender/content.scss +8 -0
  98. package/src/components/color-style-selector/index.js +1 -1
  99. package/src/components/inserter/reusable-blocks-tab.native.js +7 -2
  100. package/src/components/inserter/search-results.native.js +13 -9
  101. package/src/components/link-control/index.js +2 -5
  102. package/src/components/link-control/settings.js +1 -0
  103. package/src/components/link-control/style.scss +5 -5
  104. package/src/components/link-control/test/index.js +1 -0
  105. package/src/components/list-view/block-select-button.js +67 -15
  106. package/src/components/list-view/drop-indicator.js +4 -5
  107. package/src/components/list-view/index.js +19 -13
  108. package/src/components/list-view/use-list-view-images.js +8 -4
  109. package/src/components/observe-typing/README.md +2 -2
  110. package/src/components/preview-options/index.js +2 -0
  111. package/src/components/provider/index.js +8 -1
  112. package/src/components/use-block-commands/index.js +92 -88
  113. package/src/components/warning/index.js +2 -2
  114. package/src/hooks/auto-inserting-blocks.js +232 -0
  115. package/src/hooks/index.js +1 -0
  116. package/src/hooks/style.js +85 -35
  117. package/src/hooks/utils.js +4 -0
  118. package/build/utils/pre-parse-patterns.js +0 -68
  119. package/build/utils/pre-parse-patterns.js.map +0 -1
  120. package/build-module/utils/pre-parse-patterns.js +0 -61
  121. package/build-module/utils/pre-parse-patterns.js.map +0 -1
  122. package/src/components/url-popover/test/__snapshots__/index.js.snap +0 -133
  123. package/src/components/url-popover/test/index.js +0 -75
  124. package/src/utils/pre-parse-patterns.js +0 -69
@@ -17,14 +17,15 @@ var _store = require("../../store");
17
17
 
18
18
  // Maximum number of images to display in a list view row.
19
19
  const MAX_IMAGES = 3;
20
- function getImageUrl(block) {
20
+ function getImage(block) {
21
21
  if (block.name !== 'core/image') {
22
22
  return;
23
23
  }
24
24
  if (block.attributes?.url) {
25
25
  return {
26
26
  url: block.attributes.url,
27
- alt: block.attributes.alt
27
+ alt: block.attributes.alt,
28
+ clientId: block.clientId
28
29
  };
29
30
  }
30
31
  }
@@ -34,7 +35,7 @@ function getImagesFromGallery(block) {
34
35
  }
35
36
  const images = [];
36
37
  for (const innerBlock of block.innerBlocks) {
37
- const img = getImageUrl(innerBlock);
38
+ const img = getImage(innerBlock);
38
39
  if (img) {
39
40
  images.push(img);
40
41
  }
@@ -45,7 +46,7 @@ function getImagesFromGallery(block) {
45
46
  return images;
46
47
  }
47
48
  function getImagesFromBlock(block, isExpanded) {
48
- const img = getImageUrl(block);
49
+ const img = getImage(block);
49
50
  if (img) {
50
51
  return [img];
51
52
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_data","_store","MAX_IMAGES","getImageUrl","block","name","attributes","url","alt","getImagesFromGallery","innerBlocks","images","innerBlock","img","push","length","getImagesFromBlock","isExpanded","useListViewImages","clientId","useSelect","select","_block","blockEditorStore","getBlock","useMemo"],"sources":["@wordpress/block-editor/src/components/list-view/use-list-view-images.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n// Maximum number of images to display in a list view row.\nconst MAX_IMAGES = 3;\n\nfunction getImageUrl( block ) {\n\tif ( block.name !== 'core/image' ) {\n\t\treturn;\n\t}\n\n\tif ( block.attributes?.url ) {\n\t\treturn { url: block.attributes.url, alt: block.attributes.alt };\n\t}\n}\n\nfunction getImagesFromGallery( block ) {\n\tif ( block.name !== 'core/gallery' || ! block.innerBlocks ) {\n\t\treturn [];\n\t}\n\n\tconst images = [];\n\n\tfor ( const innerBlock of block.innerBlocks ) {\n\t\tconst img = getImageUrl( innerBlock );\n\t\tif ( img ) {\n\t\t\timages.push( img );\n\t\t}\n\t\tif ( images.length >= MAX_IMAGES ) {\n\t\t\treturn images;\n\t\t}\n\t}\n\n\treturn images;\n}\n\nfunction getImagesFromBlock( block, isExpanded ) {\n\tconst img = getImageUrl( block );\n\tif ( img ) {\n\t\treturn [ img ];\n\t}\n\treturn isExpanded ? [] : getImagesFromGallery( block );\n}\n\n/**\n * Get a block's preview images for display within a list view row.\n *\n * TODO: Currently only supports images from the core/image and core/gallery\n * blocks. This should be expanded to support other blocks that have images,\n * potentially via an API that blocks can opt into / provide their own logic.\n *\n * @param {Object} props Hook properties.\n * @param {string} props.clientId The block's clientId.\n * @param {boolean} props.isExpanded Whether or not the block is expanded in the list view.\n * @return {Array} Images.\n */\nexport default function useListViewImages( { clientId, isExpanded } ) {\n\tconst { block } = useSelect(\n\t\t( select ) => {\n\t\t\tconst _block = select( blockEditorStore ).getBlock( clientId );\n\t\t\treturn { block: _block };\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo( () => {\n\t\treturn getImagesFromBlock( block, isExpanded );\n\t}, [ block, isExpanded ] );\n\n\treturn images;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA,MAAMG,UAAU,GAAG,CAAC;AAEpB,SAASC,WAAWA,CAAEC,KAAK,EAAG;EAC7B,IAAKA,KAAK,CAACC,IAAI,KAAK,YAAY,EAAG;IAClC;EACD;EAEA,IAAKD,KAAK,CAACE,UAAU,EAAEC,GAAG,EAAG;IAC5B,OAAO;MAAEA,GAAG,EAAEH,KAAK,CAACE,UAAU,CAACC,GAAG;MAAEC,GAAG,EAAEJ,KAAK,CAACE,UAAU,CAACE;IAAI,CAAC;EAChE;AACD;AAEA,SAASC,oBAAoBA,CAAEL,KAAK,EAAG;EACtC,IAAKA,KAAK,CAACC,IAAI,KAAK,cAAc,IAAI,CAAED,KAAK,CAACM,WAAW,EAAG;IAC3D,OAAO,EAAE;EACV;EAEA,MAAMC,MAAM,GAAG,EAAE;EAEjB,KAAM,MAAMC,UAAU,IAAIR,KAAK,CAACM,WAAW,EAAG;IAC7C,MAAMG,GAAG,GAAGV,WAAW,CAAES,UAAW,CAAC;IACrC,IAAKC,GAAG,EAAG;MACVF,MAAM,CAACG,IAAI,CAAED,GAAI,CAAC;IACnB;IACA,IAAKF,MAAM,CAACI,MAAM,IAAIb,UAAU,EAAG;MAClC,OAAOS,MAAM;IACd;EACD;EAEA,OAAOA,MAAM;AACd;AAEA,SAASK,kBAAkBA,CAAEZ,KAAK,EAAEa,UAAU,EAAG;EAChD,MAAMJ,GAAG,GAAGV,WAAW,CAAEC,KAAM,CAAC;EAChC,IAAKS,GAAG,EAAG;IACV,OAAO,CAAEA,GAAG,CAAE;EACf;EACA,OAAOI,UAAU,GAAG,EAAE,GAAGR,oBAAoB,CAAEL,KAAM,CAAC;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASc,iBAAiBA,CAAE;EAAEC,QAAQ;EAAEF;AAAW,CAAC,EAAG;EACrE,MAAM;IAAEb;EAAM,CAAC,GAAG,IAAAgB,eAAS,EACxBC,MAAM,IAAM;IACb,MAAMC,MAAM,GAAGD,MAAM,CAAEE,YAAiB,CAAC,CAACC,QAAQ,CAAEL,QAAS,CAAC;IAC9D,OAAO;MAAEf,KAAK,EAAEkB;IAAO,CAAC;EACzB,CAAC,EACD,CAAEH,QAAQ,CACX,CAAC;EAED,MAAMR,MAAM,GAAG,IAAAc,gBAAO,EAAE,MAAM;IAC7B,OAAOT,kBAAkB,CAAEZ,KAAK,EAAEa,UAAW,CAAC;EAC/C,CAAC,EAAE,CAAEb,KAAK,EAAEa,UAAU,CAAG,CAAC;EAE1B,OAAON,MAAM;AACd"}
1
+ {"version":3,"names":["_element","require","_data","_store","MAX_IMAGES","getImage","block","name","attributes","url","alt","clientId","getImagesFromGallery","innerBlocks","images","innerBlock","img","push","length","getImagesFromBlock","isExpanded","useListViewImages","useSelect","select","_block","blockEditorStore","getBlock","useMemo"],"sources":["@wordpress/block-editor/src/components/list-view/use-list-view-images.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n// Maximum number of images to display in a list view row.\nconst MAX_IMAGES = 3;\n\nfunction getImage( block ) {\n\tif ( block.name !== 'core/image' ) {\n\t\treturn;\n\t}\n\n\tif ( block.attributes?.url ) {\n\t\treturn {\n\t\t\turl: block.attributes.url,\n\t\t\talt: block.attributes.alt,\n\t\t\tclientId: block.clientId,\n\t\t};\n\t}\n}\n\nfunction getImagesFromGallery( block ) {\n\tif ( block.name !== 'core/gallery' || ! block.innerBlocks ) {\n\t\treturn [];\n\t}\n\n\tconst images = [];\n\n\tfor ( const innerBlock of block.innerBlocks ) {\n\t\tconst img = getImage( innerBlock );\n\t\tif ( img ) {\n\t\t\timages.push( img );\n\t\t}\n\t\tif ( images.length >= MAX_IMAGES ) {\n\t\t\treturn images;\n\t\t}\n\t}\n\n\treturn images;\n}\n\nfunction getImagesFromBlock( block, isExpanded ) {\n\tconst img = getImage( block );\n\tif ( img ) {\n\t\treturn [ img ];\n\t}\n\treturn isExpanded ? [] : getImagesFromGallery( block );\n}\n\n/**\n * Get a block's preview images for display within a list view row.\n *\n * TODO: Currently only supports images from the core/image and core/gallery\n * blocks. This should be expanded to support other blocks that have images,\n * potentially via an API that blocks can opt into / provide their own logic.\n *\n * @param {Object} props Hook properties.\n * @param {string} props.clientId The block's clientId.\n * @param {boolean} props.isExpanded Whether or not the block is expanded in the list view.\n * @return {Array} Images.\n */\nexport default function useListViewImages( { clientId, isExpanded } ) {\n\tconst { block } = useSelect(\n\t\t( select ) => {\n\t\t\tconst _block = select( blockEditorStore ).getBlock( clientId );\n\t\t\treturn { block: _block };\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo( () => {\n\t\treturn getImagesFromBlock( block, isExpanded );\n\t}, [ block, isExpanded ] );\n\n\treturn images;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA,MAAMG,UAAU,GAAG,CAAC;AAEpB,SAASC,QAAQA,CAAEC,KAAK,EAAG;EAC1B,IAAKA,KAAK,CAACC,IAAI,KAAK,YAAY,EAAG;IAClC;EACD;EAEA,IAAKD,KAAK,CAACE,UAAU,EAAEC,GAAG,EAAG;IAC5B,OAAO;MACNA,GAAG,EAAEH,KAAK,CAACE,UAAU,CAACC,GAAG;MACzBC,GAAG,EAAEJ,KAAK,CAACE,UAAU,CAACE,GAAG;MACzBC,QAAQ,EAAEL,KAAK,CAACK;IACjB,CAAC;EACF;AACD;AAEA,SAASC,oBAAoBA,CAAEN,KAAK,EAAG;EACtC,IAAKA,KAAK,CAACC,IAAI,KAAK,cAAc,IAAI,CAAED,KAAK,CAACO,WAAW,EAAG;IAC3D,OAAO,EAAE;EACV;EAEA,MAAMC,MAAM,GAAG,EAAE;EAEjB,KAAM,MAAMC,UAAU,IAAIT,KAAK,CAACO,WAAW,EAAG;IAC7C,MAAMG,GAAG,GAAGX,QAAQ,CAAEU,UAAW,CAAC;IAClC,IAAKC,GAAG,EAAG;MACVF,MAAM,CAACG,IAAI,CAAED,GAAI,CAAC;IACnB;IACA,IAAKF,MAAM,CAACI,MAAM,IAAId,UAAU,EAAG;MAClC,OAAOU,MAAM;IACd;EACD;EAEA,OAAOA,MAAM;AACd;AAEA,SAASK,kBAAkBA,CAAEb,KAAK,EAAEc,UAAU,EAAG;EAChD,MAAMJ,GAAG,GAAGX,QAAQ,CAAEC,KAAM,CAAC;EAC7B,IAAKU,GAAG,EAAG;IACV,OAAO,CAAEA,GAAG,CAAE;EACf;EACA,OAAOI,UAAU,GAAG,EAAE,GAAGR,oBAAoB,CAAEN,KAAM,CAAC;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASe,iBAAiBA,CAAE;EAAEV,QAAQ;EAAES;AAAW,CAAC,EAAG;EACrE,MAAM;IAAEd;EAAM,CAAC,GAAG,IAAAgB,eAAS,EACxBC,MAAM,IAAM;IACb,MAAMC,MAAM,GAAGD,MAAM,CAAEE,YAAiB,CAAC,CAACC,QAAQ,CAAEf,QAAS,CAAC;IAC9D,OAAO;MAAEL,KAAK,EAAEkB;IAAO,CAAC;EACzB,CAAC,EACD,CAAEb,QAAQ,CACX,CAAC;EAED,MAAMG,MAAM,GAAG,IAAAa,gBAAO,EAAE,MAAM;IAC7B,OAAOR,kBAAkB,CAAEb,KAAK,EAAEc,UAAW,CAAC;EAC/C,CAAC,EAAE,CAAEd,KAAK,EAAEc,UAAU,CAAG,CAAC;EAE1B,OAAON,MAAM;AACd"}
@@ -37,6 +37,7 @@ function PreviewOptions({
37
37
  const toggleProps = {
38
38
  className: 'block-editor-post-preview__button-toggle',
39
39
  disabled: !isEnabled,
40
+ __experimentalIsFocusable: !isEnabled,
40
41
  children: viewLabel
41
42
  };
42
43
  const menuProps = {
@@ -53,7 +54,8 @@ function PreviewOptions({
53
54
  toggleProps: toggleProps,
54
55
  menuProps: menuProps,
55
56
  icon: deviceIcons[deviceType.toLowerCase()],
56
- label: label || (0, _i18n.__)('Preview')
57
+ label: label || (0, _i18n.__)('Preview'),
58
+ disableOpenOnArrowDown: !isEnabled
57
59
  }, renderProps => (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.MenuGroup, null, (0, _element.createElement)(_components.MenuItem, {
58
60
  className: "block-editor-post-preview__button-resize",
59
61
  onClick: () => setDeviceType('Desktop'),
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_components","_i18n","_icons","PreviewOptions","children","viewLabel","className","isEnabled","deviceType","setDeviceType","label","isMobile","useViewportMatch","popoverProps","classnames","placement","toggleProps","disabled","menuProps","__","deviceIcons","mobile","tablet","desktop","_element","createElement","DropdownMenu","icon","toLowerCase","renderProps","Fragment","MenuGroup","MenuItem","onClick","check"],"sources":["@wordpress/block-editor/src/components/preview-options/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { check, desktop, mobile, tablet } from '@wordpress/icons';\n\nexport default function PreviewOptions( {\n\tchildren,\n\tviewLabel,\n\tclassName,\n\tisEnabled = true,\n\tdeviceType,\n\tsetDeviceType,\n\tlabel,\n} ) {\n\tconst isMobile = useViewportMatch( 'small', '<' );\n\tif ( isMobile ) return null;\n\n\tconst popoverProps = {\n\t\tclassName: classnames(\n\t\t\tclassName,\n\t\t\t'block-editor-post-preview__dropdown-content'\n\t\t),\n\t\tplacement: 'bottom-end',\n\t};\n\tconst toggleProps = {\n\t\tclassName: 'block-editor-post-preview__button-toggle',\n\t\tdisabled: ! isEnabled,\n\t\tchildren: viewLabel,\n\t};\n\tconst menuProps = {\n\t\t'aria-label': __( 'View options' ),\n\t};\n\n\tconst deviceIcons = {\n\t\tmobile,\n\t\ttablet,\n\t\tdesktop,\n\t};\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-post-preview__dropdown\"\n\t\t\tpopoverProps={ popoverProps }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tmenuProps={ menuProps }\n\t\t\ticon={ deviceIcons[ deviceType.toLowerCase() ] }\n\t\t\tlabel={ label || __( 'Preview' ) }\n\t\t>\n\t\t\t{ ( renderProps ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tclassName=\"block-editor-post-preview__button-resize\"\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Desktop' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Desktop' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Desktop' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tclassName=\"block-editor-post-preview__button-resize\"\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Tablet' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Tablet' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Tablet' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tclassName=\"block-editor-post-preview__button-resize\"\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Mobile' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Mobile' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Mobile' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t{ children( renderProps ) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAXA;AACA;AACA;;AAGA;AACA;AACA;;AAMe,SAASK,cAAcA,CAAE;EACvCC,QAAQ;EACRC,SAAS;EACTC,SAAS;EACTC,SAAS,GAAG,IAAI;EAChBC,UAAU;EACVC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,MAAMC,QAAQ,GAAG,IAAAC,yBAAgB,EAAE,OAAO,EAAE,GAAI,CAAC;EACjD,IAAKD,QAAQ,EAAG,OAAO,IAAI;EAE3B,MAAME,YAAY,GAAG;IACpBP,SAAS,EAAE,IAAAQ,mBAAU,EACpBR,SAAS,EACT,6CACD,CAAC;IACDS,SAAS,EAAE;EACZ,CAAC;EACD,MAAMC,WAAW,GAAG;IACnBV,SAAS,EAAE,0CAA0C;IACrDW,QAAQ,EAAE,CAAEV,SAAS;IACrBH,QAAQ,EAAEC;EACX,CAAC;EACD,MAAMa,SAAS,GAAG;IACjB,YAAY,EAAE,IAAAC,QAAE,EAAE,cAAe;EAClC,CAAC;EAED,MAAMC,WAAW,GAAG;IACnBC,MAAM,EAANA,aAAM;IACNC,MAAM,EAANA,aAAM;IACNC,OAAO,EAAPA;EACD,CAAC;EAED,OACC,IAAAC,QAAA,CAAAC,aAAA,EAACzB,WAAA,CAAA0B,YAAY;IACZpB,SAAS,EAAC,qCAAqC;IAC/CO,YAAY,EAAGA,YAAc;IAC7BG,WAAW,EAAGA,WAAa;IAC3BE,SAAS,EAAGA,SAAW;IACvBS,IAAI,EAAGP,WAAW,CAAEZ,UAAU,CAACoB,WAAW,CAAC,CAAC,CAAI;IAChDlB,KAAK,EAAGA,KAAK,IAAI,IAAAS,QAAE,EAAE,SAAU;EAAG,GAE9BU,WAAW,IACd,IAAAL,QAAA,CAAAC,aAAA,EAAAD,QAAA,CAAAM,QAAA,QACC,IAAAN,QAAA,CAAAC,aAAA,EAACzB,WAAA,CAAA+B,SAAS,QACT,IAAAP,QAAA,CAAAC,aAAA,EAACzB,WAAA,CAAAgC,QAAQ;IACR1B,SAAS,EAAC,0CAA0C;IACpD2B,OAAO,EAAGA,CAAA,KAAMxB,aAAa,CAAE,SAAU,CAAG;IAC5CkB,IAAI,EAAGnB,UAAU,KAAK,SAAS,IAAI0B;EAAO,GAExC,IAAAf,QAAE,EAAE,SAAU,CACP,CAAC,EACX,IAAAK,QAAA,CAAAC,aAAA,EAACzB,WAAA,CAAAgC,QAAQ;IACR1B,SAAS,EAAC,0CAA0C;IACpD2B,OAAO,EAAGA,CAAA,KAAMxB,aAAa,CAAE,QAAS,CAAG;IAC3CkB,IAAI,EAAGnB,UAAU,KAAK,QAAQ,IAAI0B;EAAO,GAEvC,IAAAf,QAAE,EAAE,QAAS,CACN,CAAC,EACX,IAAAK,QAAA,CAAAC,aAAA,EAACzB,WAAA,CAAAgC,QAAQ;IACR1B,SAAS,EAAC,0CAA0C;IACpD2B,OAAO,EAAGA,CAAA,KAAMxB,aAAa,CAAE,QAAS,CAAG;IAC3CkB,IAAI,EAAGnB,UAAU,KAAK,QAAQ,IAAI0B;EAAO,GAEvC,IAAAf,QAAE,EAAE,QAAS,CACN,CACA,CAAC,EACVf,QAAQ,CAAEyB,WAAY,CACvB,CAEU,CAAC;AAEjB"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_components","_i18n","_icons","PreviewOptions","children","viewLabel","className","isEnabled","deviceType","setDeviceType","label","isMobile","useViewportMatch","popoverProps","classnames","placement","toggleProps","disabled","__experimentalIsFocusable","menuProps","__","deviceIcons","mobile","tablet","desktop","_element","createElement","DropdownMenu","icon","toLowerCase","disableOpenOnArrowDown","renderProps","Fragment","MenuGroup","MenuItem","onClick","check"],"sources":["@wordpress/block-editor/src/components/preview-options/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { check, desktop, mobile, tablet } from '@wordpress/icons';\n\nexport default function PreviewOptions( {\n\tchildren,\n\tviewLabel,\n\tclassName,\n\tisEnabled = true,\n\tdeviceType,\n\tsetDeviceType,\n\tlabel,\n} ) {\n\tconst isMobile = useViewportMatch( 'small', '<' );\n\tif ( isMobile ) return null;\n\n\tconst popoverProps = {\n\t\tclassName: classnames(\n\t\t\tclassName,\n\t\t\t'block-editor-post-preview__dropdown-content'\n\t\t),\n\t\tplacement: 'bottom-end',\n\t};\n\tconst toggleProps = {\n\t\tclassName: 'block-editor-post-preview__button-toggle',\n\t\tdisabled: ! isEnabled,\n\t\t__experimentalIsFocusable: ! isEnabled,\n\t\tchildren: viewLabel,\n\t};\n\tconst menuProps = {\n\t\t'aria-label': __( 'View options' ),\n\t};\n\n\tconst deviceIcons = {\n\t\tmobile,\n\t\ttablet,\n\t\tdesktop,\n\t};\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-post-preview__dropdown\"\n\t\t\tpopoverProps={ popoverProps }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tmenuProps={ menuProps }\n\t\t\ticon={ deviceIcons[ deviceType.toLowerCase() ] }\n\t\t\tlabel={ label || __( 'Preview' ) }\n\t\t\tdisableOpenOnArrowDown={ ! isEnabled }\n\t\t>\n\t\t\t{ ( renderProps ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tclassName=\"block-editor-post-preview__button-resize\"\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Desktop' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Desktop' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Desktop' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tclassName=\"block-editor-post-preview__button-resize\"\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Tablet' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Tablet' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Tablet' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tclassName=\"block-editor-post-preview__button-resize\"\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Mobile' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Mobile' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Mobile' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t{ children( renderProps ) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAXA;AACA;AACA;;AAGA;AACA;AACA;;AAMe,SAASK,cAAcA,CAAE;EACvCC,QAAQ;EACRC,SAAS;EACTC,SAAS;EACTC,SAAS,GAAG,IAAI;EAChBC,UAAU;EACVC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,MAAMC,QAAQ,GAAG,IAAAC,yBAAgB,EAAE,OAAO,EAAE,GAAI,CAAC;EACjD,IAAKD,QAAQ,EAAG,OAAO,IAAI;EAE3B,MAAME,YAAY,GAAG;IACpBP,SAAS,EAAE,IAAAQ,mBAAU,EACpBR,SAAS,EACT,6CACD,CAAC;IACDS,SAAS,EAAE;EACZ,CAAC;EACD,MAAMC,WAAW,GAAG;IACnBV,SAAS,EAAE,0CAA0C;IACrDW,QAAQ,EAAE,CAAEV,SAAS;IACrBW,yBAAyB,EAAE,CAAEX,SAAS;IACtCH,QAAQ,EAAEC;EACX,CAAC;EACD,MAAMc,SAAS,GAAG;IACjB,YAAY,EAAE,IAAAC,QAAE,EAAE,cAAe;EAClC,CAAC;EAED,MAAMC,WAAW,GAAG;IACnBC,MAAM,EAANA,aAAM;IACNC,MAAM,EAANA,aAAM;IACNC,OAAO,EAAPA;EACD,CAAC;EAED,OACC,IAAAC,QAAA,CAAAC,aAAA,EAAC1B,WAAA,CAAA2B,YAAY;IACZrB,SAAS,EAAC,qCAAqC;IAC/CO,YAAY,EAAGA,YAAc;IAC7BG,WAAW,EAAGA,WAAa;IAC3BG,SAAS,EAAGA,SAAW;IACvBS,IAAI,EAAGP,WAAW,CAAEb,UAAU,CAACqB,WAAW,CAAC,CAAC,CAAI;IAChDnB,KAAK,EAAGA,KAAK,IAAI,IAAAU,QAAE,EAAE,SAAU,CAAG;IAClCU,sBAAsB,EAAG,CAAEvB;EAAW,GAElCwB,WAAW,IACd,IAAAN,QAAA,CAAAC,aAAA,EAAAD,QAAA,CAAAO,QAAA,QACC,IAAAP,QAAA,CAAAC,aAAA,EAAC1B,WAAA,CAAAiC,SAAS,QACT,IAAAR,QAAA,CAAAC,aAAA,EAAC1B,WAAA,CAAAkC,QAAQ;IACR5B,SAAS,EAAC,0CAA0C;IACpD6B,OAAO,EAAGA,CAAA,KAAM1B,aAAa,CAAE,SAAU,CAAG;IAC5CmB,IAAI,EAAGpB,UAAU,KAAK,SAAS,IAAI4B;EAAO,GAExC,IAAAhB,QAAE,EAAE,SAAU,CACP,CAAC,EACX,IAAAK,QAAA,CAAAC,aAAA,EAAC1B,WAAA,CAAAkC,QAAQ;IACR5B,SAAS,EAAC,0CAA0C;IACpD6B,OAAO,EAAGA,CAAA,KAAM1B,aAAa,CAAE,QAAS,CAAG;IAC3CmB,IAAI,EAAGpB,UAAU,KAAK,QAAQ,IAAI4B;EAAO,GAEvC,IAAAhB,QAAE,EAAE,QAAS,CACN,CAAC,EACX,IAAAK,QAAA,CAAAC,aAAA,EAAC1B,WAAA,CAAAkC,QAAQ;IACR5B,SAAS,EAAC,0CAA0C;IACpD6B,OAAO,EAAGA,CAAA,KAAM1B,aAAa,CAAE,QAAS,CAAG;IAC3CmB,IAAI,EAAGpB,UAAU,KAAK,QAAQ,IAAI4B;EAAO,GAEvC,IAAAhB,QAAE,EAAE,QAAS,CACN,CACA,CAAC,EACVhB,QAAQ,CAAE2B,WAAY,CACvB,CAEU,CAAC;AAEjB"}
@@ -7,11 +7,13 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = exports.ExperimentalBlockEditorProvider = exports.BlockEditorProvider = void 0;
8
8
  var _element = require("@wordpress/element");
9
9
  var _data = require("@wordpress/data");
10
+ var _components = require("@wordpress/components");
10
11
  var _withRegistryProvider = _interopRequireDefault(require("./with-registry-provider"));
11
12
  var _useBlockSync = _interopRequireDefault(require("./use-block-sync"));
12
13
  var _store = require("../../store");
13
14
  var _blockRefsProvider = require("./block-refs-provider");
14
15
  var _lockUnlock = require("../../lock-unlock");
16
+ var _keyboardShortcuts = _interopRequireDefault(require("../keyboard-shortcuts"));
15
17
  /**
16
18
  * WordPress dependencies
17
19
  */
@@ -43,7 +45,7 @@ const ExperimentalBlockEditorProvider = (0, _withRegistryProvider.default)(props
43
45
 
44
46
  // Syncs the entity provider with changes in the block-editor store.
45
47
  (0, _useBlockSync.default)(props);
46
- return (0, _element.createElement)(_blockRefsProvider.BlockRefsProvider, null, children);
48
+ return (0, _element.createElement)(_components.SlotFillProvider, null, (0, _element.createElement)(_keyboardShortcuts.default.Register, null), (0, _element.createElement)(_blockRefsProvider.BlockRefsProvider, null, children));
47
49
  });
48
50
  exports.ExperimentalBlockEditorProvider = ExperimentalBlockEditorProvider;
49
51
  const BlockEditorProvider = props => {
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_data","_withRegistryProvider","_interopRequireDefault","_useBlockSync","_store","_blockRefsProvider","_lockUnlock","ExperimentalBlockEditorProvider","withRegistryProvider","props","children","settings","stripExperimentalSettings","__experimentalUpdateSettings","unlock","useDispatch","blockEditorStore","useEffect","__internalIsInitialized","reset","useBlockSync","createElement","BlockRefsProvider","exports","BlockEditorProvider","_default","default"],"sources":["@wordpress/block-editor/src/components/provider/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport useBlockSync from './use-block-sync';\nimport { store as blockEditorStore } from '../../store';\nimport { BlockRefsProvider } from './block-refs-provider';\nimport { unlock } from '../../lock-unlock';\n\n/** @typedef {import('@wordpress/data').WPDataRegistry} WPDataRegistry */\n\nexport const ExperimentalBlockEditorProvider = withRegistryProvider(\n\t( props ) => {\n\t\tconst { children, settings, stripExperimentalSettings = false } = props;\n\n\t\tconst { __experimentalUpdateSettings } = unlock(\n\t\t\tuseDispatch( blockEditorStore )\n\t\t);\n\t\tuseEffect( () => {\n\t\t\t__experimentalUpdateSettings(\n\t\t\t\t{\n\t\t\t\t\t...settings,\n\t\t\t\t\t__internalIsInitialized: true,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tstripExperimentalSettings,\n\t\t\t\t\treset: true,\n\t\t\t\t}\n\t\t\t);\n\t\t}, [\n\t\t\tsettings,\n\t\t\tstripExperimentalSettings,\n\t\t\t__experimentalUpdateSettings,\n\t\t] );\n\n\t\t// Syncs the entity provider with changes in the block-editor store.\n\t\tuseBlockSync( props );\n\n\t\treturn <BlockRefsProvider>{ children }</BlockRefsProvider>;\n\t}\n);\n\nexport const BlockEditorProvider = ( props ) => {\n\treturn (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\t{ ...props }\n\t\t\tstripExperimentalSettings={ true }\n\t\t>\n\t\t\t{ props.children }\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n};\n\nexport default BlockEditorProvider;\n"],"mappings":";;;;;;;AAIA,IAAAA,QAAA,GAAAC,OAAA;AADA,IAAAC,KAAA,GAAAD,OAAA;AAMA,IAAAE,qBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,aAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AAbA;AACA;AACA;;AAIA;AACA;AACA;;AAOA;;AAEO,MAAMQ,+BAA+B,GAAG,IAAAC,6BAAoB,EAChEC,KAAK,IAAM;EACZ,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,yBAAyB,GAAG;EAAM,CAAC,GAAGH,KAAK;EAEvE,MAAM;IAAEI;EAA6B,CAAC,GAAG,IAAAC,kBAAM,EAC9C,IAAAC,iBAAW,EAAEC,YAAiB,CAC/B,CAAC;EACD,IAAAC,kBAAS,EAAE,MAAM;IAChBJ,4BAA4B,CAC3B;MACC,GAAGF,QAAQ;MACXO,uBAAuB,EAAE;IAC1B,CAAC,EACD;MACCN,yBAAyB;MACzBO,KAAK,EAAE;IACR,CACD,CAAC;EACF,CAAC,EAAE,CACFR,QAAQ,EACRC,yBAAyB,EACzBC,4BAA4B,CAC3B,CAAC;;EAEH;EACA,IAAAO,qBAAY,EAAEX,KAAM,CAAC;EAErB,OAAO,IAAAX,QAAA,CAAAuB,aAAA,EAAChB,kBAAA,CAAAiB,iBAAiB,QAAGZ,QAA6B,CAAC;AAC3D,CACD,CAAC;AAACa,OAAA,CAAAhB,+BAAA,GAAAA,+BAAA;AAEK,MAAMiB,mBAAmB,GAAKf,KAAK,IAAM;EAC/C,OACC,IAAAX,QAAA,CAAAuB,aAAA,EAACd,+BAA+B;IAAA,GAC1BE,KAAK;IACVG,yBAAyB,EAAG;EAAM,GAEhCH,KAAK,CAACC,QACwB,CAAC;AAEpC,CAAC;AAACa,OAAA,CAAAC,mBAAA,GAAAA,mBAAA;AAAA,IAAAC,QAAA,GAEaD,mBAAmB;AAAAD,OAAA,CAAAG,OAAA,GAAAD,QAAA"}
1
+ {"version":3,"names":["_element","require","_data","_components","_withRegistryProvider","_interopRequireDefault","_useBlockSync","_store","_blockRefsProvider","_lockUnlock","_keyboardShortcuts","ExperimentalBlockEditorProvider","withRegistryProvider","props","children","settings","stripExperimentalSettings","__experimentalUpdateSettings","unlock","useDispatch","blockEditorStore","useEffect","__internalIsInitialized","reset","useBlockSync","createElement","SlotFillProvider","default","Register","BlockRefsProvider","exports","BlockEditorProvider","_default"],"sources":["@wordpress/block-editor/src/components/provider/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\nimport { SlotFillProvider } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport useBlockSync from './use-block-sync';\nimport { store as blockEditorStore } from '../../store';\nimport { BlockRefsProvider } from './block-refs-provider';\nimport { unlock } from '../../lock-unlock';\nimport KeyboardShortcuts from '../keyboard-shortcuts';\n\n/** @typedef {import('@wordpress/data').WPDataRegistry} WPDataRegistry */\n\nexport const ExperimentalBlockEditorProvider = withRegistryProvider(\n\t( props ) => {\n\t\tconst { children, settings, stripExperimentalSettings = false } = props;\n\n\t\tconst { __experimentalUpdateSettings } = unlock(\n\t\t\tuseDispatch( blockEditorStore )\n\t\t);\n\t\tuseEffect( () => {\n\t\t\t__experimentalUpdateSettings(\n\t\t\t\t{\n\t\t\t\t\t...settings,\n\t\t\t\t\t__internalIsInitialized: true,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tstripExperimentalSettings,\n\t\t\t\t\treset: true,\n\t\t\t\t}\n\t\t\t);\n\t\t}, [\n\t\t\tsettings,\n\t\t\tstripExperimentalSettings,\n\t\t\t__experimentalUpdateSettings,\n\t\t] );\n\n\t\t// Syncs the entity provider with changes in the block-editor store.\n\t\tuseBlockSync( props );\n\n\t\treturn (\n\t\t\t<SlotFillProvider>\n\t\t\t\t<KeyboardShortcuts.Register />\n\t\t\t\t<BlockRefsProvider>{ children }</BlockRefsProvider>\n\t\t\t</SlotFillProvider>\n\t\t);\n\t}\n);\n\nexport const BlockEditorProvider = ( props ) => {\n\treturn (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\t{ ...props }\n\t\t\tstripExperimentalSettings={ true }\n\t\t>\n\t\t\t{ props.children }\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n};\n\nexport default BlockEditorProvider;\n"],"mappings":";;;;;;;AAIA,IAAAA,QAAA,GAAAC,OAAA;AADA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAKA,IAAAG,qBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,kBAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAL,sBAAA,CAAAJ,OAAA;AAfA;AACA;AACA;;AAKA;AACA;AACA;;AAQA;;AAEO,MAAMU,+BAA+B,GAAG,IAAAC,6BAAoB,EAChEC,KAAK,IAAM;EACZ,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,yBAAyB,GAAG;EAAM,CAAC,GAAGH,KAAK;EAEvE,MAAM;IAAEI;EAA6B,CAAC,GAAG,IAAAC,kBAAM,EAC9C,IAAAC,iBAAW,EAAEC,YAAiB,CAC/B,CAAC;EACD,IAAAC,kBAAS,EAAE,MAAM;IAChBJ,4BAA4B,CAC3B;MACC,GAAGF,QAAQ;MACXO,uBAAuB,EAAE;IAC1B,CAAC,EACD;MACCN,yBAAyB;MACzBO,KAAK,EAAE;IACR,CACD,CAAC;EACF,CAAC,EAAE,CACFR,QAAQ,EACRC,yBAAyB,EACzBC,4BAA4B,CAC3B,CAAC;;EAEH;EACA,IAAAO,qBAAY,EAAEX,KAAM,CAAC;EAErB,OACC,IAAAb,QAAA,CAAAyB,aAAA,EAACtB,WAAA,CAAAuB,gBAAgB,QAChB,IAAA1B,QAAA,CAAAyB,aAAA,EAACf,kBAAA,CAAAiB,OAAiB,CAACC,QAAQ,MAAE,CAAC,EAC9B,IAAA5B,QAAA,CAAAyB,aAAA,EAACjB,kBAAA,CAAAqB,iBAAiB,QAAGf,QAA6B,CACjC,CAAC;AAErB,CACD,CAAC;AAACgB,OAAA,CAAAnB,+BAAA,GAAAA,+BAAA;AAEK,MAAMoB,mBAAmB,GAAKlB,KAAK,IAAM;EAC/C,OACC,IAAAb,QAAA,CAAAyB,aAAA,EAACd,+BAA+B;IAAA,GAC1BE,KAAK;IACVG,yBAAyB,EAAG;EAAM,GAEhCH,KAAK,CAACC,QACwB,CAAC;AAEpC,CAAC;AAACgB,OAAA,CAAAC,mBAAA,GAAAA,mBAAA;AAAA,IAAAC,QAAA,GAEaD,mBAAmB;AAAAD,OAAA,CAAAH,OAAA,GAAAK,QAAA"}
@@ -118,20 +118,14 @@ const useActionsCommands = () => {
118
118
  getBlockRootClientId,
119
119
  getBlocksByClientId,
120
120
  canMoveBlocks,
121
- canRemoveBlocks
121
+ canRemoveBlocks,
122
+ getBlockCount
122
123
  } = (0, _data.useSelect)(_store.store);
123
124
  const {
124
125
  getDefaultBlockName,
125
126
  getGroupingBlockName
126
127
  } = (0, _data.useSelect)(_blocks.store);
127
128
  const blocks = getBlocksByClientId(clientIds);
128
- const rootClientId = getBlockRootClientId(clientIds[0]);
129
- const canDuplicate = blocks.every(block => {
130
- return !!block && (0, _blocks.hasBlockSupport)(block.name, 'multiple', true) && canInsertBlockType(block.name, rootClientId);
131
- });
132
- const canInsertDefaultBlock = canInsertBlockType(getDefaultBlockName(), rootClientId);
133
- const canMove = canMoveBlocks(clientIds, rootClientId);
134
- const canRemove = canRemoveBlocks(clientIds, rootClientId);
135
129
  const {
136
130
  removeBlocks,
137
131
  replaceBlocks,
@@ -142,40 +136,6 @@ const useActionsCommands = () => {
142
136
  setNavigationMode,
143
137
  selectBlock
144
138
  } = (0, _data.useDispatch)(_store.store);
145
- const onDuplicate = () => {
146
- if (!canDuplicate) {
147
- return;
148
- }
149
- return duplicateBlocks(clientIds, true);
150
- };
151
- const onRemove = () => {
152
- if (!canRemove) {
153
- return;
154
- }
155
- return removeBlocks(clientIds, true);
156
- };
157
- const onAddBefore = () => {
158
- if (!canInsertDefaultBlock) {
159
- return;
160
- }
161
- const clientId = Array.isArray(clientIds) ? clientIds[0] : clientId;
162
- insertBeforeBlock(clientId);
163
- };
164
- const onAddAfter = () => {
165
- if (!canInsertDefaultBlock) {
166
- return;
167
- }
168
- const clientId = Array.isArray(clientIds) ? clientIds[clientIds.length - 1] : clientId;
169
- insertAfterBlock(clientId);
170
- };
171
- const onMoveTo = () => {
172
- if (!canMove) {
173
- return;
174
- }
175
- setNavigationMode(true);
176
- selectBlock(clientIds[0]);
177
- setBlockMovingClientId(clientIds[0]);
178
- };
179
139
  const onGroup = () => {
180
140
  if (!blocks.length) {
181
141
  return;
@@ -205,32 +165,83 @@ const useActionsCommands = () => {
205
165
  commands: []
206
166
  };
207
167
  }
208
- const icons = {
209
- ungroup: _icons.ungroup,
210
- group: _icons.group,
211
- move: _icons.moveTo,
212
- add: _icons.create,
213
- remove: _icons.edit,
214
- duplicate: _icons.copy
215
- };
216
- const commands = [onUngroup, onGroup, onMoveTo, onAddAfter, onAddBefore, onRemove, onDuplicate].map(callback => {
217
- const action = callback.name.replace('on', '').replace(/([a-z])([A-Z])/g, '$1 $2');
218
- return {
219
- name: 'core/block-editor/action-' + callback.name,
220
- // translators: %s: type of the command.
221
- label: action,
222
- icon: icons[callback.name.replace('on', '').match(/[A-Z]{1}[a-z]*/).toString().toLowerCase()],
168
+ const rootClientId = getBlockRootClientId(clientIds[0]);
169
+ const canInsertDefaultBlock = canInsertBlockType(getDefaultBlockName(), rootClientId);
170
+ const canDuplicate = blocks.every(block => {
171
+ return !!block && (0, _blocks.hasBlockSupport)(block.name, 'multiple', true) && canInsertBlockType(block.name, rootClientId);
172
+ });
173
+ const canRemove = canRemoveBlocks(clientIds, rootClientId);
174
+ const canMove = canMoveBlocks(clientIds, rootClientId) && getBlockCount(rootClientId) !== 1;
175
+ const commands = [{
176
+ name: 'ungroup',
177
+ label: (0, _i18n.__)('Ungroup'),
178
+ callback: onUngroup,
179
+ icon: _icons.ungroup
180
+ }, {
181
+ name: 'Group',
182
+ label: (0, _i18n.__)('Group'),
183
+ callback: onGroup,
184
+ icon: _icons.group
185
+ }];
186
+ if (canInsertDefaultBlock) {
187
+ commands.push({
188
+ name: 'add-after',
189
+ label: (0, _i18n.__)('Add after'),
190
+ callback: () => {
191
+ const clientId = Array.isArray(clientIds) ? clientIds[clientIds.length - 1] : clientId;
192
+ insertAfterBlock(clientId);
193
+ },
194
+ icon: _icons.create
195
+ }, {
196
+ name: 'add-before',
197
+ label: (0, _i18n.__)('Add before'),
198
+ callback: () => {
199
+ const clientId = Array.isArray(clientIds) ? clientIds[0] : clientId;
200
+ insertBeforeBlock(clientId);
201
+ },
202
+ icon: _icons.create
203
+ });
204
+ }
205
+ if (canRemove) {
206
+ commands.push({
207
+ name: 'remove',
208
+ label: (0, _i18n.__)('Remove'),
209
+ callback: () => removeBlocks(clientIds, true),
210
+ icon: _icons.edit
211
+ });
212
+ }
213
+ if (canDuplicate) {
214
+ commands.push({
215
+ name: 'duplicate',
216
+ label: (0, _i18n.__)('Duplicate'),
217
+ callback: () => duplicateBlocks(clientIds, true),
218
+ icon: _icons.copy
219
+ });
220
+ }
221
+ if (canMove) {
222
+ commands.push({
223
+ name: 'move-to',
224
+ label: (0, _i18n.__)('Move to'),
225
+ callback: () => {
226
+ setNavigationMode(true);
227
+ selectBlock(clientIds[0]);
228
+ setBlockMovingClientId(clientIds[0]);
229
+ },
230
+ icon: _icons.moveTo
231
+ });
232
+ }
233
+ return {
234
+ isLoading: false,
235
+ commands: commands.map(command => ({
236
+ ...command,
237
+ name: 'core/block-editor/action-' + command.name,
223
238
  callback: ({
224
239
  close
225
240
  }) => {
226
- callback();
241
+ command.callback();
227
242
  close();
228
243
  }
229
- };
230
- });
231
- return {
232
- isLoading: false,
233
- commands
244
+ }))
234
245
  };
235
246
  };
236
247
  const useBlockCommands = () => {
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_blocks","_data","_commands","_icons","_store","useTransformCommands","clientIds","useSelect","select","getSelectedBlockClientIds","blockEditorStore","selectedBlockClientIds","blocks","getBlocksByClientId","replaceBlocks","multiSelect","useDispatch","possibleBlockTransformations","canRemove","getBlockRootClientId","getBlockTransformItems","canRemoveBlocks","rootClientId","Array","isArray","isTemplate","length","isTemplatePart","selectForMultipleBlocks","insertedBlocks","clientId","onBlockTransform","name","newBlocks","switchToBlockType","hasPossibleBlockTransformations","isLoading","commands","map","transformation","title","icon","replace","label","sprintf","__","src","callback","close","exports","useActionsCommands","canInsertBlockType","canMoveBlocks","getDefaultBlockName","getGroupingBlockName","blocksStore","canDuplicate","every","block","hasBlockSupport","canInsertDefaultBlock","canMove","removeBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","setBlockMovingClientId","setNavigationMode","selectBlock","onDuplicate","onRemove","onAddBefore","onAddAfter","onMoveTo","onGroup","groupingBlockName","onUngroup","innerBlocks","icons","ungroup","group","move","add","remove","duplicate","copy","action","match","toString","toLowerCase","useBlockCommands","useCommandLoader","hook"],"sources":["@wordpress/block-editor/src/components/use-block-commands/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\thasBlockSupport,\n\tstore as blocksStore,\n\tswitchToBlockType,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCommandLoader } from '@wordpress/commands';\nimport {\n\tcopy,\n\tedit as remove,\n\tcreate as add,\n\tgroup,\n\tungroup,\n\tmoveTo as move,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport const useTransformCommands = () => {\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t};\n\t}, [] );\n\tconst blocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocksByClientId( clientIds ),\n\t\t[ clientIds ]\n\t);\n\tconst { replaceBlocks, multiSelect } = useDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, canRemove } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\tArray.isArray( clientIds ) ? clientIds[ 0 ] : clientIds\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\tblocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds, rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, blocks ]\n\t);\n\n\tconst isTemplate = blocks.length === 1 && isTemplatePart( blocks[ 0 ] );\n\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\n\t// Simple block tranformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\n\tif (\n\t\t! clientIds ||\n\t\tclientIds.length < 1 ||\n\t\t! hasPossibleBlockTransformations\n\t) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = possibleBlockTransformations.map( ( transformation ) => {\n\t\tconst { name, title, icon } = transformation;\n\t\treturn {\n\t\t\tname: 'core/block-editor/transform-to-' + name.replace( '/', '-' ),\n\t\t\t// translators: %s: block title/name.\n\t\t\tlabel: sprintf( __( 'Transform to %s' ), title ),\n\t\t\ticon: icon.src,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tonBlockTransform( name );\n\t\t\t\tclose();\n\t\t\t},\n\t\t};\n\t} );\n\n\treturn { isLoading: false, commands };\n};\n\nconst useActionsCommands = () => {\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t};\n\t}, [] );\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tcanMoveBlocks,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\n\tconst blocks = getBlocksByClientId( clientIds );\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\n\tconst canDuplicate = blocks.every( ( block ) => {\n\t\treturn (\n\t\t\t!! block &&\n\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t);\n\t} );\n\n\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\tgetDefaultBlockName(),\n\t\trootClientId\n\t);\n\n\tconst canMove = canMoveBlocks( clientIds, rootClientId );\n\tconst canRemove = canRemoveBlocks( clientIds, rootClientId );\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tsetBlockMovingClientId,\n\t\tsetNavigationMode,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst onDuplicate = () => {\n\t\tif ( ! canDuplicate ) {\n\t\t\treturn;\n\t\t}\n\t\treturn duplicateBlocks( clientIds, true );\n\t};\n\tconst onRemove = () => {\n\t\tif ( ! canRemove ) {\n\t\t\treturn;\n\t\t}\n\t\treturn removeBlocks( clientIds, true );\n\t};\n\tconst onAddBefore = () => {\n\t\tif ( ! canInsertDefaultBlock ) {\n\t\t\treturn;\n\t\t}\n\t\tconst clientId = Array.isArray( clientIds ) ? clientIds[ 0 ] : clientId;\n\t\tinsertBeforeBlock( clientId );\n\t};\n\tconst onAddAfter = () => {\n\t\tif ( ! canInsertDefaultBlock ) {\n\t\t\treturn;\n\t\t}\n\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t? clientIds[ clientIds.length - 1 ]\n\t\t\t: clientId;\n\t\tinsertAfterBlock( clientId );\n\t};\n\tconst onMoveTo = () => {\n\t\tif ( ! canMove ) {\n\t\t\treturn;\n\t\t}\n\t\tsetNavigationMode( true );\n\t\tselectBlock( clientIds[ 0 ] );\n\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t};\n\tconst onGroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\tconst newBlocks = switchToBlockType( blocks, groupingBlockName );\n\n\t\tif ( ! newBlocks ) {\n\t\t\treturn;\n\t\t}\n\t\treplaceBlocks( clientIds, newBlocks );\n\t};\n\tconst onUngroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerBlocks = blocks[ 0 ].innerBlocks;\n\n\t\tif ( ! innerBlocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\treplaceBlocks( clientIds, innerBlocks );\n\t};\n\n\tif ( ! clientIds || clientIds.length < 1 ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst icons = {\n\t\tungroup,\n\t\tgroup,\n\t\tmove,\n\t\tadd,\n\t\tremove,\n\t\tduplicate: copy,\n\t};\n\n\tconst commands = [\n\t\tonUngroup,\n\t\tonGroup,\n\t\tonMoveTo,\n\t\tonAddAfter,\n\t\tonAddBefore,\n\t\tonRemove,\n\t\tonDuplicate,\n\t].map( ( callback ) => {\n\t\tconst action = callback.name\n\t\t\t.replace( 'on', '' )\n\t\t\t.replace( /([a-z])([A-Z])/g, '$1 $2' );\n\n\t\treturn {\n\t\t\tname: 'core/block-editor/action-' + callback.name,\n\t\t\t// translators: %s: type of the command.\n\t\t\tlabel: action,\n\t\t\ticon: icons[\n\t\t\t\tcallback.name\n\t\t\t\t\t.replace( 'on', '' )\n\t\t\t\t\t.match( /[A-Z]{1}[a-z]*/ )\n\t\t\t\t\t.toString()\n\t\t\t\t\t.toLowerCase()\n\t\t\t],\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tcallback();\n\t\t\t\tclose();\n\t\t\t},\n\t\t};\n\t} );\n\n\treturn { isLoading: false, commands };\n};\n\nexport const useBlockCommands = () => {\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockTransforms',\n\t\thook: useTransformCommands,\n\t} );\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockActions',\n\t\thook: useActionsCommands,\n\t} );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_blocks","_data","_commands","_icons","_store","useTransformCommands","clientIds","useSelect","select","getSelectedBlockClientIds","blockEditorStore","selectedBlockClientIds","blocks","getBlocksByClientId","replaceBlocks","multiSelect","useDispatch","possibleBlockTransformations","canRemove","getBlockRootClientId","getBlockTransformItems","canRemoveBlocks","rootClientId","Array","isArray","isTemplate","length","isTemplatePart","selectForMultipleBlocks","insertedBlocks","clientId","onBlockTransform","name","newBlocks","switchToBlockType","hasPossibleBlockTransformations","isLoading","commands","map","transformation","title","icon","replace","label","sprintf","__","src","callback","close","exports","useActionsCommands","canInsertBlockType","canMoveBlocks","getBlockCount","getDefaultBlockName","getGroupingBlockName","blocksStore","removeBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","setBlockMovingClientId","setNavigationMode","selectBlock","onGroup","groupingBlockName","onUngroup","innerBlocks","canInsertDefaultBlock","canDuplicate","every","block","hasBlockSupport","canMove","ungroup","group","push","add","remove","copy","move","command","useBlockCommands","useCommandLoader","hook"],"sources":["@wordpress/block-editor/src/components/use-block-commands/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\thasBlockSupport,\n\tstore as blocksStore,\n\tswitchToBlockType,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCommandLoader } from '@wordpress/commands';\nimport {\n\tcopy,\n\tedit as remove,\n\tcreate as add,\n\tgroup,\n\tungroup,\n\tmoveTo as move,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport const useTransformCommands = () => {\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t};\n\t}, [] );\n\tconst blocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocksByClientId( clientIds ),\n\t\t[ clientIds ]\n\t);\n\tconst { replaceBlocks, multiSelect } = useDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, canRemove } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\tArray.isArray( clientIds ) ? clientIds[ 0 ] : clientIds\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\tblocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds, rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, blocks ]\n\t);\n\n\tconst isTemplate = blocks.length === 1 && isTemplatePart( blocks[ 0 ] );\n\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\n\t// Simple block tranformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\n\tif (\n\t\t! clientIds ||\n\t\tclientIds.length < 1 ||\n\t\t! hasPossibleBlockTransformations\n\t) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = possibleBlockTransformations.map( ( transformation ) => {\n\t\tconst { name, title, icon } = transformation;\n\t\treturn {\n\t\t\tname: 'core/block-editor/transform-to-' + name.replace( '/', '-' ),\n\t\t\t// translators: %s: block title/name.\n\t\t\tlabel: sprintf( __( 'Transform to %s' ), title ),\n\t\t\ticon: icon.src,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tonBlockTransform( name );\n\t\t\t\tclose();\n\t\t\t},\n\t\t};\n\t} );\n\n\treturn { isLoading: false, commands };\n};\n\nconst useActionsCommands = () => {\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t};\n\t}, [] );\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tcanMoveBlocks,\n\t\tcanRemoveBlocks,\n\t\tgetBlockCount,\n\t} = useSelect( blockEditorStore );\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\n\tconst blocks = getBlocksByClientId( clientIds );\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tsetBlockMovingClientId,\n\t\tsetNavigationMode,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst onGroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\tconst newBlocks = switchToBlockType( blocks, groupingBlockName );\n\n\t\tif ( ! newBlocks ) {\n\t\t\treturn;\n\t\t}\n\t\treplaceBlocks( clientIds, newBlocks );\n\t};\n\tconst onUngroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerBlocks = blocks[ 0 ].innerBlocks;\n\n\t\tif ( ! innerBlocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\treplaceBlocks( clientIds, innerBlocks );\n\t};\n\n\tif ( ! clientIds || clientIds.length < 1 ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\tgetDefaultBlockName(),\n\t\trootClientId\n\t);\n\tconst canDuplicate = blocks.every( ( block ) => {\n\t\treturn (\n\t\t\t!! block &&\n\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t);\n\t} );\n\tconst canRemove = canRemoveBlocks( clientIds, rootClientId );\n\tconst canMove =\n\t\tcanMoveBlocks( clientIds, rootClientId ) &&\n\t\tgetBlockCount( rootClientId ) !== 1;\n\n\tconst commands = [\n\t\t{\n\t\t\tname: 'ungroup',\n\t\t\tlabel: __( 'Ungroup' ),\n\t\t\tcallback: onUngroup,\n\t\t\ticon: ungroup,\n\t\t},\n\t\t{\n\t\t\tname: 'Group',\n\t\t\tlabel: __( 'Group' ),\n\t\t\tcallback: onGroup,\n\t\t\ticon: group,\n\t\t},\n\t];\n\tif ( canInsertDefaultBlock ) {\n\t\tcommands.push(\n\t\t\t{\n\t\t\t\tname: 'add-after',\n\t\t\t\tlabel: __( 'Add after' ),\n\t\t\t\tcallback: () => {\n\t\t\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t\t\t? clientIds[ clientIds.length - 1 ]\n\t\t\t\t\t\t: clientId;\n\t\t\t\t\tinsertAfterBlock( clientId );\n\t\t\t\t},\n\t\t\t\ticon: add,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'add-before',\n\t\t\t\tlabel: __( 'Add before' ),\n\t\t\t\tcallback: () => {\n\t\t\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t\t\t? clientIds[ 0 ]\n\t\t\t\t\t\t: clientId;\n\t\t\t\t\tinsertBeforeBlock( clientId );\n\t\t\t\t},\n\t\t\t\ticon: add,\n\t\t\t}\n\t\t);\n\t}\n\tif ( canRemove ) {\n\t\tcommands.push( {\n\t\t\tname: 'remove',\n\t\t\tlabel: __( 'Remove' ),\n\t\t\tcallback: () => removeBlocks( clientIds, true ),\n\t\t\ticon: remove,\n\t\t} );\n\t}\n\tif ( canDuplicate ) {\n\t\tcommands.push( {\n\t\t\tname: 'duplicate',\n\t\t\tlabel: __( 'Duplicate' ),\n\t\t\tcallback: () => duplicateBlocks( clientIds, true ),\n\t\t\ticon: copy,\n\t\t} );\n\t}\n\tif ( canMove ) {\n\t\tcommands.push( {\n\t\t\tname: 'move-to',\n\t\t\tlabel: __( 'Move to' ),\n\t\t\tcallback: () => {\n\t\t\t\tsetNavigationMode( true );\n\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t\t},\n\t\t\ticon: move,\n\t\t} );\n\t}\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands: commands.map( ( command ) => ( {\n\t\t\t...command,\n\t\t\tname: 'core/block-editor/action-' + command.name,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tcommand.callback();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} ) ),\n\t};\n};\n\nexport const useBlockCommands = () => {\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockTransforms',\n\t\thook: useTransformCommands,\n\t} );\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockActions',\n\t\thook: useActionsCommands,\n\t} );\n};\n"],"mappings":"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"}
@@ -42,7 +42,7 @@ function Warning({
42
42
  className: "block-editor-warning__action"
43
43
  }, action)), secondaryActions && (0, _element.createElement)(_components.DropdownMenu, {
44
44
  className: "block-editor-warning__secondary",
45
- icon: _icons.moreHorizontal,
45
+ icon: _icons.moreVertical,
46
46
  label: (0, _i18n.__)('More options'),
47
47
  popoverProps: {
48
48
  position: 'bottom left',
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_classnames","_interopRequireDefault","_components","_i18n","_icons","Warning","className","actions","children","secondaryActions","createElement","style","display","all","classnames","Children","count","map","action","i","key","DropdownMenu","icon","moreHorizontal","label","__","popoverProps","position","noIcons","MenuGroup","item","pos","MenuItem","onClick","title","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/warning/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Children } from '@wordpress/element';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { moreHorizontal } from '@wordpress/icons';\n\nfunction Warning( { className, actions, children, secondaryActions } ) {\n\treturn (\n\t\t<div style={ { display: 'contents', all: 'initial' } }>\n\t\t\t<div className={ classnames( className, 'block-editor-warning' ) }>\n\t\t\t\t<div className=\"block-editor-warning__contents\">\n\t\t\t\t\t<p className=\"block-editor-warning__message\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</p>\n\n\t\t\t\t\t{ ( Children.count( actions ) > 0 || secondaryActions ) && (\n\t\t\t\t\t\t<div className=\"block-editor-warning__actions\">\n\t\t\t\t\t\t\t{ Children.count( actions ) > 0 &&\n\t\t\t\t\t\t\t\tChildren.map( actions, ( action, i ) => (\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-warning__action\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ action }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t{ secondaryActions && (\n\t\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-warning__secondary\"\n\t\t\t\t\t\t\t\t\ticon={ moreHorizontal }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'More options' ) }\n\t\t\t\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\t\t\t\tposition: 'bottom left',\n\t\t\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-warning__dropdown',\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tnoIcons\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t\t{ secondaryActions.map(\n\t\t\t\t\t\t\t\t\t\t\t\t( item, pos ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ item.onClick }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ pos }\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/warning/README.md\n */\nexport default Warning;\n"],"mappings":";;;;;;;AAQA,IAAAA,QAAA,GAAAC,OAAA;AALA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AAMA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAXA;AACA;AACA;;AAGA;AACA;AACA;;AAMA,SAASM,OAAOA,CAAE;EAAEC,SAAS;EAAEC,OAAO;EAAEC,QAAQ;EAAEC;AAAiB,CAAC,EAAG;EACtE,OACC,IAAAX,QAAA,CAAAY,aAAA;IAAKC,KAAK,EAAG;MAAEC,OAAO,EAAE,UAAU;MAAEC,GAAG,EAAE;IAAU;EAAG,GACrD,IAAAf,QAAA,CAAAY,aAAA;IAAKJ,SAAS,EAAG,IAAAQ,mBAAU,EAAER,SAAS,EAAE,sBAAuB;EAAG,GACjE,IAAAR,QAAA,CAAAY,aAAA;IAAKJ,SAAS,EAAC;EAAgC,GAC9C,IAAAR,QAAA,CAAAY,aAAA;IAAGJ,SAAS,EAAC;EAA+B,GACzCE,QACA,CAAC,EAEF,CAAEO,iBAAQ,CAACC,KAAK,CAAET,OAAQ,CAAC,GAAG,CAAC,IAAIE,gBAAgB,KACpD,IAAAX,QAAA,CAAAY,aAAA;IAAKJ,SAAS,EAAC;EAA+B,GAC3CS,iBAAQ,CAACC,KAAK,CAAET,OAAQ,CAAC,GAAG,CAAC,IAC9BQ,iBAAQ,CAACE,GAAG,CAAEV,OAAO,EAAE,CAAEW,MAAM,EAAEC,CAAC,KACjC,IAAArB,QAAA,CAAAY,aAAA;IACCU,GAAG,EAAGD,CAAG;IACTb,SAAS,EAAC;EAA8B,GAEtCY,MACG,CACL,CAAC,EACFT,gBAAgB,IACjB,IAAAX,QAAA,CAAAY,aAAA,EAACR,WAAA,CAAAmB,YAAY;IACZf,SAAS,EAAC,iCAAiC;IAC3CgB,IAAI,EAAGC,qBAAgB;IACvBC,KAAK,EAAG,IAAAC,QAAE,EAAE,cAAe,CAAG;IAC9BC,YAAY,EAAG;MACdC,QAAQ,EAAE,aAAa;MACvBrB,SAAS,EACR;IACF,CAAG;IACHsB,OAAO;EAAA,GAEL,MACD,IAAA9B,QAAA,CAAAY,aAAA,EAACR,WAAA,CAAA2B,SAAS,QACPpB,gBAAgB,CAACQ,GAAG,CACrB,CAAEa,IAAI,EAAEC,GAAG,KACV,IAAAjC,QAAA,CAAAY,aAAA,EAACR,WAAA,CAAA8B,QAAQ;IACRC,OAAO,EAAGH,IAAI,CAACG,OAAS;IACxBb,GAAG,EAAGW;EAAK,GAETD,IAAI,CAACI,KACE,CAEZ,CACU,CAEC,CAEX,CAEF,CACD,CACD,CAAC;AAER;;AAEA;AACA;AACA;AAFA,IAAAC,QAAA,GAGe9B,OAAO;AAAA+B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["_element","require","_classnames","_interopRequireDefault","_components","_i18n","_icons","Warning","className","actions","children","secondaryActions","createElement","style","display","all","classnames","Children","count","map","action","i","key","DropdownMenu","icon","moreVertical","label","__","popoverProps","position","noIcons","MenuGroup","item","pos","MenuItem","onClick","title","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/warning/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Children } from '@wordpress/element';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\n\nfunction Warning( { className, actions, children, secondaryActions } ) {\n\treturn (\n\t\t<div style={ { display: 'contents', all: 'initial' } }>\n\t\t\t<div className={ classnames( className, 'block-editor-warning' ) }>\n\t\t\t\t<div className=\"block-editor-warning__contents\">\n\t\t\t\t\t<p className=\"block-editor-warning__message\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</p>\n\n\t\t\t\t\t{ ( Children.count( actions ) > 0 || secondaryActions ) && (\n\t\t\t\t\t\t<div className=\"block-editor-warning__actions\">\n\t\t\t\t\t\t\t{ Children.count( actions ) > 0 &&\n\t\t\t\t\t\t\t\tChildren.map( actions, ( action, i ) => (\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-warning__action\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ action }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t{ secondaryActions && (\n\t\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-warning__secondary\"\n\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'More options' ) }\n\t\t\t\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\t\t\t\tposition: 'bottom left',\n\t\t\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-warning__dropdown',\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tnoIcons\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t\t{ secondaryActions.map(\n\t\t\t\t\t\t\t\t\t\t\t\t( item, pos ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ item.onClick }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ pos }\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/warning/README.md\n */\nexport default Warning;\n"],"mappings":";;;;;;;AAQA,IAAAA,QAAA,GAAAC,OAAA;AALA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AAMA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAXA;AACA;AACA;;AAGA;AACA;AACA;;AAMA,SAASM,OAAOA,CAAE;EAAEC,SAAS;EAAEC,OAAO;EAAEC,QAAQ;EAAEC;AAAiB,CAAC,EAAG;EACtE,OACC,IAAAX,QAAA,CAAAY,aAAA;IAAKC,KAAK,EAAG;MAAEC,OAAO,EAAE,UAAU;MAAEC,GAAG,EAAE;IAAU;EAAG,GACrD,IAAAf,QAAA,CAAAY,aAAA;IAAKJ,SAAS,EAAG,IAAAQ,mBAAU,EAAER,SAAS,EAAE,sBAAuB;EAAG,GACjE,IAAAR,QAAA,CAAAY,aAAA;IAAKJ,SAAS,EAAC;EAAgC,GAC9C,IAAAR,QAAA,CAAAY,aAAA;IAAGJ,SAAS,EAAC;EAA+B,GACzCE,QACA,CAAC,EAEF,CAAEO,iBAAQ,CAACC,KAAK,CAAET,OAAQ,CAAC,GAAG,CAAC,IAAIE,gBAAgB,KACpD,IAAAX,QAAA,CAAAY,aAAA;IAAKJ,SAAS,EAAC;EAA+B,GAC3CS,iBAAQ,CAACC,KAAK,CAAET,OAAQ,CAAC,GAAG,CAAC,IAC9BQ,iBAAQ,CAACE,GAAG,CAAEV,OAAO,EAAE,CAAEW,MAAM,EAAEC,CAAC,KACjC,IAAArB,QAAA,CAAAY,aAAA;IACCU,GAAG,EAAGD,CAAG;IACTb,SAAS,EAAC;EAA8B,GAEtCY,MACG,CACL,CAAC,EACFT,gBAAgB,IACjB,IAAAX,QAAA,CAAAY,aAAA,EAACR,WAAA,CAAAmB,YAAY;IACZf,SAAS,EAAC,iCAAiC;IAC3CgB,IAAI,EAAGC,mBAAc;IACrBC,KAAK,EAAG,IAAAC,QAAE,EAAE,cAAe,CAAG;IAC9BC,YAAY,EAAG;MACdC,QAAQ,EAAE,aAAa;MACvBrB,SAAS,EACR;IACF,CAAG;IACHsB,OAAO;EAAA,GAEL,MACD,IAAA9B,QAAA,CAAAY,aAAA,EAACR,WAAA,CAAA2B,SAAS,QACPpB,gBAAgB,CAACQ,GAAG,CACrB,CAAEa,IAAI,EAAEC,GAAG,KACV,IAAAjC,QAAA,CAAAY,aAAA,EAACR,WAAA,CAAA8B,QAAQ;IACRC,OAAO,EAAGH,IAAI,CAACG,OAAS;IACxBb,GAAG,EAAGW;EAAK,GAETD,IAAI,CAACI,KACE,CAEZ,CACU,CAEC,CAEX,CAEF,CACD,CACD,CAAC;AAER;;AAEA;AACA;AACA;AAFA,IAAAC,QAAA,GAGe9B,OAAO;AAAA+B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.withAutoInsertingBlocks = void 0;
7
+ var _element = require("@wordpress/element");
8
+ var _i18n = require("@wordpress/i18n");
9
+ var _hooks = require("@wordpress/hooks");
10
+ var _components = require("@wordpress/components");
11
+ var _compose = require("@wordpress/compose");
12
+ var _blocks = require("@wordpress/blocks");
13
+ var _data = require("@wordpress/data");
14
+ var _components2 = require("../components");
15
+ var _store = require("../store");
16
+ /**
17
+ * WordPress dependencies
18
+ */
19
+
20
+ /**
21
+ * Internal dependencies
22
+ */
23
+
24
+ function AutoInsertingBlocksControl(props) {
25
+ const {
26
+ autoInsertedBlocksForCurrentBlock,
27
+ groupedAutoInsertedBlocks
28
+ } = (0, _data.useSelect)(select => {
29
+ const {
30
+ getBlockTypes
31
+ } = select(_blocks.store);
32
+ const _autoInsertedBlocksForCurrentBlock = getBlockTypes()?.filter(({
33
+ autoInsert
34
+ }) => autoInsert && props.blockName in autoInsert);
35
+
36
+ // Group by block namespace (i.e. prefix before the slash).
37
+ const _groupedAutoInsertedBlocks = _autoInsertedBlocksForCurrentBlock?.reduce((groups, block) => {
38
+ const [namespace] = block.name.split('/');
39
+ if (!groups[namespace]) {
40
+ groups[namespace] = [];
41
+ }
42
+ groups[namespace].push(block);
43
+ return groups;
44
+ }, {});
45
+ return {
46
+ autoInsertedBlocksForCurrentBlock: _autoInsertedBlocksForCurrentBlock,
47
+ groupedAutoInsertedBlocks: _groupedAutoInsertedBlocks
48
+ };
49
+ }, [props.blockName]);
50
+ const {
51
+ autoInsertedBlockClientIds,
52
+ blockIndex,
53
+ rootClientId,
54
+ innerBlocksLength
55
+ } = (0, _data.useSelect)(select => {
56
+ const {
57
+ getBlock,
58
+ getBlockIndex,
59
+ getBlockRootClientId
60
+ } = select(_store.store);
61
+ const _rootClientId = getBlockRootClientId(props.clientId);
62
+ const _autoInsertedBlockClientIds = autoInsertedBlocksForCurrentBlock.reduce((clientIds, block) => {
63
+ const relativePosition = block?.autoInsert?.[props.blockName];
64
+ let candidates;
65
+ switch (relativePosition) {
66
+ case 'before':
67
+ case 'after':
68
+ // Any of the current block's siblings (with the right block type) qualifies
69
+ // as an auto-inserted block (inserted `before` or `after` the current one),
70
+ // as the block might've been auto-inserted and then moved around a bit by the user.
71
+ candidates = getBlock(_rootClientId)?.innerBlocks;
72
+ break;
73
+ case 'first_child':
74
+ case 'last_child':
75
+ // Any of the current block's child blocks (with the right block type) qualifies
76
+ // as an auto-inserted first or last child block, as the block might've been
77
+ // auto-inserted and then moved around a bit by the user.
78
+ candidates = getBlock(props.clientId).innerBlocks;
79
+ break;
80
+ }
81
+ const autoInsertedBlock = candidates?.find(({
82
+ name
83
+ }) => name === block.name);
84
+ if (autoInsertedBlock) {
85
+ clientIds[block.name] = autoInsertedBlock.clientId;
86
+ }
87
+
88
+ // TOOD: If no auto-inserted block was found in any of its designated locations,
89
+ // we want to check if it's present elsewhere in the block tree.
90
+ // If it is, we'd consider it manually inserted and would want to remove the
91
+ // corresponding toggle from the block inspector panel.
92
+
93
+ return clientIds;
94
+ }, {});
95
+ return {
96
+ blockIndex: getBlockIndex(props.clientId),
97
+ innerBlocksLength: getBlock(props.clientId)?.innerBlocks?.length,
98
+ rootClientId: _rootClientId,
99
+ autoInsertedBlockClientIds: _autoInsertedBlockClientIds
100
+ };
101
+ }, [autoInsertedBlocksForCurrentBlock, props.blockName, props.clientId]);
102
+ const {
103
+ insertBlock,
104
+ removeBlock
105
+ } = (0, _data.useDispatch)(_store.store);
106
+ if (!autoInsertedBlocksForCurrentBlock.length) {
107
+ return null;
108
+ }
109
+ const insertBlockIntoDesignatedLocation = (block, relativePosition) => {
110
+ switch (relativePosition) {
111
+ case 'before':
112
+ case 'after':
113
+ insertBlock(block, relativePosition === 'after' ? blockIndex + 1 : blockIndex, rootClientId,
114
+ // Insert as a child of the current block's parent
115
+ false);
116
+ break;
117
+ case 'first_child':
118
+ case 'last_child':
119
+ insertBlock(block,
120
+ // TODO: It'd be great if insertBlock() would accept negative indices for insertion.
121
+ relativePosition === 'first_child' ? 0 : innerBlocksLength, props.clientId,
122
+ // Insert as a child of the current block.
123
+ false);
124
+ break;
125
+ }
126
+ };
127
+ return (0, _element.createElement)(_components2.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, {
128
+ title: (0, _i18n.__)('Plugins'),
129
+ initialOpen: true
130
+ }, Object.keys(groupedAutoInsertedBlocks).map(vendor => {
131
+ return (0, _element.createElement)(_element.Fragment, {
132
+ key: vendor
133
+ }, (0, _element.createElement)("h3", null, vendor), groupedAutoInsertedBlocks[vendor].map(block => {
134
+ // TODO: Display block icon.
135
+ // <BlockIcon icon={ block.icon } />
136
+
137
+ const checked = (block.name in autoInsertedBlockClientIds);
138
+ return (0, _element.createElement)(_components.ToggleControl, {
139
+ checked: checked,
140
+ key: block.title,
141
+ label: block.title,
142
+ onChange: () => {
143
+ if (!checked) {
144
+ // Create and insert block.
145
+ const relativePosition = block.autoInsert[props.blockName];
146
+ insertBlockIntoDesignatedLocation((0, _blocks.createBlock)(block.name), relativePosition);
147
+ return;
148
+ }
149
+
150
+ // Remove block.
151
+ const clientId = autoInsertedBlockClientIds[block.name];
152
+ removeBlock(clientId, false);
153
+ }
154
+ });
155
+ }));
156
+ })));
157
+ }
158
+ const withAutoInsertingBlocks = (0, _compose.createHigherOrderComponent)(BlockEdit => {
159
+ return props => {
160
+ const blockEdit = (0, _element.createElement)(BlockEdit, {
161
+ key: "edit",
162
+ ...props
163
+ });
164
+ return (0, _element.createElement)(_element.Fragment, null, blockEdit, (0, _element.createElement)(AutoInsertingBlocksControl, {
165
+ blockName: props.name,
166
+ clientId: props.clientId
167
+ }));
168
+ };
169
+ }, 'withAutoInsertingBlocks');
170
+ exports.withAutoInsertingBlocks = withAutoInsertingBlocks;
171
+ if (window?.__experimentalAutoInsertingBlocks) {
172
+ (0, _hooks.addFilter)('editor.BlockEdit', 'core/auto-inserting-blocks/with-inspector-control', withAutoInsertingBlocks);
173
+ }
174
+ //# sourceMappingURL=auto-inserting-blocks.js.map