--- a/wp/wp-includes/js/dist/plugins.js Thu Sep 29 08:06:27 2022 +0200
+++ b/wp/wp-includes/js/dist/plugins.js Fri Sep 05 18:40:08 2025 +0200
@@ -1,9 +1,66 @@
-/******/ (function() { // webpackBootstrap
-/******/ var __webpack_modules__ = ({
+/******/ (() => { // webpackBootstrap
+/******/ "use strict";
+/******/ // The require scope
+/******/ var __webpack_require__ = {};
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/compat get default export */
+/******/ (() => {
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = (module) => {
+/******/ var getter = module && module.__esModule ?
+/******/ () => (module['default']) :
+/******/ () => (module);
+/******/ __webpack_require__.d(getter, { a: getter });
+/******/ return getter;
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/define property getters */
+/******/ (() => {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = (exports, definition) => {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ (() => {
+/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
+/******/ })();
+/******/
+/******/ /* webpack/runtime/make namespace object */
+/******/ (() => {
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = (exports) => {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/ })();
+/******/
+/************************************************************************/
+var __webpack_exports__ = {};
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
-/***/ 9756:
-/***/ (function(module) {
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, {
+ PluginArea: () => (/* reexport */ plugin_area),
+ getPlugin: () => (/* reexport */ getPlugin),
+ getPlugins: () => (/* reexport */ getPlugins),
+ registerPlugin: () => (/* reexport */ registerPlugin),
+ unregisterPlugin: () => (/* reexport */ unregisterPlugin),
+ usePluginContext: () => (/* reexport */ usePluginContext),
+ withPluginContext: () => (/* reexport */ withPluginContext)
+});
+;// CONCATENATED MODULE: ./node_modules/memize/dist/index.js
/**
* Memize options object.
*
@@ -36,14 +93,14 @@
* Accepts a function to be memoized, and returns a new memoized function, with
* optional options.
*
- * @template {Function} F
+ * @template {(...args: any[]) => any} F
*
* @param {F} fn Function to memoize.
* @param {MemizeOptions} [options] Options object.
*
- * @return {F & MemizeMemoizedFunction} Memoized function.
+ * @return {((...args: Parameters<F>) => ReturnType<F>) & MemizeMemoizedFunction} Memoized function.
*/
-function memize( fn, options ) {
+function memize(fn, options) {
var size = 0;
/** @type {?MemizeCacheNode|undefined} */
@@ -54,12 +111,13 @@
options = options || {};
- function memoized( /* ...args */ ) {
+ function memoized(/* ...args */) {
var node = head,
len = arguments.length,
- args, i;
+ args,
+ i;
- searchCache: while ( node ) {
+ searchCache: while (node) {
// Perform a shallow equality test to confirm that whether the node
// under test is a candidate for the arguments passed. Two arrays
// are shallowly equal if their length matches and each entry is
@@ -67,14 +125,14 @@
// function which could incur an arguments leaking deoptimization.
// Check whether node arguments match arguments length
- if ( node.args.length !== arguments.length ) {
+ if (node.args.length !== arguments.length) {
node = node.next;
continue;
}
// Check whether node arguments match arguments values
- for ( i = 0; i < len; i++ ) {
- if ( node.args[ i ] !== arguments[ i ] ) {
+ for (i = 0; i < len; i++) {
+ if (node.args[i] !== arguments[i]) {
node = node.next;
continue searchCache;
}
@@ -83,23 +141,23 @@
// At this point we can assume we've found a match
// Surface matched node to head if not already
- if ( node !== head ) {
+ if (node !== head) {
// As tail, shift to previous. Must only shift if not also
// head, since if both head and tail, there is no previous.
- if ( node === tail ) {
+ if (node === tail) {
tail = node.prev;
}
// Adjust siblings to point to each other. If node was tail,
// this also handles new tail's empty `next` assignment.
- /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;
- if ( node.next ) {
+ /** @type {MemizeCacheNode} */ (node.prev).next = node.next;
+ if (node.next) {
node.next.prev = node.prev;
}
node.next = head;
node.prev = null;
- /** @type {MemizeCacheNode} */ ( head ).prev = node;
+ /** @type {MemizeCacheNode} */ (head).prev = node;
head = node;
}
@@ -110,23 +168,23 @@
// No cached value found. Continue to insertion phase:
// Create a copy of arguments (avoid leaking deoptimization)
- args = new Array( len );
- for ( i = 0; i < len; i++ ) {
- args[ i ] = arguments[ i ];
+ args = new Array(len);
+ for (i = 0; i < len; i++) {
+ args[i] = arguments[i];
}
node = {
args: args,
// Generate the result from original function
- val: fn.apply( null, args ),
+ val: fn.apply(null, args),
};
// Don't need to check whether node is already head, since it would
// have been returned above already if it was
// Shift existing head down list
- if ( head ) {
+ if (head) {
head.prev = node;
node.next = head;
} else {
@@ -135,9 +193,9 @@
}
// Trim tail if we're reached max size and are pending cache insertion
- if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {
- tail = /** @type {MemizeCacheNode} */ ( tail ).prev;
- /** @type {MemizeCacheNode} */ ( tail ).next = null;
+ if (size === /** @type {MemizeOptions} */ (options).maxSize) {
+ tail = /** @type {MemizeCacheNode} */ (tail).prev;
+ /** @type {MemizeCacheNode} */ (tail).next = null;
} else {
size++;
}
@@ -147,14 +205,12 @@
return node.val;
}
- memoized.clear = function() {
+ memoized.clear = function () {
head = null;
tail = null;
size = 0;
};
- if ( false ) {}
-
// Ignore reason: There's not a clear solution to create an intersection of
// the function with additional properties, where the goal is to retain the
// function signature of the incoming argument and add control properties
@@ -164,154 +220,62 @@
return memoized;
}
-module.exports = memize;
-/***/ })
-
-/******/ });
-/************************************************************************/
-/******/ // The module cache
-/******/ var __webpack_module_cache__ = {};
-/******/
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-/******/ // Check if module is in cache
-/******/ var cachedModule = __webpack_module_cache__[moduleId];
-/******/ if (cachedModule !== undefined) {
-/******/ return cachedModule.exports;
-/******/ }
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = __webpack_module_cache__[moduleId] = {
-/******/ // no module.id needed
-/******/ // no module.loaded needed
-/******/ exports: {}
-/******/ };
-/******/
-/******/ // Execute the module function
-/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
-/******/
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-/******/
-/************************************************************************/
-/******/ /* webpack/runtime/compat get default export */
-/******/ !function() {
-/******/ // getDefaultExport function for compatibility with non-harmony modules
-/******/ __webpack_require__.n = function(module) {
-/******/ var getter = module && module.__esModule ?
-/******/ function() { return module['default']; } :
-/******/ function() { return module; };
-/******/ __webpack_require__.d(getter, { a: getter });
-/******/ return getter;
-/******/ };
-/******/ }();
-/******/
-/******/ /* webpack/runtime/define property getters */
-/******/ !function() {
-/******/ // define getter functions for harmony exports
-/******/ __webpack_require__.d = function(exports, definition) {
-/******/ for(var key in definition) {
-/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
-/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
-/******/ }
-/******/ }
-/******/ };
-/******/ }();
-/******/
-/******/ /* webpack/runtime/hasOwnProperty shorthand */
-/******/ !function() {
-/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
-/******/ }();
-/******/
-/******/ /* webpack/runtime/make namespace object */
-/******/ !function() {
-/******/ // define __esModule on exports
-/******/ __webpack_require__.r = function(exports) {
-/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ }
-/******/ Object.defineProperty(exports, '__esModule', { value: true });
-/******/ };
-/******/ }();
-/******/
-/************************************************************************/
-var __webpack_exports__ = {};
-// This entry need to be wrapped in an IIFE because it need to be in strict mode.
-!function() {
-"use strict";
-// ESM COMPAT FLAG
-__webpack_require__.r(__webpack_exports__);
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, {
- "PluginArea": function() { return /* reexport */ plugin_area; },
- "getPlugin": function() { return /* reexport */ getPlugin; },
- "getPlugins": function() { return /* reexport */ getPlugins; },
- "registerPlugin": function() { return /* reexport */ registerPlugin; },
- "unregisterPlugin": function() { return /* reexport */ unregisterPlugin; },
- "withPluginContext": function() { return /* reexport */ withPluginContext; }
-});
-
;// CONCATENATED MODULE: external ["wp","element"]
-var external_wp_element_namespaceObject = window["wp"]["element"];
-;// CONCATENATED MODULE: external "lodash"
-var external_lodash_namespaceObject = window["lodash"];
-// EXTERNAL MODULE: ./node_modules/memize/index.js
-var memize = __webpack_require__(9756);
-var memize_default = /*#__PURE__*/__webpack_require__.n(memize);
+const external_wp_element_namespaceObject = window["wp"]["element"];
;// CONCATENATED MODULE: external ["wp","hooks"]
-var external_wp_hooks_namespaceObject = window["wp"]["hooks"];
-;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
-function _extends() {
- _extends = Object.assign ? Object.assign.bind() : function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
-
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
-
- return target;
- };
- return _extends.apply(this, arguments);
-}
+const external_wp_hooks_namespaceObject = window["wp"]["hooks"];
+;// CONCATENATED MODULE: external ["wp","isShallowEqual"]
+const external_wp_isShallowEqual_namespaceObject = window["wp"]["isShallowEqual"];
+var external_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_wp_isShallowEqual_namespaceObject);
;// CONCATENATED MODULE: external ["wp","compose"]
-var external_wp_compose_namespaceObject = window["wp"]["compose"];
+const external_wp_compose_namespaceObject = window["wp"]["compose"];
+;// CONCATENATED MODULE: external "ReactJSXRuntime"
+const external_ReactJSXRuntime_namespaceObject = window["ReactJSXRuntime"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/components/plugin-context/index.js
-
-
-
/**
* WordPress dependencies
*/
-const {
- Consumer,
- Provider
-} = (0,external_wp_element_namespaceObject.createContext)({
+
+/**
+ * Internal dependencies
+ */
+
+const Context = (0,external_wp_element_namespaceObject.createContext)({
name: null,
icon: null
});
+const PluginContextProvider = Context.Provider;
+
+/**
+ * A hook that returns the plugin context.
+ *
+ * @return {PluginContext} Plugin context
+ */
+function usePluginContext() {
+ return (0,external_wp_element_namespaceObject.useContext)(Context);
+}
/**
* A Higher Order Component used to inject Plugin context to the
* wrapped component.
*
- * @param {Function} mapContextToProps Function called on every context change,
- * expected to return object of props to
- * merge with the component's own props.
+ * @param mapContextToProps Function called on every context change,
+ * expected to return object of props to
+ * merge with the component's own props.
*
- * @return {WPComponent} Enhanced component with injected context as props.
+ * @return {Component} Enhanced component with injected context as props.
*/
-
const withPluginContext = mapContextToProps => (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(OriginalComponent => {
- return props => (0,external_wp_element_namespaceObject.createElement)(Consumer, null, context => (0,external_wp_element_namespaceObject.createElement)(OriginalComponent, _extends({}, props, mapContextToProps(context, props))));
+ return props => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Context.Consumer, {
+ children: context => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OriginalComponent, {
+ ...props,
+ ...mapContextToProps(context, props)
+ })
+ });
}, 'withPluginContext');
;// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/components/plugin-error-boundary/index.js
@@ -320,110 +284,95 @@
*/
class PluginErrorBoundary extends external_wp_element_namespaceObject.Component {
+ /**
+ * @param {Object} props
+ */
constructor(props) {
super(props);
this.state = {
hasError: false
};
}
-
static getDerivedStateFromError() {
return {
hasError: true
};
}
+ /**
+ * @param {Error} error Error object passed by React.
+ */
componentDidCatch(error) {
const {
name,
onError
} = this.props;
-
if (onError) {
onError(name, error);
}
}
-
render() {
if (!this.state.hasError) {
return this.props.children;
}
-
return null;
}
-
}
;// CONCATENATED MODULE: external ["wp","primitives"]
-var external_wp_primitives_namespaceObject = window["wp"]["primitives"];
+const external_wp_primitives_namespaceObject = window["wp"]["primitives"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/plugins.js
-
-
/**
* WordPress dependencies
*/
-const plugins = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+
+const plugins = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
xmlns: "http://www.w3.org/2000/svg",
- viewBox: "0 0 24 24"
-}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
- d: "M10.5 4v4h3V4H15v4h1.5a1 1 0 011 1v4l-3 4v2a1 1 0 01-1 1h-3a1 1 0 01-1-1v-2l-3-4V9a1 1 0 011-1H9V4h1.5zm.5 12.5v2h2v-2l3-4v-3H8v3l3 4z"
-}));
-/* harmony default export */ var library_plugins = (plugins);
+ viewBox: "0 0 24 24",
+ children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
+ d: "M10.5 4v4h3V4H15v4h1.5a1 1 0 011 1v4l-3 4v2a1 1 0 01-1 1h-3a1 1 0 01-1-1v-2l-3-4V9a1 1 0 011-1H9V4h1.5zm.5 12.5v2h2v-2l3-4v-3H8v3l3 4z"
+ })
+});
+/* harmony default export */ const library_plugins = (plugins);
;// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/api/index.js
/* eslint no-console: [ 'error', { allow: [ 'error' ] } ] */
+/**
+ * External dependencies
+ */
/**
* WordPress dependencies
*/
-/**
- * External dependencies
- */
-
/**
* Defined behavior of a plugin type.
- *
- * @typedef {Object} WPPlugin
- *
- * @property {string} name A string identifying the plugin. Must be
- * unique across all registered plugins.
- * @property {string|WPElement|Function} [icon] An icon to be shown in the UI. It can
- * be a slug of the Dashicon, or an element
- * (or function returning an element) if you
- * choose to render your own SVG.
- * @property {Function} render A component containing the UI elements
- * to be rendered.
- * @property {string} [scope] The optional scope to be used when rendering inside
- * a plugin area. No scope by default.
*/
/**
* Plugin definitions keyed by plugin name.
- *
- * @type {Object.<string,WPPlugin>}
*/
+const api_plugins = {};
-const api_plugins = {};
/**
* Registers a plugin to the editor.
*
- * @param {string} name A string identifying the plugin.Must be
- * unique across all registered plugins.
- * @param {WPPlugin} settings The settings for this plugin.
+ * @param name A string identifying the plugin. Must be
+ * unique across all registered plugins.
+ * @param settings The settings for this plugin.
*
* @example
* ```js
* // Using ES5 syntax
- * var el = wp.element.createElement;
+ * var el = React.createElement;
* var Fragment = wp.element.Fragment;
- * var PluginSidebar = wp.editPost.PluginSidebar;
- * var PluginSidebarMoreMenuItem = wp.editPost.PluginSidebarMoreMenuItem;
+ * var PluginSidebar = wp.editor.PluginSidebar;
+ * var PluginSidebarMoreMenuItem = wp.editor.PluginSidebarMoreMenuItem;
* var registerPlugin = wp.plugins.registerPlugin;
- * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.
+ * var moreIcon = React.createElement( 'svg' ); //... svg element.
*
* function Component() {
* return el(
@@ -456,7 +405,7 @@
* @example
* ```js
* // Using ESNext syntax
- * import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/edit-post';
+ * import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/editor';
* import { registerPlugin } from '@wordpress/plugins';
* import { more } from '@wordpress/icons';
*
@@ -483,52 +432,43 @@
* } );
* ```
*
- * @return {WPPlugin} The final plugin settings object.
+ * @return The final plugin settings object.
*/
-
function registerPlugin(name, settings) {
if (typeof settings !== 'object') {
console.error('No settings object provided!');
return null;
}
-
if (typeof name !== 'string') {
console.error('Plugin name must be string.');
return null;
}
-
if (!/^[a-z][a-z0-9-]*$/.test(name)) {
console.error('Plugin name must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: "my-plugin".');
return null;
}
-
if (api_plugins[name]) {
console.error(`Plugin "${name}" is already registered.`);
}
-
settings = (0,external_wp_hooks_namespaceObject.applyFilters)('plugins.registerPlugin', settings, name);
const {
render,
scope
} = settings;
-
- if (!(0,external_lodash_namespaceObject.isFunction)(render)) {
+ if (typeof render !== 'function') {
console.error('The "render" property must be specified and must be a valid function.');
return null;
}
-
if (scope) {
if (typeof scope !== 'string') {
console.error('Plugin scope must be string.');
return null;
}
-
if (!/^[a-z][a-z0-9-]*$/.test(scope)) {
console.error('Plugin scope must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: "my-page".');
return null;
}
}
-
api_plugins[name] = {
name,
icon: library_plugins,
@@ -537,10 +477,11 @@
(0,external_wp_hooks_namespaceObject.doAction)('plugins.pluginRegistered', settings, name);
return settings;
}
+
/**
* Unregisters a plugin by name.
*
- * @param {string} name Plugin name.
+ * @param name Plugin name.
*
* @example
* ```js
@@ -558,48 +499,44 @@
* unregisterPlugin( 'plugin-name' );
* ```
*
- * @return {?WPPlugin} The previous plugin settings object, if it has been
- * successfully unregistered; otherwise `undefined`.
+ * @return The previous plugin settings object, if it has been
+ * successfully unregistered; otherwise `undefined`.
*/
-
function unregisterPlugin(name) {
if (!api_plugins[name]) {
console.error('Plugin "' + name + '" is not registered.');
return;
}
-
const oldPlugin = api_plugins[name];
delete api_plugins[name];
(0,external_wp_hooks_namespaceObject.doAction)('plugins.pluginUnregistered', oldPlugin, name);
return oldPlugin;
}
+
/**
* Returns a registered plugin settings.
*
- * @param {string} name Plugin name.
+ * @param name Plugin name.
*
- * @return {?WPPlugin} Plugin setting.
+ * @return Plugin setting.
*/
-
function getPlugin(name) {
return api_plugins[name];
}
+
/**
* Returns all registered plugins without a scope or for a given scope.
*
- * @param {string} [scope] The scope to be used when rendering inside
- * a plugin area. No scope by default.
+ * @param scope The scope to be used when rendering inside
+ * a plugin area. No scope by default.
*
- * @return {WPPlugin[]} The list of plugins without a scope or for a given scope.
+ * @return The list of plugins without a scope or for a given scope.
*/
-
function getPlugins(scope) {
return Object.values(api_plugins).filter(plugin => plugin.scope === scope);
}
;// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/components/plugin-area/index.js
-
-
/**
* External dependencies
*/
@@ -611,6 +548,7 @@
+
/**
* Internal dependencies
*/
@@ -618,13 +556,21 @@
+const getPluginContext = memize((icon, name) => ({
+ icon,
+ name
+}));
+
/**
* A component that renders all plugin fills in a hidden div.
*
+ * @param props
+ * @param props.scope
+ * @param props.onError
* @example
* ```js
* // Using ES5 syntax
- * var el = wp.element.createElement;
+ * var el = React.createElement;
* var PluginArea = wp.plugins.PluginArea;
*
* function Layout() {
@@ -650,75 +596,52 @@
* );
* ```
*
- * @return {WPComponent} The component to be rendered.
+ * @return {Component} The component to be rendered.
*/
-
-class PluginArea extends external_wp_element_namespaceObject.Component {
- constructor() {
- super(...arguments);
- this.setPlugins = this.setPlugins.bind(this);
- this.memoizedContext = memize_default()((name, icon) => {
- return {
- name,
- icon
- };
- });
- this.state = this.getCurrentPluginsState();
- }
-
- getCurrentPluginsState() {
+function PluginArea({
+ scope,
+ onError
+}) {
+ const store = (0,external_wp_element_namespaceObject.useMemo)(() => {
+ let lastValue = [];
return {
- plugins: (0,external_lodash_namespaceObject.map)(getPlugins(this.props.scope), _ref => {
- let {
- icon,
- name,
- render
- } = _ref;
- return {
- Plugin: render,
- context: this.memoizedContext(name, icon)
+ subscribe(listener) {
+ (0,external_wp_hooks_namespaceObject.addAction)('plugins.pluginRegistered', 'core/plugins/plugin-area/plugins-registered', listener);
+ (0,external_wp_hooks_namespaceObject.addAction)('plugins.pluginUnregistered', 'core/plugins/plugin-area/plugins-unregistered', listener);
+ return () => {
+ (0,external_wp_hooks_namespaceObject.removeAction)('plugins.pluginRegistered', 'core/plugins/plugin-area/plugins-registered');
+ (0,external_wp_hooks_namespaceObject.removeAction)('plugins.pluginUnregistered', 'core/plugins/plugin-area/plugins-unregistered');
};
- })
+ },
+ getValue() {
+ const nextValue = getPlugins(scope);
+ if (!external_wp_isShallowEqual_default()(lastValue, nextValue)) {
+ lastValue = nextValue;
+ }
+ return lastValue;
+ }
};
- }
-
- componentDidMount() {
- (0,external_wp_hooks_namespaceObject.addAction)('plugins.pluginRegistered', 'core/plugins/plugin-area/plugins-registered', this.setPlugins);
- (0,external_wp_hooks_namespaceObject.addAction)('plugins.pluginUnregistered', 'core/plugins/plugin-area/plugins-unregistered', this.setPlugins);
- }
-
- componentWillUnmount() {
- (0,external_wp_hooks_namespaceObject.removeAction)('plugins.pluginRegistered', 'core/plugins/plugin-area/plugins-registered');
- (0,external_wp_hooks_namespaceObject.removeAction)('plugins.pluginUnregistered', 'core/plugins/plugin-area/plugins-unregistered');
- }
-
- setPlugins() {
- this.setState(this.getCurrentPluginsState);
- }
-
- render() {
- return (0,external_wp_element_namespaceObject.createElement)("div", {
- style: {
- display: 'none'
- }
- }, (0,external_lodash_namespaceObject.map)(this.state.plugins, _ref2 => {
- let {
- context,
- Plugin
- } = _ref2;
- return (0,external_wp_element_namespaceObject.createElement)(Provider, {
- key: context.name,
- value: context
- }, (0,external_wp_element_namespaceObject.createElement)(PluginErrorBoundary, {
- name: context.name,
- onError: this.props.onError
- }, (0,external_wp_element_namespaceObject.createElement)(Plugin, null)));
- }));
- }
-
+ }, [scope]);
+ const plugins = (0,external_wp_element_namespaceObject.useSyncExternalStore)(store.subscribe, store.getValue, store.getValue);
+ return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
+ style: {
+ display: 'none'
+ },
+ children: plugins.map(({
+ icon,
+ name,
+ render: Plugin
+ }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PluginContextProvider, {
+ value: getPluginContext(icon, name),
+ children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PluginErrorBoundary, {
+ name: name,
+ onError: onError,
+ children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Plugin, {})
+ })
+ }, name))
+ });
}
-
-/* harmony default export */ var plugin_area = (PluginArea);
+/* harmony default export */ const plugin_area = (PluginArea);
;// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/components/index.js
@@ -728,7 +651,6 @@
-}();
(window.wp = window.wp || {}).plugins = __webpack_exports__;
/******/ })()
;
\ No newline at end of file