@wordpress/block-directory 5.32.0 → 5.32.1-next.b8c8708f3.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 (110) hide show
  1. package/build/components/auto-block-uninstaller/index.js +37 -31
  2. package/build/components/auto-block-uninstaller/index.js.map +7 -1
  3. package/build/components/block-ratings/index.js +40 -22
  4. package/build/components/block-ratings/index.js.map +7 -1
  5. package/build/components/block-ratings/stars.js +66 -40
  6. package/build/components/block-ratings/stars.js.map +7 -1
  7. package/build/components/compact-list/index.js +47 -46
  8. package/build/components/compact-list/index.js.map +7 -1
  9. package/build/components/downloadable-block-icon/index.js +28 -26
  10. package/build/components/downloadable-block-icon/index.js.map +7 -1
  11. package/build/components/downloadable-block-list-item/index.js +113 -127
  12. package/build/components/downloadable-block-list-item/index.js.map +7 -1
  13. package/build/components/downloadable-block-notice/index.js +41 -31
  14. package/build/components/downloadable-block-notice/index.js.map +7 -1
  15. package/build/components/downloadable-blocks-list/index.js +72 -56
  16. package/build/components/downloadable-blocks-list/index.js.map +7 -1
  17. package/build/components/downloadable-blocks-panel/index.js +108 -95
  18. package/build/components/downloadable-blocks-panel/index.js.map +7 -1
  19. package/build/components/downloadable-blocks-panel/inserter-panel.js +52 -38
  20. package/build/components/downloadable-blocks-panel/inserter-panel.js.map +7 -1
  21. package/build/components/downloadable-blocks-panel/no-results.js +37 -30
  22. package/build/components/downloadable-blocks-panel/no-results.js.map +7 -1
  23. package/build/index.js +27 -12
  24. package/build/index.js.map +7 -1
  25. package/build/lock-unlock.js +31 -15
  26. package/build/lock-unlock.js.map +7 -1
  27. package/build/plugins/get-install-missing/index.js +123 -102
  28. package/build/plugins/get-install-missing/index.js.map +7 -1
  29. package/build/plugins/get-install-missing/install-button.js +68 -50
  30. package/build/plugins/get-install-missing/install-button.js.map +7 -1
  31. package/build/plugins/index.js +46 -29
  32. package/build/plugins/index.js.map +7 -1
  33. package/build/plugins/inserter-menu-downloadable-blocks-panel/index.js +55 -42
  34. package/build/plugins/inserter-menu-downloadable-blocks-panel/index.js.map +7 -1
  35. package/build/plugins/installed-blocks-pre-publish-panel/index.js +65 -34
  36. package/build/plugins/installed-blocks-pre-publish-panel/index.js.map +7 -1
  37. package/build/store/actions.js +142 -188
  38. package/build/store/actions.js.map +7 -1
  39. package/build/store/index.js +48 -46
  40. package/build/store/index.js.map +7 -1
  41. package/build/store/load-assets.js +48 -55
  42. package/build/store/load-assets.js.map +7 -1
  43. package/build/store/reducer.js +48 -54
  44. package/build/store/reducer.js.map +7 -1
  45. package/build/store/resolvers.js +52 -31
  46. package/build/store/resolvers.js.map +7 -1
  47. package/build/store/selectors.js +100 -127
  48. package/build/store/selectors.js.map +7 -1
  49. package/build/store/utils/get-plugin-url.js +23 -14
  50. package/build/store/utils/get-plugin-url.js.map +7 -1
  51. package/build-module/components/auto-block-uninstaller/index.js +18 -24
  52. package/build-module/components/auto-block-uninstaller/index.js.map +7 -1
  53. package/build-module/components/block-ratings/index.js +9 -15
  54. package/build-module/components/block-ratings/index.js.map +7 -1
  55. package/build-module/components/block-ratings/stars.js +48 -34
  56. package/build-module/components/block-ratings/stars.js.map +7 -1
  57. package/build-module/components/compact-list/index.js +19 -39
  58. package/build-module/components/compact-list/index.js.map +7 -1
  59. package/build-module/components/downloadable-block-icon/index.js +10 -20
  60. package/build-module/components/downloadable-block-icon/index.js.map +7 -1
  61. package/build-module/components/downloadable-block-list-item/index.js +89 -120
  62. package/build-module/components/downloadable-block-list-item/index.js.map +7 -1
  63. package/build-module/components/downloadable-block-notice/index.js +19 -24
  64. package/build-module/components/downloadable-block-notice/index.js.map +7 -1
  65. package/build-module/components/downloadable-blocks-list/index.js +44 -49
  66. package/build-module/components/downloadable-blocks-list/index.js.map +7 -1
  67. package/build-module/components/downloadable-blocks-panel/index.js +81 -89
  68. package/build-module/components/downloadable-blocks-panel/index.js.map +7 -1
  69. package/build-module/components/downloadable-blocks-panel/inserter-panel.js +33 -31
  70. package/build-module/components/downloadable-blocks-panel/inserter-panel.js.map +7 -1
  71. package/build-module/components/downloadable-blocks-panel/no-results.js +19 -24
  72. package/build-module/components/downloadable-blocks-panel/no-results.js.map +7 -1
  73. package/build-module/index.js +6 -6
  74. package/build-module/index.js.map +7 -1
  75. package/build-module/lock-unlock.js +8 -7
  76. package/build-module/lock-unlock.js.map +7 -1
  77. package/build-module/plugins/get-install-missing/index.js +99 -95
  78. package/build-module/plugins/get-install-missing/index.js.map +7 -1
  79. package/build-module/plugins/get-install-missing/install-button.js +50 -44
  80. package/build-module/plugins/get-install-missing/install-button.js.map +7 -1
  81. package/build-module/plugins/index.js +24 -25
  82. package/build-module/plugins/index.js.map +7 -1
  83. package/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.js +26 -34
  84. package/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.js.map +7 -1
  85. package/build-module/plugins/installed-blocks-pre-publish-panel/index.js +38 -28
  86. package/build-module/plugins/installed-blocks-pre-publish-panel/index.js.map +7 -1
  87. package/build-module/store/actions.js +100 -168
  88. package/build-module/store/actions.js.map +7 -1
  89. package/build-module/store/index.js +13 -36
  90. package/build-module/store/index.js.map +7 -1
  91. package/build-module/store/load-assets.js +15 -47
  92. package/build-module/store/load-assets.js.map +7 -1
  93. package/build-module/store/reducer.js +27 -49
  94. package/build-module/store/reducer.js.map +7 -1
  95. package/build-module/store/resolvers.js +16 -19
  96. package/build-module/store/resolvers.js.map +7 -1
  97. package/build-module/store/selectors.js +77 -121
  98. package/build-module/store/selectors.js.map +7 -1
  99. package/build-module/store/utils/get-plugin-url.js +6 -10
  100. package/build-module/store/utils/get-plugin-url.js.map +7 -1
  101. package/build-style/style-rtl.css +9 -142
  102. package/build-style/style.css +9 -142
  103. package/package.json +28 -21
  104. package/src/components/block-ratings/style.scss +2 -0
  105. package/src/components/compact-list/style.scss +3 -0
  106. package/src/components/downloadable-block-icon/style.scss +3 -0
  107. package/src/components/downloadable-block-list-item/style.scss +4 -0
  108. package/src/components/downloadable-block-notice/style.scss +3 -0
  109. package/src/components/downloadable-blocks-panel/style.scss +3 -1
  110. package/src/style.scss +8 -7
