/
home
/
desid573
/
new.perthdesignateddrivers.com.au
/
wp-includes
/
js
/
dist
/
/home/desid573/new.perthdesignateddrivers.com.au/wp-includes/js/dist
mkdir
upload
Name
Size
Mode
Actions
development/
-
0755
rm
script-modules/
-
0755
rm
vendor/
-
0755
rm
a11y.js
5584
0644
edit
dl
rm
a11y.min.js
2503
0644
edit
dl
rm
annotations.js
15493
0644
edit
dl
rm
annotations.min.js
5753
0644
edit
dl
rm
api-fetch.js
17875
0644
edit
dl
rm
api-fetch.min.js
6472
0644
edit
dl
rm
autop.js
9962
0644
edit
dl
rm
autop.min.js
5637
0644
edit
dl
rm
base-styles.js
48
0644
edit
dl
rm
base-styles.min.js
75
0644
edit
dl
rm
blob.js
2355
0644
edit
dl
rm
blob.min.js
1188
0644
edit
dl
rm
block-directory.js
57006
0644
edit
dl
rm
block-directory.min.js
22482
0644
edit
dl
rm
block-editor.js
2832320
0644
edit
dl
rm
block-editor.min.js
1056002
0644
edit
dl
rm
block-library.js
2692845
0644
edit
dl
rm
block-library.min.js
1143976
0644
edit
dl
rm
block-serialization-default-parser.js
6695
0644
edit
dl
rm
block-serialization-default-parser.min.js
2451
0644
edit
dl
rm
block-serialization-spec-parser.js
51693
0644
edit
dl
rm
block-serialization-spec-parser.min.js
10625
0644
edit
dl
rm
blocks.js
390206
0644
edit
dl
rm
blocks.min.js
184952
0644
edit
dl
rm
commands.js
155346
0644
edit
dl
rm
commands.min.js
64653
0644
edit
dl
rm
components.js
4017464
0644
edit
dl
rm
components.min.js
805148
0644
edit
dl
rm
compose.js
82688
0644
edit
dl
rm
compose.min.js
28856
0644
edit
dl
rm
core-commands.js
29367
0644
edit
dl
rm
core-commands.min.js
12153
0644
edit
dl
rm
core-data.js
626718
0644
edit
dl
rm
core-data.min.js
215516
0644
edit
dl
rm
customize-widgets.js
93770
0644
edit
dl
rm
customize-widgets.min.js
37494
0644
edit
dl
rm
data-controls.js
4230
0644
edit
dl
rm
data-controls.min.js
1814
0644
edit
dl
rm
data.js
84771
0644
edit
dl
rm
data.min.js
26540
0644
edit
dl
rm
date.js
180576
0644
edit
dl
rm
date.min.js
144608
0644
edit
dl
rm
deprecated.js
3113
0644
edit
dl
rm
deprecated.min.js
1315
0644
edit
dl
rm
dom-ready.js
1508
0644
edit
dl
rm
dom-ready.min.js
818
0644
edit
dl
rm
dom.js
35445
0644
edit
dl
rm
dom.min.js
12954
0644
edit
dl
rm
edit-post.js
120213
0644
edit
dl
rm
edit-post.min.js
50284
0644
edit
dl
rm
edit-site.js
1767456
0644
edit
dl
rm
edit-site.min.js
700880
0644
edit
dl
rm
edit-widgets.js
164094
0644
edit
dl
rm
edit-widgets.min.js
63344
0644
edit
dl
rm
editor.js
2617702
0644
edit
dl
rm
editor.min.js
1046150
0644
edit
dl
rm
element.js
28602
0644
edit
dl
rm
element.min.js
12458
0644
edit
dl
rm
escape-html.js
2346
0644
edit
dl
rm
escape-html.min.js
1091
0644
edit
dl
rm
format-library.js
75099
0644
edit
dl
rm
format-library.min.js
29575
0644
edit
dl
rm
hooks.js
12242
0644
edit
dl
rm
hooks.min.js
5050
0644
edit
dl
rm
html-entities.js
1685
0644
edit
dl
rm
html-entities.min.js
879
0644
edit
dl
rm
i18n.js
15670
0644
edit
dl
rm
i18n.min.js
5732
0644
edit
dl
rm
is-shallow-equal.js
2758
0644
edit
dl
rm
is-shallow-equal.min.js
1122
0644
edit
dl
rm
keyboard-shortcuts.js
9913
0644
edit
dl
rm
keyboard-shortcuts.min.js
3527
0644
edit
dl
rm
keycodes.js
8501
0644
edit
dl
rm
keycodes.min.js
2975
0644
edit
dl
rm
list-reusable-blocks.js
13374
0644
edit
dl
rm
list-reusable-blocks.min.js
5367
0644
edit
dl
rm
media-utils.js
652438
0644
edit
dl
rm
media-utils.min.js
243343
0644
edit
dl
rm
notices.js
10356
0644
edit
dl
rm
notices.min.js
4489
0644
edit
dl
rm
nux.js
10572
0644
edit
dl
rm
nux.min.js
4048
0644
edit
dl
rm
patterns.js
59644
0644
edit
dl
rm
patterns.min.js
22152
0644
edit
dl
rm
plugins.js
11951
0644
edit
dl
rm
plugins.min.js
4870
0644
edit
dl
rm
preferences-persistence.js
17629
0644
edit
dl
rm
preferences-persistence.min.js
5622
0644
edit
dl
rm
preferences.js
21574
0644
edit
dl
rm
preferences.min.js
7899
0644
edit
dl
rm
primitives.js
5203
0644
edit
dl
rm
primitives.min.js
2026
0644
edit
dl
rm
priority-queue.js
10265
0644
edit
dl
rm
priority-queue.min.js
3432
0644
edit
dl
rm
private-apis.js
4192
0644
edit
dl
rm
private-apis.min.js
2723
0644
edit
dl
rm
react-i18n.js
3999
0644
edit
dl
rm
react-i18n.min.js
1562
0644
edit
dl
rm
redux-routine.js
25275
0644
edit
dl
rm
redux-routine.min.js
9881
0644
edit
dl
rm
reusable-blocks.js
21004
0644
edit
dl
rm
reusable-blocks.min.js
7396
0644
edit
dl
rm
rich-text.js
99366
0644
edit
dl
rm
rich-text.min.js
40847
0644
edit
dl
rm
router.js
36987
0644
edit
dl
rm
router.min.js
14470
0644
edit
dl
rm
server-side-render.js
11231
0644
edit
dl
rm
server-side-render.min.js
4035
0644
edit
dl
rm
shortcode.js
8150
0644
edit
dl
rm
shortcode.min.js
3361
0644
edit
dl
rm
style-engine.js
18040
0644
edit
dl
rm
style-engine.min.js
6569
0644
edit
dl
rm
theme.js
130711
0644
edit
dl
rm
theme.min.js
57465
0644
edit
dl
rm
token-list.js
6262
0644
edit
dl
rm
token-list.min.js
1658
0644
edit
dl
rm
undo-manager.js
5422
0644
edit
dl
rm
undo-manager.min.js
1739
0644
edit
dl
rm
upload-media.js
57002
0644
edit
dl
rm
upload-media.min.js
23606
0644
edit
dl
rm
url.js
23951
0644
edit
dl
rm
url.min.js
10370
0644
edit
dl
rm
viewport.js
6765
0644
edit
dl
rm
viewport.min.js
2297
0644
edit
dl
rm
warning.js
1559
0644
edit
dl
rm
warning.min.js
755
0644
edit
dl
rm
widgets.js
51282
0644
edit
dl
rm
widgets.min.js
21327
0644
edit
dl
rm
wordcount.js
7101
0644
edit
dl
rm
wordcount.min.js
2505
0644
edit
dl
rm
Edit:
/home/desid573/new.perthdesignateddrivers.com.au/wp-includes/js/dist/block-directory.js
(57006B)
var wp; (wp ||= {}).blockDirectory = (() => { var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // package-external:@wordpress/plugins var require_plugins = __commonJS({ "package-external:@wordpress/plugins"(exports, module) { module.exports = window.wp.plugins; } }); // package-external:@wordpress/hooks var require_hooks = __commonJS({ "package-external:@wordpress/hooks"(exports, module) { module.exports = window.wp.hooks; } }); // package-external:@wordpress/blocks var require_blocks = __commonJS({ "package-external:@wordpress/blocks"(exports, module) { module.exports = window.wp.blocks; } }); // package-external:@wordpress/data var require_data = __commonJS({ "package-external:@wordpress/data"(exports, module) { module.exports = window.wp.data; } }); // package-external:@wordpress/element var require_element = __commonJS({ "package-external:@wordpress/element"(exports, module) { module.exports = window.wp.element; } }); // package-external:@wordpress/editor var require_editor = __commonJS({ "package-external:@wordpress/editor"(exports, module) { module.exports = window.wp.editor; } }); // package-external:@wordpress/block-editor var require_block_editor = __commonJS({ "package-external:@wordpress/block-editor"(exports, module) { module.exports = window.wp.blockEditor; } }); // package-external:@wordpress/i18n var require_i18n = __commonJS({ "package-external:@wordpress/i18n"(exports, module) { module.exports = window.wp.i18n; } }); // package-external:@wordpress/api-fetch var require_api_fetch = __commonJS({ "package-external:@wordpress/api-fetch"(exports, module) { module.exports = window.wp.apiFetch; } }); // package-external:@wordpress/notices var require_notices = __commonJS({ "package-external:@wordpress/notices"(exports, module) { module.exports = window.wp.notices; } }); // package-external:@wordpress/url var require_url = __commonJS({ "package-external:@wordpress/url"(exports, module) { module.exports = window.wp.url; } }); // package-external:@wordpress/compose var require_compose = __commonJS({ "package-external:@wordpress/compose"(exports, module) { module.exports = window.wp.compose; } }); // package-external:@wordpress/components var require_components = __commonJS({ "package-external:@wordpress/components"(exports, module) { module.exports = window.wp.components; } }); // package-external:@wordpress/core-data var require_core_data = __commonJS({ "package-external:@wordpress/core-data"(exports, module) { module.exports = window.wp.coreData; } }); // package-external:@wordpress/html-entities var require_html_entities = __commonJS({ "package-external:@wordpress/html-entities"(exports, module) { module.exports = window.wp.htmlEntities; } }); // package-external:@wordpress/primitives var require_primitives = __commonJS({ "package-external:@wordpress/primitives"(exports, module) { module.exports = window.wp.primitives; } }); // vendor-external:react/jsx-runtime var require_jsx_runtime = __commonJS({ "vendor-external:react/jsx-runtime"(exports, module) { module.exports = window.ReactJSXRuntime; } }); // package-external:@wordpress/a11y var require_a11y = __commonJS({ "package-external:@wordpress/a11y"(exports, module) { module.exports = window.wp.a11y; } }); // packages/block-directory/build-module/index.mjs var index_exports = {}; __export(index_exports, { store: () => store }); // packages/block-directory/build-module/plugins/index.mjs var import_plugins = __toESM(require_plugins(), 1); var import_hooks = __toESM(require_hooks(), 1); // packages/block-directory/build-module/components/auto-block-uninstaller/index.mjs var import_blocks2 = __toESM(require_blocks(), 1); var import_data4 = __toESM(require_data(), 1); var import_element = __toESM(require_element(), 1); var import_editor = __toESM(require_editor(), 1); // packages/block-directory/build-module/store/index.mjs var import_data3 = __toESM(require_data(), 1); // packages/block-directory/build-module/store/reducer.mjs var import_data = __toESM(require_data(), 1); var downloadableBlocks = (state = {}, action) => { switch (action.type) { case "FETCH_DOWNLOADABLE_BLOCKS": return { ...state, [action.filterValue]: { isRequesting: true } }; case "RECEIVE_DOWNLOADABLE_BLOCKS": return { ...state, [action.filterValue]: { results: action.downloadableBlocks, isRequesting: false } }; } return state; }; var blockManagement = (state = { installedBlockTypes: [], isInstalling: {} }, action) => { switch (action.type) { case "ADD_INSTALLED_BLOCK_TYPE": return { ...state, installedBlockTypes: [ ...state.installedBlockTypes, action.item ] }; case "REMOVE_INSTALLED_BLOCK_TYPE": return { ...state, installedBlockTypes: state.installedBlockTypes.filter( (blockType) => blockType.name !== action.item.name ) }; case "SET_INSTALLING_BLOCK": return { ...state, isInstalling: { ...state.isInstalling, [action.blockId]: action.isInstalling } }; } return state; }; var errorNotices = (state = {}, action) => { switch (action.type) { case "SET_ERROR_NOTICE": return { ...state, [action.blockId]: { message: action.message, isFatal: action.isFatal } }; case "CLEAR_ERROR_NOTICE": const { [action.blockId]: blockId, ...restState } = state; return restState; } return state; }; var reducer_default = (0, import_data.combineReducers)({ downloadableBlocks, blockManagement, errorNotices }); // packages/block-directory/build-module/store/selectors.mjs var selectors_exports = {}; __export(selectors_exports, { getDownloadableBlocks: () => getDownloadableBlocks, getErrorNoticeForBlock: () => getErrorNoticeForBlock, getErrorNotices: () => getErrorNotices, getInstalledBlockTypes: () => getInstalledBlockTypes, getNewBlockTypes: () => getNewBlockTypes, getUnusedBlockTypes: () => getUnusedBlockTypes, isInstalling: () => isInstalling, isRequestingDownloadableBlocks: () => isRequestingDownloadableBlocks }); var import_data2 = __toESM(require_data(), 1); var import_block_editor = __toESM(require_block_editor(), 1); var EMPTY_ARRAY = []; function isRequestingDownloadableBlocks(state, filterValue) { return state.downloadableBlocks[filterValue]?.isRequesting ?? false; } function getDownloadableBlocks(state, filterValue) { return state.downloadableBlocks[filterValue]?.results ?? EMPTY_ARRAY; } function getInstalledBlockTypes(state) { return state.blockManagement.installedBlockTypes; } var getNewBlockTypes = (0, import_data2.createRegistrySelector)( (select) => (0, import_data2.createSelector)( (state) => { const installedBlockTypes = getInstalledBlockTypes(state); if (!installedBlockTypes.length) { return EMPTY_ARRAY; } const { getBlockName, getClientIdsWithDescendants } = select(import_block_editor.store); const installedBlockNames = installedBlockTypes.map( (blockType) => blockType.name ); const foundBlockNames = getClientIdsWithDescendants().flatMap( (clientId) => { const blockName = getBlockName(clientId); return installedBlockNames.includes(blockName) ? blockName : []; } ); const newBlockTypes = installedBlockTypes.filter( (blockType) => foundBlockNames.includes(blockType.name) ); return newBlockTypes.length > 0 ? newBlockTypes : EMPTY_ARRAY; }, (state) => [ getInstalledBlockTypes(state), select(import_block_editor.store).getClientIdsWithDescendants() ] ) ); var getUnusedBlockTypes = (0, import_data2.createRegistrySelector)( (select) => (0, import_data2.createSelector)( (state) => { const installedBlockTypes = getInstalledBlockTypes(state); if (!installedBlockTypes.length) { return EMPTY_ARRAY; } const { getBlockName, getClientIdsWithDescendants } = select(import_block_editor.store); const installedBlockNames = installedBlockTypes.map( (blockType) => blockType.name ); const foundBlockNames = getClientIdsWithDescendants().flatMap( (clientId) => { const blockName = getBlockName(clientId); return installedBlockNames.includes(blockName) ? blockName : []; } ); const unusedBlockTypes = installedBlockTypes.filter( (blockType) => !foundBlockNames.includes(blockType.name) ); return unusedBlockTypes.length > 0 ? unusedBlockTypes : EMPTY_ARRAY; }, (state) => [ getInstalledBlockTypes(state), select(import_block_editor.store).getClientIdsWithDescendants() ] ) ); function isInstalling(state, blockId) { return state.blockManagement.isInstalling[blockId] || false; } function getErrorNotices(state) { return state.errorNotices; } function getErrorNoticeForBlock(state, blockId) { return state.errorNotices[blockId]; } // packages/block-directory/build-module/store/actions.mjs var actions_exports = {}; __export(actions_exports, { addInstalledBlockType: () => addInstalledBlockType, clearErrorNotice: () => clearErrorNotice, fetchDownloadableBlocks: () => fetchDownloadableBlocks, installBlockType: () => installBlockType, receiveDownloadableBlocks: () => receiveDownloadableBlocks, removeInstalledBlockType: () => removeInstalledBlockType, setErrorNotice: () => setErrorNotice, setIsInstalling: () => setIsInstalling, uninstallBlockType: () => uninstallBlockType }); var import_blocks = __toESM(require_blocks(), 1); var import_i18n = __toESM(require_i18n(), 1); var import_api_fetch2 = __toESM(require_api_fetch(), 1); var import_notices = __toESM(require_notices(), 1); var import_url = __toESM(require_url(), 1); // packages/block-directory/build-module/store/load-assets.mjs var import_api_fetch = __toESM(require_api_fetch(), 1); var loadAsset = (el) => { return new Promise((resolve, reject) => { const newNode = document.createElement(el.nodeName); ["id", "rel", "src", "href", "type"].forEach((attr) => { if (el[attr]) { newNode[attr] = el[attr]; } }); if (el.innerHTML) { newNode.appendChild(document.createTextNode(el.innerHTML)); } newNode.onload = () => resolve(true); newNode.onerror = () => reject(new Error("Error loading asset.")); document.body.appendChild(newNode); if ("link" === newNode.nodeName.toLowerCase() || "script" === newNode.nodeName.toLowerCase() && !newNode.src) { resolve(); } }); }; async function loadAssets() { const response = await (0, import_api_fetch.default)({ url: document.location.href, parse: false }); const data = await response.text(); const doc = new window.DOMParser().parseFromString(data, "text/html"); const newAssets = Array.from( doc.querySelectorAll('link[rel="stylesheet"],script') ).filter((asset) => asset.id && !document.getElementById(asset.id)); for (const newAsset of newAssets) { await loadAsset(newAsset); } } // packages/block-directory/build-module/store/utils/get-plugin-url.mjs function getPluginUrl(block) { if (!block) { return false; } const link = block.links["wp:plugin"] || block.links.self; if (link && link.length) { return link[0].href; } return false; } // packages/block-directory/build-module/store/actions.mjs function fetchDownloadableBlocks(filterValue) { return { type: "FETCH_DOWNLOADABLE_BLOCKS", filterValue }; } function receiveDownloadableBlocks(downloadableBlocks2, filterValue) { return { type: "RECEIVE_DOWNLOADABLE_BLOCKS", downloadableBlocks: downloadableBlocks2, filterValue }; } var installBlockType = (block) => async ({ registry, dispatch }) => { const { id, name } = block; let success = false; dispatch.clearErrorNotice(id); try { dispatch.setIsInstalling(id, true); const url = getPluginUrl(block); let links = {}; if (url) { await (0, import_api_fetch2.default)({ method: "PUT", url, data: { status: "active" } }); } else { const response = await (0, import_api_fetch2.default)({ method: "POST", path: "wp/v2/plugins", data: { slug: id, status: "active" } }); links = response._links; } dispatch.addInstalledBlockType({ ...block, links: { ...block.links, ...links } }); const metadataFields = [ "api_version", "title", "category", "parent", "ancestor", "icon", "description", "keywords", "attributes", "provides_context", "uses_context", "selectors", "supports", "styles", "example", "variations", "allowed_blocks", "block_hooks" ]; await (0, import_api_fetch2.default)({ path: (0, import_url.addQueryArgs)(`/wp/v2/block-types/${name}`, { _fields: metadataFields }) }).catch(() => { }).then((response) => { if (!response) { return; } (0, import_blocks.unstable__bootstrapServerSideBlockDefinitions)({ [name]: Object.fromEntries( Object.entries(response).filter( ([key]) => metadataFields.includes(key) ) ) }); }); await loadAssets(); const registeredBlocks = registry.select(import_blocks.store).getBlockTypes(); if (!registeredBlocks.some((i) => i.name === name)) { throw new Error( (0, import_i18n.__)("Error registering block. Try reloading the page.") ); } registry.dispatch(import_notices.store).createInfoNotice( (0, import_i18n.sprintf)( // translators: %s is the block title. (0, import_i18n.__)("Block %s installed and added."), block.title ), { speak: true, type: "snackbar" } ); success = true; } catch (error) { let message = error.message || (0, import_i18n.__)("An error occurred."); let isFatal = error instanceof Error; const fatalAPIErrors = { folder_exists: (0, import_i18n.__)( "This block is already installed. Try reloading the page." ), unable_to_connect_to_filesystem: (0, import_i18n.__)( "Error installing block. You can reload the page and try again." ) }; if (fatalAPIErrors[error.code]) { isFatal = true; message = fatalAPIErrors[error.code]; } dispatch.setErrorNotice(id, message, isFatal); registry.dispatch(import_notices.store).createErrorNotice(message, { speak: true, isDismissible: true }); } dispatch.setIsInstalling(id, false); return success; }; var uninstallBlockType = (block) => async ({ registry, dispatch }) => { try { const url = getPluginUrl(block); await (0, import_api_fetch2.default)({ method: "PUT", url, data: { status: "inactive" } }); await (0, import_api_fetch2.default)({ method: "DELETE", url }); dispatch.removeInstalledBlockType(block); } catch (error) { registry.dispatch(import_notices.store).createErrorNotice( error.message || (0, import_i18n.__)("An error occurred.") ); } }; function addInstalledBlockType(item) { return { type: "ADD_INSTALLED_BLOCK_TYPE", item }; } function removeInstalledBlockType(item) { return { type: "REMOVE_INSTALLED_BLOCK_TYPE", item }; } function setIsInstalling(blockId, isInstalling2) { return { type: "SET_INSTALLING_BLOCK", blockId, isInstalling: isInstalling2 }; } function setErrorNotice(blockId, message, isFatal = false) { return { type: "SET_ERROR_NOTICE", blockId, message, isFatal }; } function clearErrorNotice(blockId) { return { type: "CLEAR_ERROR_NOTICE", blockId }; } // packages/block-directory/build-module/store/resolvers.mjs var resolvers_exports = {}; __export(resolvers_exports, { getDownloadableBlocks: () => getDownloadableBlocks2 }); // node_modules/tslib/tslib.es6.mjs var __assign = function() { __assign = Object.assign || function __assign2(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; // node_modules/lower-case/dist.es2015/index.js function lowerCase(str) { return str.toLowerCase(); } // node_modules/no-case/dist.es2015/index.js var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g]; var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi; function noCase(input, options) { if (options === void 0) { options = {}; } var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? " " : _d; var result = replace(replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0"); var start = 0; var end = result.length; while (result.charAt(start) === "\0") start++; while (result.charAt(end - 1) === "\0") end--; return result.slice(start, end).split("\0").map(transform).join(delimiter); } function replace(input, re, value) { if (re instanceof RegExp) return input.replace(re, value); return re.reduce(function(input2, re2) { return input2.replace(re2, value); }, input); } // node_modules/pascal-case/dist.es2015/index.js function pascalCaseTransform(input, index) { var firstChar = input.charAt(0); var lowerChars = input.substr(1).toLowerCase(); if (index > 0 && firstChar >= "0" && firstChar <= "9") { return "_" + firstChar + lowerChars; } return "" + firstChar.toUpperCase() + lowerChars; } function pascalCase(input, options) { if (options === void 0) { options = {}; } return noCase(input, __assign({ delimiter: "", transform: pascalCaseTransform }, options)); } // node_modules/camel-case/dist.es2015/index.js function camelCaseTransform(input, index) { if (index === 0) return input.toLowerCase(); return pascalCaseTransform(input, index); } function camelCase(input, options) { if (options === void 0) { options = {}; } return pascalCase(input, __assign({ transform: camelCaseTransform }, options)); } // packages/block-directory/build-module/store/resolvers.mjs var import_api_fetch3 = __toESM(require_api_fetch(), 1); var getDownloadableBlocks2 = (filterValue) => async ({ dispatch }) => { if (!filterValue) { return; } try { dispatch(fetchDownloadableBlocks(filterValue)); const results = await (0, import_api_fetch3.default)({ path: `wp/v2/block-directory/search?term=${filterValue}` }); const blocks = results.map( (result) => Object.fromEntries( Object.entries(result).map(([key, value]) => [ camelCase(key), value ]) ) ); dispatch(receiveDownloadableBlocks(blocks, filterValue)); } catch { dispatch(receiveDownloadableBlocks([], filterValue)); } }; // packages/block-directory/build-module/store/index.mjs var STORE_NAME = "core/block-directory"; var storeConfig = { reducer: reducer_default, selectors: selectors_exports, actions: actions_exports, resolvers: resolvers_exports }; var store = (0, import_data3.createReduxStore)(STORE_NAME, storeConfig); (0, import_data3.register)(store); // packages/block-directory/build-module/components/auto-block-uninstaller/index.mjs function AutoBlockUninstaller() { const { uninstallBlockType: uninstallBlockType2 } = (0, import_data4.useDispatch)(store); const shouldRemoveBlockTypes = (0, import_data4.useSelect)((select) => { const { isAutosavingPost, isSavingPost } = select(import_editor.store); return isSavingPost() && !isAutosavingPost(); }, []); const unusedBlockTypes = (0, import_data4.useSelect)( (select) => select(store).getUnusedBlockTypes(), [] ); (0, import_element.useEffect)(() => { if (shouldRemoveBlockTypes && unusedBlockTypes.length) { unusedBlockTypes.forEach((blockType) => { uninstallBlockType2(blockType); (0, import_blocks2.unregisterBlockType)(blockType.name); }); } }, [shouldRemoveBlockTypes]); return null; } // packages/block-directory/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.mjs var import_block_editor3 = __toESM(require_block_editor(), 1); var import_compose = __toESM(require_compose(), 1); var import_element5 = __toESM(require_element(), 1); // packages/block-directory/build-module/components/downloadable-blocks-panel/index.mjs var import_i18n8 = __toESM(require_i18n(), 1); var import_components4 = __toESM(require_components(), 1); var import_core_data = __toESM(require_core_data(), 1); var import_data8 = __toESM(require_data(), 1); var import_blocks5 = __toESM(require_blocks(), 1); // packages/block-directory/build-module/components/downloadable-blocks-list/index.mjs var import_i18n5 = __toESM(require_i18n(), 1); var import_components2 = __toESM(require_components(), 1); var import_blocks4 = __toESM(require_blocks(), 1); var import_data7 = __toESM(require_data(), 1); // node_modules/clsx/dist/clsx.mjs function r(e) { var t, f, n = ""; if ("string" == typeof e || "number" == typeof e) n += e; else if ("object" == typeof e) if (Array.isArray(e)) { var o = e.length; for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f); } else for (f in e) e[f] && (n && (n += " "), n += f); return n; } function clsx() { for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t); return n; } var clsx_default = clsx; // packages/block-directory/build-module/components/downloadable-block-list-item/index.mjs var import_i18n4 = __toESM(require_i18n(), 1); var import_components = __toESM(require_components(), 1); var import_element3 = __toESM(require_element(), 1); var import_html_entities = __toESM(require_html_entities(), 1); var import_blocks3 = __toESM(require_blocks(), 1); var import_data6 = __toESM(require_data(), 1); // packages/block-directory/build-module/components/block-ratings/stars.mjs var import_i18n2 = __toESM(require_i18n(), 1); // packages/icons/build-module/icon/index.mjs var import_element2 = __toESM(require_element(), 1); var icon_default = (0, import_element2.forwardRef)( ({ icon, size = 24, ...props }, ref) => { return (0, import_element2.cloneElement)(icon, { width: size, height: size, ...props, ref }); } ); // packages/icons/build-module/library/star-empty.mjs var import_primitives = __toESM(require_primitives(), 1); var import_jsx_runtime = __toESM(require_jsx_runtime(), 1); var star_empty_default = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.Path, { fillRule: "evenodd", clipRule: "evenodd", d: "M9.706 8.646a.25.25 0 01-.188.137l-4.626.672a.25.25 0 00-.139.427l3.348 3.262a.25.25 0 01.072.222l-.79 4.607a.25.25 0 00.362.264l4.138-2.176a.25.25 0 01.233 0l4.137 2.175a.25.25 0 00.363-.263l-.79-4.607a.25.25 0 01.072-.222l3.347-3.262a.25.25 0 00-.139-.427l-4.626-.672a.25.25 0 01-.188-.137l-2.069-4.192a.25.25 0 00-.448 0L9.706 8.646zM12 7.39l-.948 1.921a1.75 1.75 0 01-1.317.957l-2.12.308 1.534 1.495c.412.402.6.982.503 1.55l-.362 2.11 1.896-.997a1.75 1.75 0 011.629 0l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39z" }) }); // packages/icons/build-module/library/star-filled.mjs var import_primitives2 = __toESM(require_primitives(), 1); var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1); var star_filled_default = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives2.Path, { d: "M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z" }) }); // packages/icons/build-module/library/star-half.mjs var import_primitives3 = __toESM(require_primitives(), 1); var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1); var star_half_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives3.Path, { d: "M9.518 8.783a.25.25 0 00.188-.137l2.069-4.192a.25.25 0 01.448 0l2.07 4.192a.25.25 0 00.187.137l4.626.672a.25.25 0 01.139.427l-3.347 3.262a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.363.264l-4.137-2.176a.25.25 0 00-.233 0l-4.138 2.175a.25.25 0 01-.362-.263l.79-4.607a.25.25 0 00-.072-.222L4.753 9.882a.25.25 0 01.14-.427l4.625-.672zM12 14.533c.28 0 .559.067.814.2l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39v7.143z" }) }); // packages/block-directory/build-module/components/block-ratings/stars.mjs var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1); function Stars({ rating }) { const stars = Math.round(rating / 0.5) * 0.5; const fullStarCount = Math.floor(rating); const halfStarCount = Math.ceil(rating - fullStarCount); const emptyStarCount = 5 - (fullStarCount + halfStarCount); return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)( "span", { "aria-label": (0, import_i18n2.sprintf)( /* translators: %s: number of stars. */ (0, import_i18n2.__)("%s out of 5 stars"), stars ), children: [ Array.from({ length: fullStarCount }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( icon_default, { className: "block-directory-block-ratings__star-full", icon: star_filled_default, size: 16 }, `full_stars_${i}` )), Array.from({ length: halfStarCount }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( icon_default, { className: "block-directory-block-ratings__star-half-full", icon: star_half_default, size: 16 }, `half_stars_${i}` )), Array.from({ length: emptyStarCount }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( icon_default, { className: "block-directory-block-ratings__star-empty", icon: star_empty_default, size: 16 }, `empty_stars_${i}` )) ] } ); } var stars_default = Stars; // packages/block-directory/build-module/components/block-ratings/index.mjs var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1); var BlockRatings = ({ rating }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "block-directory-block-ratings", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(stars_default, { rating }) }); var block_ratings_default = BlockRatings; // packages/block-directory/build-module/components/downloadable-block-icon/index.mjs var import_block_editor2 = __toESM(require_block_editor(), 1); var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1); function DownloadableBlockIcon({ icon }) { const className = "block-directory-downloadable-block-icon"; return icon.match(/\.(jpeg|jpg|gif|png|svg)(?:\?.*)?$/) !== null ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("img", { className, src: icon, alt: "" }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_block_editor2.BlockIcon, { className, icon, showColors: true }); } var downloadable_block_icon_default = DownloadableBlockIcon; // packages/block-directory/build-module/components/downloadable-block-notice/index.mjs var import_i18n3 = __toESM(require_i18n(), 1); var import_data5 = __toESM(require_data(), 1); var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1); var DownloadableBlockNotice = ({ block }) => { const errorNotice = (0, import_data5.useSelect)( (select) => select(store).getErrorNoticeForBlock(block.id), [block] ); if (!errorNotice) { return null; } return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "block-directory-downloadable-block-notice", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "block-directory-downloadable-block-notice__content", children: [ errorNotice.message, errorNotice.isFatal ? " " + (0, import_i18n3.__)("Try reloading the page.") : null ] }) }); }; var downloadable_block_notice_default = DownloadableBlockNotice; // packages/block-directory/build-module/components/downloadable-block-list-item/index.mjs var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1); function getDownloadableBlockLabel({ title, rating, ratingCount }, { hasNotice, isInstalled, isInstalling: isInstalling2 }) { const stars = Math.round(rating / 0.5) * 0.5; if (!isInstalled && hasNotice) { return (0, import_i18n4.sprintf)("Retry installing %s.", (0, import_html_entities.decodeEntities)(title)); } if (isInstalled) { return (0, import_i18n4.sprintf)("Add %s.", (0, import_html_entities.decodeEntities)(title)); } if (isInstalling2) { return (0, import_i18n4.sprintf)("Installing %s.", (0, import_html_entities.decodeEntities)(title)); } if (ratingCount < 1) { return (0, import_i18n4.sprintf)("Install %s.", (0, import_html_entities.decodeEntities)(title)); } return (0, import_i18n4.sprintf)( /* translators: 1: block title, 2: average rating, 3: total ratings count. */ (0, import_i18n4._n)( "Install %1$s. %2$s stars with %3$s review.", "Install %1$s. %2$s stars with %3$s reviews.", ratingCount ), (0, import_html_entities.decodeEntities)(title), stars, ratingCount ); } function DownloadableBlockListItem({ item, onClick }) { const { author, description, icon, rating, title } = item; const isInstalled = !!(0, import_blocks3.getBlockType)(item.name); const { hasNotice, isInstalling: isInstalling2, isInstallable } = (0, import_data6.useSelect)( (select) => { const { getErrorNoticeForBlock: getErrorNoticeForBlock2, isInstalling: isBlockInstalling } = select(store); const notice = getErrorNoticeForBlock2(item.id); const hasFatal = notice && notice.isFatal; return { hasNotice: !!notice, isInstalling: isBlockInstalling(item.id), isInstallable: !hasFatal }; }, [item] ); let statusText = ""; if (isInstalled) { statusText = (0, import_i18n4.__)("Installed!"); } else if (isInstalling2) { statusText = (0, import_i18n4.__)("Installing\u2026"); } const itemLabel = getDownloadableBlockLabel(item, { hasNotice, isInstalled, isInstalling: isInstalling2 }); return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_components.Tooltip, { placement: "top", text: itemLabel, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)( import_components.Composite.Item, { className: clsx_default( "block-directory-downloadable-block-list-item", isInstalling2 && "is-installing" ), accessibleWhenDisabled: true, disabled: isInstalling2 || !isInstallable, onClick: (event) => { event.preventDefault(); onClick(); }, "aria-label": itemLabel, type: "button", role: "option", children: [ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "block-directory-downloadable-block-list-item__icon", children: [ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(downloadable_block_icon_default, { icon, title }), isInstalling2 ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "block-directory-downloadable-block-list-item__spinner", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_components.Spinner, {}) }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(block_ratings_default, { rating }) ] }), /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { className: "block-directory-downloadable-block-list-item__details", children: [ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "block-directory-downloadable-block-list-item__title", children: (0, import_element3.createInterpolateElement)( (0, import_i18n4.sprintf)( /* translators: 1: block title. 2: author name. */ (0, import_i18n4.__)("%1$s <span>by %2$s</span>"), (0, import_html_entities.decodeEntities)(title), author ), { span: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "block-directory-downloadable-block-list-item__author" }) } ) }), hasNotice ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(downloadable_block_notice_default, { block: item }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "block-directory-downloadable-block-list-item__desc", children: !!statusText ? statusText : (0, import_html_entities.decodeEntities)(description) }), isInstallable && !(isInstalled || isInstalling2) && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_components.VisuallyHidden, { children: (0, import_i18n4.__)("Install block") }) ] }) ] }) ] } ) }); } var downloadable_block_list_item_default = DownloadableBlockListItem; // packages/block-directory/build-module/components/downloadable-blocks-list/index.mjs var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1); var noop = () => { }; function DownloadableBlocksList({ items, onHover = noop, onSelect }) { const { installBlockType: installBlockType2 } = (0, import_data7.useDispatch)(store); if (!items.length) { return null; } return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( import_components2.Composite, { role: "listbox", className: "block-directory-downloadable-blocks-list", "aria-label": (0, import_i18n5.__)("Blocks available for install"), children: items.map((item) => { return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( downloadable_block_list_item_default, { onClick: () => { if ((0, import_blocks4.getBlockType)(item.name)) { onSelect(item); } else { installBlockType2(item).then((success) => { if (success) { onSelect(item); } }); } onHover(null); }, onHover, item }, item.id ); }) } ); } var downloadable_blocks_list_default = DownloadableBlocksList; // packages/block-directory/build-module/components/downloadable-blocks-panel/inserter-panel.mjs var import_i18n6 = __toESM(require_i18n(), 1); var import_element4 = __toESM(require_element(), 1); var import_a11y = __toESM(require_a11y(), 1); var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1); function DownloadableBlocksInserterPanel({ children, downloadableItems, hasLocalBlocks }) { const count = downloadableItems.length; (0, import_element4.useEffect)(() => { (0, import_a11y.speak)( (0, import_i18n6.sprintf)( /* translators: %d: number of available blocks. */ (0, import_i18n6._n)( "%d additional block is available to install.", "%d additional blocks are available to install.", count ), count ) ); }, [count]); return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [ !hasLocalBlocks && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: "block-directory-downloadable-blocks-panel__no-local", children: (0, import_i18n6.__)("No results available from your installed blocks.") }), /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "block-editor-inserter__quick-inserter-separator" }), /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "block-directory-downloadable-blocks-panel", children: [ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "block-directory-downloadable-blocks-panel__header", children: [ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("h2", { className: "block-directory-downloadable-blocks-panel__title", children: (0, import_i18n6.__)("Available to install") }), /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: "block-directory-downloadable-blocks-panel__description", children: (0, import_i18n6.__)( "Select a block to install and add it to your post." ) }) ] }), children ] }) ] }); } var inserter_panel_default = DownloadableBlocksInserterPanel; // packages/block-directory/build-module/components/downloadable-blocks-panel/no-results.mjs var import_i18n7 = __toESM(require_i18n(), 1); var import_components3 = __toESM(require_components(), 1); var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1); function DownloadableBlocksNoResults() { return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "block-editor-inserter__no-results", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { children: (0, import_i18n7.__)("No results found.") }) }), /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "block-editor-inserter__tips", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_components3.Tip, { children: [ (0, import_i18n7.__)("Interested in creating your own block?"), /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("br", {}), /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_components3.ExternalLink, { href: "https://developer.wordpress.org/block-editor/", children: [ (0, import_i18n7.__)("Get started here"), "." ] }) ] }) }) ] }); } var no_results_default = DownloadableBlocksNoResults; // packages/block-directory/build-module/components/downloadable-blocks-panel/index.mjs var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1); var EMPTY_ARRAY2 = []; var useDownloadableBlocks = (filterValue) => (0, import_data8.useSelect)( (select) => { const { getDownloadableBlocks: getDownloadableBlocks3, isRequestingDownloadableBlocks: isRequestingDownloadableBlocks2, getInstalledBlockTypes: getInstalledBlockTypes2 } = select(store); const hasPermission = select(import_core_data.store).canUser( "read", "block-directory/search" ); let downloadableBlocks2 = EMPTY_ARRAY2; if (hasPermission) { downloadableBlocks2 = getDownloadableBlocks3(filterValue); const installedBlockTypes = getInstalledBlockTypes2(); const installableBlocks = downloadableBlocks2.filter( ({ name }) => { const isJustInstalled = installedBlockTypes.some( (blockType) => blockType.name === name ); const isPreviouslyInstalled = (0, import_blocks5.getBlockType)(name); return isJustInstalled || !isPreviouslyInstalled; } ); if (installableBlocks.length !== downloadableBlocks2.length) { downloadableBlocks2 = installableBlocks; } if (downloadableBlocks2.length === 0) { downloadableBlocks2 = EMPTY_ARRAY2; } } return { hasPermission, downloadableBlocks: downloadableBlocks2, isLoading: isRequestingDownloadableBlocks2(filterValue) }; }, [filterValue] ); function DownloadableBlocksPanel({ onSelect, onHover, hasLocalBlocks, isTyping, filterValue }) { const { hasPermission, downloadableBlocks: downloadableBlocks2, isLoading } = useDownloadableBlocks(filterValue); if (hasPermission === void 0 || isLoading || isTyping) { return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [ hasPermission && !hasLocalBlocks && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "block-directory-downloadable-blocks-panel__no-local", children: (0, import_i18n8.__)( "No results available from your installed blocks." ) }), /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "block-editor-inserter__quick-inserter-separator" }) ] }), /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "block-directory-downloadable-blocks-panel has-blocks-loading", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_components4.Spinner, {}) }) ] }); } if (false === hasPermission) { if (!hasLocalBlocks) { return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(no_results_default, {}); } return null; } if (downloadableBlocks2.length === 0) { return hasLocalBlocks ? null : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(no_results_default, {}); } return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)( inserter_panel_default, { downloadableItems: downloadableBlocks2, hasLocalBlocks, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)( downloadable_blocks_list_default, { items: downloadableBlocks2, onSelect, onHover } ) } ); } // packages/block-directory/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.mjs var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1); function InserterMenuDownloadableBlocksPanel() { const [debouncedFilterValue, setFilterValue] = (0, import_element5.useState)(""); const debouncedSetFilterValue = (0, import_compose.debounce)(setFilterValue, 400); return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_block_editor3.__unstableInserterMenuExtension, { children: ({ onSelect, onHover, filterValue, hasItems }) => { if (debouncedFilterValue !== filterValue) { debouncedSetFilterValue(filterValue); } if (!debouncedFilterValue) { return null; } return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( DownloadableBlocksPanel, { onSelect, onHover, filterValue: debouncedFilterValue, hasLocalBlocks: hasItems, isTyping: filterValue !== debouncedFilterValue } ); } }); } var inserter_menu_downloadable_blocks_panel_default = InserterMenuDownloadableBlocksPanel; // packages/block-directory/build-module/plugins/installed-blocks-pre-publish-panel/index.mjs var import_i18n10 = __toESM(require_i18n(), 1); var import_data9 = __toESM(require_data(), 1); var import_editor2 = __toESM(require_editor(), 1); // packages/block-directory/build-module/components/compact-list/index.mjs var import_i18n9 = __toESM(require_i18n(), 1); var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1); function CompactList({ items }) { if (!items.length) { return null; } return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("ul", { className: "block-directory-compact-list", children: items.map(({ icon, id, title, author }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("li", { className: "block-directory-compact-list__item", children: [ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(downloadable_block_icon_default, { icon, title }), /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "block-directory-compact-list__item-details", children: [ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "block-directory-compact-list__item-title", children: title }), /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "block-directory-compact-list__item-author", children: (0, import_i18n9.sprintf)( /* translators: %s: Name of the block author. */ (0, import_i18n9.__)("By %s"), author ) }) ] }) ] }, id)) }); } // packages/block-directory/build-module/plugins/installed-blocks-pre-publish-panel/index.mjs var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1); function InstalledBlocksPrePublishPanel() { const newBlockTypes = (0, import_data9.useSelect)( (select) => select(store).getNewBlockTypes(), [] ); if (!newBlockTypes.length) { return null; } return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( import_editor2.PluginPrePublishPanel, { title: (0, import_i18n10.sprintf)( // translators: %d: number of blocks (number). (0, import_i18n10._n)( "Added: %d block", "Added: %d blocks", newBlockTypes.length ), newBlockTypes.length ), initialOpen: true, children: [ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "installed-blocks-pre-publish-panel__copy", children: (0, import_i18n10._n)( "The following block has been added to your site.", "The following blocks have been added to your site.", newBlockTypes.length ) }), /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CompactList, { items: newBlockTypes }) ] } ); } // packages/block-directory/build-module/plugins/get-install-missing/index.mjs var import_i18n12 = __toESM(require_i18n(), 1); var import_components6 = __toESM(require_components(), 1); var import_blocks7 = __toESM(require_blocks(), 1); var import_element6 = __toESM(require_element(), 1); var import_data11 = __toESM(require_data(), 1); var import_core_data2 = __toESM(require_core_data(), 1); var import_block_editor5 = __toESM(require_block_editor(), 1); // packages/block-directory/build-module/plugins/get-install-missing/install-button.mjs var import_i18n11 = __toESM(require_i18n(), 1); var import_components5 = __toESM(require_components(), 1); var import_blocks6 = __toESM(require_blocks(), 1); var import_data10 = __toESM(require_data(), 1); var import_block_editor4 = __toESM(require_block_editor(), 1); var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1); function InstallButton({ attributes, block, clientId }) { const isInstallingBlock = (0, import_data10.useSelect)( (select) => select(store).isInstalling(block.id), [block.id] ); const { installBlockType: installBlockType2 } = (0, import_data10.useDispatch)(store); const { replaceBlock } = (0, import_data10.useDispatch)(import_block_editor4.store); return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)( import_components5.Button, { __next40pxDefaultSize: true, onClick: () => installBlockType2(block).then((success) => { if (success) { const blockType = (0, import_blocks6.getBlockType)(block.name); const [originalBlock] = (0, import_blocks6.parse)( attributes.originalContent ); if (originalBlock && blockType) { replaceBlock( clientId, (0, import_blocks6.createBlock)( blockType.name, originalBlock.attributes, originalBlock.innerBlocks ) ); } } }), accessibleWhenDisabled: true, disabled: isInstallingBlock, isBusy: isInstallingBlock, variant: "primary", children: (0, import_i18n11.sprintf)( /* translators: %s: block name */ (0, import_i18n11.__)("Install %s"), block.title ) } ); } // packages/block-directory/build-module/plugins/get-install-missing/index.mjs var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1); var getInstallMissing = (OriginalComponent) => (props) => { const { originalName } = props.attributes; const { block, hasPermission } = (0, import_data11.useSelect)( (select) => { const { getDownloadableBlocks: getDownloadableBlocks3 } = select(store); const blocks = getDownloadableBlocks3( "block:" + originalName ).filter(({ name }) => originalName === name); return { hasPermission: select(import_core_data2.store).canUser( "read", "block-directory/search" ), block: blocks.length && blocks[0] }; }, [originalName] ); if (!hasPermission || !block) { return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(OriginalComponent, { ...props }); } return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ModifiedWarning, { ...props, originalBlock: block }); }; var ModifiedWarning = ({ originalBlock, ...props }) => { const { originalName, originalUndelimitedContent, clientId } = props.attributes; const { replaceBlock } = (0, import_data11.useDispatch)(import_block_editor5.store); const convertToHTML = () => { replaceBlock( props.clientId, (0, import_blocks7.createBlock)("core/html", { content: originalUndelimitedContent }) ); }; const hasContent = !!originalUndelimitedContent; const hasHTMLBlock = (0, import_data11.useSelect)( (select) => { const { canInsertBlockType, getBlockRootClientId } = select(import_block_editor5.store); return canInsertBlockType( "core/html", getBlockRootClientId(clientId) ); }, [clientId] ); let messageHTML = (0, import_i18n12.sprintf)( /* translators: %s: block name */ (0, import_i18n12.__)( "Your site doesn\u2019t include support for the %s block. You can try installing the block or remove it entirely." ), originalBlock.title || originalName ); const actions = [ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( InstallButton, { block: originalBlock, attributes: props.attributes, clientId: props.clientId }, "install" ) ]; if (hasContent && hasHTMLBlock) { messageHTML = (0, import_i18n12.sprintf)( /* translators: %s: block name */ (0, import_i18n12.__)( "Your site doesn\u2019t include support for the %s block. You can try installing the block, convert it to a Custom HTML block, or remove it entirely." ), originalBlock.title || originalName ); actions.push( /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( import_components6.Button, { __next40pxDefaultSize: true, onClick: convertToHTML, variant: "tertiary", children: (0, import_i18n12.__)("Keep as HTML") }, "convert" ) ); } return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { ...(0, import_block_editor5.useBlockProps)(), children: [ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_block_editor5.Warning, { actions, children: messageHTML }), /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_element6.RawHTML, { children: originalUndelimitedContent }) ] }); }; var get_install_missing_default = getInstallMissing; // packages/block-directory/build-module/plugins/index.mjs var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1); (0, import_plugins.registerPlugin)("block-directory", { // The icon is explicitly set to undefined to prevent PluginPrePublishPanel // from rendering the fallback icon pluginIcon. icon: void 0, render() { return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AutoBlockUninstaller, {}), /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(inserter_menu_downloadable_blocks_panel_default, {}), /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(InstalledBlocksPrePublishPanel, {}) ] }); } }); (0, import_hooks.addFilter)( "blocks.registerBlockType", "block-directory/fallback", (settings, name) => { if (name !== "core/missing") { return settings; } settings.edit = get_install_missing_default(settings.edit); return settings; } ); return __toCommonJS(index_exports); })();
Save
cmd:
run