@wordpress/plugins 4.7.0 → 4.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 4.10.0 (2022-06-29)
6
+
7
+ ## 4.9.0 (2022-06-15)
8
+
9
+ ## 4.8.0 (2022-06-01)
10
+
5
11
  ## 4.7.0 (2022-05-18)
6
12
 
7
13
  ## 4.6.0 (2022-05-04)
@@ -12,18 +12,12 @@ var _hooks = require("@wordpress/hooks");
12
12
 
13
13
  var _icons = require("@wordpress/icons");
14
14
 
15
- var _lodash = require("lodash");
16
-
17
15
  /* eslint no-console: [ 'error', { allow: [ 'error' ] } ] */
18
16
 
19
17
  /**
20
18
  * WordPress dependencies
21
19
  */
22
20
 
23
- /**
24
- * External dependencies
25
- */
26
-
27
21
  /**
28
22
  * Defined behavior of a plugin type.
29
23
  *
@@ -151,7 +145,7 @@ function registerPlugin(name, settings) {
151
145
  scope
152
146
  } = settings;
153
147
 
154
- if (!(0, _lodash.isFunction)(render)) {
148
+ if (typeof render !== 'function') {
155
149
  console.error('The "render" property must be specified and must be a valid function.');
156
150
  return null;
157
151
  }
@@ -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;;AAKA;;AAXA;;AAEA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;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,CAAE,wBAAYI,MAAZ,CAAP,EAA8B;AAC7BH,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 * External dependencies\n */\nimport { isFunction } from 'lodash';\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 ( ! isFunction( render ) ) {\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} 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"]}
@@ -9,8 +9,6 @@ exports.default = void 0;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
12
- var _lodash = require("lodash");
13
-
14
12
  var _memize = _interopRequireDefault(require("memize"));
15
13
 
16
14
  var _hooks = require("@wordpress/hooks");
