PluginProbe
Gutenberg / 23.7.2
Gutenberg v23.7.2
23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 7.4.0 All 402 releases
gutenberg / build / scripts / plugins / index.js

index.js in Gutenberg 23.7.2, at build/scripts/plugins/index.js

574 lines 20.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 "use strict";
2 var wp;
3 (wp ||= {}).plugins = (() => {
4 var __create = Object.create;
5 var __defProp = Object.defineProperty;
6 var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7 var __getOwnPropNames = Object.getOwnPropertyNames;
8 var __getProtoOf = Object.getPrototypeOf;
9 var __hasOwnProp = Object.prototype.hasOwnProperty;
10 var __commonJS = (cb, mod) => function __require() {
11 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
12 };
13 var __export = (target, all) => {
14 for (var name in all)
15 __defProp(target, name, { get: all[name], enumerable: true });
16 };
17 var __copyProps = (to, from, except, desc) => {
18 if (from && typeof from === "object" || typeof from === "function") {
19 for (let key of __getOwnPropNames(from))
20 if (!__hasOwnProp.call(to, key) && key !== except)
21 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22 }
23 return to;
24 };
25 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
26 // If the importer is in node compatibility mode or this is not an ESM
27 // file that has been converted to a CommonJS file using a Babel-
28 // compatible transform (i.e. "__esModule" has not been set), then set
29 // "default" to the CommonJS "module.exports" for node compatibility.
30 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
31 mod
32 ));
33 var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
35 // package-external:@wordpress/element
36 var require_element = __commonJS({
37 "package-external:@wordpress/element"(exports, module) {
38 module.exports = window.wp.element;
39 }
40 });
41
42 // package-external:@wordpress/hooks
43 var require_hooks = __commonJS({
44 "package-external:@wordpress/hooks"(exports, module) {
45 module.exports = window.wp.hooks;
46 }
47 });
48
49 // package-external:@wordpress/is-shallow-equal
50 var require_is_shallow_equal = __commonJS({
51 "package-external:@wordpress/is-shallow-equal"(exports, module) {
52 module.exports = window.wp.isShallowEqual;
53 }
54 });
55
56 // package-external:@wordpress/compose
57 var require_compose = __commonJS({
58 "package-external:@wordpress/compose"(exports, module) {
59 module.exports = window.wp.compose;
60 }
61 });
62
63 // package-external:@wordpress/deprecated
64 var require_deprecated = __commonJS({
65 "package-external:@wordpress/deprecated"(exports, module) {
66 module.exports = window.wp.deprecated;
67 }
68 });
69
70 // vendor-external:react/jsx-runtime
71 var require_jsx_runtime = __commonJS({
72 "vendor-external:react/jsx-runtime"(exports, module) {
73 module.exports = window.ReactJSXRuntime;
74 }
75 });
76
77 // packages/plugins/node_modules/react-is/cjs/react-is.development.js
78 var require_react_is_development = __commonJS({
79 "packages/plugins/node_modules/react-is/cjs/react-is.development.js"(exports) {
80 "use strict";
81 if (true) {
82 (function() {
83 "use strict";
84 var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.element");
85 var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal");
86 var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
87 var REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode");
88 var REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for("react.profiler");
89 var REACT_PROVIDER_TYPE = /* @__PURE__ */ Symbol.for("react.provider");
90 var REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context");
91 var REACT_SERVER_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.server_context");
92 var REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref");
93 var REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense");
94 var REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for("react.suspense_list");
95 var REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo");
96 var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
97 var REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for("react.offscreen");
98 var enableScopeAPI = false;
99 var enableCacheElement = false;
100 var enableTransitionTracing = false;
101 var enableLegacyHidden = false;
102 var enableDebugTracing = false;
103 var REACT_MODULE_REFERENCE;
104 {
105 REACT_MODULE_REFERENCE = /* @__PURE__ */ Symbol.for("react.module.reference");
106 }
107 function isValidElementType2(type) {
108 if (typeof type === "string" || typeof type === "function") {
109 return true;
110 }
111 if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) {
112 return true;
113 }
114 if (typeof type === "object" && type !== null) {
115 if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object
116 // types supported by any Flight configuration anywhere since
117 // we don't know which Flight build this will end up being used
118 // with.
119 type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== void 0) {
120 return true;
121 }
122 }
123 return false;
124 }
125 function typeOf(object) {
126 if (typeof object === "object" && object !== null) {
127 var $$typeof = object.$$typeof;
128 switch ($$typeof) {
129 case REACT_ELEMENT_TYPE:
130 var type = object.type;
131 switch (type) {
132 case REACT_FRAGMENT_TYPE:
133 case REACT_PROFILER_TYPE:
134 case REACT_STRICT_MODE_TYPE:
135 case REACT_SUSPENSE_TYPE:
136 case REACT_SUSPENSE_LIST_TYPE:
137 return type;
138 default:
139 var $$typeofType = type && type.$$typeof;
140 switch ($$typeofType) {
141 case REACT_SERVER_CONTEXT_TYPE:
142 case REACT_CONTEXT_TYPE:
143 case REACT_FORWARD_REF_TYPE:
144 case REACT_LAZY_TYPE:
145 case REACT_MEMO_TYPE:
146 case REACT_PROVIDER_TYPE:
147 return $$typeofType;
148 default:
149 return $$typeof;
150 }
151 }
152 case REACT_PORTAL_TYPE:
153 return $$typeof;
154 }
155 }
156 return void 0;
157 }
158 var ContextConsumer = REACT_CONTEXT_TYPE;
159 var ContextProvider = REACT_PROVIDER_TYPE;
160 var Element = REACT_ELEMENT_TYPE;
161 var ForwardRef = REACT_FORWARD_REF_TYPE;
162 var Fragment = REACT_FRAGMENT_TYPE;
163 var Lazy = REACT_LAZY_TYPE;
164 var Memo = REACT_MEMO_TYPE;
165 var Portal = REACT_PORTAL_TYPE;
166 var Profiler = REACT_PROFILER_TYPE;
167 var StrictMode = REACT_STRICT_MODE_TYPE;
168 var Suspense = REACT_SUSPENSE_TYPE;
169 var SuspenseList = REACT_SUSPENSE_LIST_TYPE;
170 var hasWarnedAboutDeprecatedIsAsyncMode = false;
171 var hasWarnedAboutDeprecatedIsConcurrentMode = false;
172 function isAsyncMode(object) {
173 {
174 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
175 hasWarnedAboutDeprecatedIsAsyncMode = true;
176 console["warn"]("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 18+.");
177 }
178 }
179 return false;
180 }
181 function isConcurrentMode(object) {
182 {
183 if (!hasWarnedAboutDeprecatedIsConcurrentMode) {
184 hasWarnedAboutDeprecatedIsConcurrentMode = true;
185 console["warn"]("The ReactIs.isConcurrentMode() alias has been deprecated, and will be removed in React 18+.");
186 }
187 }
188 return false;
189 }
190 function isContextConsumer(object) {
191 return typeOf(object) === REACT_CONTEXT_TYPE;
192 }
193 function isContextProvider(object) {
194 return typeOf(object) === REACT_PROVIDER_TYPE;
195 }
196 function isElement(object) {
197 return typeof object === "object" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
198 }
199 function isForwardRef(object) {
200 return typeOf(object) === REACT_FORWARD_REF_TYPE;
201 }
202 function isFragment(object) {
203 return typeOf(object) === REACT_FRAGMENT_TYPE;
204 }
205 function isLazy(object) {
206 return typeOf(object) === REACT_LAZY_TYPE;
207 }
208 function isMemo(object) {
209 return typeOf(object) === REACT_MEMO_TYPE;
210 }
211 function isPortal(object) {
212 return typeOf(object) === REACT_PORTAL_TYPE;
213 }
214 function isProfiler(object) {
215 return typeOf(object) === REACT_PROFILER_TYPE;
216 }
217 function isStrictMode(object) {
218 return typeOf(object) === REACT_STRICT_MODE_TYPE;
219 }
220 function isSuspense(object) {
221 return typeOf(object) === REACT_SUSPENSE_TYPE;
222 }
223 function isSuspenseList(object) {
224 return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;
225 }
226 exports.ContextConsumer = ContextConsumer;
227 exports.ContextProvider = ContextProvider;
228 exports.Element = Element;
229 exports.ForwardRef = ForwardRef;
230 exports.Fragment = Fragment;
231 exports.Lazy = Lazy;
232 exports.Memo = Memo;
233 exports.Portal = Portal;
234 exports.Profiler = Profiler;
235 exports.StrictMode = StrictMode;
236 exports.Suspense = Suspense;
237 exports.SuspenseList = SuspenseList;
238 exports.isAsyncMode = isAsyncMode;
239 exports.isConcurrentMode = isConcurrentMode;
240 exports.isContextConsumer = isContextConsumer;
241 exports.isContextProvider = isContextProvider;
242 exports.isElement = isElement;
243 exports.isForwardRef = isForwardRef;
244 exports.isFragment = isFragment;
245 exports.isLazy = isLazy;
246 exports.isMemo = isMemo;
247 exports.isPortal = isPortal;
248 exports.isProfiler = isProfiler;
249 exports.isStrictMode = isStrictMode;
250 exports.isSuspense = isSuspense;
251 exports.isSuspenseList = isSuspenseList;
252 exports.isValidElementType = isValidElementType2;
253 exports.typeOf = typeOf;
254 })();
255 }
256 }
257 });
258
259 // packages/plugins/node_modules/react-is/index.js
260 var require_react_is = __commonJS({
261 "packages/plugins/node_modules/react-is/index.js"(exports, module) {
262 "use strict";
263 if (false) {
264 module.exports = null;
265 } else {
266 module.exports = require_react_is_development();
267 }
268 }
269 });
270
271 // package-external:@wordpress/primitives
272 var require_primitives = __commonJS({
273 "package-external:@wordpress/primitives"(exports, module) {
274 module.exports = window.wp.primitives;
275 }
276 });
277
278 // packages/plugins/build-module/index.mjs
279 var index_exports = {};
280 __export(index_exports, {
281 PluginArea: () => plugin_area_default,
282 getPlugin: () => getPlugin,
283 getPlugins: () => getPlugins,
284 registerPlugin: () => registerPlugin,
285 unregisterPlugin: () => unregisterPlugin,
286 usePluginContext: () => usePluginContext,
287 withPluginContext: () => withPluginContext
288 });
289
290 // node_modules/memize/dist/index.js
291 function memize(fn, options) {
292 var size = 0;
293 var head;
294 var tail;
295 options = options || {};
296 function memoized() {
297 var node = head, len = arguments.length, args, i;
298 searchCache: while (node) {
299 if (node.args.length !== arguments.length) {
300 node = node.next;
301 continue;
302 }
303 for (i = 0; i < len; i++) {
304 if (node.args[i] !== arguments[i]) {
305 node = node.next;
306 continue searchCache;
307 }
308 }
309 if (node !== head) {
310 if (node === tail) {
311 tail = node.prev;
312 }
313 node.prev.next = node.next;
314 if (node.next) {
315 node.next.prev = node.prev;
316 }
317 node.next = head;
318 node.prev = null;
319 head.prev = node;
320 head = node;
321 }
322 return node.val;
323 }
324 args = new Array(len);
325 for (i = 0; i < len; i++) {
326 args[i] = arguments[i];
327 }
328 node = {
329 args,
330 // Generate the result from original function
331 val: fn.apply(null, args)
332 };
333 if (head) {
334 head.prev = node;
335 node.next = head;
336 } else {
337 tail = node;
338 }
339 if (size === /** @type {MemizeOptions} */
340 options.maxSize) {
341 tail = /** @type {MemizeCacheNode} */
342 tail.prev;
343 tail.next = null;
344 } else {
345 size++;
346 }
347 head = node;
348 return node.val;
349 }
350 memoized.clear = function() {
351 head = null;
352 tail = null;
353 size = 0;
354 };
355 return memoized;
356 }
357
358 // packages/plugins/build-module/components/plugin-area/index.mjs
359 var import_element3 = __toESM(require_element(), 1);
360 var import_hooks2 = __toESM(require_hooks(), 1);
361 var import_is_shallow_equal = __toESM(require_is_shallow_equal(), 1);
362
363 // packages/plugins/build-module/components/plugin-context/index.mjs
364 var import_element = __toESM(require_element(), 1);
365 var import_compose = __toESM(require_compose(), 1);
366 var import_deprecated = __toESM(require_deprecated(), 1);
367 var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
368 var Context = (0, import_element.createContext)({
369 name: null,
370 icon: null
371 });
372 Context.displayName = "PluginContext";
373 var PluginContextProvider = Context.Provider;
374 function usePluginContext() {
375 return (0, import_element.useContext)(Context);
376 }
377 var withPluginContext = (mapContextToProps) => (0, import_compose.createHigherOrderComponent)((OriginalComponent) => {
378 (0, import_deprecated.default)("wp.plugins.withPluginContext", {
379 since: "6.8.0",
380 alternative: "wp.plugins.usePluginContext"
381 });
382 return (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Context.Consumer, { children: (context) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
383 OriginalComponent,
384 {
385 ...props,
386 ...mapContextToProps(context, props)
387 }
388 ) });
389 }, "withPluginContext");
390
391 // packages/plugins/build-module/components/plugin-error-boundary/index.mjs
392 var import_element2 = __toESM(require_element(), 1);
393 var PluginErrorBoundary = class extends import_element2.Component {
394 constructor(props) {
395 super(props);
396 this.state = {
397 hasError: false
398 };
399 }
400 static getDerivedStateFromError() {
401 return { hasError: true };
402 }
403 componentDidCatch(error) {
404 const { name, onError } = this.props;
405 if (onError) {
406 onError(name, error);
407 }
408 }
409 render() {
410 if (!this.state.hasError) {
411 return this.props.children;
412 }
413 return null;
414 }
415 };
416
417 // packages/plugins/build-module/api/index.mjs
418 var import_react_is = __toESM(require_react_is(), 1);
419 var import_hooks = __toESM(require_hooks(), 1);
420
421 // packages/icons/build-module/library/plugins.mjs
422 var import_primitives = __toESM(require_primitives(), 1);
423 var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
424 var plugins_default = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_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" }) });
425
426 // packages/plugins/build-module/api/index.mjs
427 var plugins = {};
428 function registerPlugin(name, settings) {
429 if (typeof settings !== "object") {
430 console.error("No settings object provided!");
431 return null;
432 }
433 if (typeof name !== "string") {
434 console.error("Plugin name must be string.");
435 return null;
436 }
437 if (!/^[a-z][a-z0-9-]*$/.test(name)) {
438 console.error(
439 'Plugin name must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: "my-plugin".'
440 );
441 return null;
442 }
443 if (plugins[name]) {
444 console.error(`Plugin "${name}" is already registered.`);
445 }
446 settings = (0, import_hooks.applyFilters)(
447 "plugins.registerPlugin",
448 settings,
449 name
450 );
451 const { render, scope } = settings;
452 if (!(0, import_react_is.isValidElementType)(render)) {
453 console.error(
454 'The "render" property must be specified and must be a valid component.'
455 );
456 return null;
457 }
458 if (scope) {
459 if (typeof scope !== "string") {
460 console.error("Plugin scope must be string.");
461 return null;
462 }
463 if (!/^[a-z][a-z0-9-]*$/.test(scope)) {
464 console.error(
465 'Plugin scope must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: "my-page".'
466 );
467 return null;
468 }
469 }
470 plugins[name] = {
471 name,
472 icon: plugins_default,
473 ...settings
474 };
475 (0, import_hooks.doAction)("plugins.pluginRegistered", settings, name);
476 return settings;
477 }
478 function unregisterPlugin(name) {
479 if (!plugins[name]) {
480 console.error('Plugin "' + name + '" is not registered.');
481 return;
482 }
483 const oldPlugin = plugins[name];
484 delete plugins[name];
485 (0, import_hooks.doAction)("plugins.pluginUnregistered", oldPlugin, name);
486 return oldPlugin;
487 }
488 function getPlugin(name) {
489 return plugins[name];
490 }
491 function getPlugins(scope) {
492 return Object.values(plugins).filter(
493 (plugin) => plugin.scope === scope
494 );
495 }
496
497 // packages/plugins/build-module/components/plugin-area/index.mjs
498 var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
499 var getPluginContext = memize(
500 (icon, name) => ({
501 icon,
502 name
503 })
504 );
505 function PluginArea({
506 scope,
507 onError
508 }) {
509 const store = (0, import_element3.useMemo)(() => {
510 let lastValue = [];
511 return {
512 subscribe(listener) {
513 (0, import_hooks2.addAction)(
514 "plugins.pluginRegistered",
515 "core/plugins/plugin-area/plugins-registered",
516 listener
517 );
518 (0, import_hooks2.addAction)(
519 "plugins.pluginUnregistered",
520 "core/plugins/plugin-area/plugins-unregistered",
521 listener
522 );
523 return () => {
524 (0, import_hooks2.removeAction)(
525 "plugins.pluginRegistered",
526 "core/plugins/plugin-area/plugins-registered"
527 );
528 (0, import_hooks2.removeAction)(
529 "plugins.pluginUnregistered",
530 "core/plugins/plugin-area/plugins-unregistered"
531 );
532 };
533 },
534 getValue() {
535 const nextValue = getPlugins(scope);
536 if (!(0, import_is_shallow_equal.isShallowEqual)(lastValue, nextValue)) {
537 lastValue = nextValue;
538 }
539 return lastValue;
540 }
541 };
542 }, [scope]);
543 const plugins2 = (0, import_element3.useSyncExternalStore)(
544 store.subscribe,
545 store.getValue,
546 store.getValue
547 );
548 return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: { display: "none" }, children: plugins2.map(({ icon, name, render: Plugin }) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
549 PluginContextProvider,
550 {
551 value: getPluginContext(icon, name),
552 children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(PluginErrorBoundary, { name, onError, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Plugin, {}) })
553 },
554 name
555 )) });
556 }
557 var plugin_area_default = PluginArea;
558 return __toCommonJS(index_exports);
559 })();
560 /*! Bundled license information:
561
562 react-is/cjs/react-is.development.js:
563 (**
564 * @license React
565 * react-is.development.js
566 *
567 * Copyright (c) Facebook, Inc. and its affiliates.
568 *
569 * This source code is licensed under the MIT license found in the
570 * LICENSE file in the root directory of this source tree.
571 *)
572 */
573 //# sourceMappingURL=index.js.map
574