@wordpress/block-directory 4.11.0 → 4.12.1

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 (74) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-ratings/index.js +7 -10
  3. package/build/components/block-ratings/index.js.map +1 -1
  4. package/build/components/block-ratings/stars.js +3 -4
  5. package/build/components/block-ratings/stars.js.map +1 -1
  6. package/build/components/compact-list/index.js +23 -28
  7. package/build/components/compact-list/index.js.map +1 -1
  8. package/build/components/downloadable-block-icon/index.js +3 -4
  9. package/build/components/downloadable-block-icon/index.js.map +1 -1
  10. package/build/components/downloadable-block-list-item/index.js +18 -23
  11. package/build/components/downloadable-block-list-item/index.js.map +1 -1
  12. package/build/components/downloadable-block-notice/index.js +3 -4
  13. package/build/components/downloadable-block-notice/index.js.map +1 -1
  14. package/build/components/downloadable-blocks-list/index.js +7 -10
  15. package/build/components/downloadable-blocks-list/index.js.map +1 -1
  16. package/build/components/downloadable-blocks-panel/index.js +13 -16
  17. package/build/components/downloadable-blocks-panel/index.js.map +1 -1
  18. package/build/components/downloadable-blocks-panel/inserter-panel.js +5 -6
  19. package/build/components/downloadable-blocks-panel/inserter-panel.js.map +1 -1
  20. package/build/plugins/get-install-missing/index.js +13 -17
  21. package/build/plugins/get-install-missing/index.js.map +1 -1
  22. package/build/plugins/get-install-missing/install-button.js +5 -6
  23. package/build/plugins/get-install-missing/install-button.js.map +1 -1
  24. package/build/plugins/inserter-menu-downloadable-blocks-panel/index.js +7 -9
  25. package/build/plugins/inserter-menu-downloadable-blocks-panel/index.js.map +1 -1
  26. package/build/plugins/installed-blocks-pre-publish-panel/index.js +2 -2
  27. package/build/plugins/installed-blocks-pre-publish-panel/index.js.map +1 -1
  28. package/build/store/actions.js +10 -17
  29. package/build/store/actions.js.map +1 -1
  30. package/build/store/reducer.js +6 -15
  31. package/build/store/reducer.js.map +1 -1
  32. package/build/store/resolvers.js +4 -9
  33. package/build/store/resolvers.js.map +1 -1
  34. package/build/store/selectors.js +4 -4
  35. package/build/store/selectors.js.map +1 -1
  36. package/build/store/utils/has-block-type.js +4 -9
  37. package/build/store/utils/has-block-type.js.map +1 -1
  38. package/build-module/components/block-ratings/index.js +7 -10
  39. package/build-module/components/block-ratings/index.js.map +1 -1
  40. package/build-module/components/block-ratings/stars.js +3 -4
  41. package/build-module/components/block-ratings/stars.js.map +1 -1
  42. package/build-module/components/compact-list/index.js +23 -28
  43. package/build-module/components/compact-list/index.js.map +1 -1
  44. package/build-module/components/downloadable-block-icon/index.js +3 -4
  45. package/build-module/components/downloadable-block-icon/index.js.map +1 -1
  46. package/build-module/components/downloadable-block-list-item/index.js +18 -22
  47. package/build-module/components/downloadable-block-list-item/index.js.map +1 -1
  48. package/build-module/components/downloadable-block-notice/index.js +3 -4
  49. package/build-module/components/downloadable-block-notice/index.js.map +1 -1
  50. package/build-module/components/downloadable-blocks-list/index.js +7 -9
  51. package/build-module/components/downloadable-blocks-list/index.js.map +1 -1
  52. package/build-module/components/downloadable-blocks-panel/index.js +13 -16
  53. package/build-module/components/downloadable-blocks-panel/index.js.map +1 -1
  54. package/build-module/components/downloadable-blocks-panel/inserter-panel.js +5 -6
  55. package/build-module/components/downloadable-blocks-panel/inserter-panel.js.map +1 -1
  56. package/build-module/plugins/get-install-missing/index.js +13 -16
  57. package/build-module/plugins/get-install-missing/index.js.map +1 -1
  58. package/build-module/plugins/get-install-missing/install-button.js +5 -6
  59. package/build-module/plugins/get-install-missing/install-button.js.map +1 -1
  60. package/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.js +7 -9
  61. package/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.js.map +1 -1
  62. package/build-module/plugins/installed-blocks-pre-publish-panel/index.js +2 -2
  63. package/build-module/plugins/installed-blocks-pre-publish-panel/index.js.map +1 -1
  64. package/build-module/store/actions.js +10 -17
  65. package/build-module/store/actions.js.map +1 -1
  66. package/build-module/store/reducer.js +6 -15
  67. package/build-module/store/reducer.js.map +1 -1
  68. package/build-module/store/resolvers.js +4 -9
  69. package/build-module/store/resolvers.js.map +1 -1
  70. package/build-module/store/selectors.js +4 -4
  71. package/build-module/store/selectors.js.map +1 -1
  72. package/build-module/store/utils/has-block-type.js +4 -9
  73. package/build-module/store/utils/has-block-type.js.map +1 -1
  74. package/package.json +20 -20
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import { createElement, Fragment } from "@wordpress/element";
3
2
 