@@ -1,155 +1,141 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var downloadable_block_list_item_exports = {};
29
+ __export(downloadable_block_list_item_exports, {
30
+ default: () => downloadable_block_list_item_default
6
31
  });
7
- exports.default = void 0;
8
- var _clsx = _interopRequireDefault(require("clsx"));
9
- var _i18n = require("@wordpress/i18n");
10
- var _components = require("@wordpress/components");
11
- var _element = require("@wordpress/element");
12
- var _htmlEntities = require("@wordpress/html-entities");
13
- var _blocks = require("@wordpress/blocks");
14
- var _data = require("@wordpress/data");
15
- var _blockRatings = _interopRequireDefault(require("../block-ratings"));
16
- var _downloadableBlockIcon = _interopRequireDefault(require("../downloadable-block-icon"));
17
- var _downloadableBlockNotice = _interopRequireDefault(require("../downloadable-block-notice"));
18
- var _store = require("../../store");
19
- var _jsxRuntime = require("react/jsx-runtime");
20
- /**
21
- * External dependencies
22
- */
23
-
24
- /**
25
- * WordPress dependencies
26
- */
27
-
28
- /**
29
- * Internal dependencies
30
- */
31
-
32
- // Return the appropriate block item label, given the block data and status.
33
- function getDownloadableBlockLabel({
34
- title,
35
- rating,
36
- ratingCount
37
- }, {
38
- hasNotice,
39
- isInstalled,
40
- isInstalling
41
- }) {
32
+ module.exports = __toCommonJS(downloadable_block_list_item_exports);
33
+ var import_jsx_runtime = require("react/jsx-runtime");
34
+ var import_clsx = __toESM(require("clsx"));
35
+ var import_i18n = require("@wordpress/i18n");
36
+ var import_components = require("@wordpress/components");
37
+ var import_element = require("@wordpress/element");
38
+ var import_html_entities = require("@wordpress/html-entities");
39
+ var import_blocks = require("@wordpress/blocks");
40
+ var import_data = require("@wordpress/data");
41
+ var import_block_ratings = __toESM(require("../block-ratings"));
42
+ var import_downloadable_block_icon = __toESM(require("../downloadable-block-icon"));
43
+ var import_downloadable_block_notice = __toESM(require("../downloadable-block-notice"));
44
+ var import_store = require("../../store");
45
+ function getDownloadableBlockLabel({ title, rating, ratingCount }, { hasNotice, isInstalled, isInstalling }) {
42
46
  const stars = Math.round(rating / 0.5) * 0.5;
43
47
  if (!isInstalled && hasNotice) {
44
- /* translators: %s: block title */
45
- return (0, _i18n.sprintf)('Retry installing %s.', (0, _htmlEntities.decodeEntities)(title));
48
+ return (0, import_i18n.sprintf)("Retry installing %s.", (0, import_html_entities.decodeEntities)(title));
46
49
  }
47
50
  if (isInstalled) {
48
- /* translators: %s: block title */
49
- return (0, _i18n.sprintf)('Add %s.', (0, _htmlEntities.decodeEntities)(title));
51
+ return (0, import_i18n.sprintf)("Add %s.", (0, import_html_entities.decodeEntities)(title));
50
52
  }
51
53
  if (isInstalling) {
52
- /* translators: %s: block title */
53
- return (0, _i18n.sprintf)('Installing %s.', (0, _htmlEntities.decodeEntities)(title));
54
+ return (0, import_i18n.sprintf)("Installing %s.", (0, import_html_entities.decodeEntities)(title));
54
55
  }
55
-
56
- // No ratings yet, just use the title.
57
56
  if (ratingCount < 1) {
58
- /* translators: %s: block title */
59
- return (0, _i18n.sprintf)('Install %s.', (0, _htmlEntities.decodeEntities)(title));
57
+ return (0, import_i18n.sprintf)("Install %s.", (0, import_html_entities.decodeEntities)(title));
60
58
  }
61
- return (0, _i18n.sprintf)(/* translators: 1: block title, 2: average rating, 3: total ratings count. */
62
- (0, _i18n._n)('Install %1$s. %2$s stars with %3$s review.', 'Install %1$s. %2$s stars with %3$s reviews.', ratingCount), (0, _htmlEntities.decodeEntities)(title), stars, ratingCount);
59
+ return (0, import_i18n.sprintf)(
60
+ /* translators: 1: block title, 2: average rating, 3: total ratings count. */
61
+ (0, import_i18n._n)(
62
+ "Install %1$s. %2$s stars with %3$s review.",
63
+ "Install %1$s. %2$s stars with %3$s reviews.",
64
+ ratingCount
65
+ ),
66
+ (0, import_html_entities.decodeEntities)(title),
67
+ stars,
68
+ ratingCount
69
+ );
63
70
  }
64
- function DownloadableBlockListItem({
65
- item,
66
- onClick
67
- }) {
68
- const {
69
- author,
70
- description,
71
- icon,
72
- rating,
73
- title
74
- } = item;
75
- // getBlockType returns a block object if this block exists, or null if not.
76
- const isInstalled = !!(0, _blocks.getBlockType)(item.name);
77
- const {
78
- hasNotice,
79
- isInstalling,
80
- isInstallable
81
- } = (0, _data.useSelect)(select => {
82
- const {
83
- getErrorNoticeForBlock,
84
- isInstalling: isBlockInstalling
85
- } = select(_store.store);
86
- const notice = getErrorNoticeForBlock(item.id);
87
- const hasFatal = notice && notice.isFatal;
88
- return {
89
- hasNotice: !!notice,
90
- isInstalling: isBlockInstalling(item.id),
91
- isInstallable: !hasFatal
92
- };
93
- }, [item]);
94
- let statusText = '';
71
+ function DownloadableBlockListItem({ item, onClick }) {
72
+ const { author, description, icon, rating, title } = item;
73
+ const isInstalled = !!(0, import_blocks.getBlockType)(item.name);
74
+ const { hasNotice, isInstalling, isInstallable } = (0, import_data.useSelect)(
75
+ (select) => {
76
+ const { getErrorNoticeForBlock, isInstalling: isBlockInstalling } = select(import_store.store);
77
+ const notice = getErrorNoticeForBlock(item.id);
78
+ const hasFatal = notice && notice.isFatal;
79
+ return {
80
+ hasNotice: !!notice,
81
+ isInstalling: isBlockInstalling(item.id),
82
+ isInstallable: !hasFatal
83
+ };
84
+ },
85
+ [item]
86
+ );
87
+ let statusText = "";
95
88
  if (isInstalled) {
96
- statusText = (0, _i18n.__)('Installed!');
89
+ statusText = (0, import_i18n.__)("Installed!");
97
90
  } else if (isInstalling) {
98
- statusText = (0, _i18n.__)('Installing…');
91
+ statusText = (0, import_i18n.__)("Installing\u2026");
99
92
  }
100
93
  const itemLabel = getDownloadableBlockLabel(item, {
101
94
  hasNotice,
102
95
  isInstalled,
103
96
  isInstalling
104
97
  });
105
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Tooltip, {
106
- placement: "top",
107
- text: itemLabel,
108
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Composite.Item, {
109
- className: (0, _clsx.default)('block-directory-downloadable-block-list-item', isInstalling && 'is-installing'),
98
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Tooltip, { placement: "top", text: itemLabel, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
99
+ import_components.Composite.Item,
100
+ {
101
+ className: (0, import_clsx.default)(
102
+ "block-directory-downloadable-block-list-item",
103
+ isInstalling && "is-installing"
104
+ ),
110
105
  accessibleWhenDisabled: true,
111
106
  disabled: isInstalling || !isInstallable,
112
- onClick: event => {
107
+ onClick: (event) => {
113
108
  event.preventDefault();
114
109
  onClick();
115
110
  },
116
111
  "aria-label": itemLabel,
117
112
  type: "button",
118
113
  role: "option",
119
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
120
- className: "block-directory-downloadable-block-list-item__icon",
121
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_downloadableBlockIcon.default, {
122
- icon: icon,
123
- title: title
124
- }), isInstalling ? /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
125
- className: "block-directory-downloadable-block-list-item__spinner",
126
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Spinner, {})
127
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockRatings.default, {
128
- rating: rating
129
- })]
130
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
131
- className: "block-directory-downloadable-block-list-item__details",
132
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
133
- className: "block-directory-downloadable-block-list-item__title",
134
- children: (0, _element.createInterpolateElement)((0, _i18n.sprintf)(/* translators: 1: block title. 2: author name. */
135
- (0, _i18n.__)('%1$s <span>by %2$s</span>'), (0, _htmlEntities.decodeEntities)(title), author), {
136
- span: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
137
- className: "block-directory-downloadable-block-list-item__author"
138
- })
139
- })
140
- }), hasNotice ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_downloadableBlockNotice.default, {
141
- block: item
142
- }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
143
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
144
- className: "block-directory-downloadable-block-list-item__desc",
145
- children: !!statusText ? statusText : (0, _htmlEntities.decodeEntities)(description)
146
- }), isInstallable && !(isInstalled || isInstalling) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.VisuallyHidden, {
147
- children: (0, _i18n.__)('Install block')
148
- })]
149
- })]
150
- })]
151
- })
152
- });
114
+ children: [
115
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "block-directory-downloadable-block-list-item__icon", children: [
116
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_downloadable_block_icon.default, { icon, title }),
117
+ isInstalling ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "block-directory-downloadable-block-list-item__spinner", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Spinner, {}) }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_ratings.default, { rating })
118
+ ] }),
119
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "block-directory-downloadable-block-list-item__details", children: [
120
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "block-directory-downloadable-block-list-item__title", children: (0, import_element.createInterpolateElement)(
121
+ (0, import_i18n.sprintf)(
122
+ /* translators: 1: block title. 2: author name. */
123
+ (0, import_i18n.__)("%1$s <span>by %2$s</span>"),
124
+ (0, import_html_entities.decodeEntities)(title),
125
+ author
126
+ ),
127
+ {
128
+ span: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "block-directory-downloadable-block-list-item__author" })
129
+ }
130
+ ) }),
131
+ hasNotice ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_downloadable_block_notice.default, { block: item }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
132
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "block-directory-downloadable-block-list-item__desc", children: !!statusText ? statusText : (0, import_html_entities.decodeEntities)(description) }),
133
+ isInstallable && !(isInstalled || isInstalling) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.VisuallyHidden, { children: (0, import_i18n.__)("Install block") })
134
+ ] })
135
+ ] })
136
+ ]
137
+ }
138
+ ) });
153
139
  }
