@wordpress/plugins 5.2.0 → 5.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 5.3.0 (2023-02-01)
6
+
5
7
  ## 5.2.0 (2023-01-11)
6
8
 
7
9
  ## 5.1.0 (2023-01-02)
package/README.md CHANGED
@@ -174,7 +174,7 @@ _Parameters_
174
174
 
175
175
  _Returns_
176
176
 
177
- - `?WPPlugin`: The previous plugin settings object, if it has been successfully unregistered; otherwise `undefined`.
177
+ - `WPPlugin | undefined`: The previous plugin settings object, if it has been successfully unregistered; otherwise `undefined`.
178
178
 
179
179
  #### withPluginContext
180
180
 
@@ -191,7 +191,7 @@ function registerPlugin(name, settings) {
191
191
  * unregisterPlugin( 'plugin-name' );
192
192
  * ```
193
193
  *
194
- * @return {?WPPlugin} The previous plugin settings object, if it has been
194
+ * @return {WPPlugin | undefined} The previous plugin settings object, if it has been
195
195
  * successfully unregistered; otherwise `undefined`.
196
196
  */
197
197
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/plugins/src/api/index.js"],"names":["plugins","registerPlugin","name","settings","console","error","test","render","scope","icon","pluginsIcon","unregisterPlugin","oldPlugin","getPlugin","getPlugins","Object","values","filter","plugin"],"mappings":";;;;;;;;;;AAKA;;AACA;;AANA;;AAEA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAMA,OAAO,GAAG,EAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,cAAT,CAAyBC,IAAzB,EAA+BC,QAA/B,EAA0C;AAChD,MAAK,OAAOA,QAAP,KAAoB,QAAzB,EAAoC;AACnCC,IAAAA,OAAO,CAACC,KAAR,CAAe,8BAAf;AACA,WAAO,IAAP;AACA;;AACD,MAAK,OAAOH,IAAP,KAAgB,QAArB,EAAgC;AAC/BE,IAAAA,OAAO,CAACC,KAAR,CAAe,6BAAf;AACA,WAAO,IAAP;AACA;;AACD,MAAK,CAAE,oBAAoBC,IAApB,CAA0BJ,IAA1B,CAAP,EAA0C;AACzCE,IAAAA,OAAO,CAACC,KAAR,CACC,2HADD;AAGA,WAAO,IAAP;AACA;;AACD,MAAKL,OAAO,CAAEE,IAAF,CAAZ,EAAuB;AACtBE,IAAAA,OAAO,CAACC,KAAR,CAAgB,WAAWH,IAAM,0BAAjC;AACA;;AAEDC,EAAAA,QAAQ,GAAG,yBAAc,wBAAd,EAAwCA,QAAxC,EAAkDD,IAAlD,CAAX;AAEA,QAAM;AAAEK,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAoBL,QAA1B;;AAEA,MAAK,OAAOI,MAAP,KAAkB,UAAvB,EAAoC;AACnCH,IAAAA,OAAO,CAACC,KAAR,CACC,uEADD;AAGA,WAAO,IAAP;AACA;;AAED,MAAKG,KAAL,EAAa;AACZ,QAAK,OAAOA,KAAP,KAAiB,QAAtB,EAAiC;AAChCJ,MAAAA,OAAO,CAACC,KAAR,CAAe,8BAAf;AACA,aAAO,IAAP;AACA;;AAED,QAAK,CAAE,oBAAoBC,IAApB,CAA0BE,KAA1B,CAAP,EAA2C;AAC1CJ,MAAAA,OAAO,CAACC,KAAR,CACC,0HADD;AAGA,aAAO,IAAP;AACA;AACD;;AAEDL,EAAAA,OAAO,CAAEE,IAAF,CAAP,GAAkB;AACjBA,IAAAA,IADiB;AAEjBO,IAAAA,IAAI,EAAEC,cAFW;AAGjB,OAAGP;AAHc,GAAlB;AAMA,uBAAU,0BAAV,EAAsCA,QAAtC,EAAgDD,IAAhD;AAEA,SAAOC,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASQ,gBAAT,CAA2BT,IAA3B,EAAkC;AACxC,MAAK,CAAEF,OAAO,CAAEE,IAAF,CAAd,EAAyB;AACxBE,IAAAA,OAAO,CAACC,KAAR,CAAe,aAAaH,IAAb,GAAoB,sBAAnC;AACA;AACA;;AACD,QAAMU,SAAS,GAAGZ,OAAO,CAAEE,IAAF,CAAzB;AACA,SAAOF,OAAO,CAAEE,IAAF,CAAd;AAEA,uBAAU,4BAAV,EAAwCU,SAAxC,EAAmDV,IAAnD;AAEA,SAAOU,SAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,SAAT,CAAoBX,IAApB,EAA2B;AACjC,SAAOF,OAAO,CAAEE,IAAF,CAAd;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASY,UAAT,CAAqBN,KAArB,EAA6B;AACnC,SAAOO,MAAM,CAACC,MAAP,CAAehB,OAAf,EAAyBiB,MAAzB,CACJC,MAAF,IAAcA,MAAM,CAACV,KAAP,KAAiBA,KADzB,CAAP;AAGA","sourcesContent":["/* eslint no-console: [ 'error', { allow: [ 'error' ] } ] */\n\n/**\n * WordPress dependencies\n */\nimport { applyFilters, doAction } from '@wordpress/hooks';\nimport { plugins as pluginsIcon } from '@wordpress/icons';\n\n/**\n * Defined behavior of a plugin type.\n *\n * @typedef {Object} WPPlugin\n *\n * @property {string} name A string identifying the plugin. Must be\n * unique across all registered plugins.\n * @property {string|WPElement|Function} [icon] An icon to be shown in the UI. It can\n * be a slug of the Dashicon, or an element\n * (or function returning an element) if you\n * choose to render your own SVG.\n * @property {Function} render A component containing the UI elements\n * to be rendered.\n * @property {string} [scope] The optional scope to be used when rendering inside\n * a plugin area. No scope by default.\n */\n\n/**\n * Plugin definitions keyed by plugin name.\n *\n * @type {Object.<string,WPPlugin>}\n */\nconst plugins = {};\n\n/**\n * Registers a plugin to the editor.\n *\n * @param {string} name A string identifying the plugin.Must be\n * unique across all registered plugins.\n * @param {Omit<WPPlugin, 'name'>} settings The settings for this plugin.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var Fragment = wp.element.Fragment;\n * var PluginSidebar = wp.editPost.PluginSidebar;\n * var PluginSidebarMoreMenuItem = wp.editPost.PluginSidebarMoreMenuItem;\n * var registerPlugin = wp.plugins.registerPlugin;\n * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.\n *\n * function Component() {\n * \treturn el(\n * \t\tFragment,\n * \t\t{},\n * \t\tel(\n * \t\t\tPluginSidebarMoreMenuItem,\n * \t\t\t{\n * \t\t\t\ttarget: 'sidebar-name',\n * \t\t\t},\n * \t\t\t'My Sidebar'\n * \t\t),\n * \t\tel(\n * \t\t\tPluginSidebar,\n * \t\t\t{\n * \t\t\t\tname: 'sidebar-name',\n * \t\t\t\ttitle: 'My Sidebar',\n * \t\t\t},\n * \t\t\t'Content of the sidebar'\n * \t\t)\n * \t);\n * }\n * registerPlugin( 'plugin-name', {\n * \ticon: moreIcon,\n * \trender: Component,\n * \tscope: 'my-page',\n * } );\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/edit-post';\n * import { registerPlugin } from '@wordpress/plugins';\n * import { more } from '@wordpress/icons';\n *\n * const Component = () => (\n * \t<>\n * \t\t<PluginSidebarMoreMenuItem\n * \t\t\ttarget=\"sidebar-name\"\n * \t\t>\n * \t\t\tMy Sidebar\n * \t\t</PluginSidebarMoreMenuItem>\n * \t\t<PluginSidebar\n * \t\t\tname=\"sidebar-name\"\n * \t\t\ttitle=\"My Sidebar\"\n * \t\t>\n * \t\t\tContent of the sidebar\n * \t\t</PluginSidebar>\n * \t</>\n * );\n *\n * registerPlugin( 'plugin-name', {\n * \ticon: more,\n * \trender: Component,\n * \tscope: 'my-page',\n * } );\n * ```\n *\n * @return {WPPlugin} The final plugin settings object.\n */\nexport function registerPlugin( name, settings ) {\n\tif ( typeof settings !== 'object' ) {\n\t\tconsole.error( 'No settings object provided!' );\n\t\treturn null;\n\t}\n\tif ( typeof name !== 'string' ) {\n\t\tconsole.error( 'Plugin name must be string.' );\n\t\treturn null;\n\t}\n\tif ( ! /^[a-z][a-z0-9-]*$/.test( name ) ) {\n\t\tconsole.error(\n\t\t\t'Plugin name must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-plugin\".'\n\t\t);\n\t\treturn null;\n\t}\n\tif ( plugins[ name ] ) {\n\t\tconsole.error( `Plugin \"${ name }\" is already registered.` );\n\t}\n\n\tsettings = applyFilters( 'plugins.registerPlugin', settings, name );\n\n\tconst { render, scope } = settings;\n\n\tif ( typeof render !== 'function' ) {\n\t\tconsole.error(\n\t\t\t'The \"render\" property must be specified and must be a valid function.'\n\t\t);\n\t\treturn null;\n\t}\n\n\tif ( scope ) {\n\t\tif ( typeof scope !== 'string' ) {\n\t\t\tconsole.error( 'Plugin scope must be string.' );\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( ! /^[a-z][a-z0-9-]*$/.test( scope ) ) {\n\t\t\tconsole.error(\n\t\t\t\t'Plugin scope must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-page\".'\n\t\t\t);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tplugins[ name ] = {\n\t\tname,\n\t\ticon: pluginsIcon,\n\t\t...settings,\n\t};\n\n\tdoAction( 'plugins.pluginRegistered', settings, name );\n\n\treturn settings;\n}\n\n/**\n * Unregisters a plugin by name.\n *\n * @param {string} name Plugin name.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var unregisterPlugin = wp.plugins.unregisterPlugin;\n *\n * unregisterPlugin( 'plugin-name' );\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { unregisterPlugin } from '@wordpress/plugins';\n *\n * unregisterPlugin( 'plugin-name' );\n * ```\n *\n * @return {?WPPlugin} The previous plugin settings object, if it has been\n * successfully unregistered; otherwise `undefined`.\n */\nexport function unregisterPlugin( name ) {\n\tif ( ! plugins[ name ] ) {\n\t\tconsole.error( 'Plugin \"' + name + '\" is not registered.' );\n\t\treturn;\n\t}\n\tconst oldPlugin = plugins[ name ];\n\tdelete plugins[ name ];\n\n\tdoAction( 'plugins.pluginUnregistered', oldPlugin, name );\n\n\treturn oldPlugin;\n}\n\n/**\n * Returns a registered plugin settings.\n *\n * @param {string} name Plugin name.\n *\n * @return {?WPPlugin} Plugin setting.\n */\nexport function getPlugin( name ) {\n\treturn plugins[ name ];\n}\n\n/**\n * Returns all registered plugins without a scope or for a given scope.\n *\n * @param {string} [scope] The scope to be used when rendering inside\n * a plugin area. No scope by default.\n *\n * @return {WPPlugin[]} The list of plugins without a scope or for a given scope.\n */\nexport function getPlugins( scope ) {\n\treturn Object.values( plugins ).filter(\n\t\t( plugin ) => plugin.scope === scope\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/plugins/src/api/index.js"],"names":["plugins","registerPlugin","name","settings","console","error","test","render","scope","icon","pluginsIcon","unregisterPlugin","oldPlugin","getPlugin","getPlugins","Object","values","filter","plugin"],"mappings":";;;;;;;;;;AAKA;;AACA;;AANA;;AAEA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAMA,OAAO,GAAG,EAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,cAAT,CAAyBC,IAAzB,EAA+BC,QAA/B,EAA0C;AAChD,MAAK,OAAOA,QAAP,KAAoB,QAAzB,EAAoC;AACnCC,IAAAA,OAAO,CAACC,KAAR,CAAe,8BAAf;AACA,WAAO,IAAP;AACA;;AACD,MAAK,OAAOH,IAAP,KAAgB,QAArB,EAAgC;AAC/BE,IAAAA,OAAO,CAACC,KAAR,CAAe,6BAAf;AACA,WAAO,IAAP;AACA;;AACD,MAAK,CAAE,oBAAoBC,IAApB,CAA0BJ,IAA1B,CAAP,EAA0C;AACzCE,IAAAA,OAAO,CAACC,KAAR,CACC,2HADD;AAGA,WAAO,IAAP;AACA;;AACD,MAAKL,OAAO,CAAEE,IAAF,CAAZ,EAAuB;AACtBE,IAAAA,OAAO,CAACC,KAAR,CAAgB,WAAWH,IAAM,0BAAjC;AACA;;AAEDC,EAAAA,QAAQ,GAAG,yBAAc,wBAAd,EAAwCA,QAAxC,EAAkDD,IAAlD,CAAX;AAEA,QAAM;AAAEK,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAoBL,QAA1B;;AAEA,MAAK,OAAOI,MAAP,KAAkB,UAAvB,EAAoC;AACnCH,IAAAA,OAAO,CAACC,KAAR,CACC,uEADD;AAGA,WAAO,IAAP;AACA;;AAED,MAAKG,KAAL,EAAa;AACZ,QAAK,OAAOA,KAAP,KAAiB,QAAtB,EAAiC;AAChCJ,MAAAA,OAAO,CAACC,KAAR,CAAe,8BAAf;AACA,aAAO,IAAP;AACA;;AAED,QAAK,CAAE,oBAAoBC,IAApB,CAA0BE,KAA1B,CAAP,EAA2C;AAC1CJ,MAAAA,OAAO,CAACC,KAAR,CACC,0HADD;AAGA,aAAO,IAAP;AACA;AACD;;AAEDL,EAAAA,OAAO,CAAEE,IAAF,CAAP,GAAkB;AACjBA,IAAAA,IADiB;AAEjBO,IAAAA,IAAI,EAAEC,cAFW;AAGjB,OAAGP;AAHc,GAAlB;AAMA,uBAAU,0BAAV,EAAsCA,QAAtC,EAAgDD,IAAhD;AAEA,SAAOC,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASQ,gBAAT,CAA2BT,IAA3B,EAAkC;AACxC,MAAK,CAAEF,OAAO,CAAEE,IAAF,CAAd,EAAyB;AACxBE,IAAAA,OAAO,CAACC,KAAR,CAAe,aAAaH,IAAb,GAAoB,sBAAnC;AACA;AACA;;AACD,QAAMU,SAAS,GAAGZ,OAAO,CAAEE,IAAF,CAAzB;AACA,SAAOF,OAAO,CAAEE,IAAF,CAAd;AAEA,uBAAU,4BAAV,EAAwCU,SAAxC,EAAmDV,IAAnD;AAEA,SAAOU,SAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,SAAT,CAAoBX,IAApB,EAA2B;AACjC,SAAOF,OAAO,CAAEE,IAAF,CAAd;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASY,UAAT,CAAqBN,KAArB,EAA6B;AACnC,SAAOO,MAAM,CAACC,MAAP,CAAehB,OAAf,EAAyBiB,MAAzB,CACJC,MAAF,IAAcA,MAAM,CAACV,KAAP,KAAiBA,KADzB,CAAP;AAGA","sourcesContent":["/* eslint no-console: [ 'error', { allow: [ 'error' ] } ] */\n\n/**\n * WordPress dependencies\n */\nimport { applyFilters, doAction } from '@wordpress/hooks';\nimport { plugins as pluginsIcon } from '@wordpress/icons';\n\n/**\n * Defined behavior of a plugin type.\n *\n * @typedef {Object} WPPlugin\n *\n * @property {string} name A string identifying the plugin. Must be\n * unique across all registered plugins.\n * @property {string|WPElement|Function} [icon] An icon to be shown in the UI. It can\n * be a slug of the Dashicon, or an element\n * (or function returning an element) if you\n * choose to render your own SVG.\n * @property {Function} render A component containing the UI elements\n * to be rendered.\n * @property {string} [scope] The optional scope to be used when rendering inside\n * a plugin area. No scope by default.\n */\n\n/**\n * Plugin definitions keyed by plugin name.\n *\n * @type {Object.<string,WPPlugin>}\n */\nconst plugins = {};\n\n/**\n * Registers a plugin to the editor.\n *\n * @param {string} name A string identifying the plugin.Must be\n * unique across all registered plugins.\n * @param {Omit<WPPlugin, 'name'>} settings The settings for this plugin.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var Fragment = wp.element.Fragment;\n * var PluginSidebar = wp.editPost.PluginSidebar;\n * var PluginSidebarMoreMenuItem = wp.editPost.PluginSidebarMoreMenuItem;\n * var registerPlugin = wp.plugins.registerPlugin;\n * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.\n *\n * function Component() {\n * \treturn el(\n * \t\tFragment,\n * \t\t{},\n * \t\tel(\n * \t\t\tPluginSidebarMoreMenuItem,\n * \t\t\t{\n * \t\t\t\ttarget: 'sidebar-name',\n * \t\t\t},\n * \t\t\t'My Sidebar'\n * \t\t),\n * \t\tel(\n * \t\t\tPluginSidebar,\n * \t\t\t{\n * \t\t\t\tname: 'sidebar-name',\n * \t\t\t\ttitle: 'My Sidebar',\n * \t\t\t},\n * \t\t\t'Content of the sidebar'\n * \t\t)\n * \t);\n * }\n * registerPlugin( 'plugin-name', {\n * \ticon: moreIcon,\n * \trender: Component,\n * \tscope: 'my-page',\n * } );\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/edit-post';\n * import { registerPlugin } from '@wordpress/plugins';\n * import { more } from '@wordpress/icons';\n *\n * const Component = () => (\n * \t<>\n * \t\t<PluginSidebarMoreMenuItem\n * \t\t\ttarget=\"sidebar-name\"\n * \t\t>\n * \t\t\tMy Sidebar\n * \t\t</PluginSidebarMoreMenuItem>\n * \t\t<PluginSidebar\n * \t\t\tname=\"sidebar-name\"\n * \t\t\ttitle=\"My Sidebar\"\n * \t\t>\n * \t\t\tContent of the sidebar\n * \t\t</PluginSidebar>\n * \t</>\n * );\n *\n * registerPlugin( 'plugin-name', {\n * \ticon: more,\n * \trender: Component,\n * \tscope: 'my-page',\n * } );\n * ```\n *\n * @return {WPPlugin} The final plugin settings object.\n */\nexport function registerPlugin( name, settings ) {\n\tif ( typeof settings !== 'object' ) {\n\t\tconsole.error( 'No settings object provided!' );\n\t\treturn null;\n\t}\n\tif ( typeof name !== 'string' ) {\n\t\tconsole.error( 'Plugin name must be string.' );\n\t\treturn null;\n\t}\n\tif ( ! /^[a-z][a-z0-9-]*$/.test( name ) ) {\n\t\tconsole.error(\n\t\t\t'Plugin name must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-plugin\".'\n\t\t);\n\t\treturn null;\n\t}\n\tif ( plugins[ name ] ) {\n\t\tconsole.error( `Plugin \"${ name }\" is already registered.` );\n\t}\n\n\tsettings = applyFilters( 'plugins.registerPlugin', settings, name );\n\n\tconst { render, scope } = settings;\n\n\tif ( typeof render !== 'function' ) {\n\t\tconsole.error(\n\t\t\t'The \"render\" property must be specified and must be a valid function.'\n\t\t);\n\t\treturn null;\n\t}\n\n\tif ( scope ) {\n\t\tif ( typeof scope !== 'string' ) {\n\t\t\tconsole.error( 'Plugin scope must be string.' );\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( ! /^[a-z][a-z0-9-]*$/.test( scope ) ) {\n\t\t\tconsole.error(\n\t\t\t\t'Plugin scope must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-page\".'\n\t\t\t);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tplugins[ name ] = {\n\t\tname,\n\t\ticon: pluginsIcon,\n\t\t...settings,\n\t};\n\n\tdoAction( 'plugins.pluginRegistered', settings, name );\n\n\treturn settings;\n}\n\n/**\n * Unregisters a plugin by name.\n *\n * @param {string} name Plugin name.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var unregisterPlugin = wp.plugins.unregisterPlugin;\n *\n * unregisterPlugin( 'plugin-name' );\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { unregisterPlugin } from '@wordpress/plugins';\n *\n * unregisterPlugin( 'plugin-name' );\n * ```\n *\n * @return {WPPlugin | undefined} The previous plugin settings object, if it has been\n * successfully unregistered; otherwise `undefined`.\n */\nexport function unregisterPlugin( name ) {\n\tif ( ! plugins[ name ] ) {\n\t\tconsole.error( 'Plugin \"' + name + '\" is not registered.' );\n\t\treturn;\n\t}\n\tconst oldPlugin = plugins[ name ];\n\tdelete plugins[ name ];\n\n\tdoAction( 'plugins.pluginUnregistered', oldPlugin, name );\n\n\treturn oldPlugin;\n}\n\n/**\n * Returns a registered plugin settings.\n *\n * @param {string} name Plugin name.\n *\n * @return {?WPPlugin} Plugin setting.\n */\nexport function getPlugin( name ) {\n\treturn plugins[ name ];\n}\n\n/**\n * Returns all registered plugins without a scope or for a given scope.\n *\n * @param {string} [scope] The scope to be used when rendering inside\n * a plugin area. No scope by default.\n *\n * @return {WPPlugin[]} The list of plugins without a scope or for a given scope.\n */\nexport function getPlugins( scope ) {\n\treturn Object.values( plugins ).filter(\n\t\t( plugin ) => plugin.scope === scope\n\t);\n}\n"]}
@@ -179,7 +179,7 @@ export function registerPlugin(name, settings) {
179
179
  * unregisterPlugin( 'plugin-name' );
180
180
  * ```
181
181
  *
182
- * @return {?WPPlugin} The previous plugin settings object, if it has been
182
+ * @return {WPPlugin | undefined} The previous plugin settings object, if it has been
183
183
  * successfully unregistered; otherwise `undefined`.
184
184
  */
185
185
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/plugins/src/api/index.js"],"names":["applyFilters","doAction","plugins","pluginsIcon","registerPlugin","name","settings","console","error","test","render","scope","icon","unregisterPlugin","oldPlugin","getPlugin","getPlugins","Object","values","filter","plugin"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA,SAASA,YAAT,EAAuBC,QAAvB,QAAuC,kBAAvC;AACA,SAASC,OAAO,IAAIC,WAApB,QAAuC,kBAAvC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AACA,MAAMD,OAAO,GAAG,EAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASE,cAAT,CAAyBC,IAAzB,EAA+BC,QAA/B,EAA0C;AAChD,MAAK,OAAOA,QAAP,KAAoB,QAAzB,EAAoC;AACnCC,IAAAA,OAAO,CAACC,KAAR,CAAe,8BAAf;AACA,WAAO,IAAP;AACA;;AACD,MAAK,OAAOH,IAAP,KAAgB,QAArB,EAAgC;AAC/BE,IAAAA,OAAO,CAACC,KAAR,CAAe,6BAAf;AACA,WAAO,IAAP;AACA;;AACD,MAAK,CAAE,oBAAoBC,IAApB,CAA0BJ,IAA1B,CAAP,EAA0C;AACzCE,IAAAA,OAAO,CAACC,KAAR,CACC,2HADD;AAGA,WAAO,IAAP;AACA;;AACD,MAAKN,OAAO,CAAEG,IAAF,CAAZ,EAAuB;AACtBE,IAAAA,OAAO,CAACC,KAAR,CAAgB,WAAWH,IAAM,0BAAjC;AACA;;AAEDC,EAAAA,QAAQ,GAAGN,YAAY,CAAE,wBAAF,EAA4BM,QAA5B,EAAsCD,IAAtC,CAAvB;AAEA,QAAM;AAAEK,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAoBL,QAA1B;;AAEA,MAAK,OAAOI,MAAP,KAAkB,UAAvB,EAAoC;AACnCH,IAAAA,OAAO,CAACC,KAAR,CACC,uEADD;AAGA,WAAO,IAAP;AACA;;AAED,MAAKG,KAAL,EAAa;AACZ,QAAK,OAAOA,KAAP,KAAiB,QAAtB,EAAiC;AAChCJ,MAAAA,OAAO,CAACC,KAAR,CAAe,8BAAf;AACA,aAAO,IAAP;AACA;;AAED,QAAK,CAAE,oBAAoBC,IAApB,CAA0BE,KAA1B,CAAP,EAA2C;AAC1CJ,MAAAA,OAAO,CAACC,KAAR,CACC,0HADD;AAGA,aAAO,IAAP;AACA;AACD;;AAEDN,EAAAA,OAAO,CAAEG,IAAF,CAAP,GAAkB;AACjBA,IAAAA,IADiB;AAEjBO,IAAAA,IAAI,EAAET,WAFW;AAGjB,OAAGG;AAHc,GAAlB;AAMAL,EAAAA,QAAQ,CAAE,0BAAF,EAA8BK,QAA9B,EAAwCD,IAAxC,CAAR;AAEA,SAAOC,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASO,gBAAT,CAA2BR,IAA3B,EAAkC;AACxC,MAAK,CAAEH,OAAO,CAAEG,IAAF,CAAd,EAAyB;AACxBE,IAAAA,OAAO,CAACC,KAAR,CAAe,aAAaH,IAAb,GAAoB,sBAAnC;AACA;AACA;;AACD,QAAMS,SAAS,GAAGZ,OAAO,CAAEG,IAAF,CAAzB;AACA,SAAOH,OAAO,CAAEG,IAAF,CAAd;AAEAJ,EAAAA,QAAQ,CAAE,4BAAF,EAAgCa,SAAhC,EAA2CT,IAA3C,CAAR;AAEA,SAAOS,SAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,SAAT,CAAoBV,IAApB,EAA2B;AACjC,SAAOH,OAAO,CAAEG,IAAF,CAAd;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASW,UAAT,CAAqBL,KAArB,EAA6B;AACnC,SAAOM,MAAM,CAACC,MAAP,CAAehB,OAAf,EAAyBiB,MAAzB,CACJC,MAAF,IAAcA,MAAM,CAACT,KAAP,KAAiBA,KADzB,CAAP;AAGA","sourcesContent":["/* eslint no-console: [ 'error', { allow: [ 'error' ] } ] */\n\n/**\n * WordPress dependencies\n */\nimport { applyFilters, doAction } from '@wordpress/hooks';\nimport { plugins as pluginsIcon } from '@wordpress/icons';\n\n/**\n * Defined behavior of a plugin type.\n *\n * @typedef {Object} WPPlugin\n *\n * @property {string} name A string identifying the plugin. Must be\n * unique across all registered plugins.\n * @property {string|WPElement|Function} [icon] An icon to be shown in the UI. It can\n * be a slug of the Dashicon, or an element\n * (or function returning an element) if you\n * choose to render your own SVG.\n * @property {Function} render A component containing the UI elements\n * to be rendered.\n * @property {string} [scope] The optional scope to be used when rendering inside\n * a plugin area. No scope by default.\n */\n\n/**\n * Plugin definitions keyed by plugin name.\n *\n * @type {Object.<string,WPPlugin>}\n */\nconst plugins = {};\n\n/**\n * Registers a plugin to the editor.\n *\n * @param {string} name A string identifying the plugin.Must be\n * unique across all registered plugins.\n * @param {Omit<WPPlugin, 'name'>} settings The settings for this plugin.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var Fragment = wp.element.Fragment;\n * var PluginSidebar = wp.editPost.PluginSidebar;\n * var PluginSidebarMoreMenuItem = wp.editPost.PluginSidebarMoreMenuItem;\n * var registerPlugin = wp.plugins.registerPlugin;\n * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.\n *\n * function Component() {\n * \treturn el(\n * \t\tFragment,\n * \t\t{},\n * \t\tel(\n * \t\t\tPluginSidebarMoreMenuItem,\n * \t\t\t{\n * \t\t\t\ttarget: 'sidebar-name',\n * \t\t\t},\n * \t\t\t'My Sidebar'\n * \t\t),\n * \t\tel(\n * \t\t\tPluginSidebar,\n * \t\t\t{\n * \t\t\t\tname: 'sidebar-name',\n * \t\t\t\ttitle: 'My Sidebar',\n * \t\t\t},\n * \t\t\t'Content of the sidebar'\n * \t\t)\n * \t);\n * }\n * registerPlugin( 'plugin-name', {\n * \ticon: moreIcon,\n * \trender: Component,\n * \tscope: 'my-page',\n * } );\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/edit-post';\n * import { registerPlugin } from '@wordpress/plugins';\n * import { more } from '@wordpress/icons';\n *\n * const Component = () => (\n * \t<>\n * \t\t<PluginSidebarMoreMenuItem\n * \t\t\ttarget=\"sidebar-name\"\n * \t\t>\n * \t\t\tMy Sidebar\n * \t\t</PluginSidebarMoreMenuItem>\n * \t\t<PluginSidebar\n * \t\t\tname=\"sidebar-name\"\n * \t\t\ttitle=\"My Sidebar\"\n * \t\t>\n * \t\t\tContent of the sidebar\n * \t\t</PluginSidebar>\n * \t</>\n * );\n *\n * registerPlugin( 'plugin-name', {\n * \ticon: more,\n * \trender: Component,\n * \tscope: 'my-page',\n * } );\n * ```\n *\n * @return {WPPlugin} The final plugin settings object.\n */\nexport function registerPlugin( name, settings ) {\n\tif ( typeof settings !== 'object' ) {\n\t\tconsole.error( 'No settings object provided!' );\n\t\treturn null;\n\t}\n\tif ( typeof name !== 'string' ) {\n\t\tconsole.error( 'Plugin name must be string.' );\n\t\treturn null;\n\t}\n\tif ( ! /^[a-z][a-z0-9-]*$/.test( name ) ) {\n\t\tconsole.error(\n\t\t\t'Plugin name must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-plugin\".'\n\t\t);\n\t\treturn null;\n\t}\n\tif ( plugins[ name ] ) {\n\t\tconsole.error( `Plugin \"${ name }\" is already registered.` );\n\t}\n\n\tsettings = applyFilters( 'plugins.registerPlugin', settings, name );\n\n\tconst { render, scope } = settings;\n\n\tif ( typeof render !== 'function' ) {\n\t\tconsole.error(\n\t\t\t'The \"render\" property must be specified and must be a valid function.'\n\t\t);\n\t\treturn null;\n\t}\n\n\tif ( scope ) {\n\t\tif ( typeof scope !== 'string' ) {\n\t\t\tconsole.error( 'Plugin scope must be string.' );\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( ! /^[a-z][a-z0-9-]*$/.test( scope ) ) {\n\t\t\tconsole.error(\n\t\t\t\t'Plugin scope must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-page\".'\n\t\t\t);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tplugins[ name ] = {\n\t\tname,\n\t\ticon: pluginsIcon,\n\t\t...settings,\n\t};\n\n\tdoAction( 'plugins.pluginRegistered', settings, name );\n\n\treturn settings;\n}\n\n/**\n * Unregisters a plugin by name.\n *\n * @param {string} name Plugin name.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var unregisterPlugin = wp.plugins.unregisterPlugin;\n *\n * unregisterPlugin( 'plugin-name' );\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { unregisterPlugin } from '@wordpress/plugins';\n *\n * unregisterPlugin( 'plugin-name' );\n * ```\n *\n * @return {?WPPlugin} The previous plugin settings object, if it has been\n * successfully unregistered; otherwise `undefined`.\n */\nexport function unregisterPlugin( name ) {\n\tif ( ! plugins[ name ] ) {\n\t\tconsole.error( 'Plugin \"' + name + '\" is not registered.' );\n\t\treturn;\n\t}\n\tconst oldPlugin = plugins[ name ];\n\tdelete plugins[ name ];\n\n\tdoAction( 'plugins.pluginUnregistered', oldPlugin, name );\n\n\treturn oldPlugin;\n}\n\n/**\n * Returns a registered plugin settings.\n *\n * @param {string} name Plugin name.\n *\n * @return {?WPPlugin} Plugin setting.\n */\nexport function getPlugin( name ) {\n\treturn plugins[ name ];\n}\n\n/**\n * Returns all registered plugins without a scope or for a given scope.\n *\n * @param {string} [scope] The scope to be used when rendering inside\n * a plugin area. No scope by default.\n *\n * @return {WPPlugin[]} The list of plugins without a scope or for a given scope.\n */\nexport function getPlugins( scope ) {\n\treturn Object.values( plugins ).filter(\n\t\t( plugin ) => plugin.scope === scope\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/plugins/src/api/index.js"],"names":["applyFilters","doAction","plugins","pluginsIcon","registerPlugin","name","settings","console","error","test","render","scope","icon","unregisterPlugin","oldPlugin","getPlugin","getPlugins","Object","values","filter","plugin"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA,SAASA,YAAT,EAAuBC,QAAvB,QAAuC,kBAAvC;AACA,SAASC,OAAO,IAAIC,WAApB,QAAuC,kBAAvC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AACA,MAAMD,OAAO,GAAG,EAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASE,cAAT,CAAyBC,IAAzB,EAA+BC,QAA/B,EAA0C;AAChD,MAAK,OAAOA,QAAP,KAAoB,QAAzB,EAAoC;AACnCC,IAAAA,OAAO,CAACC,KAAR,CAAe,8BAAf;AACA,WAAO,IAAP;AACA;;AACD,MAAK,OAAOH,IAAP,KAAgB,QAArB,EAAgC;AAC/BE,IAAAA,OAAO,CAACC,KAAR,CAAe,6BAAf;AACA,WAAO,IAAP;AACA;;AACD,MAAK,CAAE,oBAAoBC,IAApB,CAA0BJ,IAA1B,CAAP,EAA0C;AACzCE,IAAAA,OAAO,CAACC,KAAR,CACC,2HADD;AAGA,WAAO,IAAP;AACA;;AACD,MAAKN,OAAO,CAAEG,IAAF,CAAZ,EAAuB;AACtBE,IAAAA,OAAO,CAACC,KAAR,CAAgB,WAAWH,IAAM,0BAAjC;AACA;;AAEDC,EAAAA,QAAQ,GAAGN,YAAY,CAAE,wBAAF,EAA4BM,QAA5B,EAAsCD,IAAtC,CAAvB;AAEA,QAAM;AAAEK,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAoBL,QAA1B;;AAEA,MAAK,OAAOI,MAAP,KAAkB,UAAvB,EAAoC;AACnCH,IAAAA,OAAO,CAACC,KAAR,CACC,uEADD;AAGA,WAAO,IAAP;AACA;;AAED,MAAKG,KAAL,EAAa;AACZ,QAAK,OAAOA,KAAP,KAAiB,QAAtB,EAAiC;AAChCJ,MAAAA,OAAO,CAACC,KAAR,CAAe,8BAAf;AACA,aAAO,IAAP;AACA;;AAED,QAAK,CAAE,oBAAoBC,IAApB,CAA0BE,KAA1B,CAAP,EAA2C;AAC1CJ,MAAAA,OAAO,CAACC,KAAR,CACC,0HADD;AAGA,aAAO,IAAP;AACA;AACD;;AAEDN,EAAAA,OAAO,CAAEG,IAAF,CAAP,GAAkB;AACjBA,IAAAA,IADiB;AAEjBO,IAAAA,IAAI,EAAET,WAFW;AAGjB,OAAGG;AAHc,GAAlB;AAMAL,EAAAA,QAAQ,CAAE,0BAAF,EAA8BK,QAA9B,EAAwCD,IAAxC,CAAR;AAEA,SAAOC,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASO,gBAAT,CAA2BR,IAA3B,EAAkC;AACxC,MAAK,CAAEH,OAAO,CAAEG,IAAF,CAAd,EAAyB;AACxBE,IAAAA,OAAO,CAACC,KAAR,CAAe,aAAaH,IAAb,GAAoB,sBAAnC;AACA;AACA;;AACD,QAAMS,SAAS,GAAGZ,OAAO,CAAEG,IAAF,CAAzB;AACA,SAAOH,OAAO,CAAEG,IAAF,CAAd;AAEAJ,EAAAA,QAAQ,CAAE,4BAAF,EAAgCa,SAAhC,EAA2CT,IAA3C,CAAR;AAEA,SAAOS,SAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,SAAT,CAAoBV,IAApB,EAA2B;AACjC,SAAOH,OAAO,CAAEG,IAAF,CAAd;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASW,UAAT,CAAqBL,KAArB,EAA6B;AACnC,SAAOM,MAAM,CAACC,MAAP,CAAehB,OAAf,EAAyBiB,MAAzB,CACJC,MAAF,IAAcA,MAAM,CAACT,KAAP,KAAiBA,KADzB,CAAP;AAGA","sourcesContent":["/* eslint no-console: [ 'error', { allow: [ 'error' ] } ] */\n\n/**\n * WordPress dependencies\n */\nimport { applyFilters, doAction } from '@wordpress/hooks';\nimport { plugins as pluginsIcon } from '@wordpress/icons';\n\n/**\n * Defined behavior of a plugin type.\n *\n * @typedef {Object} WPPlugin\n *\n * @property {string} name A string identifying the plugin. Must be\n * unique across all registered plugins.\n * @property {string|WPElement|Function} [icon] An icon to be shown in the UI. It can\n * be a slug of the Dashicon, or an element\n * (or function returning an element) if you\n * choose to render your own SVG.\n * @property {Function} render A component containing the UI elements\n * to be rendered.\n * @property {string} [scope] The optional scope to be used when rendering inside\n * a plugin area. No scope by default.\n */\n\n/**\n * Plugin definitions keyed by plugin name.\n *\n * @type {Object.<string,WPPlugin>}\n */\nconst plugins = {};\n\n/**\n * Registers a plugin to the editor.\n *\n * @param {string} name A string identifying the plugin.Must be\n * unique across all registered plugins.\n * @param {Omit<WPPlugin, 'name'>} settings The settings for this plugin.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var Fragment = wp.element.Fragment;\n * var PluginSidebar = wp.editPost.PluginSidebar;\n * var PluginSidebarMoreMenuItem = wp.editPost.PluginSidebarMoreMenuItem;\n * var registerPlugin = wp.plugins.registerPlugin;\n * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.\n *\n * function Component() {\n * \treturn el(\n * \t\tFragment,\n * \t\t{},\n * \t\tel(\n * \t\t\tPluginSidebarMoreMenuItem,\n * \t\t\t{\n * \t\t\t\ttarget: 'sidebar-name',\n * \t\t\t},\n * \t\t\t'My Sidebar'\n * \t\t),\n * \t\tel(\n * \t\t\tPluginSidebar,\n * \t\t\t{\n * \t\t\t\tname: 'sidebar-name',\n * \t\t\t\ttitle: 'My Sidebar',\n * \t\t\t},\n * \t\t\t'Content of the sidebar'\n * \t\t)\n * \t);\n * }\n * registerPlugin( 'plugin-name', {\n * \ticon: moreIcon,\n * \trender: Component,\n * \tscope: 'my-page',\n * } );\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/edit-post';\n * import { registerPlugin } from '@wordpress/plugins';\n * import { more } from '@wordpress/icons';\n *\n * const Component = () => (\n * \t<>\n * \t\t<PluginSidebarMoreMenuItem\n * \t\t\ttarget=\"sidebar-name\"\n * \t\t>\n * \t\t\tMy Sidebar\n * \t\t</PluginSidebarMoreMenuItem>\n * \t\t<PluginSidebar\n * \t\t\tname=\"sidebar-name\"\n * \t\t\ttitle=\"My Sidebar\"\n * \t\t>\n * \t\t\tContent of the sidebar\n * \t\t</PluginSidebar>\n * \t</>\n * );\n *\n * registerPlugin( 'plugin-name', {\n * \ticon: more,\n * \trender: Component,\n * \tscope: 'my-page',\n * } );\n * ```\n *\n * @return {WPPlugin} The final plugin settings object.\n */\nexport function registerPlugin( name, settings ) {\n\tif ( typeof settings !== 'object' ) {\n\t\tconsole.error( 'No settings object provided!' );\n\t\treturn null;\n\t}\n\tif ( typeof name !== 'string' ) {\n\t\tconsole.error( 'Plugin name must be string.' );\n\t\treturn null;\n\t}\n\tif ( ! /^[a-z][a-z0-9-]*$/.test( name ) ) {\n\t\tconsole.error(\n\t\t\t'Plugin name must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-plugin\".'\n\t\t);\n\t\treturn null;\n\t}\n\tif ( plugins[ name ] ) {\n\t\tconsole.error( `Plugin \"${ name }\" is already registered.` );\n\t}\n\n\tsettings = applyFilters( 'plugins.registerPlugin', settings, name );\n\n\tconst { render, scope } = settings;\n\n\tif ( typeof render !== 'function' ) {\n\t\tconsole.error(\n\t\t\t'The \"render\" property must be specified and must be a valid function.'\n\t\t);\n\t\treturn null;\n\t}\n\n\tif ( scope ) {\n\t\tif ( typeof scope !== 'string' ) {\n\t\t\tconsole.error( 'Plugin scope must be string.' );\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( ! /^[a-z][a-z0-9-]*$/.test( scope ) ) {\n\t\t\tconsole.error(\n\t\t\t\t'Plugin scope must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-page\".'\n\t\t\t);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tplugins[ name ] = {\n\t\tname,\n\t\ticon: pluginsIcon,\n\t\t...settings,\n\t};\n\n\tdoAction( 'plugins.pluginRegistered', settings, name );\n\n\treturn settings;\n}\n\n/**\n * Unregisters a plugin by name.\n *\n * @param {string} name Plugin name.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var unregisterPlugin = wp.plugins.unregisterPlugin;\n *\n * unregisterPlugin( 'plugin-name' );\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { unregisterPlugin } from '@wordpress/plugins';\n *\n * unregisterPlugin( 'plugin-name' );\n * ```\n *\n * @return {WPPlugin | undefined} The previous plugin settings object, if it has been\n * successfully unregistered; otherwise `undefined`.\n */\nexport function unregisterPlugin( name ) {\n\tif ( ! plugins[ name ] ) {\n\t\tconsole.error( 'Plugin \"' + name + '\" is not registered.' );\n\t\treturn;\n\t}\n\tconst oldPlugin = plugins[ name ];\n\tdelete plugins[ name ];\n\n\tdoAction( 'plugins.pluginUnregistered', oldPlugin, name );\n\n\treturn oldPlugin;\n}\n\n/**\n * Returns a registered plugin settings.\n *\n * @param {string} name Plugin name.\n *\n * @return {?WPPlugin} Plugin setting.\n */\nexport function getPlugin( name ) {\n\treturn plugins[ name ];\n}\n\n/**\n * Returns all registered plugins without a scope or for a given scope.\n *\n * @param {string} [scope] The scope to be used when rendering inside\n * a plugin area. No scope by default.\n *\n * @return {WPPlugin[]} The list of plugins without a scope or for a given scope.\n */\nexport function getPlugins( scope ) {\n\treturn Object.values( plugins ).filter(\n\t\t( plugin ) => plugin.scope === scope\n\t);\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/plugins",
3
- "version": "5.2.0",
3
+ "version": "5.3.1",
4
4
  "description": "Plugins module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -26,10 +26,10 @@
26
26
  "react-native": "src/index",
27
27
  "dependencies": {
28
28
  "@babel/runtime": "^7.16.0",
29
- "@wordpress/compose": "^6.2.0",
30
- "@wordpress/element": "^5.2.0",
31
- "@wordpress/hooks": "^3.25.0",
32
- "@wordpress/icons": "^9.16.0",
29
+ "@wordpress/compose": "^6.3.1",
30
+ "@wordpress/element": "^5.3.1",
31
+ "@wordpress/hooks": "^3.26.1",
32
+ "@wordpress/icons": "^9.17.1",
33
33
  "memize": "^1.1.0"
34
34
  },
35
35
  "peerDependencies": {
@@ -38,5 +38,5 @@
38
38
  "publishConfig": {
39
39
  "access": "public"
40
40
  },
41
- "gitHead": "204c880ff65295768e9695dfee6c7a9fee1fdd05"
41
+ "gitHead": "e9ff92d836928aba65dde94d9d193bc401a934d7"
42
42
  }
package/src/api/index.js CHANGED
@@ -183,7 +183,7 @@ export function registerPlugin( name, settings ) {
183
183
  * unregisterPlugin( 'plugin-name' );
184
184
  * ```
185
185
  *
186
- * @return {?WPPlugin} The previous plugin settings object, if it has been
186
+ * @return {WPPlugin | undefined} The previous plugin settings object, if it has been
187
187
  * successfully unregistered; otherwise `undefined`.
188
188
  */
189
189
  export function unregisterPlugin( name ) {