4
3
  /**
@@ -19,17 +18,15 @@ import DownloadableBlockIcon from '../downloadable-block-icon';
19
18
  import DownloadableBlockNotice from '../downloadable-block-notice';
20
19
  import { store as blockDirectoryStore } from '../../store'; // Return the appropriate block item label, given the block data and status.
21
20
 
22
- function getDownloadableBlockLabel(_ref, _ref2) {
23
- let {
24
- title,
25
- rating,
26
- ratingCount
27
- } = _ref;
28
- let {
29
- hasNotice,
30
- isInstalled,
31
- isInstalling
32
- } = _ref2;
21
+ function getDownloadableBlockLabel({
22
+ title,
23
+ rating,
24
+ ratingCount
25
+ }, {
26
+ hasNotice,
27
+ isInstalled,
28
+ isInstalling
29
+ }) {
33
30
  const stars = Math.round(rating / 0.5) * 0.5;
34
31
 
35
32
  if (!isInstalled && hasNotice) {
@@ -58,12 +55,11 @@ function getDownloadableBlockLabel(_ref, _ref2) {
58
55
  _n('Install %1$s. %2$s stars with %3$s review.', 'Install %1$s. %2$s stars with %3$s reviews.', ratingCount), decodeEntities(title), stars, ratingCount);
59
56
  }
60
57
 
61
- function DownloadableBlockListItem(_ref3) {
62
- let {
63
- composite,
64
- item,
65
- onClick
66
- } = _ref3;
58
+ function DownloadableBlockListItem({
59
+ composite,
60
+ item,
61
+ onClick
62
+ }) {
67
63
  const {
68
64
  author,
69
65
  description,
@@ -98,11 +94,11 @@ function DownloadableBlockListItem(_ref3) {
98
94
  statusText = __('Installing…');
99
95
  }
100
96
 
101
- return createElement(CompositeItem, _extends({
97
+ return createElement(CompositeItem, {
102
98
  __experimentalIsFocusable: true,
103
99
  role: "option",
104
- as: Button
105
- }, composite, {
100
+ as: Button,
101
+ ...composite,
106
102
  className: "block-directory-downloadable-block-list-item",
107
103
  onClick: event => {
108
104
  event.preventDefault();
@@ -117,7 +113,7 @@ function DownloadableBlockListItem(_ref3) {
117
113
  }),
118
114
  showTooltip: true,
119
115
  tooltipPosition: "top center"
120
- }), createElement("div", {
116
+ }, createElement("div", {
121
117
  className: "block-directory-downloadable-block-list-item__icon"
122
118
  }, createElement(DownloadableBlockIcon, {
123
119
  icon: icon,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-block-list-item/index.js"],"names":["__","_n","sprintf","Button","Spinner","VisuallyHidden","__unstableCompositeItem","CompositeItem","createInterpolateElement","decodeEntities","getBlockType","useSelect","BlockRatings","DownloadableBlockIcon","DownloadableBlockNotice","store","blockDirectoryStore","getDownloadableBlockLabel","title","rating","ratingCount","hasNotice","isInstalled","isInstalling","stars","Math","round","DownloadableBlockListItem","composite","item","onClick","author","description","icon","name","isInstallable","select","getErrorNoticeForBlock","isBlockInstalling","notice","id","hasFatal","isFatal","statusText","event","preventDefault","span"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tSpinner,\n\tVisuallyHidden,\n\t__unstableCompositeItem as CompositeItem,\n} from '@wordpress/components';\nimport { createInterpolateElement } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { getBlockType } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockRatings from '../block-ratings';\nimport DownloadableBlockIcon from '../downloadable-block-icon';\nimport DownloadableBlockNotice from '../downloadable-block-notice';\nimport { store as blockDirectoryStore } from '../../store';\n\n// Return the appropriate block item label, given the block data and status.\nfunction getDownloadableBlockLabel(\n\t{ title, rating, ratingCount },\n\t{ hasNotice, isInstalled, isInstalling }\n) {\n\tconst stars = Math.round( rating / 0.5 ) * 0.5;\n\n\tif ( ! isInstalled && hasNotice ) {\n\t\t/* translators: %1$s: block title */\n\t\treturn sprintf( 'Retry installing %s.', decodeEntities( title ) );\n\t}\n\n\tif ( isInstalled ) {\n\t\t/* translators: %1$s: block title */\n\t\treturn sprintf( 'Add %s.', decodeEntities( title ) );\n\t}\n\n\tif ( isInstalling ) {\n\t\t/* translators: %1$s: block title */\n\t\treturn sprintf( 'Installing %s.', decodeEntities( title ) );\n\t}\n\n\t// No ratings yet, just use the title.\n\tif ( ratingCount < 1 ) {\n\t\t/* translators: %1$s: block title */\n\t\treturn sprintf( 'Install %s.', decodeEntities( title ) );\n\t}\n\n\treturn sprintf(\n\t\t/* translators: %1$s: block title, %2$s: average rating, %3$s: total ratings count. */\n\t\t_n(\n\t\t\t'Install %1$s. %2$s stars with %3$s review.',\n\t\t\t'Install %1$s. %2$s stars with %3$s reviews.',\n\t\t\tratingCount\n\t\t),\n\t\tdecodeEntities( title ),\n\t\tstars,\n\t\tratingCount\n\t);\n}\n\nfunction DownloadableBlockListItem( { composite, item, onClick } ) {\n\tconst { author, description, icon, rating, title } = item;\n\t// getBlockType returns a block object if this block exists, or null if not.\n\tconst isInstalled = !! getBlockType( item.name );\n\n\tconst { hasNotice, isInstalling, isInstallable } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getErrorNoticeForBlock, isInstalling: isBlockInstalling } =\n\t\t\t\tselect( blockDirectoryStore );\n\t\t\tconst notice = getErrorNoticeForBlock( item.id );\n\t\t\tconst hasFatal = notice && notice.isFatal;\n\t\t\treturn {\n\t\t\t\thasNotice: !! notice,\n\t\t\t\tisInstalling: isBlockInstalling( item.id ),\n\t\t\t\tisInstallable: ! hasFatal,\n\t\t\t};\n\t\t},\n\t\t[ item ]\n\t);\n\n\tlet statusText = '';\n\tif ( isInstalled ) {\n\t\tstatusText = __( 'Installed!' );\n\t} else if ( isInstalling ) {\n\t\tstatusText = __( 'Installing…' );\n\t}\n\n\treturn (\n\t\t<CompositeItem\n\t\t\t__experimentalIsFocusable\n\t\t\trole=\"option\"\n\t\t\tas={ Button }\n\t\t\t{ ...composite }\n\t\t\tclassName=\"block-directory-downloadable-block-list-item\"\n\t\t\tonClick={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick();\n\t\t\t} }\n\t\t\tisBusy={ isInstalling }\n\t\t\tdisabled={ isInstalling || ! isInstallable }\n\t\t\tlabel={ getDownloadableBlockLabel( item, {\n\t\t\t\thasNotice,\n\t\t\t\tisInstalled,\n\t\t\t\tisInstalling,\n\t\t\t} ) }\n\t\t\tshowTooltip={ true }\n\t\t\ttooltipPosition=\"top center\"\n\t\t>\n\t\t\t<div className=\"block-directory-downloadable-block-list-item__icon\">\n\t\t\t\t<DownloadableBlockIcon icon={ icon } title={ title } />\n\t\t\t\t{ isInstalling ? (\n\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__spinner\">\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\t<BlockRatings rating={ rating } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<span className=\"block-directory-downloadable-block-list-item__details\">\n\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__title\">\n\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t/* translators: %1$s: block title, %2$s: author name. */\n\t\t\t\t\t\t\t__( '%1$s <span>by %2$s</span>' ),\n\t\t\t\t\t\t\tdecodeEntities( title ),\n\t\t\t\t\t\t\tauthor\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tspan: (\n\t\t\t\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__author\" />\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t{ hasNotice ? (\n\t\t\t\t\t<DownloadableBlockNotice block={ item } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__desc\">\n\t\t\t\t\t\t\t{ !! statusText\n\t\t\t\t\t\t\t\t? statusText\n\t\t\t\t\t\t\t\t: decodeEntities( description ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t{ isInstallable &&\n\t\t\t\t\t\t\t! ( isInstalled || isInstalling ) && (\n\t\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t\t{ __( 'Install block' ) }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</span>\n\t\t</CompositeItem>\n\t);\n}\n\nexport default DownloadableBlockListItem;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-block-list-item/index.js"],"names":["__","_n","sprintf","Button","Spinner","VisuallyHidden","__unstableCompositeItem","CompositeItem","createInterpolateElement","decodeEntities","getBlockType","useSelect","BlockRatings","DownloadableBlockIcon","DownloadableBlockNotice","store","blockDirectoryStore","getDownloadableBlockLabel","title","rating","ratingCount","hasNotice","isInstalled","isInstalling","stars","Math","round","DownloadableBlockListItem","composite","item","onClick","author","description","icon","name","isInstallable","select","getErrorNoticeForBlock","isBlockInstalling","notice","id","hasFatal","isFatal","statusText","event","preventDefault","span"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tSpinner,\n\tVisuallyHidden,\n\t__unstableCompositeItem as CompositeItem,\n} from '@wordpress/components';\nimport { createInterpolateElement } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { getBlockType } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockRatings from '../block-ratings';\nimport DownloadableBlockIcon from '../downloadable-block-icon';\nimport DownloadableBlockNotice from '../downloadable-block-notice';\nimport { store as blockDirectoryStore } from '../../store';\n\n// Return the appropriate block item label, given the block data and status.\nfunction getDownloadableBlockLabel(\n\t{ title, rating, ratingCount },\n\t{ hasNotice, isInstalled, isInstalling }\n) {\n\tconst stars = Math.round( rating / 0.5 ) * 0.5;\n\n\tif ( ! isInstalled && hasNotice ) {\n\t\t/* translators: %1$s: block title */\n\t\treturn sprintf( 'Retry installing %s.', decodeEntities( title ) );\n\t}\n\n\tif ( isInstalled ) {\n\t\t/* translators: %1$s: block title */\n\t\treturn sprintf( 'Add %s.', decodeEntities( title ) );\n\t}\n\n\tif ( isInstalling ) {\n\t\t/* translators: %1$s: block title */\n\t\treturn sprintf( 'Installing %s.', decodeEntities( title ) );\n\t}\n\n\t// No ratings yet, just use the title.\n\tif ( ratingCount < 1 ) {\n\t\t/* translators: %1$s: block title */\n\t\treturn sprintf( 'Install %s.', decodeEntities( title ) );\n\t}\n\n\treturn sprintf(\n\t\t/* translators: %1$s: block title, %2$s: average rating, %3$s: total ratings count. */\n\t\t_n(\n\t\t\t'Install %1$s. %2$s stars with %3$s review.',\n\t\t\t'Install %1$s. %2$s stars with %3$s reviews.',\n\t\t\tratingCount\n\t\t),\n\t\tdecodeEntities( title ),\n\t\tstars,\n\t\tratingCount\n\t);\n}\n\nfunction DownloadableBlockListItem( { composite, item, onClick } ) {\n\tconst { author, description, icon, rating, title } = item;\n\t// getBlockType returns a block object if this block exists, or null if not.\n\tconst isInstalled = !! getBlockType( item.name );\n\n\tconst { hasNotice, isInstalling, isInstallable } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getErrorNoticeForBlock, isInstalling: isBlockInstalling } =\n\t\t\t\tselect( blockDirectoryStore );\n\t\t\tconst notice = getErrorNoticeForBlock( item.id );\n\t\t\tconst hasFatal = notice && notice.isFatal;\n\t\t\treturn {\n\t\t\t\thasNotice: !! notice,\n\t\t\t\tisInstalling: isBlockInstalling( item.id ),\n\t\t\t\tisInstallable: ! hasFatal,\n\t\t\t};\n\t\t},\n\t\t[ item ]\n\t);\n\n\tlet statusText = '';\n\tif ( isInstalled ) {\n\t\tstatusText = __( 'Installed!' );\n\t} else if ( isInstalling ) {\n\t\tstatusText = __( 'Installing…' );\n\t}\n\n\treturn (\n\t\t<CompositeItem\n\t\t\t__experimentalIsFocusable\n\t\t\trole=\"option\"\n\t\t\tas={ Button }\n\t\t\t{ ...composite }\n\t\t\tclassName=\"block-directory-downloadable-block-list-item\"\n\t\t\tonClick={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick();\n\t\t\t} }\n\t\t\tisBusy={ isInstalling }\n\t\t\tdisabled={ isInstalling || ! isInstallable }\n\t\t\tlabel={ getDownloadableBlockLabel( item, {\n\t\t\t\thasNotice,\n\t\t\t\tisInstalled,\n\t\t\t\tisInstalling,\n\t\t\t} ) }\n\t\t\tshowTooltip={ true }\n\t\t\ttooltipPosition=\"top center\"\n\t\t>\n\t\t\t<div className=\"block-directory-downloadable-block-list-item__icon\">\n\t\t\t\t<DownloadableBlockIcon icon={ icon } title={ title } />\n\t\t\t\t{ isInstalling ? (\n\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__spinner\">\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\t<BlockRatings rating={ rating } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<span className=\"block-directory-downloadable-block-list-item__details\">\n\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__title\">\n\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t/* translators: %1$s: block title, %2$s: author name. */\n\t\t\t\t\t\t\t__( '%1$s <span>by %2$s</span>' ),\n\t\t\t\t\t\t\tdecodeEntities( title ),\n\t\t\t\t\t\t\tauthor\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tspan: (\n\t\t\t\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__author\" />\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t{ hasNotice ? (\n\t\t\t\t\t<DownloadableBlockNotice block={ item } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__desc\">\n\t\t\t\t\t\t\t{ !! statusText\n\t\t\t\t\t\t\t\t? statusText\n\t\t\t\t\t\t\t\t: decodeEntities( description ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t{ isInstallable &&\n\t\t\t\t\t\t\t! ( isInstalled || isInstalling ) && (\n\t\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t\t{ __( 'Install block' ) }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</span>\n\t\t</CompositeItem>\n\t);\n}\n\nexport default DownloadableBlockListItem;\n"]}
@@ -10,10 +10,9 @@ import { useSelect } from '@wordpress/data';
10
10
  */
11
11
 
12
12
  import { store as blockDirectoryStore } from '../../store';
13
- export const DownloadableBlockNotice = _ref => {
14
- let {
15
- block
16
- } = _ref;
13
+ export const DownloadableBlockNotice = ({
14
+ block
15
+ }) => {
17
16
  const errorNotice = useSelect(select => select(blockDirectoryStore).getErrorNoticeForBlock(block.id), [block]);
18
17
 
19
18
  if (!errorNotice) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-block-notice/index.js"],"names":["__","useSelect","store","blockDirectoryStore","DownloadableBlockNotice","block","errorNotice","select","getErrorNoticeForBlock","id","message","isFatal"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,mBAAlB,QAA6C,aAA7C;AAEA,OAAO,MAAMC,uBAAuB,GAAG,QAAiB;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACvD,QAAMC,WAAW,GAAGL,SAAS,CAC1BM,MAAF,IACCA,MAAM,CAAEJ,mBAAF,CAAN,CAA8BK,sBAA9B,CAAsDH,KAAK,CAACI,EAA5D,CAF2B,EAG5B,CAAEJ,KAAF,CAH4B,CAA7B;;AAMA,MAAK,CAAEC,WAAP,EAAqB;AACpB,WAAO,IAAP;AACA;;AAED,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGA,WAAW,CAACI,OADf,EAEGJ,WAAW,CAACK,OAAZ,GACC,MAAMX,EAAE,CAAE,yBAAF,CADT,GAEC,IAJJ,CADD,CADD;AAUA,CArBM;AAuBP,eAAeI,uBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockDirectoryStore } from '../../store';\n\nexport const DownloadableBlockNotice = ( { block } ) => {\n\tconst errorNotice = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockDirectoryStore ).getErrorNoticeForBlock( block.id ),\n\t\t[ block ]\n\t);\n\n\tif ( ! errorNotice ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-directory-downloadable-block-notice\">\n\t\t\t<div className=\"block-directory-downloadable-block-notice__content\">\n\t\t\t\t{ errorNotice.message }\n\t\t\t\t{ errorNotice.isFatal\n\t\t\t\t\t? ' ' + __( 'Try reloading the page.' )\n\t\t\t\t\t: null }\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default DownloadableBlockNotice;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-block-notice/index.js"],"names":["__","useSelect","store","blockDirectoryStore","DownloadableBlockNotice","block","errorNotice","select","getErrorNoticeForBlock","id","message","isFatal"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,mBAAlB,QAA6C,aAA7C;AAEA,OAAO,MAAMC,uBAAuB,GAAG,CAAE;AAAEC,EAAAA;AAAF,CAAF,KAAiB;AACvD,QAAMC,WAAW,GAAGL,SAAS,CAC1BM,MAAF,IACCA,MAAM,CAAEJ,mBAAF,CAAN,CAA8BK,sBAA9B,CAAsDH,KAAK,CAACI,EAA5D,CAF2B,EAG5B,CAAEJ,KAAF,CAH4B,CAA7B;;AAMA,MAAK,CAAEC,WAAP,EAAqB;AACpB,WAAO,IAAP;AACA;;AAED,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGA,WAAW,CAACI,OADf,EAEGJ,WAAW,CAACK,OAAZ,GACC,MAAMX,EAAE,CAAE,yBAAF,CADT,GAEC,IAJJ,CADD,CADD;AAUA,CArBM;AAuBP,eAAeI,uBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockDirectoryStore } from '../../store';\n\nexport const DownloadableBlockNotice = ( { block } ) => {\n\tconst errorNotice = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockDirectoryStore ).getErrorNoticeForBlock( block.id ),\n\t\t[ block ]\n\t);\n\n\tif ( ! errorNotice ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-directory-downloadable-block-notice\">\n\t\t\t<div className=\"block-directory-downloadable-block-notice__content\">\n\t\t\t\t{ errorNotice.message }\n\t\t\t\t{ errorNotice.isFatal\n\t\t\t\t\t? ' ' + __( 'Try reloading the page.' )\n\t\t\t\t\t: null }\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default DownloadableBlockNotice;\n"]}
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import { createElement } from "@wordpress/element";
3
2
 