154
- var _default = exports.default = DownloadableBlockListItem;
155
- //# sourceMappingURL=index.js.map
140
+ var downloadable_block_list_item_default = DownloadableBlockListItem;
141
+ //# sourceMappingURL=index.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_components","_element","_htmlEntities","_blocks","_data","_blockRatings","_downloadableBlockIcon","_downloadableBlockNotice","_store","_jsxRuntime","getDownloadableBlockLabel","title","rating","ratingCount","hasNotice","isInstalled","isInstalling","stars","Math","round","sprintf","decodeEntities","_n","DownloadableBlockListItem","item","onClick","author","description","icon","getBlockType","name","isInstallable","useSelect","select","getErrorNoticeForBlock","isBlockInstalling","blockDirectoryStore","notice","id","hasFatal","isFatal","statusText","__","itemLabel","jsx","Tooltip","placement","text","children","jsxs","Composite","Item","className","clsx","accessibleWhenDisabled","disabled","event","preventDefault","type","role","default","Spinner","createInterpolateElement","span","block","Fragment","VisuallyHidden","_default","exports"],"sources":["@wordpress/block-directory/src/components/downloadable-block-list-item/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport {\n\tTooltip,\n\tSpinner,\n\tVisuallyHidden,\n\tComposite,\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: %s: block title */\n\t\treturn sprintf( 'Retry installing %s.', decodeEntities( title ) );\n\t}\n\n\tif ( isInstalled ) {\n\t\t/* translators: %s: block title */\n\t\treturn sprintf( 'Add %s.', decodeEntities( title ) );\n\t}\n\n\tif ( isInstalling ) {\n\t\t/* translators: %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: %s: block title */\n\t\treturn sprintf( 'Install %s.', decodeEntities( title ) );\n\t}\n\n\treturn sprintf(\n\t\t/* translators: 1: block title, 2: average rating, 3: 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( { 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\tconst itemLabel = getDownloadableBlockLabel( item, {\n\t\thasNotice,\n\t\tisInstalled,\n\t\tisInstalling,\n\t} );\n\n\treturn (\n\t\t<Tooltip placement=\"top\" text={ itemLabel }>\n\t\t\t<Composite.Item\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-directory-downloadable-block-list-item',\n\t\t\t\t\tisInstalling && 'is-installing'\n\t\t\t\t) }\n\t\t\t\taccessibleWhenDisabled\n\t\t\t\tdisabled={ isInstalling || ! isInstallable }\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tonClick();\n\t\t\t\t} }\n\t\t\t\taria-label={ itemLabel }\n\t\t\t\ttype=\"button\"\n\t\t\t\trole=\"option\"\n\t\t\t>\n\t\t\t\t<div className=\"block-directory-downloadable-block-list-item__icon\">\n\t\t\t\t\t<DownloadableBlockIcon icon={ icon } title={ title } />\n\t\t\t\t\t{ isInstalling ? (\n\t\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__spinner\">\n\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<BlockRatings rating={ rating } />\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__details\">\n\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__title\">\n\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t/* translators: 1: block title. 2: author name. */\n\t\t\t\t\t\t\t\t__( '%1$s <span>by %2$s</span>' ),\n\t\t\t\t\t\t\t\tdecodeEntities( title ),\n\t\t\t\t\t\t\t\tauthor\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tspan: (\n\t\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\t),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t\t{ hasNotice ? (\n\t\t\t\t\t\t<DownloadableBlockNotice block={ item } />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__desc\">\n\t\t\t\t\t\t\t\t{ !! statusText\n\t\t\t\t\t\t\t\t\t? statusText\n\t\t\t\t\t\t\t\t\t: decodeEntities( description ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{ isInstallable &&\n\t\t\t\t\t\t\t\t! ( isInstalled || isInstalling ) && (\n\t\t\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Install block' ) }\n\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\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</Composite.Item>\n\t\t</Tooltip>\n\t);\n}\n\nexport default DownloadableBlockListItem;\n"],"mappings":"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","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/downloadable-block-list-item/index.js"],
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport {\n\tTooltip,\n\tSpinner,\n\tVisuallyHidden,\n\tComposite,\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: %s: block title */\n\t\treturn sprintf( 'Retry installing %s.', decodeEntities( title ) );\n\t}\n\n\tif ( isInstalled ) {\n\t\t/* translators: %s: block title */\n\t\treturn sprintf( 'Add %s.', decodeEntities( title ) );\n\t}\n\n\tif ( isInstalling ) {\n\t\t/* translators: %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: %s: block title */\n\t\treturn sprintf( 'Install %s.', decodeEntities( title ) );\n\t}\n\n\treturn sprintf(\n\t\t/* translators: 1: block title, 2: average rating, 3: 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( { 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\u2026' );\n\t}\n\n\tconst itemLabel = getDownloadableBlockLabel( item, {\n\t\thasNotice,\n\t\tisInstalled,\n\t\tisInstalling,\n\t} );\n\n\treturn (\n\t\t<Tooltip placement=\"top\" text={ itemLabel }>\n\t\t\t<Composite.Item\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-directory-downloadable-block-list-item',\n\t\t\t\t\tisInstalling && 'is-installing'\n\t\t\t\t) }\n\t\t\t\taccessibleWhenDisabled\n\t\t\t\tdisabled={ isInstalling || ! isInstallable }\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tonClick();\n\t\t\t\t} }\n\t\t\t\taria-label={ itemLabel }\n\t\t\t\ttype=\"button\"\n\t\t\t\trole=\"option\"\n\t\t\t>\n\t\t\t\t<div className=\"block-directory-downloadable-block-list-item__icon\">\n\t\t\t\t\t<DownloadableBlockIcon icon={ icon } title={ title } />\n\t\t\t\t\t{ isInstalling ? (\n\t\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__spinner\">\n\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<BlockRatings rating={ rating } />\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__details\">\n\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__title\">\n\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t/* translators: 1: block title. 2: author name. */\n\t\t\t\t\t\t\t\t__( '%1$s <span>by %2$s</span>' ),\n\t\t\t\t\t\t\t\tdecodeEntities( title ),\n\t\t\t\t\t\t\t\tauthor\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tspan: (\n\t\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\t),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t\t{ hasNotice ? (\n\t\t\t\t\t\t<DownloadableBlockNotice block={ item } />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__desc\">\n\t\t\t\t\t\t\t\t{ !! statusText\n\t\t\t\t\t\t\t\t\t? statusText\n\t\t\t\t\t\t\t\t\t: decodeEntities( description ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{ isInstallable &&\n\t\t\t\t\t\t\t\t! ( isInstalled || isInstalling ) && (\n\t\t\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Install block' ) }\n\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\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</Composite.Item>\n\t\t</Tooltip>\n\t);\n}\n\nexport default DownloadableBlockListItem;\n"],
5
+ "mappings": "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",
6
+ "names": ["blockDirectoryStore", "clsx", "DownloadableBlockIcon", "BlockRatings", "DownloadableBlockNotice"]
7
+ }
@@ -1,36 +1,46 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var downloadable_block_notice_exports = {};
19
+ __export(downloadable_block_notice_exports, {
20
+ DownloadableBlockNotice: () => DownloadableBlockNotice,
21
+ default: () => downloadable_block_notice_default
5
22
  });
6
- exports.default = exports.DownloadableBlockNotice = void 0;
7
- var _i18n = require("@wordpress/i18n");
8
- var _data = require("@wordpress/data");
9
- var _store = require("../../store");
10
- var _jsxRuntime = require("react/jsx-runtime");
11
- /**
12
- * WordPress dependencies
13
- */
14
-
15
- /**
16
- * Internal dependencies
17
- */
18
-
19
- const DownloadableBlockNotice = ({
20
- block
21
- }) => {
22
- const errorNotice = (0, _data.useSelect)(select => select(_store.store).getErrorNoticeForBlock(block.id), [block]);
23
+ module.exports = __toCommonJS(downloadable_block_notice_exports);
24
+ var import_jsx_runtime = require("react/jsx-runtime");
25
+ var import_i18n = require("@wordpress/i18n");
26
+ var import_data = require("@wordpress/data");
27
+ var import_store = require("../../store");
28
+ const DownloadableBlockNotice = ({ block }) => {
29
+ const errorNotice = (0, import_data.useSelect)(
30
+ (select) => select(import_store.store).getErrorNoticeForBlock(block.id),
31
+ [block]
32
+ );
23
33
  if (!errorNotice) {
24
34
  return null;
25
35
  }
26
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
27
- className: "block-directory-downloadable-block-notice",
28
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
29
- className: "block-directory-downloadable-block-notice__content",
30
- children: [errorNotice.message, errorNotice.isFatal ? ' ' + (0, _i18n.__)('Try reloading the page.') : null]
31
- })
32
- });
36
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "block-directory-downloadable-block-notice", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "block-directory-downloadable-block-notice__content", children: [
37
+ errorNotice.message,
38
+ errorNotice.isFatal ? " " + (0, import_i18n.__)("Try reloading the page.") : null
39
+ ] }) });
33
40
  };
