| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754 |
- this["wp"] = this["wp"] || {}; this["wp"]["plugins"] =
- /******/ (function(modules) { // webpackBootstrap
- /******/ // The module cache
- /******/ var installedModules = {};
- /******/
- /******/ // The require function
- /******/ function __webpack_require__(moduleId) {
- /******/
- /******/ // Check if module is in cache
- /******/ if(installedModules[moduleId]) {
- /******/ return installedModules[moduleId].exports;
- /******/ }
- /******/ // Create a new module (and put it into the cache)
- /******/ var module = installedModules[moduleId] = {
- /******/ i: moduleId,
- /******/ l: false,
- /******/ exports: {}
- /******/ };
- /******/
- /******/ // Execute the module function
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- /******/
- /******/ // Flag the module as loaded
- /******/ module.l = true;
- /******/
- /******/ // Return the exports of the module
- /******/ return module.exports;
- /******/ }
- /******/
- /******/
- /******/ // expose the modules object (__webpack_modules__)
- /******/ __webpack_require__.m = modules;
- /******/
- /******/ // expose the module cache
- /******/ __webpack_require__.c = installedModules;
- /******/
- /******/ // define getter function for harmony exports
- /******/ __webpack_require__.d = function(exports, name, getter) {
- /******/ if(!__webpack_require__.o(exports, name)) {
- /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
- /******/ }
- /******/ };
- /******/
- /******/ // define __esModule on exports
- /******/ __webpack_require__.r = function(exports) {
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
- /******/ }
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
- /******/ };
- /******/
- /******/ // create a fake namespace object
- /******/ // mode & 1: value is a module id, require it
- /******/ // mode & 2: merge all properties of value into the ns
- /******/ // mode & 4: return value when already ns object
- /******/ // mode & 8|1: behave like require
- /******/ __webpack_require__.t = function(value, mode) {
- /******/ if(mode & 1) value = __webpack_require__(value);
- /******/ if(mode & 8) return value;
- /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
- /******/ var ns = Object.create(null);
- /******/ __webpack_require__.r(ns);
- /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
- /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
- /******/ return ns;
- /******/ };
- /******/
- /******/ // getDefaultExport function for compatibility with non-harmony modules
- /******/ __webpack_require__.n = function(module) {
- /******/ var getter = module && module.__esModule ?
- /******/ function getDefault() { return module['default']; } :
- /******/ function getModuleExports() { return module; };
- /******/ __webpack_require__.d(getter, 'a', getter);
- /******/ return getter;
- /******/ };
- /******/
- /******/ // Object.prototype.hasOwnProperty.call
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
- /******/
- /******/ // __webpack_public_path__
- /******/ __webpack_require__.p = "";
- /******/
- /******/
- /******/ // Load entry module and return exports
- /******/ return __webpack_require__(__webpack_require__.s = "ey5A");
- /******/ })
- /************************************************************************/
- /******/ ({
- /***/ "4eJC":
- /***/ (function(module, exports, __webpack_require__) {
- /**
- * Memize options object.
- *
- * @typedef MemizeOptions
- *
- * @property {number} [maxSize] Maximum size of the cache.
- */
- /**
- * Internal cache entry.
- *
- * @typedef MemizeCacheNode
- *
- * @property {?MemizeCacheNode|undefined} [prev] Previous node.
- * @property {?MemizeCacheNode|undefined} [next] Next node.
- * @property {Array<*>} args Function arguments for cache
- * entry.
- * @property {*} val Function result.
- */
- /**
- * Properties of the enhanced function for controlling cache.
- *
- * @typedef MemizeMemoizedFunction
- *
- * @property {()=>void} clear Clear the cache.
- */
- /**
- * Accepts a function to be memoized, and returns a new memoized function, with
- * optional options.
- *
- * @template {Function} F
- *
- * @param {F} fn Function to memoize.
- * @param {MemizeOptions} [options] Options object.
- *
- * @return {F & MemizeMemoizedFunction} Memoized function.
- */
- function memize( fn, options ) {
- var size = 0;
- /** @type {?MemizeCacheNode|undefined} */
- var head;
- /** @type {?MemizeCacheNode|undefined} */
- var tail;
- options = options || {};
- function memoized( /* ...args */ ) {
- var node = head,
- len = arguments.length,
- args, i;
- searchCache: while ( node ) {
- // Perform a shallow equality test to confirm that whether the node
- // under test is a candidate for the arguments passed. Two arrays
- // are shallowly equal if their length matches and each entry is
- // strictly equal between the two sets. Avoid abstracting to a
- // function which could incur an arguments leaking deoptimization.
- // Check whether node arguments match arguments length
- if ( node.args.length !== arguments.length ) {
- node = node.next;
- continue;
- }
- // Check whether node arguments match arguments values
- for ( i = 0; i < len; i++ ) {
- if ( node.args[ i ] !== arguments[ i ] ) {
- node = node.next;
- continue searchCache;
- }
- }
- // At this point we can assume we've found a match
- // Surface matched node to head if not already
- if ( node !== head ) {
- // As tail, shift to previous. Must only shift if not also
- // head, since if both head and tail, there is no previous.
- if ( node === tail ) {
- tail = node.prev;
- }
- // Adjust siblings to point to each other. If node was tail,
- // this also handles new tail's empty `next` assignment.
- /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;
- if ( node.next ) {
- node.next.prev = node.prev;
- }
- node.next = head;
- node.prev = null;
- /** @type {MemizeCacheNode} */ ( head ).prev = node;
- head = node;
- }
- // Return immediately
- return node.val;
- }
- // No cached value found. Continue to insertion phase:
- // Create a copy of arguments (avoid leaking deoptimization)
- args = new Array( len );
- for ( i = 0; i < len; i++ ) {
- args[ i ] = arguments[ i ];
- }
- node = {
- args: args,
- // Generate the result from original function
- val: fn.apply( null, args ),
- };
- // Don't need to check whether node is already head, since it would
- // have been returned above already if it was
- // Shift existing head down list
- if ( head ) {
- head.prev = node;
- node.next = head;
- } else {
- // If no head, follows that there's no tail (at initial or reset)
- tail = node;
- }
- // Trim tail if we're reached max size and are pending cache insertion
- if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {
- tail = /** @type {MemizeCacheNode} */ ( tail ).prev;
- /** @type {MemizeCacheNode} */ ( tail ).next = null;
- } else {
- size++;
- }
- head = node;
- return node.val;
- }
- memoized.clear = function() {
- head = null;
- tail = null;
- size = 0;
- };
- if ( false ) {}
- // Ignore reason: There's not a clear solution to create an intersection of
- // the function with additional properties, where the goal is to retain the
- // function signature of the incoming argument and add control properties
- // on the return value.
- // @ts-ignore
- return memoized;
- }
- module.exports = memize;
- /***/ }),
- /***/ "GRId":
- /***/ (function(module, exports) {
- (function() { module.exports = window["wp"]["element"]; }());
- /***/ }),
- /***/ "K9lf":
- /***/ (function(module, exports) {
- (function() { module.exports = window["wp"]["compose"]; }());
- /***/ }),
- /***/ "Tqx9":
- /***/ (function(module, exports) {
- (function() { module.exports = window["wp"]["primitives"]; }());
- /***/ }),
- /***/ "YLtl":
- /***/ (function(module, exports) {
- (function() { module.exports = window["lodash"]; }());
- /***/ }),
- /***/ "ey5A":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- // ESM COMPAT FLAG
- __webpack_require__.r(__webpack_exports__);
- // EXPORTS
- __webpack_require__.d(__webpack_exports__, "PluginArea", function() { return /* reexport */ plugin_area; });
- __webpack_require__.d(__webpack_exports__, "withPluginContext", function() { return /* reexport */ withPluginContext; });
- __webpack_require__.d(__webpack_exports__, "registerPlugin", function() { return /* reexport */ registerPlugin; });
- __webpack_require__.d(__webpack_exports__, "unregisterPlugin", function() { return /* reexport */ unregisterPlugin; });
- __webpack_require__.d(__webpack_exports__, "getPlugin", function() { return /* reexport */ getPlugin; });
- __webpack_require__.d(__webpack_exports__, "getPlugins", function() { return /* reexport */ getPlugins; });
- // EXTERNAL MODULE: external ["wp","element"]
- var external_wp_element_ = __webpack_require__("GRId");
- // EXTERNAL MODULE: external "lodash"
- var external_lodash_ = __webpack_require__("YLtl");
- // EXTERNAL MODULE: ./node_modules/memize/index.js
- var memize = __webpack_require__("4eJC");
- var memize_default = /*#__PURE__*/__webpack_require__.n(memize);
- // EXTERNAL MODULE: external ["wp","hooks"]
- var external_wp_hooks_ = __webpack_require__("g56x");
- // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
- var esm_extends = __webpack_require__("wx14");
- // EXTERNAL MODULE: external ["wp","compose"]
- var external_wp_compose_ = __webpack_require__("K9lf");
- // CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/components/plugin-context/index.js
- /**
- * WordPress dependencies
- */
- const {
- Consumer,
- Provider
- } = Object(external_wp_element_["createContext"])({
- name: null,
- icon: null
- });
- /**
- * A Higher Order Component used to inject Plugin context to the
- * wrapped component.
- *
- * @param {Function} mapContextToProps Function called on every context change,
- * expected to return object of props to
- * merge with the component's own props.
- *
- * @return {WPComponent} Enhanced component with injected context as props.
- */
- const withPluginContext = mapContextToProps => Object(external_wp_compose_["createHigherOrderComponent"])(OriginalComponent => {
- return props => Object(external_wp_element_["createElement"])(Consumer, null, context => Object(external_wp_element_["createElement"])(OriginalComponent, Object(esm_extends["a" /* default */])({}, props, mapContextToProps(context, props))));
- }, 'withPluginContext');
- // EXTERNAL MODULE: external ["wp","primitives"]
- var external_wp_primitives_ = __webpack_require__("Tqx9");
- // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/plugins.js
- /**
- * WordPress dependencies
- */
- const plugins = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
- xmlns: "http://www.w3.org/2000/svg",
- viewBox: "0 0 24 24"
- }, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
- d: "M10.5 4v4h3V4H15v4h1.5a1 1 0 011 1v4l-3 4v2a1 1 0 01-1 1h-3a1 1 0 01-1-1v-2l-3-4V9a1 1 0 011-1H9V4h1.5zm.5 12.5v2h2v-2l3-4v-3H8v3l3 4z"
- }));
- /* harmony default export */ var library_plugins = (plugins);
- // CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/api/index.js
- /* eslint no-console: [ 'error', { allow: [ 'error' ] } ] */
- /**
- * WordPress dependencies
- */
- /**
- * External dependencies
- */
- /**
- * Defined behavior of a plugin type.
- *
- * @typedef {Object} WPPlugin
- *
- * @property {string} name A string identifying the plugin. Must be
- * unique across all registered plugins.
- * @property {string|WPElement|Function} [icon] An icon to be shown in the UI. It can
- * be a slug of the Dashicon, or an element
- * (or function returning an element) if you
- * choose to render your own SVG.
- * @property {Function} render A component containing the UI elements
- * to be rendered.
- * @property {string} [scope] The optional scope to be used when rendering inside
- * a plugin area. No scope by default.
- */
- /**
- * Plugin definitions keyed by plugin name.
- *
- * @type {Object.<string,WPPlugin>}
- */
- const api_plugins = {};
- /**
- * Registers a plugin to the editor.
- *
- * @param {string} name A string identifying the plugin.Must be
- * unique across all registered plugins.
- * @param {WPPlugin} settings The settings for this plugin.
- *
- * @example
- * ```js
- * // Using ES5 syntax
- * var el = wp.element.createElement;
- * var Fragment = wp.element.Fragment;
- * var PluginSidebar = wp.editPost.PluginSidebar;
- * var PluginSidebarMoreMenuItem = wp.editPost.PluginSidebarMoreMenuItem;
- * var registerPlugin = wp.plugins.registerPlugin;
- * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.
- *
- * function Component() {
- * return el(
- * Fragment,
- * {},
- * el(
- * PluginSidebarMoreMenuItem,
- * {
- * target: 'sidebar-name',
- * },
- * 'My Sidebar'
- * ),
- * el(
- * PluginSidebar,
- * {
- * name: 'sidebar-name',
- * title: 'My Sidebar',
- * },
- * 'Content of the sidebar'
- * )
- * );
- * }
- * registerPlugin( 'plugin-name', {
- * icon: moreIcon,
- * render: Component,
- * scope: 'my-page',
- * } );
- * ```
- *
- * @example
- * ```js
- * // Using ESNext syntax
- * import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/edit-post';
- * import { registerPlugin } from '@wordpress/plugins';
- * import { more } from '@wordpress/icons';
- *
- * const Component = () => (
- * <>
- * <PluginSidebarMoreMenuItem
- * target="sidebar-name"
- * >
- * My Sidebar
- * </PluginSidebarMoreMenuItem>
- * <PluginSidebar
- * name="sidebar-name"
- * title="My Sidebar"
- * >
- * Content of the sidebar
- * </PluginSidebar>
- * </>
- * );
- *
- * registerPlugin( 'plugin-name', {
- * icon: more,
- * render: Component,
- * scope: 'my-page',
- * } );
- * ```
- *
- * @return {WPPlugin} The final plugin settings object.
- */
- function registerPlugin(name, settings) {
- if (typeof settings !== 'object') {
- console.error('No settings object provided!');
- return null;
- }
- if (typeof name !== 'string') {
- console.error('Plugin name must be string.');
- return null;
- }
- if (!/^[a-z][a-z0-9-]*$/.test(name)) {
- console.error('Plugin name must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: "my-plugin".');
- return null;
- }
- if (api_plugins[name]) {
- console.error(`Plugin "${name}" is already registered.`);
- }
- settings = Object(external_wp_hooks_["applyFilters"])('plugins.registerPlugin', settings, name);
- const {
- render,
- scope
- } = settings;
- if (!Object(external_lodash_["isFunction"])(render)) {
- console.error('The "render" property must be specified and must be a valid function.');
- return null;
- }
- if (scope) {
- if (typeof scope !== 'string') {
- console.error('Plugin scope must be string.');
- return null;
- }
- if (!/^[a-z][a-z0-9-]*$/.test(scope)) {
- console.error('Plugin scope must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: "my-page".');
- return null;
- }
- }
- api_plugins[name] = {
- name,
- icon: library_plugins,
- ...settings
- };
- Object(external_wp_hooks_["doAction"])('plugins.pluginRegistered', settings, name);
- return settings;
- }
- /**
- * Unregisters a plugin by name.
- *
- * @param {string} name Plugin name.
- *
- * @example
- * ```js
- * // Using ES5 syntax
- * var unregisterPlugin = wp.plugins.unregisterPlugin;
- *
- * unregisterPlugin( 'plugin-name' );
- * ```
- *
- * @example
- * ```js
- * // Using ESNext syntax
- * import { unregisterPlugin } from '@wordpress/plugins';
- *
- * unregisterPlugin( 'plugin-name' );
- * ```
- *
- * @return {?WPPlugin} The previous plugin settings object, if it has been
- * successfully unregistered; otherwise `undefined`.
- */
- function unregisterPlugin(name) {
- if (!api_plugins[name]) {
- console.error('Plugin "' + name + '" is not registered.');
- return;
- }
- const oldPlugin = api_plugins[name];
- delete api_plugins[name];
- Object(external_wp_hooks_["doAction"])('plugins.pluginUnregistered', oldPlugin, name);
- return oldPlugin;
- }
- /**
- * Returns a registered plugin settings.
- *
- * @param {string} name Plugin name.
- *
- * @return {?WPPlugin} Plugin setting.
- */
- function getPlugin(name) {
- return api_plugins[name];
- }
- /**
- * Returns all registered plugins without a scope or for a given scope.
- *
- * @param {string} [scope] The scope to be used when rendering inside
- * a plugin area. No scope by default.
- *
- * @return {WPPlugin[]} The list of plugins without a scope or for a given scope.
- */
- function getPlugins(scope) {
- return Object.values(api_plugins).filter(plugin => plugin.scope === scope);
- }
- // CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/components/plugin-area/index.js
- /**
- * External dependencies
- */
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- /**
- * A component that renders all plugin fills in a hidden div.
- *
- * @example
- * ```js
- * // Using ES5 syntax
- * var el = wp.element.createElement;
- * var PluginArea = wp.plugins.PluginArea;
- *
- * function Layout() {
- * return el(
- * 'div',
- * { scope: 'my-page' },
- * 'Content of the page',
- * PluginArea
- * );
- * }
- * ```
- *
- * @example
- * ```js
- * // Using ESNext syntax
- * import { PluginArea } from '@wordpress/plugins';
- *
- * const Layout = () => (
- * <div>
- * Content of the page
- * <PluginArea scope="my-page" />
- * </div>
- * );
- * ```
- *
- * @return {WPComponent} The component to be rendered.
- */
- class plugin_area_PluginArea extends external_wp_element_["Component"] {
- constructor() {
- super(...arguments);
- this.setPlugins = this.setPlugins.bind(this);
- this.memoizedContext = memize_default()((name, icon) => {
- return {
- name,
- icon
- };
- });
- this.state = this.getCurrentPluginsState();
- }
- getCurrentPluginsState() {
- return {
- plugins: Object(external_lodash_["map"])(getPlugins(this.props.scope), ({
- icon,
- name,
- render
- }) => {
- return {
- Plugin: render,
- context: this.memoizedContext(name, icon)
- };
- })
- };
- }
- componentDidMount() {
- Object(external_wp_hooks_["addAction"])('plugins.pluginRegistered', 'core/plugins/plugin-area/plugins-registered', this.setPlugins);
- Object(external_wp_hooks_["addAction"])('plugins.pluginUnregistered', 'core/plugins/plugin-area/plugins-unregistered', this.setPlugins);
- }
- componentWillUnmount() {
- Object(external_wp_hooks_["removeAction"])('plugins.pluginRegistered', 'core/plugins/plugin-area/plugins-registered');
- Object(external_wp_hooks_["removeAction"])('plugins.pluginUnregistered', 'core/plugins/plugin-area/plugins-unregistered');
- }
- setPlugins() {
- this.setState(this.getCurrentPluginsState);
- }
- render() {
- return Object(external_wp_element_["createElement"])("div", {
- style: {
- display: 'none'
- }
- }, Object(external_lodash_["map"])(this.state.plugins, ({
- context,
- Plugin
- }) => Object(external_wp_element_["createElement"])(Provider, {
- key: context.name,
- value: context
- }, Object(external_wp_element_["createElement"])(Plugin, null))));
- }
- }
- /* harmony default export */ var plugin_area = (plugin_area_PluginArea);
- // CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/components/index.js
- // CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/index.js
- /***/ }),
- /***/ "g56x":
- /***/ (function(module, exports) {
- (function() { module.exports = window["wp"]["hooks"]; }());
- /***/ }),
- /***/ "wx14":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _extends; });
- function _extends() {
- _extends = Object.assign || function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
- return target;
- };
- return _extends.apply(this, arguments);
- }
- /***/ })
- /******/ });
|