4
3
  /**
@@ -17,12 +16,11 @@ import { store as blockDirectoryStore } from '../../store';
17
16
 
18
17
  const noop = () => {};
19
18
 
20
- function DownloadableBlocksList(_ref) {
21
- let {
22
- items,
23
- onHover = noop,
24
- onSelect
25
- } = _ref;
19
+ function DownloadableBlocksList({
20
+ items,
21
+ onHover = noop,
22
+ onSelect
23
+ }) {
26
24
  const composite = useCompositeState();
27
25
  const {
28
26
  installBlockType
@@ -32,11 +30,11 @@ function DownloadableBlocksList(_ref) {
32
30
  return null;
33
31
  }
34
32
 
35
- return createElement(Composite, _extends({}, composite, {
33
+ return createElement(Composite, { ...composite,
36
34
  role: "listbox",
37
35
  className: "block-directory-downloadable-blocks-list",
38
36
  "aria-label": __('Blocks available for install')
39
- }), items.map(item => {
37
+ }, items.map(item => {
40
38
  return createElement(DownloadableBlockListItem, {
41
39
  key: item.id,
42
40
  composite: composite,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-blocks-list/index.js"],"names":["__","__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","getBlockType","useDispatch","DownloadableBlockListItem","store","blockDirectoryStore","noop","DownloadableBlocksList","items","onHover","onSelect","composite","installBlockType","length","map","item","id","name","then","success"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SACCC,mBAAmB,IAAIC,SADxB,EAECC,2BAA2B,IAAIC,iBAFhC,QAGO,uBAHP;AAIA,SAASC,YAAT,QAA6B,mBAA7B;AACA,SAASC,WAAT,QAA4B,iBAA5B;AAEA;AACA;AACA;;AACA,OAAOC,yBAAP,MAAsC,iCAAtC;AACA,SAASC,KAAK,IAAIC,mBAAlB,QAA6C,aAA7C;;AAEA,MAAMC,IAAI,GAAG,MAAM,CAAE,CAArB;;AAEA,SAASC,sBAAT,OAAuE;AAAA,MAAtC;AAAEC,IAAAA,KAAF;AAASC,IAAAA,OAAO,GAAGH,IAAnB;AAAyBI,IAAAA;AAAzB,GAAsC;AACtE,QAAMC,SAAS,GAAGX,iBAAiB,EAAnC;AACA,QAAM;AAAEY,IAAAA;AAAF,MAAuBV,WAAW,CAAEG,mBAAF,CAAxC;;AAEA,MAAK,CAAEG,KAAK,CAACK,MAAb,EAAsB;AACrB,WAAO,IAAP;AACA;;AAED,SACC,cAAC,SAAD,eACMF,SADN;AAEC,IAAA,IAAI,EAAC,SAFN;AAGC,IAAA,SAAS,EAAC,0CAHX;AAIC,kBAAaf,EAAE,CAAE,8BAAF;AAJhB,MAMGY,KAAK,CAACM,GAAN,CAAaC,IAAF,IAAY;AACxB,WACC,cAAC,yBAAD;AACC,MAAA,GAAG,EAAGA,IAAI,CAACC,EADZ;AAEC,MAAA,SAAS,EAAGL,SAFb;AAGC,MAAA,OAAO,EAAG,MAAM;AACf;AACA;AACA;AACA,YAAKV,YAAY,CAAEc,IAAI,CAACE,IAAP,CAAjB,EAAiC;AAChCP,UAAAA,QAAQ,CAAEK,IAAF,CAAR;AACA,SAFD,MAEO;AACNH,UAAAA,gBAAgB,CAAEG,IAAF,CAAhB,CAAyBG,IAAzB,CAAiCC,OAAF,IAAe;AAC7C,gBAAKA,OAAL,EAAe;AACdT,cAAAA,QAAQ,CAAEK,IAAF,CAAR;AACA;AACD,WAJD;AAKA;;AACDN,QAAAA,OAAO,CAAE,IAAF,CAAP;AACA,OAjBF;AAkBC,MAAA,OAAO,EAAGA,OAlBX;AAmBC,MAAA,IAAI,EAAGM;AAnBR,MADD;AAuBA,GAxBC,CANH,CADD;AAkCA;;AAED,eAAeR,sBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n} from '@wordpress/components';\nimport { getBlockType } from '@wordpress/blocks';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport DownloadableBlockListItem from '../downloadable-block-list-item';\nimport { store as blockDirectoryStore } from '../../store';\n\nconst noop = () => {};\n\nfunction DownloadableBlocksList( { items, onHover = noop, onSelect } ) {\n\tconst composite = useCompositeState();\n\tconst { installBlockType } = useDispatch( blockDirectoryStore );\n\n\tif ( ! items.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Composite\n\t\t\t{ ...composite }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-directory-downloadable-blocks-list\"\n\t\t\taria-label={ __( 'Blocks available for install' ) }\n\t\t>\n\t\t\t{ items.map( ( item ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DownloadableBlockListItem\n\t\t\t\t\t\tkey={ item.id }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t// Check if the block is registered (`getBlockType`\n\t\t\t\t\t\t\t// will return an object). If so, insert the block.\n\t\t\t\t\t\t\t// This prevents installing existing plugins.\n\t\t\t\t\t\t\tif ( getBlockType( item.name ) ) {\n\t\t\t\t\t\t\t\tonSelect( item );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tinstallBlockType( item ).then( ( success ) => {\n\t\t\t\t\t\t\t\t\tif ( success ) {\n\t\t\t\t\t\t\t\t\t\tonSelect( item );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonHover( null );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n\nexport default DownloadableBlocksList;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-blocks-list/index.js"],"names":["__","__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","getBlockType","useDispatch","DownloadableBlockListItem","store","blockDirectoryStore","noop","DownloadableBlocksList","items","onHover","onSelect","composite","installBlockType","length","map","item","id","name","then","success"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SACCC,mBAAmB,IAAIC,SADxB,EAECC,2BAA2B,IAAIC,iBAFhC,QAGO,uBAHP;AAIA,SAASC,YAAT,QAA6B,mBAA7B;AACA,SAASC,WAAT,QAA4B,iBAA5B;AAEA;AACA;AACA;;AACA,OAAOC,yBAAP,MAAsC,iCAAtC;AACA,SAASC,KAAK,IAAIC,mBAAlB,QAA6C,aAA7C;;AAEA,MAAMC,IAAI,GAAG,MAAM,CAAE,CAArB;;AAEA,SAASC,sBAAT,CAAiC;AAAEC,EAAAA,KAAF;AAASC,EAAAA,OAAO,GAAGH,IAAnB;AAAyBI,EAAAA;AAAzB,CAAjC,EAAuE;AACtE,QAAMC,SAAS,GAAGX,iBAAiB,EAAnC;AACA,QAAM;AAAEY,IAAAA;AAAF,MAAuBV,WAAW,CAAEG,mBAAF,CAAxC;;AAEA,MAAK,CAAEG,KAAK,CAACK,MAAb,EAAsB;AACrB,WAAO,IAAP;AACA;;AAED,SACC,cAAC,SAAD,OACMF,SADN;AAEC,IAAA,IAAI,EAAC,SAFN;AAGC,IAAA,SAAS,EAAC,0CAHX;AAIC,kBAAaf,EAAE,CAAE,8BAAF;AAJhB,KAMGY,KAAK,CAACM,GAAN,CAAaC,IAAF,IAAY;AACxB,WACC,cAAC,yBAAD;AACC,MAAA,GAAG,EAAGA,IAAI,CAACC,EADZ;AAEC,MAAA,SAAS,EAAGL,SAFb;AAGC,MAAA,OAAO,EAAG,MAAM;AACf;AACA;AACA;AACA,YAAKV,YAAY,CAAEc,IAAI,CAACE,IAAP,CAAjB,EAAiC;AAChCP,UAAAA,QAAQ,CAAEK,IAAF,CAAR;AACA,SAFD,MAEO;AACNH,UAAAA,gBAAgB,CAAEG,IAAF,CAAhB,CAAyBG,IAAzB,CAAiCC,OAAF,IAAe;AAC7C,gBAAKA,OAAL,EAAe;AACdT,cAAAA,QAAQ,CAAEK,IAAF,CAAR;AACA;AACD,WAJD;AAKA;;AACDN,QAAAA,OAAO,CAAE,IAAF,CAAP;AACA,OAjBF;AAkBC,MAAA,OAAO,EAAGA,OAlBX;AAmBC,MAAA,IAAI,EAAGM;AAnBR,MADD;AAuBA,GAxBC,CANH,CADD;AAkCA;;AAED,eAAeR,sBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n} from '@wordpress/components';\nimport { getBlockType } from '@wordpress/blocks';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport DownloadableBlockListItem from '../downloadable-block-list-item';\nimport { store as blockDirectoryStore } from '../../store';\n\nconst noop = () => {};\n\nfunction DownloadableBlocksList( { items, onHover = noop, onSelect } ) {\n\tconst composite = useCompositeState();\n\tconst { installBlockType } = useDispatch( blockDirectoryStore );\n\n\tif ( ! items.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Composite\n\t\t\t{ ...composite }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-directory-downloadable-blocks-list\"\n\t\t\taria-label={ __( 'Blocks available for install' ) }\n\t\t>\n\t\t\t{ items.map( ( item ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DownloadableBlockListItem\n\t\t\t\t\t\tkey={ item.id }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t// Check if the block is registered (`getBlockType`\n\t\t\t\t\t\t\t// will return an object). If so, insert the block.\n\t\t\t\t\t\t\t// This prevents installing existing plugins.\n\t\t\t\t\t\t\tif ( getBlockType( item.name ) ) {\n\t\t\t\t\t\t\t\tonSelect( item );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tinstallBlockType( item ).then( ( success ) => {\n\t\t\t\t\t\t\t\t\tif ( success ) {\n\t\t\t\t\t\t\t\t\t\tonSelect( item );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonHover( null );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n\nexport default DownloadableBlocksList;\n"]}
@@ -19,17 +19,15 @@ import DownloadableBlocksNoResults from './no-results';
19
19
  import { store as blockDirectoryStore } from '../../store';
20
20
  const EMPTY_ARRAY = [];
21
21
 
22
- function DownloadableBlocksPanel(_ref) {
23
- let {
24
- downloadableItems,
25
- onSelect,
26
- onHover,
27
- hasLocalBlocks,
28
- hasPermission,
29
- isLoading,
30
- isTyping
31
- } = _ref;
32
-
22
+ function DownloadableBlocksPanel({
23
+ downloadableItems,
24
+ onSelect,
25
+ onHover,
26
+ hasLocalBlocks,
27
+ hasPermission,
28
+ isLoading,
29
+ isTyping
30
+ }) {
33
31
  if (typeof hasPermission === 'undefined' || isLoading || isTyping) {
34
32
  return createElement(Fragment, null, hasPermission && !hasLocalBlocks && createElement(Fragment, null, createElement("p", {
35
33
  className: "block-directory-downloadable-blocks-panel__no-local"
@@ -58,11 +56,10 @@ function DownloadableBlocksPanel(_ref) {
58
56
  })) : !hasLocalBlocks && createElement(DownloadableBlocksNoResults, null);
59
57
  }
60
58
 
61
- export default compose([withSelect((select, _ref2) => {
62
- let {
63
- filterValue,
64
- rootClientId = null
65
- } = _ref2;
59
+ export default compose([withSelect((select, {
60
+ filterValue,
61
+ rootClientId = null
62
+ }) => {
66
63
  const {
67
64
  getDownloadableBlocks,
68
65
  isRequestingDownloadableBlocks
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-blocks-panel/index.js"],"names":["__","Spinner","compose","store","blockEditorStore","coreStore","withSelect","DownloadableBlocksList","DownloadableBlocksInserterPanel","DownloadableBlocksNoResults","blockDirectoryStore","EMPTY_ARRAY","DownloadableBlocksPanel","downloadableItems","onSelect","onHover","hasLocalBlocks","hasPermission","isLoading","isTyping","length","select","filterValue","rootClientId","getDownloadableBlocks","isRequestingDownloadableBlocks","canInsertBlockType","canUser","getInstallableBlocks","term","downloadableBlocks","installableBlocks","filter","block"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Spinner } from '@wordpress/components';\nimport { compose } from '@wordpress/compose';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport DownloadableBlocksList from '../downloadable-blocks-list';\nimport DownloadableBlocksInserterPanel from './inserter-panel';\nimport DownloadableBlocksNoResults from './no-results';\nimport { store as blockDirectoryStore } from '../../store';\n\nconst EMPTY_ARRAY = [];\n\nfunction DownloadableBlocksPanel( {\n\tdownloadableItems,\n\tonSelect,\n\tonHover,\n\thasLocalBlocks,\n\thasPermission,\n\tisLoading,\n\tisTyping,\n} ) {\n\tif ( typeof hasPermission === 'undefined' || isLoading || isTyping ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ hasPermission && ! hasLocalBlocks && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<p className=\"block-directory-downloadable-blocks-panel__no-local\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'No results available from your installed blocks.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<div className=\"block-editor-inserter__quick-inserter-separator\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<div className=\"block-directory-downloadable-blocks-panel has-blocks-loading\">\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( false === hasPermission ) {\n\t\tif ( ! hasLocalBlocks ) {\n\t\t\treturn <DownloadableBlocksNoResults />;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\treturn !! downloadableItems.length ? (\n\t\t<DownloadableBlocksInserterPanel\n\t\t\tdownloadableItems={ downloadableItems }\n\t\t\thasLocalBlocks={ hasLocalBlocks }\n\t\t>\n\t\t\t<DownloadableBlocksList\n\t\t\t\titems={ downloadableItems }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tonHover={ onHover }\n\t\t\t/>\n\t\t</DownloadableBlocksInserterPanel>\n\t) : (\n\t\t! hasLocalBlocks && <DownloadableBlocksNoResults />\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select, { filterValue, rootClientId = null } ) => {\n\t\tconst { getDownloadableBlocks, isRequestingDownloadableBlocks } =\n\t\t\tselect( blockDirectoryStore );\n\t\tconst { canInsertBlockType } = select( blockEditorStore );\n\n\t\tconst hasPermission = select( coreStore ).canUser(\n\t\t\t'read',\n\t\t\t'block-directory/search'\n\t\t);\n\n\t\tfunction getInstallableBlocks( term ) {\n\t\t\tconst downloadableBlocks = getDownloadableBlocks( term );\n\t\t\tconst installableBlocks = downloadableBlocks.filter( ( block ) =>\n\t\t\t\tcanInsertBlockType( block, rootClientId, true )\n\t\t\t);\n\n\t\t\tif ( downloadableBlocks.length === installableBlocks.length ) {\n\t\t\t\treturn downloadableBlocks;\n\t\t\t}\n\t\t\treturn installableBlocks;\n\t\t}\n\n\t\tlet downloadableItems = hasPermission\n\t\t\t? getInstallableBlocks( filterValue )\n\t\t\t: [];\n\n\t\tif ( downloadableItems.length === 0 ) {\n\t\t\tdownloadableItems = EMPTY_ARRAY;\n\t\t}\n\n\t\tconst isLoading = isRequestingDownloadableBlocks( filterValue );\n\n\t\treturn {\n\t\t\tdownloadableItems,\n\t\t\thasPermission,\n\t\t\tisLoading,\n\t\t};\n\t} ),\n] )( DownloadableBlocksPanel );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-blocks-panel/index.js"],"names":["__","Spinner","compose","store","blockEditorStore","coreStore","withSelect","DownloadableBlocksList","DownloadableBlocksInserterPanel","DownloadableBlocksNoResults","blockDirectoryStore","EMPTY_ARRAY","DownloadableBlocksPanel","downloadableItems","onSelect","onHover","hasLocalBlocks","hasPermission","isLoading","isTyping","length","select","filterValue","rootClientId","getDownloadableBlocks","isRequestingDownloadableBlocks","canInsertBlockType","canUser","getInstallableBlocks","term","downloadableBlocks","installableBlocks","filter","block"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Spinner } from '@wordpress/components';\nimport { compose } from '@wordpress/compose';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport DownloadableBlocksList from '../downloadable-blocks-list';\nimport DownloadableBlocksInserterPanel from './inserter-panel';\nimport DownloadableBlocksNoResults from './no-results';\nimport { store as blockDirectoryStore } from '../../store';\n\nconst EMPTY_ARRAY = [];\n\nfunction DownloadableBlocksPanel( {\n\tdownloadableItems,\n\tonSelect,\n\tonHover,\n\thasLocalBlocks,\n\thasPermission,\n\tisLoading,\n\tisTyping,\n} ) {\n\tif ( typeof hasPermission === 'undefined' || isLoading || isTyping ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ hasPermission && ! hasLocalBlocks && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<p className=\"block-directory-downloadable-blocks-panel__no-local\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'No results available from your installed blocks.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<div className=\"block-editor-inserter__quick-inserter-separator\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<div className=\"block-directory-downloadable-blocks-panel has-blocks-loading\">\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( false === hasPermission ) {\n\t\tif ( ! hasLocalBlocks ) {\n\t\t\treturn <DownloadableBlocksNoResults />;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\treturn !! downloadableItems.length ? (\n\t\t<DownloadableBlocksInserterPanel\n\t\t\tdownloadableItems={ downloadableItems }\n\t\t\thasLocalBlocks={ hasLocalBlocks }\n\t\t>\n\t\t\t<DownloadableBlocksList\n\t\t\t\titems={ downloadableItems }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tonHover={ onHover }\n\t\t\t/>\n\t\t</DownloadableBlocksInserterPanel>\n\t) : (\n\t\t! hasLocalBlocks && <DownloadableBlocksNoResults />\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select, { filterValue, rootClientId = null } ) => {\n\t\tconst { getDownloadableBlocks, isRequestingDownloadableBlocks } =\n\t\t\tselect( blockDirectoryStore );\n\t\tconst { canInsertBlockType } = select( blockEditorStore );\n\n\t\tconst hasPermission = select( coreStore ).canUser(\n\t\t\t'read',\n\t\t\t'block-directory/search'\n\t\t);\n\n\t\tfunction getInstallableBlocks( term ) {\n\t\t\tconst downloadableBlocks = getDownloadableBlocks( term );\n\t\t\tconst installableBlocks = downloadableBlocks.filter( ( block ) =>\n\t\t\t\tcanInsertBlockType( block, rootClientId, true )\n\t\t\t);\n\n\t\t\tif ( downloadableBlocks.length === installableBlocks.length ) {\n\t\t\t\treturn downloadableBlocks;\n\t\t\t}\n\t\t\treturn installableBlocks;\n\t\t}\n\n\t\tlet downloadableItems = hasPermission\n\t\t\t? getInstallableBlocks( filterValue )\n\t\t\t: [];\n\n\t\tif ( downloadableItems.length === 0 ) {\n\t\t\tdownloadableItems = EMPTY_ARRAY;\n\t\t}\n\n\t\tconst isLoading = isRequestingDownloadableBlocks( filterValue );\n\n\t\treturn {\n\t\t\tdownloadableItems,\n\t\t\thasPermission,\n\t\t\tisLoading,\n\t\t};\n\t} ),\n] )( DownloadableBlocksPanel );\n"]}
@@ -7,12 +7,11 @@ import { __, _n, sprintf } from '@wordpress/i18n';
7
7
  import { useEffect } from '@wordpress/element';
8
8
  import { speak } from '@wordpress/a11y';
9
9
 
10
- function DownloadableBlocksInserterPanel(_ref) {
11
- let {
12
- children,
13
- downloadableItems,
14
- hasLocalBlocks
15
- } = _ref;
10
+ function DownloadableBlocksInserterPanel({
11
+ children,
12
+ downloadableItems,
13
+ hasLocalBlocks
14
+ }) {
16
15
  const count = downloadableItems.length;
17
16
  useEffect(() => {
18
17
  speak(sprintf(
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-blocks-panel/inserter-panel.js"],"names":["__","_n","sprintf","useEffect","speak","DownloadableBlocksInserterPanel","children","downloadableItems","hasLocalBlocks","count","length"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,EAAb,EAAiBC,OAAjB,QAAgC,iBAAhC;AACA,SAASC,SAAT,QAA0B,oBAA1B;AACA,SAASC,KAAT,QAAsB,iBAAtB;;AAEA,SAASC,+BAAT,OAII;AAAA,MAJsC;AACzCC,IAAAA,QADyC;AAEzCC,IAAAA,iBAFyC;AAGzCC,IAAAA;AAHyC,GAItC;AACH,QAAMC,KAAK,GAAGF,iBAAiB,CAACG,MAAhC;AACAP,EAAAA,SAAS,CAAE,MAAM;AAChBC,IAAAA,KAAK,CACJF,OAAO;AACN;AACAD,IAAAA,EAAE,CACD,8CADC,EAED,gDAFC,EAGDQ,KAHC,CAFI,EAONA,KAPM,CADH,CAAL;AAWA,GAZQ,EAYN,CAAEA,KAAF,CAZM,CAAT;AAcA,SACC,8BACG,CAAED,cAAF,IACD;AAAG,IAAA,SAAS,EAAC;AAAb,KACGR,EAAE,CAAE,kDAAF,CADL,CAFF,EAOC;AAAK,IAAA,SAAS,EAAC;AAAf,IAPD,EASC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAI,IAAA,SAAS,EAAC;AAAd,KACGA,EAAE,CAAE,sBAAF,CADL,CADD,EAIC;AAAG,IAAA,SAAS,EAAC;AAAb,KACGA,EAAE,CACH,oDADG,CADL,CAJD,CADD,EAWGM,QAXH,CATD,CADD;AAyBA;;AAED,eAAeD,+BAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { speak } from '@wordpress/a11y';\n\nfunction DownloadableBlocksInserterPanel( {\n\tchildren,\n\tdownloadableItems,\n\thasLocalBlocks,\n} ) {\n\tconst count = downloadableItems.length;\n\tuseEffect( () => {\n\t\tspeak(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %d: number of available blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'%d additional block is available to install.',\n\t\t\t\t\t'%d additional blocks are available to install.',\n\t\t\t\t\tcount\n\t\t\t\t),\n\t\t\t\tcount\n\t\t\t)\n\t\t);\n\t}, [ count ] );\n\n\treturn (\n\t\t<>\n\t\t\t{ ! hasLocalBlocks && (\n\t\t\t\t<p className=\"block-directory-downloadable-blocks-panel__no-local\">\n\t\t\t\t\t{ __( 'No results available from your installed blocks.' ) }\n\t\t\t\t</p>\n\t\t\t) }\n\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-separator\" />\n\n\t\t\t<div className=\"block-directory-downloadable-blocks-panel\">\n\t\t\t\t<div className=\"block-directory-downloadable-blocks-panel__header\">\n\t\t\t\t\t<h2 className=\"block-directory-downloadable-blocks-panel__title\">\n\t\t\t\t\t\t{ __( 'Available to install' ) }\n\t\t\t\t\t</h2>\n\t\t\t\t\t<p className=\"block-directory-downloadable-blocks-panel__description\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select a block to install and add it to your post.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default DownloadableBlocksInserterPanel;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-blocks-panel/inserter-panel.js"],"names":["__","_n","sprintf","useEffect","speak","DownloadableBlocksInserterPanel","children","downloadableItems","hasLocalBlocks","count","length"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,EAAb,EAAiBC,OAAjB,QAAgC,iBAAhC;AACA,SAASC,SAAT,QAA0B,oBAA1B;AACA,SAASC,KAAT,QAAsB,iBAAtB;;AAEA,SAASC,+BAAT,CAA0C;AACzCC,EAAAA,QADyC;AAEzCC,EAAAA,iBAFyC;AAGzCC,EAAAA;AAHyC,CAA1C,EAII;AACH,QAAMC,KAAK,GAAGF,iBAAiB,CAACG,MAAhC;AACAP,EAAAA,SAAS,CAAE,MAAM;AAChBC,IAAAA,KAAK,CACJF,OAAO;AACN;AACAD,IAAAA,EAAE,CACD,8CADC,EAED,gDAFC,EAGDQ,KAHC,CAFI,EAONA,KAPM,CADH,CAAL;AAWA,GAZQ,EAYN,CAAEA,KAAF,CAZM,CAAT;AAcA,SACC,8BACG,CAAED,cAAF,IACD;AAAG,IAAA,SAAS,EAAC;AAAb,KACGR,EAAE,CAAE,kDAAF,CADL,CAFF,EAOC;AAAK,IAAA,SAAS,EAAC;AAAf,IAPD,EASC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAI,IAAA,SAAS,EAAC;AAAd,KACGA,EAAE,CAAE,sBAAF,CADL,CADD,EAIC;AAAG,IAAA,SAAS,EAAC;AAAb,KACGA,EAAE,CACH,oDADG,CADL,CAJD,CADD,EAWGM,QAXH,CATD,CADD;AAyBA;;AAED,eAAeD,+BAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { speak } from '@wordpress/a11y';\n\nfunction DownloadableBlocksInserterPanel( {\n\tchildren,\n\tdownloadableItems,\n\thasLocalBlocks,\n} ) {\n\tconst count = downloadableItems.length;\n\tuseEffect( () => {\n\t\tspeak(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %d: number of available blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'%d additional block is available to install.',\n\t\t\t\t\t'%d additional blocks are available to install.',\n\t\t\t\t\tcount\n\t\t\t\t),\n\t\t\t\tcount\n\t\t\t)\n\t\t);\n\t}, [ count ] );\n\n\treturn (\n\t\t<>\n\t\t\t{ ! hasLocalBlocks && (\n\t\t\t\t<p className=\"block-directory-downloadable-blocks-panel__no-local\">\n\t\t\t\t\t{ __( 'No results available from your installed blocks.' ) }\n\t\t\t\t</p>\n\t\t\t) }\n\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-separator\" />\n\n\t\t\t<div className=\"block-directory-downloadable-blocks-panel\">\n\t\t\t\t<div className=\"block-directory-downloadable-blocks-panel__header\">\n\t\t\t\t\t<h2 className=\"block-directory-downloadable-blocks-panel__title\">\n\t\t\t\t\t\t{ __( 'Available to install' ) }\n\t\t\t\t\t</h2>\n\t\t\t\t\t<p className=\"block-directory-downloadable-blocks-panel__description\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select a block to install and add it to your post.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default DownloadableBlocksInserterPanel;\n"]}
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import { createElement } from "@wordpress/element";
3
2
 
4
3
  /**
@@ -31,12 +30,9 @@ const getInstallMissing = OriginalComponent => props => {
31
30
  const {
32
31
  getDownloadableBlocks
33
32
  } = select(blockDirectoryStore);
34
- const blocks = getDownloadableBlocks('block:' + originalName).filter(_ref => {
35
- let {
36
- name
37
- } = _ref;
38
- return originalName === name;
39
- });
33
+ const blocks = getDownloadableBlocks('block:' + originalName).filter(({
34
+ name
35
+ }) => originalName === name);
40
36
  return {
41
37
  hasPermission: select(coreStore).canUser('read', 'block-directory/search'),
42
38
  block: blocks.length && blocks[0]
@@ -44,19 +40,19 @@ const getInstallMissing = OriginalComponent => props => {
44
40
  }, [originalName]); // The user can't install blocks, or the block isn't available for download.
45
41
 
46
42
  if (!hasPermission || !block) {
47
- return createElement(OriginalComponent, props);
43
+ return createElement(OriginalComponent, { ...props
44
+ });
48
45
  }
49
46
 
50
- return createElement(ModifiedWarning, _extends({}, props, {
47
+ return createElement(ModifiedWarning, { ...props,
51
48
  originalBlock: block
52
- }));
49
+ });
53
50
  };
54
51
 
55
- const ModifiedWarning = _ref2 => {
56
- let {
57
- originalBlock,
58
- ...props
59
- } = _ref2;
52
+ const ModifiedWarning = ({
53
+ originalBlock,
54
+ ...props
55
+ }) => {
60
56
  const {
61
57
  originalName,
62
58
  originalUndelimitedContent,
@@ -101,7 +97,8 @@ const ModifiedWarning = _ref2 => {
101
97
  }, __('Keep as HTML')));
102
98
  }
103
99
 
104
- return createElement("div", useBlockProps(), createElement(Warning, {
100
+ return createElement("div", { ...useBlockProps()
101
+ }, createElement(Warning, {
105
102
  actions: actions
106
103
  }, messageHTML), createElement(RawHTML, null, originalUndelimitedContent));
107
104
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-directory/src/plugins/get-install-missing/index.js"],"names":["__","sprintf","Button","createBlock","RawHTML","useDispatch","useSelect","store","coreStore","Warning","useBlockProps","blockEditorStore","InstallButton","blockDirectoryStore","getInstallMissing","OriginalComponent","props","originalName","attributes","block","hasPermission","select","getDownloadableBlocks","blocks","filter","name","canUser","length","ModifiedWarning","originalBlock","originalUndelimitedContent","clientId","replaceBlock","convertToHTML","content","hasContent","hasHTMLBlock","canInsertBlockType","getBlockRootClientId","messageHTML","title","actions","push"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { RawHTML } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tWarning,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport InstallButton from './install-button';\nimport { store as blockDirectoryStore } from '../../store';\n\nconst getInstallMissing = ( OriginalComponent ) => ( props ) => {\n\tconst { originalName } = props.attributes;\n\t// Disable reason: This is a valid component, but it's mistaken for a callback.\n\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\tconst { block, hasPermission } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getDownloadableBlocks } = select( blockDirectoryStore );\n\t\t\tconst blocks = getDownloadableBlocks(\n\t\t\t\t'block:' + originalName\n\t\t\t).filter( ( { name } ) => originalName === name );\n\t\t\treturn {\n\t\t\t\thasPermission: select( coreStore ).canUser(\n\t\t\t\t\t'read',\n\t\t\t\t\t'block-directory/search'\n\t\t\t\t),\n\t\t\t\tblock: blocks.length && blocks[ 0 ],\n\t\t\t};\n\t\t},\n\t\t[ originalName ]\n\t);\n\n\t// The user can't install blocks, or the block isn't available for download.\n\tif ( ! hasPermission || ! block ) {\n\t\treturn <OriginalComponent { ...props } />;\n\t}\n\n\treturn <ModifiedWarning { ...props } originalBlock={ block } />;\n};\n\nconst ModifiedWarning = ( { originalBlock, ...props } ) => {\n\tconst { originalName, originalUndelimitedContent, clientId } =\n\t\tprops.attributes;\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst convertToHTML = () => {\n\t\treplaceBlock(\n\t\t\tprops.clientId,\n\t\t\tcreateBlock( 'core/html', {\n\t\t\t\tcontent: originalUndelimitedContent,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst hasContent = !! originalUndelimitedContent;\n\tconst hasHTMLBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn canInsertBlockType(\n\t\t\t\t'core/html',\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tlet messageHTML = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__(\n\t\t\t'Your site doesn’t include support for the %s block. You can try installing the block or remove it entirely.'\n\t\t),\n\t\toriginalBlock.title || originalName\n\t);\n\tconst actions = [\n\t\t<InstallButton\n\t\t\tkey=\"install\"\n\t\t\tblock={ originalBlock }\n\t\t\tattributes={ props.attributes }\n\t\t\tclientId={ props.clientId }\n\t\t/>,\n\t];\n\n\tif ( hasContent && hasHTMLBlock ) {\n\t\tmessageHTML = sprintf(\n\t\t\t/* translators: %s: block name */\n\t\t\t__(\n\t\t\t\t'Your site doesn’t include support for the %s block. You can try installing the block, convert it to a Custom HTML block, or remove it entirely.'\n\t\t\t),\n\t\t\toriginalBlock.title || originalName\n\t\t);\n\t\tactions.push(\n\t\t\t<Button key=\"convert\" onClick={ convertToHTML } variant=\"tertiary\">\n\t\t\t\t{ __( 'Keep as HTML' ) }\n\t\t\t</Button>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...useBlockProps() }>\n\t\t\t<Warning actions={ actions }>{ messageHTML }</Warning>\n\t\t\t<RawHTML>{ originalUndelimitedContent }</RawHTML>\n\t\t</div>\n\t);\n};\n\nexport default getInstallMissing;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-directory/src/plugins/get-install-missing/index.js"],"names":["__","sprintf","Button","createBlock","RawHTML","useDispatch","useSelect","store","coreStore","Warning","useBlockProps","blockEditorStore","InstallButton","blockDirectoryStore","getInstallMissing","OriginalComponent","props","originalName","attributes","block","hasPermission","select","getDownloadableBlocks","blocks","filter","name","canUser","length","ModifiedWarning","originalBlock","originalUndelimitedContent","clientId","replaceBlock","convertToHTML","content","hasContent","hasHTMLBlock","canInsertBlockType","getBlockRootClientId","messageHTML","title","actions","push"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { RawHTML } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tWarning,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport InstallButton from './install-button';\nimport { store as blockDirectoryStore } from '../../store';\n\nconst getInstallMissing = ( OriginalComponent ) => ( props ) => {\n\tconst { originalName } = props.attributes;\n\t// Disable reason: This is a valid component, but it's mistaken for a callback.\n\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\tconst { block, hasPermission } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getDownloadableBlocks } = select( blockDirectoryStore );\n\t\t\tconst blocks = getDownloadableBlocks(\n\t\t\t\t'block:' + originalName\n\t\t\t).filter( ( { name } ) => originalName === name );\n\t\t\treturn {\n\t\t\t\thasPermission: select( coreStore ).canUser(\n\t\t\t\t\t'read',\n\t\t\t\t\t'block-directory/search'\n\t\t\t\t),\n\t\t\t\tblock: blocks.length && blocks[ 0 ],\n\t\t\t};\n\t\t},\n\t\t[ originalName ]\n\t);\n\n\t// The user can't install blocks, or the block isn't available for download.\n\tif ( ! hasPermission || ! block ) {\n\t\treturn <OriginalComponent { ...props } />;\n\t}\n\n\treturn <ModifiedWarning { ...props } originalBlock={ block } />;\n};\n\nconst ModifiedWarning = ( { originalBlock, ...props } ) => {\n\tconst { originalName, originalUndelimitedContent, clientId } =\n\t\tprops.attributes;\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst convertToHTML = () => {\n\t\treplaceBlock(\n\t\t\tprops.clientId,\n\t\t\tcreateBlock( 'core/html', {\n\t\t\t\tcontent: originalUndelimitedContent,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst hasContent = !! originalUndelimitedContent;\n\tconst hasHTMLBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn canInsertBlockType(\n\t\t\t\t'core/html',\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tlet messageHTML = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__(\n\t\t\t'Your site doesn’t include support for the %s block. You can try installing the block or remove it entirely.'\n\t\t),\n\t\toriginalBlock.title || originalName\n\t);\n\tconst actions = [\n\t\t<InstallButton\n\t\t\tkey=\"install\"\n\t\t\tblock={ originalBlock }\n\t\t\tattributes={ props.attributes }\n\t\t\tclientId={ props.clientId }\n\t\t/>,\n\t];\n\n\tif ( hasContent && hasHTMLBlock ) {\n\t\tmessageHTML = sprintf(\n\t\t\t/* translators: %s: block name */\n\t\t\t__(\n\t\t\t\t'Your site doesn’t include support for the %s block. You can try installing the block, convert it to a Custom HTML block, or remove it entirely.'\n\t\t\t),\n\t\t\toriginalBlock.title || originalName\n\t\t);\n\t\tactions.push(\n\t\t\t<Button key=\"convert\" onClick={ convertToHTML } variant=\"tertiary\">\n\t\t\t\t{ __( 'Keep as HTML' ) }\n\t\t\t</Button>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...useBlockProps() }>\n\t\t\t<Warning actions={ actions }>{ messageHTML }</Warning>\n\t\t\t<RawHTML>{ originalUndelimitedContent }</RawHTML>\n\t\t</div>\n\t);\n};\n\nexport default getInstallMissing;\n"]}
@@ -13,12 +13,11 @@ import { store as blockEditorStore } from '@wordpress/block-editor';
13
13
  */
14
14
 
15
15
  import { store as blockDirectoryStore } from '../../store';
16
- export default function InstallButton(_ref) {
17
- let {
18
- attributes,
19
- block,
20
- clientId
21
- } = _ref;
16
+ export default function InstallButton({
17
+ attributes,
18
+ block,
19
+ clientId
20
+ }) {
22
21
  const isInstallingBlock = useSelect(select => select(blockDirectoryStore).isInstalling(block.id), [block.id]);
23
22
  const {
24
23
  installBlockType
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-directory/src/plugins/get-install-missing/install-button.js"],"names":["__","sprintf","Button","createBlock","getBlockType","parse","useSelect","useDispatch","store","blockEditorStore","blockDirectoryStore","InstallButton","attributes","block","clientId","isInstallingBlock","select","isInstalling","id","installBlockType","replaceBlock","then","success","blockType","name","originalBlock","originalContent","innerBlocks","title"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,WAAT,EAAsBC,YAAtB,EAAoCC,KAApC,QAAiD,mBAAjD;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,yBAA1C;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,mBAAlB,QAA6C,aAA7C;AAEA,eAAe,SAASC,aAAT,OAA0D;AAAA,MAAlC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,KAAd;AAAqBC,IAAAA;AAArB,GAAkC;AACxE,QAAMC,iBAAiB,GAAGT,SAAS,CAChCU,MAAF,IAAcA,MAAM,CAAEN,mBAAF,CAAN,CAA8BO,YAA9B,CAA4CJ,KAAK,CAACK,EAAlD,CADoB,EAElC,CAAEL,KAAK,CAACK,EAAR,CAFkC,CAAnC;AAIA,QAAM;AAAEC,IAAAA;AAAF,MAAuBZ,WAAW,CAAEG,mBAAF,CAAxC;AACA,QAAM;AAAEU,IAAAA;AAAF,MAAmBb,WAAW,CAAEE,gBAAF,CAApC;AAEA,SACC,cAAC,MAAD;AACC,IAAA,OAAO,EAAG,MACTU,gBAAgB,CAAEN,KAAF,CAAhB,CAA0BQ,IAA1B,CAAkCC,OAAF,IAAe;AAC9C,UAAKA,OAAL,EAAe;AACd,cAAMC,SAAS,GAAGnB,YAAY,CAAES,KAAK,CAACW,IAAR,CAA9B;AACA,cAAM,CAAEC,aAAF,IAAoBpB,KAAK,CAC9BO,UAAU,CAACc,eADmB,CAA/B;;AAGA,YAAKD,aAAa,IAAIF,SAAtB,EAAkC;AACjCH,UAAAA,YAAY,CACXN,QADW,EAEXX,WAAW,CACVoB,SAAS,CAACC,IADA,EAEVC,aAAa,CAACb,UAFJ,EAGVa,aAAa,CAACE,WAHJ,CAFA,CAAZ;AAQA;AACD;AACD,KAjBD,CAFF;AAqBC,IAAA,QAAQ,EAAGZ,iBArBZ;AAsBC,IAAA,MAAM,EAAGA,iBAtBV;AAuBC,IAAA,OAAO,EAAC;AAvBT,KAyBGd,OAAO;AACR;AACAD,EAAAA,EAAE,CAAE,YAAF,CAFM,EAGRa,KAAK,CAACe,KAHE,CAzBV,CADD;AAiCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { createBlock, getBlockType, parse } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { store as blockDirectoryStore } from '../../store';\n\nexport default function InstallButton( { attributes, block, clientId } ) {\n\tconst isInstallingBlock = useSelect(\n\t\t( select ) => select( blockDirectoryStore ).isInstalling( block.id ),\n\t\t[ block.id ]\n\t);\n\tconst { installBlockType } = useDispatch( blockDirectoryStore );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={ () =>\n\t\t\t\tinstallBlockType( block ).then( ( success ) => {\n\t\t\t\t\tif ( success ) {\n\t\t\t\t\t\tconst blockType = getBlockType( block.name );\n\t\t\t\t\t\tconst [ originalBlock ] = parse(\n\t\t\t\t\t\t\tattributes.originalContent\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( originalBlock && blockType ) {\n\t\t\t\t\t\t\treplaceBlock(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t\t\tblockType.name,\n\t\t\t\t\t\t\t\t\toriginalBlock.attributes,\n\t\t\t\t\t\t\t\t\toriginalBlock.innerBlocks\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t}\n\t\t\tdisabled={ isInstallingBlock }\n\t\t\tisBusy={ isInstallingBlock }\n\t\t\tvariant=\"primary\"\n\t\t>\n\t\t\t{ sprintf(\n\t\t\t\t/* translators: %s: block name */\n\t\t\t\t__( 'Install %s' ),\n\t\t\t\tblock.title\n\t\t\t) }\n\t\t</Button>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-directory/src/plugins/get-install-missing/install-button.js"],"names":["__","sprintf","Button","createBlock","getBlockType","parse","useSelect","useDispatch","store","blockEditorStore","blockDirectoryStore","InstallButton","attributes","block","clientId","isInstallingBlock","select","isInstalling","id","installBlockType","replaceBlock","then","success","blockType","name","originalBlock","originalContent","innerBlocks","title"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,WAAT,EAAsBC,YAAtB,EAAoCC,KAApC,QAAiD,mBAAjD;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,yBAA1C;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,mBAAlB,QAA6C,aAA7C;AAEA,eAAe,SAASC,aAAT,CAAwB;AAAEC,EAAAA,UAAF;AAAcC,EAAAA,KAAd;AAAqBC,EAAAA;AAArB,CAAxB,EAA0D;AACxE,QAAMC,iBAAiB,GAAGT,SAAS,CAChCU,MAAF,IAAcA,MAAM,CAAEN,mBAAF,CAAN,CAA8BO,YAA9B,CAA4CJ,KAAK,CAACK,EAAlD,CADoB,EAElC,CAAEL,KAAK,CAACK,EAAR,CAFkC,CAAnC;AAIA,QAAM;AAAEC,IAAAA;AAAF,MAAuBZ,WAAW,CAAEG,mBAAF,CAAxC;AACA,QAAM;AAAEU,IAAAA;AAAF,MAAmBb,WAAW,CAAEE,gBAAF,CAApC;AAEA,SACC,cAAC,MAAD;AACC,IAAA,OAAO,EAAG,MACTU,gBAAgB,CAAEN,KAAF,CAAhB,CAA0BQ,IAA1B,CAAkCC,OAAF,IAAe;AAC9C,UAAKA,OAAL,EAAe;AACd,cAAMC,SAAS,GAAGnB,YAAY,CAAES,KAAK,CAACW,IAAR,CAA9B;AACA,cAAM,CAAEC,aAAF,IAAoBpB,KAAK,CAC9BO,UAAU,CAACc,eADmB,CAA/B;;AAGA,YAAKD,aAAa,IAAIF,SAAtB,EAAkC;AACjCH,UAAAA,YAAY,CACXN,QADW,EAEXX,WAAW,CACVoB,SAAS,CAACC,IADA,EAEVC,aAAa,CAACb,UAFJ,EAGVa,aAAa,CAACE,WAHJ,CAFA,CAAZ;AAQA;AACD;AACD,KAjBD,CAFF;AAqBC,IAAA,QAAQ,EAAGZ,iBArBZ;AAsBC,IAAA,MAAM,EAAGA,iBAtBV;AAuBC,IAAA,OAAO,EAAC;AAvBT,KAyBGd,OAAO;AACR;AACAD,EAAAA,EAAE,CAAE,YAAF,CAFM,EAGRa,KAAK,CAACe,KAHE,CAzBV,CADD;AAiCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { createBlock, getBlockType, parse } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { store as blockDirectoryStore } from '../../store';\n\nexport default function InstallButton( { attributes, block, clientId } ) {\n\tconst isInstallingBlock = useSelect(\n\t\t( select ) => select( blockDirectoryStore ).isInstalling( block.id ),\n\t\t[ block.id ]\n\t);\n\tconst { installBlockType } = useDispatch( blockDirectoryStore );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={ () =>\n\t\t\t\tinstallBlockType( block ).then( ( success ) => {\n\t\t\t\t\tif ( success ) {\n\t\t\t\t\t\tconst blockType = getBlockType( block.name );\n\t\t\t\t\t\tconst [ originalBlock ] = parse(\n\t\t\t\t\t\t\tattributes.originalContent\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( originalBlock && blockType ) {\n\t\t\t\t\t\t\treplaceBlock(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t\t\tblockType.name,\n\t\t\t\t\t\t\t\t\toriginalBlock.attributes,\n\t\t\t\t\t\t\t\t\toriginalBlock.innerBlocks\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t}\n\t\t\tdisabled={ isInstallingBlock }\n\t\t\tisBusy={ isInstallingBlock }\n\t\t\tvariant=\"primary\"\n\t\t>\n\t\t\t{ sprintf(\n\t\t\t\t/* translators: %s: block name */\n\t\t\t\t__( 'Install %s' ),\n\t\t\t\tblock.title\n\t\t\t) }\n\t\t</Button>\n\t);\n}\n"]}
@@ -15,15 +15,13 @@ import DownloadableBlocksPanel from '../../components/downloadable-blocks-panel'
15
15
  function InserterMenuDownloadableBlocksPanel() {
16
16
  const [debouncedFilterValue, setFilterValue] = useState('');
17
17
  const debouncedSetFilterValue = debounce(setFilterValue, 400);
18
- return createElement(__unstableInserterMenuExtension, null, _ref => {
19
- let {
20
- onSelect,
21
- onHover,
22
- filterValue,
23
- hasItems,
24
- rootClientId
25
- } = _ref;
26
-
18
+ return createElement(__unstableInserterMenuExtension, null, ({
19
+ onSelect,
20
+ onHover,
21
+ filterValue,
22
+ hasItems,
23
+ rootClientId
24
+ }) => {
27
25
  if (debouncedFilterValue !== filterValue) {
28
26
  debouncedSetFilterValue(filterValue);
29
27
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-directory/src/plugins/inserter-menu-downloadable-blocks-panel/index.js"],"names":["__unstableInserterMenuExtension","debounce","useState","DownloadableBlocksPanel","InserterMenuDownloadableBlocksPanel","debouncedFilterValue","setFilterValue","debouncedSetFilterValue","onSelect","onHover","filterValue","hasItems","rootClientId"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,+BAAT,QAAgD,yBAAhD;AACA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,QAAT,QAAyB,oBAAzB;AAEA;AACA;AACA;;AACA,OAAOC,uBAAP,MAAoC,4CAApC;;AAEA,SAASC,mCAAT,GAA+C;AAC9C,QAAM,CAAEC,oBAAF,EAAwBC,cAAxB,IAA2CJ,QAAQ,CAAE,EAAF,CAAzD;AACA,QAAMK,uBAAuB,GAAGN,QAAQ,CAAEK,cAAF,EAAkB,GAAlB,CAAxC;AAEA,SACC,cAAC,+BAAD,QACG,QAMK;AAAA,QANH;AACHE,MAAAA,QADG;AAEHC,MAAAA,OAFG;AAGHC,MAAAA,WAHG;AAIHC,MAAAA,QAJG;AAKHC,MAAAA;AALG,KAMG;;AACN,QAAKP,oBAAoB,KAAKK,WAA9B,EAA4C;AAC3CH,MAAAA,uBAAuB,CAAEG,WAAF,CAAvB;AACA;;AAED,QAAK,CAAEL,oBAAP,EAA8B;AAC7B,aAAO,IAAP;AACA;;AAED,WACC,cAAC,uBAAD;AACC,MAAA,QAAQ,EAAGG,QADZ;AAEC,MAAA,OAAO,EAAGC,OAFX;AAGC,MAAA,YAAY,EAAGG,YAHhB;AAIC,MAAA,WAAW,EAAGP,oBAJf;AAKC,MAAA,cAAc,EAAGM,QALlB;AAMC,MAAA,QAAQ,EAAGD,WAAW,KAAKL;AAN5B,MADD;AAUA,GA1BF,CADD;AA8BA;;AAED,eAAeD,mCAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __unstableInserterMenuExtension } from '@wordpress/block-editor';\nimport { debounce } from '@wordpress/compose';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DownloadableBlocksPanel from '../../components/downloadable-blocks-panel';\n\nfunction InserterMenuDownloadableBlocksPanel() {\n\tconst [ debouncedFilterValue, setFilterValue ] = useState( '' );\n\tconst debouncedSetFilterValue = debounce( setFilterValue, 400 );\n\n\treturn (\n\t\t<__unstableInserterMenuExtension>\n\t\t\t{ ( {\n\t\t\t\tonSelect,\n\t\t\t\tonHover,\n\t\t\t\tfilterValue,\n\t\t\t\thasItems,\n\t\t\t\trootClientId,\n\t\t\t} ) => {\n\t\t\t\tif ( debouncedFilterValue !== filterValue ) {\n\t\t\t\t\tdebouncedSetFilterValue( filterValue );\n\t\t\t\t}\n\n\t\t\t\tif ( ! debouncedFilterValue ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<DownloadableBlocksPanel\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tfilterValue={ debouncedFilterValue }\n\t\t\t\t\t\thasLocalBlocks={ hasItems }\n\t\t\t\t\t\tisTyping={ filterValue !== debouncedFilterValue }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t</__unstableInserterMenuExtension>\n\t);\n}\n\nexport default InserterMenuDownloadableBlocksPanel;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-directory/src/plugins/inserter-menu-downloadable-blocks-panel/index.js"],"names":["__unstableInserterMenuExtension","debounce","useState","DownloadableBlocksPanel","InserterMenuDownloadableBlocksPanel","debouncedFilterValue","setFilterValue","debouncedSetFilterValue","onSelect","onHover","filterValue","hasItems","rootClientId"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,+BAAT,QAAgD,yBAAhD;AACA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,QAAT,QAAyB,oBAAzB;AAEA;AACA;AACA;;AACA,OAAOC,uBAAP,MAAoC,4CAApC;;AAEA,SAASC,mCAAT,GAA+C;AAC9C,QAAM,CAAEC,oBAAF,EAAwBC,cAAxB,IAA2CJ,QAAQ,CAAE,EAAF,CAAzD;AACA,QAAMK,uBAAuB,GAAGN,QAAQ,CAAEK,cAAF,EAAkB,GAAlB,CAAxC;AAEA,SACC,cAAC,+BAAD,QACG,CAAE;AACHE,IAAAA,QADG;AAEHC,IAAAA,OAFG;AAGHC,IAAAA,WAHG;AAIHC,IAAAA,QAJG;AAKHC,IAAAA;AALG,GAAF,KAMK;AACN,QAAKP,oBAAoB,KAAKK,WAA9B,EAA4C;AAC3CH,MAAAA,uBAAuB,CAAEG,WAAF,CAAvB;AACA;;AAED,QAAK,CAAEL,oBAAP,EAA8B;AAC7B,aAAO,IAAP;AACA;;AAED,WACC,cAAC,uBAAD;AACC,MAAA,QAAQ,EAAGG,QADZ;AAEC,MAAA,OAAO,EAAGC,OAFX;AAGC,MAAA,YAAY,EAAGG,YAHhB;AAIC,MAAA,WAAW,EAAGP,oBAJf;AAKC,MAAA,cAAc,EAAGM,QALlB;AAMC,MAAA,QAAQ,EAAGD,WAAW,KAAKL;AAN5B,MADD;AAUA,GA1BF,CADD;AA8BA;;AAED,eAAeD,mCAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __unstableInserterMenuExtension } from '@wordpress/block-editor';\nimport { debounce } from '@wordpress/compose';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DownloadableBlocksPanel from '../../components/downloadable-blocks-panel';\n\nfunction InserterMenuDownloadableBlocksPanel() {\n\tconst [ debouncedFilterValue, setFilterValue ] = useState( '' );\n\tconst debouncedSetFilterValue = debounce( setFilterValue, 400 );\n\n\treturn (\n\t\t<__unstableInserterMenuExtension>\n\t\t\t{ ( {\n\t\t\t\tonSelect,\n\t\t\t\tonHover,\n\t\t\t\tfilterValue,\n\t\t\t\thasItems,\n\t\t\t\trootClientId,\n\t\t\t} ) => {\n\t\t\t\tif ( debouncedFilterValue !== filterValue ) {\n\t\t\t\t\tdebouncedSetFilterValue( filterValue );\n\t\t\t\t}\n\n\t\t\t\tif ( ! debouncedFilterValue ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<DownloadableBlocksPanel\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tfilterValue={ debouncedFilterValue }\n\t\t\t\t\t\thasLocalBlocks={ hasItems }\n\t\t\t\t\t\tisTyping={ filterValue !== debouncedFilterValue }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t</__unstableInserterMenuExtension>\n\t);\n}\n\nexport default InserterMenuDownloadableBlocksPanel;\n"]}
@@ -1,4 +1,4 @@
1
- var _window$wp$editPost, _window, _window$wp;
1
+ var _window$wp$editPost;
2
2
 
3
3
  import { createElement } from "@wordpress/element";
4
4
 
@@ -18,7 +18,7 @@ import { store as blockDirectoryStore } from '../../store'; // We shouldn't impo
18
18
 
19
19
  const {
20
20
  PluginPrePublishPanel
21
- } = (_window$wp$editPost = (_window = window) === null || _window === void 0 ? void 0 : (_window$wp = _window.wp) === null || _window$wp === void 0 ? void 0 : _window$wp.editPost) !== null && _window$wp$editPost !== void 0 ? _window$wp$editPost : {};
21
+ } = (_window$wp$editPost = window?.wp?.editPost) !== null && _window$wp$editPost !== void 0 ? _window$wp$editPost : {};
22
22
  export default function InstalledBlocksPrePublishPanel() {
23
23
  const newBlockTypes = useSelect(select => select(blockDirectoryStore).getNewBlockTypes(), []);
24
24
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-directory/src/plugins/installed-blocks-pre-publish-panel/index.js"],"names":["_n","sprintf","useSelect","blockDefault","CompactList","store","blockDirectoryStore","PluginPrePublishPanel","window","wp","editPost","InstalledBlocksPrePublishPanel","newBlockTypes","select","getNewBlockTypes","length"],"mappings":";;;;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,YAAT,QAA6B,kBAA7B;AAEA;AACA;AACA;;AACA,OAAOC,WAAP,MAAwB,+BAAxB;AACA,SAASC,KAAK,IAAIC,mBAAlB,QAA6C,aAA7C,C,CAEA;AACA;;AACA,MAAM;AAAEC,EAAAA;AAAF,sCAA4BC,MAA5B,0DAA4B,QAAQC,EAApC,+CAA4B,WAAYC,QAAxC,qEAAoD,EAA1D;AAEA,eAAe,SAASC,8BAAT,GAA0C;AACxD,QAAMC,aAAa,GAAGV,SAAS,CAC5BW,MAAF,IAAcA,MAAM,CAAEP,mBAAF,CAAN,CAA8BQ,gBAA9B,EADgB,EAE9B,EAF8B,CAA/B;;AAKA,MAAK,CAAEF,aAAa,CAACG,MAArB,EAA8B;AAC7B,WAAO,IAAP;AACA;;AAED,SACC,cAAC,qBAAD;AACC,IAAA,IAAI,EAAGZ,YADR;AAEC,IAAA,KAAK,EAAGF,OAAO,EACd;AACAD,IAAAA,EAAE,CACD,iBADC,EAED,kBAFC,EAGDY,aAAa,CAACG,MAHb,CAFY,EAOdH,aAAa,CAACG,MAPA,CAFhB;AAWC,IAAA,WAAW,EAAG;AAXf,KAaC;AAAG,IAAA,SAAS,EAAC;AAAb,KACGf,EAAE,CACH,kDADG,EAEH,oDAFG,EAGHY,aAAa,CAACG,MAHX,CADL,CAbD,EAoBC,cAAC,WAAD;AAAa,IAAA,KAAK,EAAGH;AAArB,IApBD,CADD;AAwBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _n, sprintf } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { blockDefault } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport CompactList from '../../components/compact-list';\nimport { store as blockDirectoryStore } from '../../store';\n\n// We shouldn't import the edit-post package directly\n// because it would include the wp-edit-post in all pages loading the block-directory script.\nconst { PluginPrePublishPanel } = window?.wp?.editPost ?? {};\n\nexport default function InstalledBlocksPrePublishPanel() {\n\tconst newBlockTypes = useSelect(\n\t\t( select ) => select( blockDirectoryStore ).getNewBlockTypes(),\n\t\t[]\n\t);\n\n\tif ( ! newBlockTypes.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PluginPrePublishPanel\n\t\t\ticon={ blockDefault }\n\t\t\ttitle={ sprintf(\n\t\t\t\t// translators: %d: number of blocks (number).\n\t\t\t\t_n(\n\t\t\t\t\t'Added: %d block',\n\t\t\t\t\t'Added: %d blocks',\n\t\t\t\t\tnewBlockTypes.length\n\t\t\t\t),\n\t\t\t\tnewBlockTypes.length\n\t\t\t) }\n\t\t\tinitialOpen={ true }\n\t\t>\n\t\t\t<p className=\"installed-blocks-pre-publish-panel__copy\">\n\t\t\t\t{ _n(\n\t\t\t\t\t'The following block has been added to your site.',\n\t\t\t\t\t'The following blocks have been added to your site.',\n\t\t\t\t\tnewBlockTypes.length\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<CompactList items={ newBlockTypes } />\n\t\t</PluginPrePublishPanel>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-directory/src/plugins/installed-blocks-pre-publish-panel/index.js"],"names":["_n","sprintf","useSelect","blockDefault","CompactList","store","blockDirectoryStore","PluginPrePublishPanel","window","wp","editPost","InstalledBlocksPrePublishPanel","newBlockTypes","select","getNewBlockTypes","length"],"mappings":";;;;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,YAAT,QAA6B,kBAA7B;AAEA;AACA;AACA;;AACA,OAAOC,WAAP,MAAwB,+BAAxB;AACA,SAASC,KAAK,IAAIC,mBAAlB,QAA6C,aAA7C,C,CAEA;AACA;;AACA,MAAM;AAAEC,EAAAA;AAAF,2BAA4BC,MAAM,EAAEC,EAAR,EAAYC,QAAxC,qEAAoD,EAA1D;AAEA,eAAe,SAASC,8BAAT,GAA0C;AACxD,QAAMC,aAAa,GAAGV,SAAS,CAC5BW,MAAF,IAAcA,MAAM,CAAEP,mBAAF,CAAN,CAA8BQ,gBAA9B,EADgB,EAE9B,EAF8B,CAA/B;;AAKA,MAAK,CAAEF,aAAa,CAACG,MAArB,EAA8B;AAC7B,WAAO,IAAP;AACA;;AAED,SACC,cAAC,qBAAD;AACC,IAAA,IAAI,EAAGZ,YADR;AAEC,IAAA,KAAK,EAAGF,OAAO,EACd;AACAD,IAAAA,EAAE,CACD,iBADC,EAED,kBAFC,EAGDY,aAAa,CAACG,MAHb,CAFY,EAOdH,aAAa,CAACG,MAPA,CAFhB;AAWC,IAAA,WAAW,EAAG;AAXf,KAaC;AAAG,IAAA,SAAS,EAAC;AAAb,KACGf,EAAE,CACH,kDADG,EAEH,oDAFG,EAGHY,aAAa,CAACG,MAHX,CADL,CAbD,EAoBC,cAAC,WAAD;AAAa,IAAA,KAAK,EAAGH;AAArB,IApBD,CADD;AAwBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _n, sprintf } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { blockDefault } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport CompactList from '../../components/compact-list';\nimport { store as blockDirectoryStore } from '../../store';\n\n// We shouldn't import the edit-post package directly\n// because it would include the wp-edit-post in all pages loading the block-directory script.\nconst { PluginPrePublishPanel } = window?.wp?.editPost ?? {};\n\nexport default function InstalledBlocksPrePublishPanel() {\n\tconst newBlockTypes = useSelect(\n\t\t( select ) => select( blockDirectoryStore ).getNewBlockTypes(),\n\t\t[]\n\t);\n\n\tif ( ! newBlockTypes.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PluginPrePublishPanel\n\t\t\ticon={ blockDefault }\n\t\t\ttitle={ sprintf(\n\t\t\t\t// translators: %d: number of blocks (number).\n\t\t\t\t_n(\n\t\t\t\t\t'Added: %d block',\n\t\t\t\t\t'Added: %d blocks',\n\t\t\t\t\tnewBlockTypes.length\n\t\t\t\t),\n\t\t\t\tnewBlockTypes.length\n\t\t\t) }\n\t\t\tinitialOpen={ true }\n\t\t>\n\t\t\t<p className=\"installed-blocks-pre-publish-panel__copy\">\n\t\t\t\t{ _n(\n\t\t\t\t\t'The following block has been added to your site.',\n\t\t\t\t\t'The following blocks have been added to your site.',\n\t\t\t\t\tnewBlockTypes.length\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<CompactList items={ newBlockTypes } />\n\t\t</PluginPrePublishPanel>\n\t);\n}\n"]}
@@ -53,11 +53,10 @@ export function receiveDownloadableBlocks(downloadableBlocks, filterValue) {
53
53
  * @return {boolean} Whether the block was successfully installed & loaded.
54
54
  */
55
55
 
56
- export const installBlockType = block => async _ref => {
57
- let {
58
- registry,
59
- dispatch
60
- } = _ref;
56
+ export const installBlockType = block => async ({
57
+ registry,
58
+ dispatch
59
+ }) => {
61
60
  const {
62
61
  id,
63
62
  name
@@ -110,10 +109,7 @@ export const installBlockType = block => async _ref => {
110
109
  }
111
110
 
112
111
  unstable__bootstrapServerSideBlockDefinitions({
113
- [name]: Object.fromEntries(Object.entries(response).filter(_ref2 => {
114
- let [key] = _ref2;
115
- return metadataFields.includes(key);
116
- }))
112
+ [name]: Object.fromEntries(Object.entries(response).filter(([key]) => metadataFields.includes(key)))
117
113
  });
118
114
  });
119
115
  await loadAssets();
@@ -161,12 +157,10 @@ export const installBlockType = block => async _ref => {
161
157
  * @param {Object} block The blockType object.
162
158
  */
163
159
 
164
- export const uninstallBlockType = block => async _ref3 => {
165
- let {
166
- registry,
167
- dispatch
168
- } = _ref3;
169
-
160
+ export const uninstallBlockType = block => async ({
161
+ registry,
162
+ dispatch
163
+ }) => {
170
164
  try {
171
165
  const url = getPluginUrl(block);
172
166
  await apiFetch({
@@ -241,8 +235,7 @@ export function setIsInstalling(blockId, isInstalling) {
241
235
  * @return {Object} Action object.
242
236
  */
243
237
 
244
- export function setErrorNotice(blockId, message) {
245
- let isFatal = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
238
+ export function setErrorNotice(blockId, message, isFatal = false) {
246
239
  return {
247
240
  type: 'SET_ERROR_NOTICE',
248
241
  blockId,