34
- exports.DownloadableBlockNotice = DownloadableBlockNotice;
35
- var _default = exports.default = DownloadableBlockNotice;
36
- //# sourceMappingURL=index.js.map
41
+ var downloadable_block_notice_default = DownloadableBlockNotice;
42
+ // Annotate the CommonJS export names for ESM import in node:
43
+ 0 && (module.exports = {
44
+ DownloadableBlockNotice
45
+ });
46
+ //# sourceMappingURL=index.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["_i18n","require","_data","_store","_jsxRuntime","DownloadableBlockNotice","block","errorNotice","useSelect","select","blockDirectoryStore","getErrorNoticeForBlock","id","jsx","className","children","jsxs","message","isFatal","__","exports","_default","default"],"sources":["@wordpress/block-directory/src/components/downloadable-block-notice/index.js"],"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"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AAA2D,IAAAG,WAAA,GAAAH,OAAA;AAT3D;AACA;AACA;;AAIA;AACA;AACA;;AAGO,MAAMI,uBAAuB,GAAGA,CAAE;EAAEC;AAAM,CAAC,KAAM;EACvD,MAAMC,WAAW,GAAG,IAAAC,eAAS,EAC1BC,MAAM,IACPA,MAAM,CAAEC,YAAoB,CAAC,CAACC,sBAAsB,CAAEL,KAAK,CAACM,EAAG,CAAC,EACjE,CAAEN,KAAK,CACR,CAAC;EAED,IAAK,CAAEC,WAAW,EAAG;IACpB,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAH,WAAA,CAAAS,GAAA;IAAKC,SAAS,EAAC,2CAA2C;IAAAC,QAAA,eACzD,IAAAX,WAAA,CAAAY,IAAA;MAAKF,SAAS,EAAC,oDAAoD;MAAAC,QAAA,GAChER,WAAW,CAACU,OAAO,EACnBV,WAAW,CAACW,OAAO,GAClB,GAAG,GAAG,IAAAC,QAAE,EAAE,yBAA0B,CAAC,GACrC,IAAI;IAAA,CACH;EAAC,CACF,CAAC;AAER,CAAC;AAACC,OAAA,CAAAf,uBAAA,GAAAA,uBAAA;AAAA,IAAAgB,QAAA,GAAAD,OAAA,CAAAE,OAAA,GAEajB,uBAAuB","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/downloadable-block-notice/index.js"],
4
+ "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"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuBE;AApBF,kBAAmB;AACnB,kBAA0B;AAK1B,mBAA6C;AAEtC,MAAM,0BAA0B,CAAE,EAAE,MAAM,MAAO;AACvD,QAAM,kBAAc;AAAA,IACnB,CAAE,WACD,OAAQ,aAAAA,KAAoB,EAAE,uBAAwB,MAAM,EAAG;AAAA,IAChE,CAAE,KAAM;AAAA,EACT;AAEA,MAAK,CAAE,aAAc;AACpB,WAAO;AAAA,EACR;AAEA,SACC,4CAAC,SAAI,WAAU,6CACd,uDAAC,SAAI,WAAU,sDACZ;AAAA,gBAAY;AAAA,IACZ,YAAY,UACX,UAAM,gBAAI,yBAA0B,IACpC;AAAA,KACJ,GACD;AAEF;AAEA,IAAO,oCAAQ;",
6
+ "names": ["blockDirectoryStore"]
7
+ }
@@ -1,63 +1,79 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var downloadable_blocks_list_exports = {};
29
+ __export(downloadable_blocks_list_exports, {
30
+ default: () => downloadable_blocks_list_default
6
31
  });
