at path:
ROOT
/
wp-includes
/
js
/
dist
/
plugins.js
run:
R
W
Run
development
DIR
2022-11-10 17:09:20
R
W
Run
vendor
DIR
2023-07-06 17:58:08
R
W
Run
a11y.js
8.46 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
a11y.min.js
2.39 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
annotations.js
30.6 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
annotations.min.js
6.53 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
api-fetch.js
22.29 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
api-fetch.min.js
5.27 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
autop.js
15.9 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
autop.min.js
5.54 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
blob.js
3.62 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
blob.min.js
917 By
2024-02-06 14:00:14
R
W
Run
Delete
Rename
block-directory.js
75.95 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
block-directory.min.js
20.6 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
block-editor.js
2.13 MB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
block-editor.min.js
714.6 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
block-library.js
1.86 MB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
block-library.min.js
788.04 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
block-serialization-default-parser.js
14.93 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
block-serialization-default-parser.min.js
2.39 KB
2023-07-06 17:58:08
R
W
Run
Delete
Rename
blocks.js
540.82 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
blocks.min.js
167.71 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
commands.js
183.14 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
commands.min.js
46.66 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
components.js
2.63 MB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
components.min.js
790.84 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
compose.js
193.9 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
compose.min.js
36.67 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
core-commands.js
21.2 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
core-commands.min.js
7.94 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
core-data.js
230.15 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
core-data.min.js
55.19 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
customize-widgets.js
110.11 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
customize-widgets.min.js
39.5 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
data-controls.js
7.3 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
data-controls.min.js
1.59 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
data.js
152.25 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
data.min.js
26.7 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
date.js
798.3 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
date.min.js
765.34 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
deprecated.js
4.67 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
deprecated.min.js
729 By
2024-02-06 14:00:14
R
W
Run
Delete
Rename
dom-ready.js
2.45 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
dom-ready.min.js
498 By
2022-04-11 12:04:30
R
W
Run
Delete
Rename
dom.js
62.11 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
dom.min.js
12.77 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
edit-post.js
355.9 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
edit-post.min.js
125.19 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
edit-site.js
1.29 MB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
edit-site.min.js
505.33 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
edit-widgets.js
163.6 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
edit-widgets.min.js
57.64 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
editor.js
419.89 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
editor.min.js
147.66 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
element.js
66.15 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
element.min.js
12.35 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
escape-html.js
6.21 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
escape-html.min.js
1.11 KB
2022-04-11 12:04:30
R
W
Run
Delete
Rename
format-library.js
63.81 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
format-library.min.js
22.46 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
hooks.js
19.58 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
hooks.min.js
4.52 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
html-entities.js
3.62 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
html-entities.min.js
837 By
2022-04-11 12:04:30
R
W
Run
Delete
Rename
i18n.js
49.01 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
i18n.min.js
9.22 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
interactivity.js
80.97 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
interactivity.min.js
31.62 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
is-shallow-equal.js
4.33 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
is-shallow-equal.min.js
1.07 KB
2022-04-11 12:04:30
R
W
Run
Delete
Rename
keyboard-shortcuts.js
31.74 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
keyboard-shortcuts.min.js
4.09 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
keycodes.js
33.33 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
keycodes.min.js
3.94 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
list-reusable-blocks.js
30.16 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
list-reusable-blocks.min.js
4.97 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
media-utils.js
22.02 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
media-utils.min.js
7.27 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
notices.js
21.81 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
notices.min.js
2.21 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
nux.js
20.58 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
nux.min.js
4.51 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
patterns.js
26.97 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
patterns.min.js
8.68 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
plugins.js
17.54 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
plugins.min.js
4.24 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
preferences-persistence.js
28.17 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
preferences-persistence.min.js
4.85 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
preferences.js
11.42 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
preferences.min.js
2.58 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
primitives.js
9.59 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
primitives.min.js
2.46 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
priority-queue.js
13.98 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
priority-queue.min.js
3.36 KB
2023-07-06 17:58:08
R
W
Run
Delete
Rename
private-apis.js
8.57 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
private-apis.min.js
2.63 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
redux-routine.js
23.52 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
redux-routine.min.js
8.79 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
reusable-blocks.js
20.37 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
reusable-blocks.min.js
6.5 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
rich-text.js
123.03 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
rich-text.min.js
30.4 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
router.js
25.91 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
router.min.js
4.25 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
server-side-render.js
14.42 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
server-side-render.min.js
4.4 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
shortcode.js
14.96 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
shortcode.min.js
2.87 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
style-engine.js
36.88 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
style-engine.min.js
5.51 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
token-list.js
6.48 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
token-list.min.js
1.27 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
undo-manager.js
8.32 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
undo-manager.min.js
1.75 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
url.js
33.88 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
url.min.js
9.4 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
viewport.js
10.53 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
viewport.min.js
1.94 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
warning.js
2.46 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
warning.min.js
352 By
2024-02-06 14:00:14
R
W
Run
Delete
Rename
widgets.js
53.63 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
widgets.min.js
20.71 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
wordcount.js
14.68 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
wordcount.min.js
2.47 KB
2024-02-06 14:00:14
R
W
Run
Delete
Rename
error_log
up
📄
plugins.js
Save
/******/ (function() { // webpackBootstrap /******/ "use strict"; /******/ // The require scope /******/ var __webpack_require__ = {}; /******/ /************************************************************************/ /******/ /* 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__ = {}; // 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; }, usePluginContext: function() { return /* reexport */ usePluginContext; }, withPluginContext: function() { return /* reexport */ withPluginContext; } }); ;// CONCATENATED MODULE: external ["wp","element"] var external_wp_element_namespaceObject = window["wp"]["element"]; ;// CONCATENATED MODULE: ./node_modules/memize/dist/index.js /** * Memize options object. * * @typedef MemizeOptions * * @property {number} [maxSize] Maximum size of the cache. */ /** * Internal cache entry. * * @typedef MemizeCacheNode * * @property {?MemizeCacheNode|undefined} [prev] Previous node. * @property {?MemizeCacheNode|undefined} [next] Next node. * @property {Array<*>} args Function arguments for cache * entry. * @property {*} val Function result. */ /** * Properties of the enhanced function for controlling cache. * * @typedef MemizeMemoizedFunction * * @property {()=>void} clear Clear the cache. */ /** * Accepts a function to be memoized, and returns a new memoized function, with * optional options. * * @template {(...args: any[]) => any} F * * @param {F} fn Function to memoize. * @param {MemizeOptions} [options] Options object. * * @return {((...args: Parameters<F>) => ReturnType<F>) & MemizeMemoizedFunction} Memoized function. */ function memize(fn, options) { var size = 0; /** @type {?MemizeCacheNode|undefined} */ var head; /** @type {?MemizeCacheNode|undefined} */ var tail; options = options || {}; function memoized(/* ...args */) { var node = head, len = arguments.length, args, i; 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 // strictly equal between the two sets. Avoid abstracting to a // function which could incur an arguments leaking deoptimization. // Check whether node arguments match 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]) { node = node.next; continue searchCache; } } // At this point we can assume we've found a match // Surface matched node to head if not already 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) { 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) { node.next.prev = node.prev; } node.next = head; node.prev = null; /** @type {MemizeCacheNode} */ (head).prev = node; head = node; } // Return immediately return node.val; } // 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]; } node = { args: args, // Generate the result from original function 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) { head.prev = node; node.next = head; } else { // If no head, follows that there's no tail (at initial or reset) tail = node; } // 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; } else { size++; } head = node; return node.val; } memoized.clear = function () { head = null; tail = null; size = 0; }; // 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 // on the return value. // @ts-ignore return memoized; } ;// CONCATENATED MODULE: external ["wp","hooks"] var external_wp_hooks_namespaceObject = window["wp"]["hooks"]; ;// CONCATENATED MODULE: external ["wp","isShallowEqual"] var 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"]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/components/plugin-context/index.js /** * WordPress dependencies */ /** * 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 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. */ const withPluginContext = mapContextToProps => (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(OriginalComponent => { return props => (0,external_wp_element_namespaceObject.createElement)(Context.Consumer, null, context => (0,external_wp_element_namespaceObject.createElement)(OriginalComponent, { ...props, ...mapContextToProps(context, props) })); }, 'withPluginContext'); ;// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/components/plugin-error-boundary/index.js /** * WordPress dependencies */ 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"]; ;// 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, { 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); ;// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/api/index.js /* eslint no-console: [ 'error', { allow: [ 'error' ] } ] */ /** * WordPress dependencies */ /** * Plugin definitions keyed by plugin name. */ const api_plugins = {}; /** * Registers a plugin to the editor. * * @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 Fragment = wp.element.Fragment; * var PluginSidebar = wp.editPost.PluginSidebar; * var PluginSidebarMoreMenuItem = wp.editPost.PluginSidebarMoreMenuItem; * var registerPlugin = wp.plugins.registerPlugin; * var moreIcon = wp.element.createElement( 'svg' ); //... svg element. * * function Component() { * return el( * Fragment, * {}, * el( * PluginSidebarMoreMenuItem, * { * target: 'sidebar-name', * }, * 'My Sidebar' * ), * el( * PluginSidebar, * { * name: 'sidebar-name', * title: 'My Sidebar', * }, * 'Content of the sidebar' * ) * ); * } * registerPlugin( 'plugin-name', { * icon: moreIcon, * render: Component, * scope: 'my-page', * } ); * ``` * * @example * ```js * // Using ESNext syntax * import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/edit-post'; * import { registerPlugin } from '@wordpress/plugins'; * import { more } from '@wordpress/icons'; * * const Component = () => ( * <> * <PluginSidebarMoreMenuItem * target="sidebar-name" * > * My Sidebar * </PluginSidebarMoreMenuItem> * <PluginSidebar * name="sidebar-name" * title="My Sidebar" * > * Content of the sidebar * </PluginSidebar> * </> * ); * * registerPlugin( 'plugin-name', { * icon: more, * render: Component, * scope: 'my-page', * } ); * ``` * * @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 (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, ...settings }; (0,external_wp_hooks_namespaceObject.doAction)('plugins.pluginRegistered', settings, name); return settings; } /** * Unregisters a plugin by name. * * @param name Plugin name. * * @example * ```js * // Using ES5 syntax * var unregisterPlugin = wp.plugins.unregisterPlugin; * * unregisterPlugin( 'plugin-name' ); * ``` * * @example * ```js * // Using ESNext syntax * import { unregisterPlugin } from '@wordpress/plugins'; * * unregisterPlugin( 'plugin-name' ); * ``` * * @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 name Plugin name. * * @return Plugin setting. */ function getPlugin(name) { return api_plugins[name]; } /** * Returns all registered plugins without a scope or for a given scope. * * @param scope The scope to be used when rendering inside * a plugin area. No scope by default. * * @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 */ /** * WordPress dependencies */ /** * Internal dependencies */ 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 PluginArea = wp.plugins.PluginArea; * * function Layout() { * return el( * 'div', * { scope: 'my-page' }, * 'Content of the page', * PluginArea * ); * } * ``` * * @example * ```js * // Using ESNext syntax * import { PluginArea } from '@wordpress/plugins'; * * const Layout = () => ( * <div> * Content of the page * <PluginArea scope="my-page" /> * </div> * ); * ``` * * @return {WPComponent} The component to be rendered. */ function PluginArea({ scope, onError }) { const store = (0,external_wp_element_namespaceObject.useMemo)(() => { let lastValue = []; return { 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; } }; }, [scope]); const plugins = (0,external_wp_element_namespaceObject.useSyncExternalStore)(store.subscribe, store.getValue); return (0,external_wp_element_namespaceObject.createElement)("div", { style: { display: 'none' } }, plugins.map(({ icon, name, render: Plugin }) => (0,external_wp_element_namespaceObject.createElement)(PluginContextProvider, { key: name, value: getPluginContext(icon, name) }, (0,external_wp_element_namespaceObject.createElement)(PluginErrorBoundary, { name: name, onError: onError }, (0,external_wp_element_namespaceObject.createElement)(Plugin, null))))); } /* harmony default export */ var plugin_area = (PluginArea); ;// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/components/index.js ;// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/index.js (window.wp = window.wp || {}).plugins = __webpack_exports__; /******/ })() ;