@@ -82,7 +80,7 @@ class PluginArea extends _element.Component {
82
80
 
83
81
  getCurrentPluginsState() {
84
82
  return {
85
- plugins: (0, _lodash.map)((0, _api.getPlugins)(this.props.scope), _ref => {
83
+ plugins: (0, _api.getPlugins)(this.props.scope).map(_ref => {
86
84
  let {
87
85
  icon,
88
86
  name,
@@ -115,7 +113,7 @@ class PluginArea extends _element.Component {
115
113
  style: {
116
114
  display: 'none'
117
115
  }
118
- }, (0, _lodash.map)(this.state.plugins, _ref2 => {
116
+ }, this.state.plugins.map(_ref2 => {
119
117
  let {
120
118
  context,
121
119
  Plugin
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/plugins/src/components/plugin-area/index.js"],"names":["PluginArea","Component","constructor","arguments","setPlugins","bind","memoizedContext","name","icon","state","getCurrentPluginsState","plugins","props","scope","render","Plugin","context","componentDidMount","componentWillUnmount","setState","display","onError"],"mappings":";;;;;;;;;AASA;;AANA;;AACA;;AAMA;;AAKA;;AACA;;AACA;;AAjBA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;AACA;;AAKA;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,MAAMA,UAAN,SAAyBC,kBAAzB,CAAmC;AAClCC,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AAEA,SAAKC,UAAL,GAAkB,KAAKA,UAAL,CAAgBC,IAAhB,CAAsB,IAAtB,CAAlB;AACA,SAAKC,eAAL,GAAuB,qBAAS,CAAEC,IAAF,EAAQC,IAAR,KAAkB;AACjD,aAAO;AACND,QAAAA,IADM;AAENC,QAAAA;AAFM,OAAP;AAIA,KALsB,CAAvB;AAMA,SAAKC,KAAL,GAAa,KAAKC,sBAAL,EAAb;AACA;;AAEDA,EAAAA,sBAAsB,GAAG;AACxB,WAAO;AACNC,MAAAA,OAAO,EAAE,iBACR,qBAAY,KAAKC,KAAL,CAAWC,KAAvB,CADQ,EAER,QAA8B;AAAA,YAA5B;AAAEL,UAAAA,IAAF;AAAQD,UAAAA,IAAR;AAAcO,UAAAA;AAAd,SAA4B;AAC7B,eAAO;AACNC,UAAAA,MAAM,EAAED,MADF;AAENE,UAAAA,OAAO,EAAE,KAAKV,eAAL,CAAsBC,IAAtB,EAA4BC,IAA5B;AAFH,SAAP;AAIA,OAPO;AADH,KAAP;AAWA;;AAEDS,EAAAA,iBAAiB,GAAG;AACnB,0BACC,0BADD,EAEC,6CAFD,EAGC,KAAKb,UAHN;AAKA,0BACC,4BADD,EAEC,+CAFD,EAGC,KAAKA,UAHN;AAKA;;AAEDc,EAAAA,oBAAoB,GAAG;AACtB,6BACC,0BADD,EAEC,6CAFD;AAIA,6BACC,4BADD,EAEC,+CAFD;AAIA;;AAEDd,EAAAA,UAAU,GAAG;AACZ,SAAKe,QAAL,CAAe,KAAKT,sBAApB;AACA;;AAEDI,EAAAA,MAAM,GAAG;AACR,WACC;AAAK,MAAA,KAAK,EAAG;AAAEM,QAAAA,OAAO,EAAE;AAAX;AAAb,OACG,iBAAK,KAAKX,KAAL,CAAWE,OAAhB,EAAyB;AAAA,UAAE;AAAEK,QAAAA,OAAF;AAAWD,QAAAA;AAAX,OAAF;AAAA,aAC1B,4BAAC,oCAAD;AACC,QAAA,GAAG,EAAGC,OAAO,CAACT,IADf;AAEC,QAAA,KAAK,EAAGS;AAFT,SAIC,4BAAC,wCAAD;AACC,QAAA,IAAI,EAAGA,OAAO,CAACT,IADhB;AAEC,QAAA,OAAO,EAAG,KAAKK,KAAL,CAAWS;AAFtB,SAIC,4BAAC,MAAD,OAJD,CAJD,CAD0B;AAAA,KAAzB,CADH,CADD;AAiBA;;AA1EiC;;eA6EpBrB,U","sourcesContent":["/**\n * External dependencies\n */\nimport { map } from 'lodash';\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { addAction, removeAction } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { PluginContextProvider } from '../plugin-context';\nimport { PluginErrorBoundary } from '../plugin-error-boundary';\nimport { getPlugins } from '../../api';\n\n/**\n * A component that renders all plugin fills in a hidden div.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var PluginArea = wp.plugins.PluginArea;\n *\n * function Layout() {\n * \treturn el(\n * \t\t'div',\n * \t\t{ scope: 'my-page' },\n * \t\t'Content of the page',\n * \t\tPluginArea\n * \t);\n * }\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { PluginArea } from '@wordpress/plugins';\n *\n * const Layout = () => (\n * \t<div>\n * \t\tContent of the page\n * \t\t<PluginArea scope=\"my-page\" />\n * \t</div>\n * );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\nclass PluginArea extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.setPlugins = this.setPlugins.bind( this );\n\t\tthis.memoizedContext = memoize( ( name, icon ) => {\n\t\t\treturn {\n\t\t\t\tname,\n\t\t\t\ticon,\n\t\t\t};\n\t\t} );\n\t\tthis.state = this.getCurrentPluginsState();\n\t}\n\n\tgetCurrentPluginsState() {\n\t\treturn {\n\t\t\tplugins: map(\n\t\t\t\tgetPlugins( this.props.scope ),\n\t\t\t\t( { icon, name, render } ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tPlugin: render,\n\t\t\t\t\t\tcontext: this.memoizedContext( name, icon ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t),\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\taddAction(\n\t\t\t'plugins.pluginRegistered',\n\t\t\t'core/plugins/plugin-area/plugins-registered',\n\t\t\tthis.setPlugins\n\t\t);\n\t\taddAction(\n\t\t\t'plugins.pluginUnregistered',\n\t\t\t'core/plugins/plugin-area/plugins-unregistered',\n\t\t\tthis.setPlugins\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tremoveAction(\n\t\t\t'plugins.pluginRegistered',\n\t\t\t'core/plugins/plugin-area/plugins-registered'\n\t\t);\n\t\tremoveAction(\n\t\t\t'plugins.pluginUnregistered',\n\t\t\t'core/plugins/plugin-area/plugins-unregistered'\n\t\t);\n\t}\n\n\tsetPlugins() {\n\t\tthis.setState( this.getCurrentPluginsState );\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div style={ { display: 'none' } }>\n\t\t\t\t{ map( this.state.plugins, ( { context, Plugin } ) => (\n\t\t\t\t\t<PluginContextProvider\n\t\t\t\t\t\tkey={ context.name }\n\t\t\t\t\t\tvalue={ context }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PluginErrorBoundary\n\t\t\t\t\t\t\tname={ context.name }\n\t\t\t\t\t\t\tonError={ this.props.onError }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Plugin />\n\t\t\t\t\t\t</PluginErrorBoundary>\n\t\t\t\t\t</PluginContextProvider>\n\t\t\t\t) ) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default PluginArea;\n"]}
1
+ {"version":3,"sources":["@wordpress/plugins/src/components/plugin-area/index.js"],"names":["PluginArea","Component","constructor","arguments","setPlugins","bind","memoizedContext","name","icon","state","getCurrentPluginsState","plugins","props","scope","map","render","Plugin","context","componentDidMount","componentWillUnmount","setState","display","onError"],"mappings":";;;;;;;;;AAQA;;AALA;;AAMA;;AAKA;;AACA;;AACA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AAKA;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,MAAMA,UAAN,SAAyBC,kBAAzB,CAAmC;AAClCC,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AAEA,SAAKC,UAAL,GAAkB,KAAKA,UAAL,CAAgBC,IAAhB,CAAsB,IAAtB,CAAlB;AACA,SAAKC,eAAL,GAAuB,qBAAS,CAAEC,IAAF,EAAQC,IAAR,KAAkB;AACjD,aAAO;AACND,QAAAA,IADM;AAENC,QAAAA;AAFM,OAAP;AAIA,KALsB,CAAvB;AAMA,SAAKC,KAAL,GAAa,KAAKC,sBAAL,EAAb;AACA;;AAEDA,EAAAA,sBAAsB,GAAG;AACxB,WAAO;AACNC,MAAAA,OAAO,EAAE,qBAAY,KAAKC,KAAL,CAAWC,KAAvB,EAA+BC,GAA/B,CACR,QAA8B;AAAA,YAA5B;AAAEN,UAAAA,IAAF;AAAQD,UAAAA,IAAR;AAAcQ,UAAAA;AAAd,SAA4B;AAC7B,eAAO;AACNC,UAAAA,MAAM,EAAED,MADF;AAENE,UAAAA,OAAO,EAAE,KAAKX,eAAL,CAAsBC,IAAtB,EAA4BC,IAA5B;AAFH,SAAP;AAIA,OANO;AADH,KAAP;AAUA;;AAEDU,EAAAA,iBAAiB,GAAG;AACnB,0BACC,0BADD,EAEC,6CAFD,EAGC,KAAKd,UAHN;AAKA,0BACC,4BADD,EAEC,+CAFD,EAGC,KAAKA,UAHN;AAKA;;AAEDe,EAAAA,oBAAoB,GAAG;AACtB,6BACC,0BADD,EAEC,6CAFD;AAIA,6BACC,4BADD,EAEC,+CAFD;AAIA;;AAEDf,EAAAA,UAAU,GAAG;AACZ,SAAKgB,QAAL,CAAe,KAAKV,sBAApB;AACA;;AAEDK,EAAAA,MAAM,GAAG;AACR,WACC;AAAK,MAAA,KAAK,EAAG;AAAEM,QAAAA,OAAO,EAAE;AAAX;AAAb,OACG,KAAKZ,KAAL,CAAWE,OAAX,CAAmBG,GAAnB,CAAwB;AAAA,UAAE;AAAEG,QAAAA,OAAF;AAAWD,QAAAA;AAAX,OAAF;AAAA,aACzB,4BAAC,oCAAD;AACC,QAAA,GAAG,EAAGC,OAAO,CAACV,IADf;AAEC,QAAA,KAAK,EAAGU;AAFT,SAIC,4BAAC,wCAAD;AACC,QAAA,IAAI,EAAGA,OAAO,CAACV,IADhB;AAEC,QAAA,OAAO,EAAG,KAAKK,KAAL,CAAWU;AAFtB,SAIC,4BAAC,MAAD,OAJD,CAJD,CADyB;AAAA,KAAxB,CADH,CADD;AAiBA;;AAzEiC;;eA4EpBtB,U","sourcesContent":["/**\n * External dependencies\n */\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { addAction, removeAction } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { PluginContextProvider } from '../plugin-context';\nimport { PluginErrorBoundary } from '../plugin-error-boundary';\nimport { getPlugins } from '../../api';\n\n/**\n * A component that renders all plugin fills in a hidden div.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var PluginArea = wp.plugins.PluginArea;\n *\n * function Layout() {\n * \treturn el(\n * \t\t'div',\n * \t\t{ scope: 'my-page' },\n * \t\t'Content of the page',\n * \t\tPluginArea\n * \t);\n * }\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { PluginArea } from '@wordpress/plugins';\n *\n * const Layout = () => (\n * \t<div>\n * \t\tContent of the page\n * \t\t<PluginArea scope=\"my-page\" />\n * \t</div>\n * );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\nclass PluginArea extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.setPlugins = this.setPlugins.bind( this );\n\t\tthis.memoizedContext = memoize( ( name, icon ) => {\n\t\t\treturn {\n\t\t\t\tname,\n\t\t\t\ticon,\n\t\t\t};\n\t\t} );\n\t\tthis.state = this.getCurrentPluginsState();\n\t}\n\n\tgetCurrentPluginsState() {\n\t\treturn {\n\t\t\tplugins: getPlugins( this.props.scope ).map(\n\t\t\t\t( { icon, name, render } ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tPlugin: render,\n\t\t\t\t\t\tcontext: this.memoizedContext( name, icon ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t),\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\taddAction(\n\t\t\t'plugins.pluginRegistered',\n\t\t\t'core/plugins/plugin-area/plugins-registered',\n\t\t\tthis.setPlugins\n\t\t);\n\t\taddAction(\n\t\t\t'plugins.pluginUnregistered',\n\t\t\t'core/plugins/plugin-area/plugins-unregistered',\n\t\t\tthis.setPlugins\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tremoveAction(\n\t\t\t'plugins.pluginRegistered',\n\t\t\t'core/plugins/plugin-area/plugins-registered'\n\t\t);\n\t\tremoveAction(\n\t\t\t'plugins.pluginUnregistered',\n\t\t\t'core/plugins/plugin-area/plugins-unregistered'\n\t\t);\n\t}\n\n\tsetPlugins() {\n\t\tthis.setState( this.getCurrentPluginsState );\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div style={ { display: 'none' } }>\n\t\t\t\t{ this.state.plugins.map( ( { context, Plugin } ) => (\n\t\t\t\t\t<PluginContextProvider\n\t\t\t\t\t\tkey={ context.name }\n\t\t\t\t\t\tvalue={ context }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PluginErrorBoundary\n\t\t\t\t\t\t\tname={ context.name }\n\t\t\t\t\t\t\tonError={ this.props.onError }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Plugin />\n\t\t\t\t\t\t</PluginErrorBoundary>\n\t\t\t\t\t</PluginContextProvider>\n\t\t\t\t) ) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default PluginArea;\n"]}
@@ -5,11 +5,6 @@
5
5
  */
6
6
  import { applyFilters, doAction } from '@wordpress/hooks';
7
7
  import { plugins as pluginsIcon } from '@wordpress/icons';
8
- /**
9
- * External dependencies
10
- */
11
-
12
- import { isFunction } from 'lodash';
13
8
  /**
14
9
  * Defined behavior of a plugin type.
15
10
  *
@@ -138,7 +133,7 @@ export function registerPlugin(name, settings) {
138
133
  scope
139
134
  } = settings;
140
135
 
141
- if (!isFunction(render)) {
136
+ if (typeof render !== 'function') {
142
137
  console.error('The "render" property must be specified and must be a valid function.');
143
138
  return null;
144
139
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/plugins/src/api/index.js"],"names":["applyFilters","doAction","plugins","pluginsIcon","isFunction","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,SAASC,UAAT,QAA2B,QAA3B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AACA,MAAMF,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,SAASG,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,MAAKP,OAAO,CAAEI,IAAF,CAAZ,EAAuB;AACtBE,IAAAA,OAAO,CAACC,KAAR,CAAgB,WAAWH,IAAM,0BAAjC;AACA;;AAEDC,EAAAA,QAAQ,GAAGP,YAAY,CAAE,wBAAF,EAA4BO,QAA5B,EAAsCD,IAAtC,CAAvB;AAEA,QAAM;AAAEK,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAoBL,QAA1B;;AAEA,MAAK,CAAEH,UAAU,CAAEO,MAAF,CAAjB,EAA8B;AAC7BH,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;;AAEDP,EAAAA,OAAO,CAAEI,IAAF,CAAP,GAAkB;AACjBA,IAAAA,IADiB;AAEjBO,IAAAA,IAAI,EAAEV,WAFW;AAGjB,OAAGI;AAHc,GAAlB;AAMAN,EAAAA,QAAQ,CAAE,0BAAF,EAA8BM,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,CAAEJ,OAAO,CAAEI,IAAF,CAAd,EAAyB;AACxBE,IAAAA,OAAO,CAACC,KAAR,CAAe,aAAaH,IAAb,GAAoB,sBAAnC;AACA;AACA;;AACD,QAAMS,SAAS,GAAGb,OAAO,CAAEI,IAAF,CAAzB;AACA,SAAOJ,OAAO,CAAEI,IAAF,CAAd;AAEAL,EAAAA,QAAQ,CAAE,4BAAF,EAAgCc,SAAhC,EAA2CT,IAA3C,CAAR;AAEA,SAAOS,SAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,SAAT,CAAoBV,IAApB,EAA2B;AACjC,SAAOJ,OAAO,CAAEI,IAAF,CAAd;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASW,UAAT,CAAqBL,KAArB,EAA6B;AACnC,SAAOM,MAAM,CAACC,MAAP,CAAejB,OAAf,EAAyBkB,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 * External dependencies\n */\nimport { isFunction } from 'lodash';\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 ( ! isFunction( render ) ) {\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} 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"]}
@@ -3,7 +3,6 @@ import { createElement } from "@wordpress/element";
3
3
  /**
4
4
  * External dependencies
5
5
  */
6
- import { map } from 'lodash';
7
6
  import memoize from 'memize';
8
7
  /**
9
8
  * WordPress dependencies
@@ -68,7 +67,7 @@ class PluginArea extends Component {
68
67
 
69
68
  getCurrentPluginsState() {
70
69
  return {
71
- plugins: map(getPlugins(this.props.scope), _ref => {
70
+ plugins: getPlugins(this.props.scope).map(_ref => {
72
71
  let {
73
72
  icon,
74
73
  name,
@@ -101,7 +100,7 @@ class PluginArea extends Component {
101
100
  style: {
102
101
  display: 'none'
103
102
  }
104
- }, map(this.state.plugins, _ref2 => {
103
+ }, this.state.plugins.map(_ref2 => {
105
104
  let {
106
105
  context,
107
106
  Plugin
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/plugins/src/components/plugin-area/index.js"],"names":["map","memoize","Component","addAction","removeAction","PluginContextProvider","PluginErrorBoundary","getPlugins","PluginArea","constructor","arguments","setPlugins","bind","memoizedContext","name","icon","state","getCurrentPluginsState","plugins","props","scope","render","Plugin","context","componentDidMount","componentWillUnmount","setState","display","onError"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,GAAT,QAAoB,QAApB;AACA,OAAOC,OAAP,MAAoB,QAApB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,oBAA1B;AACA,SAASC,SAAT,EAAoBC,YAApB,QAAwC,kBAAxC;AAEA;AACA;AACA;;AACA,SAASC,qBAAT,QAAsC,mBAAtC;AACA,SAASC,mBAAT,QAAoC,0BAApC;AACA,SAASC,UAAT,QAA2B,WAA3B;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,MAAMC,UAAN,SAAyBN,SAAzB,CAAmC;AAClCO,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AAEA,SAAKC,UAAL,GAAkB,KAAKA,UAAL,CAAgBC,IAAhB,CAAsB,IAAtB,CAAlB;AACA,SAAKC,eAAL,GAAuBZ,OAAO,CAAE,CAAEa,IAAF,EAAQC,IAAR,KAAkB;AACjD,aAAO;AACND,QAAAA,IADM;AAENC,QAAAA;AAFM,OAAP;AAIA,KAL6B,CAA9B;AAMA,SAAKC,KAAL,GAAa,KAAKC,sBAAL,EAAb;AACA;;AAEDA,EAAAA,sBAAsB,GAAG;AACxB,WAAO;AACNC,MAAAA,OAAO,EAAElB,GAAG,CACXO,UAAU,CAAE,KAAKY,KAAL,CAAWC,KAAb,CADC,EAEX,QAA8B;AAAA,YAA5B;AAAEL,UAAAA,IAAF;AAAQD,UAAAA,IAAR;AAAcO,UAAAA;AAAd,SAA4B;AAC7B,eAAO;AACNC,UAAAA,MAAM,EAAED,MADF;AAENE,UAAAA,OAAO,EAAE,KAAKV,eAAL,CAAsBC,IAAtB,EAA4BC,IAA5B;AAFH,SAAP;AAIA,OAPU;AADN,KAAP;AAWA;;AAEDS,EAAAA,iBAAiB,GAAG;AACnBrB,IAAAA,SAAS,CACR,0BADQ,EAER,6CAFQ,EAGR,KAAKQ,UAHG,CAAT;AAKAR,IAAAA,SAAS,CACR,4BADQ,EAER,+CAFQ,EAGR,KAAKQ,UAHG,CAAT;AAKA;;AAEDc,EAAAA,oBAAoB,GAAG;AACtBrB,IAAAA,YAAY,CACX,0BADW,EAEX,6CAFW,CAAZ;AAIAA,IAAAA,YAAY,CACX,4BADW,EAEX,+CAFW,CAAZ;AAIA;;AAEDO,EAAAA,UAAU,GAAG;AACZ,SAAKe,QAAL,CAAe,KAAKT,sBAApB;AACA;;AAEDI,EAAAA,MAAM,GAAG;AACR,WACC;AAAK,MAAA,KAAK,EAAG;AAAEM,QAAAA,OAAO,EAAE;AAAX;AAAb,OACG3B,GAAG,CAAE,KAAKgB,KAAL,CAAWE,OAAb,EAAsB;AAAA,UAAE;AAAEK,QAAAA,OAAF;AAAWD,QAAAA;AAAX,OAAF;AAAA,aAC1B,cAAC,qBAAD;AACC,QAAA,GAAG,EAAGC,OAAO,CAACT,IADf;AAEC,QAAA,KAAK,EAAGS;AAFT,SAIC,cAAC,mBAAD;AACC,QAAA,IAAI,EAAGA,OAAO,CAACT,IADhB;AAEC,QAAA,OAAO,EAAG,KAAKK,KAAL,CAAWS;AAFtB,SAIC,cAAC,MAAD,OAJD,CAJD,CAD0B;AAAA,KAAtB,CADN,CADD;AAiBA;;AA1EiC;;AA6EnC,eAAepB,UAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { map } from 'lodash';\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { addAction, removeAction } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { PluginContextProvider } from '../plugin-context';\nimport { PluginErrorBoundary } from '../plugin-error-boundary';\nimport { getPlugins } from '../../api';\n\n/**\n * A component that renders all plugin fills in a hidden div.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var PluginArea = wp.plugins.PluginArea;\n *\n * function Layout() {\n * \treturn el(\n * \t\t'div',\n * \t\t{ scope: 'my-page' },\n * \t\t'Content of the page',\n * \t\tPluginArea\n * \t);\n * }\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { PluginArea } from '@wordpress/plugins';\n *\n * const Layout = () => (\n * \t<div>\n * \t\tContent of the page\n * \t\t<PluginArea scope=\"my-page\" />\n * \t</div>\n * );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\nclass PluginArea extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.setPlugins = this.setPlugins.bind( this );\n\t\tthis.memoizedContext = memoize( ( name, icon ) => {\n\t\t\treturn {\n\t\t\t\tname,\n\t\t\t\ticon,\n\t\t\t};\n\t\t} );\n\t\tthis.state = this.getCurrentPluginsState();\n\t}\n\n\tgetCurrentPluginsState() {\n\t\treturn {\n\t\t\tplugins: map(\n\t\t\t\tgetPlugins( this.props.scope ),\n\t\t\t\t( { icon, name, render } ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tPlugin: render,\n\t\t\t\t\t\tcontext: this.memoizedContext( name, icon ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t),\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\taddAction(\n\t\t\t'plugins.pluginRegistered',\n\t\t\t'core/plugins/plugin-area/plugins-registered',\n\t\t\tthis.setPlugins\n\t\t);\n\t\taddAction(\n\t\t\t'plugins.pluginUnregistered',\n\t\t\t'core/plugins/plugin-area/plugins-unregistered',\n\t\t\tthis.setPlugins\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tremoveAction(\n\t\t\t'plugins.pluginRegistered',\n\t\t\t'core/plugins/plugin-area/plugins-registered'\n\t\t);\n\t\tremoveAction(\n\t\t\t'plugins.pluginUnregistered',\n\t\t\t'core/plugins/plugin-area/plugins-unregistered'\n\t\t);\n\t}\n\n\tsetPlugins() {\n\t\tthis.setState( this.getCurrentPluginsState );\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div style={ { display: 'none' } }>\n\t\t\t\t{ map( this.state.plugins, ( { context, Plugin } ) => (\n\t\t\t\t\t<PluginContextProvider\n\t\t\t\t\t\tkey={ context.name }\n\t\t\t\t\t\tvalue={ context }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PluginErrorBoundary\n\t\t\t\t\t\t\tname={ context.name }\n\t\t\t\t\t\t\tonError={ this.props.onError }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Plugin />\n\t\t\t\t\t\t</PluginErrorBoundary>\n\t\t\t\t\t</PluginContextProvider>\n\t\t\t\t) ) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default PluginArea;\n"]}
1
+ {"version":3,"sources":["@wordpress/plugins/src/components/plugin-area/index.js"],"names":["memoize","Component","addAction","removeAction","PluginContextProvider","PluginErrorBoundary","getPlugins","PluginArea","constructor","arguments","setPlugins","bind","memoizedContext","name","icon","state","getCurrentPluginsState","plugins","props","scope","map","render","Plugin","context","componentDidMount","componentWillUnmount","setState","display","onError"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,OAAP,MAAoB,QAApB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,oBAA1B;AACA,SAASC,SAAT,EAAoBC,YAApB,QAAwC,kBAAxC;AAEA;AACA;AACA;;AACA,SAASC,qBAAT,QAAsC,mBAAtC;AACA,SAASC,mBAAT,QAAoC,0BAApC;AACA,SAASC,UAAT,QAA2B,WAA3B;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,MAAMC,UAAN,SAAyBN,SAAzB,CAAmC;AAClCO,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AAEA,SAAKC,UAAL,GAAkB,KAAKA,UAAL,CAAgBC,IAAhB,CAAsB,IAAtB,CAAlB;AACA,SAAKC,eAAL,GAAuBZ,OAAO,CAAE,CAAEa,IAAF,EAAQC,IAAR,KAAkB;AACjD,aAAO;AACND,QAAAA,IADM;AAENC,QAAAA;AAFM,OAAP;AAIA,KAL6B,CAA9B;AAMA,SAAKC,KAAL,GAAa,KAAKC,sBAAL,EAAb;AACA;;AAEDA,EAAAA,sBAAsB,GAAG;AACxB,WAAO;AACNC,MAAAA,OAAO,EAAEX,UAAU,CAAE,KAAKY,KAAL,CAAWC,KAAb,CAAV,CAA+BC,GAA/B,CACR,QAA8B;AAAA,YAA5B;AAAEN,UAAAA,IAAF;AAAQD,UAAAA,IAAR;AAAcQ,UAAAA;AAAd,SAA4B;AAC7B,eAAO;AACNC,UAAAA,MAAM,EAAED,MADF;AAENE,UAAAA,OAAO,EAAE,KAAKX,eAAL,CAAsBC,IAAtB,EAA4BC,IAA5B;AAFH,SAAP;AAIA,OANO;AADH,KAAP;AAUA;;AAEDU,EAAAA,iBAAiB,GAAG;AACnBtB,IAAAA,SAAS,CACR,0BADQ,EAER,6CAFQ,EAGR,KAAKQ,UAHG,CAAT;AAKAR,IAAAA,SAAS,CACR,4BADQ,EAER,+CAFQ,EAGR,KAAKQ,UAHG,CAAT;AAKA;;AAEDe,EAAAA,oBAAoB,GAAG;AACtBtB,IAAAA,YAAY,CACX,0BADW,EAEX,6CAFW,CAAZ;AAIAA,IAAAA,YAAY,CACX,4BADW,EAEX,+CAFW,CAAZ;AAIA;;AAEDO,EAAAA,UAAU,GAAG;AACZ,SAAKgB,QAAL,CAAe,KAAKV,sBAApB;AACA;;AAEDK,EAAAA,MAAM,GAAG;AACR,WACC;AAAK,MAAA,KAAK,EAAG;AAAEM,QAAAA,OAAO,EAAE;AAAX;AAAb,OACG,KAAKZ,KAAL,CAAWE,OAAX,CAAmBG,GAAnB,CAAwB;AAAA,UAAE;AAAEG,QAAAA,OAAF;AAAWD,QAAAA;AAAX,OAAF;AAAA,aACzB,cAAC,qBAAD;AACC,QAAA,GAAG,EAAGC,OAAO,CAACV,IADf;AAEC,QAAA,KAAK,EAAGU;AAFT,SAIC,cAAC,mBAAD;AACC,QAAA,IAAI,EAAGA,OAAO,CAACV,IADhB;AAEC,QAAA,OAAO,EAAG,KAAKK,KAAL,CAAWU;AAFtB,SAIC,cAAC,MAAD,OAJD,CAJD,CADyB;AAAA,KAAxB,CADH,CADD;AAiBA;;AAzEiC;;AA4EnC,eAAerB,UAAf","sourcesContent":["/**\n * External dependencies\n */\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { addAction, removeAction } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { PluginContextProvider } from '../plugin-context';\nimport { PluginErrorBoundary } from '../plugin-error-boundary';\nimport { getPlugins } from '../../api';\n\n/**\n * A component that renders all plugin fills in a hidden div.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var PluginArea = wp.plugins.PluginArea;\n *\n * function Layout() {\n * \treturn el(\n * \t\t'div',\n * \t\t{ scope: 'my-page' },\n * \t\t'Content of the page',\n * \t\tPluginArea\n * \t);\n * }\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { PluginArea } from '@wordpress/plugins';\n *\n * const Layout = () => (\n * \t<div>\n * \t\tContent of the page\n * \t\t<PluginArea scope=\"my-page\" />\n * \t</div>\n * );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\nclass PluginArea extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.setPlugins = this.setPlugins.bind( this );\n\t\tthis.memoizedContext = memoize( ( name, icon ) => {\n\t\t\treturn {\n\t\t\t\tname,\n\t\t\t\ticon,\n\t\t\t};\n\t\t} );\n\t\tthis.state = this.getCurrentPluginsState();\n\t}\n\n\tgetCurrentPluginsState() {\n\t\treturn {\n\t\t\tplugins: getPlugins( this.props.scope ).map(\n\t\t\t\t( { icon, name, render } ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tPlugin: render,\n\t\t\t\t\t\tcontext: this.memoizedContext( name, icon ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t),\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\taddAction(\n\t\t\t'plugins.pluginRegistered',\n\t\t\t'core/plugins/plugin-area/plugins-registered',\n\t\t\tthis.setPlugins\n\t\t);\n\t\taddAction(\n\t\t\t'plugins.pluginUnregistered',\n\t\t\t'core/plugins/plugin-area/plugins-unregistered',\n\t\t\tthis.setPlugins\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tremoveAction(\n\t\t\t'plugins.pluginRegistered',\n\t\t\t'core/plugins/plugin-area/plugins-registered'\n\t\t);\n\t\tremoveAction(\n\t\t\t'plugins.pluginUnregistered',\n\t\t\t'core/plugins/plugin-area/plugins-unregistered'\n\t\t);\n\t}\n\n\tsetPlugins() {\n\t\tthis.setState( this.getCurrentPluginsState );\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div style={ { display: 'none' } }>\n\t\t\t\t{ this.state.plugins.map( ( { context, Plugin } ) => (\n\t\t\t\t\t<PluginContextProvider\n\t\t\t\t\t\tkey={ context.name }\n\t\t\t\t\t\tvalue={ context }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PluginErrorBoundary\n\t\t\t\t\t\t\tname={ context.name }\n\t\t\t\t\t\t\tonError={ this.props.onError }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Plugin />\n\t\t\t\t\t\t</PluginErrorBoundary>\n\t\t\t\t\t</PluginContextProvider>\n\t\t\t\t) ) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default PluginArea;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/plugins",
3
- "version": "4.7.0",
3
+ "version": "4.10.0",
4
4
  "description": "Plugins module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -26,11 +26,10 @@
26
26
  "react-native": "src/index",
27
27
  "dependencies": {
28
28
  "@babel/runtime": "^7.16.0",
29
- "@wordpress/compose": "^5.7.0",
30
- "@wordpress/element": "^4.7.0",
31
- "@wordpress/hooks": "^3.9.0",
32
- "@wordpress/icons": "^9.0.0",
33
- "lodash": "^4.17.21",
29
+ "@wordpress/compose": "^5.10.0",
30
+ "@wordpress/element": "^4.10.0",
31
+ "@wordpress/hooks": "^3.12.0",
32
+ "@wordpress/icons": "^9.3.0",
34
33
  "memize": "^1.1.0"
35
34
  },
36
35
  "peerDependencies": {
@@ -39,5 +38,5 @@
39
38
  "publishConfig": {
40
39
  "access": "public"
41
40
  },
42
- "gitHead": "198fa129cf1af8dc615918987ea6795cd40ab7df"
41
+ "gitHead": "a80eeb62ec7cb1418b9915c277e084a29d6665e3"
43
42
  }
package/src/api/index.js CHANGED
@@ -6,11 +6,6 @@
6
6
  import { applyFilters, doAction } from '@wordpress/hooks';
7
7
  import { plugins as pluginsIcon } from '@wordpress/icons';
8
8
 
9
- /**
10
- * External dependencies
11
- */
12
- import { isFunction } from 'lodash';
13
-
14
9
  /**
15
10
  * Defined behavior of a plugin type.
16
11
  *
@@ -135,7 +130,7 @@ export function registerPlugin( name, settings ) {
135
130
 
136
131
  const { render, scope } = settings;
137
132
 
138
- if ( ! isFunction( render ) ) {
133
+ if ( typeof render !== 'function' ) {
139
134
  console.error(
140
135
  'The "render" property must be specified and must be a valid function.'
141
136
  );
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { map } from 'lodash';
5
4
  import memoize from 'memize';
6
5
 
7
6
  /**
@@ -67,8 +66,7 @@ class PluginArea extends Component {
67
66
 
68
67
  getCurrentPluginsState() {
69
68
  return {
70
- plugins: map(
71
- getPlugins( this.props.scope ),
69
+ plugins: getPlugins( this.props.scope ).map(
72
70
  ( { icon, name, render } ) => {
73
71
  return {
74
72
  Plugin: render,
@@ -110,7 +108,7 @@ class PluginArea extends Component {
110
108
  render() {
111
109
  return (
112
110
  <div style={ { display: 'none' } }>
113
- { map( this.state.plugins, ( { context, Plugin } ) => (
111
+ { this.state.plugins.map( ( { context, Plugin } ) => (
114
112
  <PluginContextProvider
115
113
  key={ context.name }
116
114
  value={ context }