7
- exports.default = void 0;
8
- var _i18n = require("@wordpress/i18n");
9
- var _components = require("@wordpress/components");
10
- var _blocks = require("@wordpress/blocks");
11
- var _data = require("@wordpress/data");
12
- var _downloadableBlockListItem = _interopRequireDefault(require("../downloadable-block-list-item"));
13
- var _store = require("../../store");
14
- var _jsxRuntime = require("react/jsx-runtime");
15
- /**
16
- * WordPress dependencies
17
- */
18
-
19
- /**
20
- * Internal dependencies
21
- */
22
-
23
- const noop = () => {};
24
- function DownloadableBlocksList({
25
- items,
26
- onHover = noop,
27
- onSelect
28
- }) {
29
- const {
30
- installBlockType
31
- } = (0, _data.useDispatch)(_store.store);
32
+ module.exports = __toCommonJS(downloadable_blocks_list_exports);
33
+ var import_jsx_runtime = require("react/jsx-runtime");
34
+ var import_i18n = require("@wordpress/i18n");
35
+ var import_components = require("@wordpress/components");
36
+ var import_blocks = require("@wordpress/blocks");
37
+ var import_data = require("@wordpress/data");
38
+ var import_downloadable_block_list_item = __toESM(require("../downloadable-block-list-item"));
39
+ var import_store = require("../../store");
40
+ const noop = () => {
41
+ };
42
+ function DownloadableBlocksList({ items, onHover = noop, onSelect }) {
43
+ const { installBlockType } = (0, import_data.useDispatch)(import_store.store);
32
44
  if (!items.length) {
33
45
  return null;
34
46
  }
35
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Composite, {
36
- role: "listbox",
37
- className: "block-directory-downloadable-blocks-list",
38
- "aria-label": (0, _i18n.__)('Blocks available for install'),
39
- children: items.map(item => {
40
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_downloadableBlockListItem.default, {
41
- onClick: () => {
42
- // Check if the block is registered (`getBlockType`
43
- // will return an object). If so, insert the block.
44
- // This prevents installing existing plugins.
45
- if ((0, _blocks.getBlockType)(item.name)) {
46
- onSelect(item);
47
- } else {
48
- installBlockType(item).then(success => {
49
- if (success) {
47
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
48
+ import_components.Composite,
49
+ {
50
+ role: "listbox",
51
+ className: "block-directory-downloadable-blocks-list",
52
+ "aria-label": (0, import_i18n.__)("Blocks available for install"),
53
+ children: items.map((item) => {
54
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
55
+ import_downloadable_block_list_item.default,
56
+ {
57
+ onClick: () => {
58
+ if ((0, import_blocks.getBlockType)(item.name)) {
50
59
  onSelect(item);
60
+ } else {
61
+ installBlockType(item).then((success) => {
62
+ if (success) {
63
+ onSelect(item);
64
+ }
65
+ });
51
66
  }
52
- });
53
- }
54
- onHover(null);
55
- },
56
- onHover: onHover,
57
- item: item
58
- }, item.id);
59
- })
60
- });
67
+ onHover(null);
68
+ },
69
+ onHover,
70
+ item
71
+ },
72
+ item.id
73
+ );
74
+ })
75
+ }
76
+ );
61
77
  }
62
- var _default = exports.default = DownloadableBlocksList;
63
- //# sourceMappingURL=index.js.map
78
+ var downloadable_blocks_list_default = DownloadableBlocksList;
79
+ //# sourceMappingURL=index.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["_i18n","require","_components","_blocks","_data","_downloadableBlockListItem","_interopRequireDefault","_store","_jsxRuntime","noop","DownloadableBlocksList","items","onHover","onSelect","installBlockType","useDispatch","blockDirectoryStore","length","jsx","Composite","role","className","__","children","map","item","default","onClick","getBlockType","name","then","success","id","_default","exports"],"sources":["@wordpress/block-directory/src/components/downloadable-blocks-list/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Composite } 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 { installBlockType } = useDispatch( blockDirectoryStore );\n\n\tif ( ! items.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\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\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"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAKA,IAAAI,0BAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAA2D,IAAAO,WAAA,GAAAP,OAAA;AAZ3D;AACA;AACA;;AAMA;AACA;AACA;;AAIA,MAAMQ,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAErB,SAASC,sBAAsBA,CAAE;EAAEC,KAAK;EAAEC,OAAO,GAAGH,IAAI;EAAEI;AAAS,CAAC,EAAG;EACtE,MAAM;IAAEC;EAAiB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,YAAoB,CAAC;EAE/D,IAAK,CAAEL,KAAK,CAACM,MAAM,EAAG;IACrB,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAT,WAAA,CAAAU,GAAA,EAAChB,WAAA,CAAAiB,SAAS;IACTC,IAAI,EAAC,SAAS;IACdC,SAAS,EAAC,0CAA0C;IACpD,cAAa,IAAAC,QAAE,EAAE,8BAA+B,CAAG;IAAAC,QAAA,EAEjDZ,KAAK,CAACa,GAAG,CAAIC,IAAI,IAAM;MACxB,oBACC,IAAAjB,WAAA,CAAAU,GAAA,EAACb,0BAAA,CAAAqB,OAAyB;QAEzBC,OAAO,EAAGA,CAAA,KAAM;UACf;UACA;UACA;UACA,IAAK,IAAAC,oBAAY,EAAEH,IAAI,CAACI,IAAK,CAAC,EAAG;YAChChB,QAAQ,CAAEY,IAAK,CAAC;UACjB,CAAC,MAAM;YACNX,gBAAgB,CAAEW,IAAK,CAAC,CAACK,IAAI,CAAIC,OAAO,IAAM;cAC7C,IAAKA,OAAO,EAAG;gBACdlB,QAAQ,CAAEY,IAAK,CAAC;cACjB;YACD,CAAE,CAAC;UACJ;UACAb,OAAO,CAAE,IAAK,CAAC;QAChB,CAAG;QACHA,OAAO,EAAGA,OAAS;QACnBa,IAAI,EAAGA;MAAM,GAjBPA,IAAI,CAACO,EAkBX,CAAC;IAEJ,CAAE;EAAC,CACO,CAAC;AAEd;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAR,OAAA,GAEchB,sBAAsB","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/downloadable-blocks-list/index.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Composite } 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 { installBlockType } = useDispatch( blockDirectoryStore );\n\n\tif ( ! items.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\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\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"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA+BK;AA5BL,kBAAmB;AACnB,wBAA0B;AAC1B,oBAA6B;AAC7B,kBAA4B;AAK5B,0CAAsC;AACtC,mBAA6C;AAE7C,MAAM,OAAO,MAAM;AAAC;AAEpB,SAAS,uBAAwB,EAAE,OAAO,UAAU,MAAM,SAAS,GAAI;AACtE,QAAM,EAAE,iBAAiB,QAAI,yBAAa,aAAAA,KAAoB;AAE9D,MAAK,CAAE,MAAM,QAAS;AACrB,WAAO;AAAA,EACR;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MACL,WAAU;AAAA,MACV,kBAAa,gBAAI,8BAA+B;AAAA,MAE9C,gBAAM,IAAK,CAAE,SAAU;AACxB,eACC;AAAA,UAAC,oCAAAC;AAAA,UAAA;AAAA,YAEA,SAAU,MAAM;AAIf,sBAAK,4BAAc,KAAK,IAAK,GAAI;AAChC,yBAAU,IAAK;AAAA,cAChB,OAAO;AACN,iCAAkB,IAAK,EAAE,KAAM,CAAE,YAAa;AAC7C,sBAAK,SAAU;AACd,6BAAU,IAAK;AAAA,kBAChB;AAAA,gBACD,CAAE;AAAA,cACH;AACA,sBAAS,IAAK;AAAA,YACf;AAAA,YACA;AAAA,YACA;AAAA;AAAA,UAjBM,KAAK;AAAA,QAkBZ;AAAA,MAEF,CAAE;AAAA;AAAA,EACH;AAEF;AAEA,IAAO,mCAAQ;",
6
+ "names": ["blockDirectoryStore", "DownloadableBlockListItem"]
7
+ }