PluginProbe
Gutenberg / 10.1.0
Gutenberg v10.1.0
24.0.0 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 All 403 releases
← All changes | build/hooks/index.js +1 -642 12.6.0 → 10.1.0 View file →
@@ -1,642 +1 @@
1 -/******/ (function() { // webpackBootstrap
2 -/******/ "use strict";
3 -/******/ // The require scope
4 -/******/ var __webpack_require__ = {};
5 -/******/
6 -/************************************************************************/
7 -/******/ /* webpack/runtime/define property getters */
8 -/******/ !function() {
9 -/******/ // define getter functions for harmony exports
10 -/******/ __webpack_require__.d = function(exports, definition) {
11 -/******/ for(var key in definition) {
12 -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
13 -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
14 -/******/ }
15 -/******/ }
16 -/******/ };
17 -/******/ }();
18 -/******/
19 -/******/ /* webpack/runtime/hasOwnProperty shorthand */
20 -/******/ !function() {
21 -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
22 -/******/ }();
23 -/******/
24 -/******/ /* webpack/runtime/make namespace object */
25 -/******/ !function() {
26 -/******/ // define __esModule on exports
27 -/******/ __webpack_require__.r = function(exports) {
28 -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
29 -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
30 -/******/ }
31 -/******/ Object.defineProperty(exports, '__esModule', { value: true });
32 -/******/ };
33 -/******/ }();
34 -/******/
35 -/************************************************************************/
36 -var __webpack_exports__ = {};
37 -// ESM COMPAT FLAG
38 -__webpack_require__.r(__webpack_exports__);
39 -
40 -// EXPORTS
41 -__webpack_require__.d(__webpack_exports__, {
42 - "actions": function() { return /* binding */ actions; },
43 - "addAction": function() { return /* binding */ addAction; },
44 - "addFilter": function() { return /* binding */ addFilter; },
45 - "applyFilters": function() { return /* binding */ applyFilters; },
46 - "createHooks": function() { return /* reexport */ build_module_createHooks; },
47 - "currentAction": function() { return /* binding */ currentAction; },
48 - "currentFilter": function() { return /* binding */ currentFilter; },
49 - "defaultHooks": function() { return /* binding */ defaultHooks; },
50 - "didAction": function() { return /* binding */ didAction; },
51 - "didFilter": function() { return /* binding */ didFilter; },
52 - "doAction": function() { return /* binding */ doAction; },
53 - "doingAction": function() { return /* binding */ doingAction; },
54 - "doingFilter": function() { return /* binding */ doingFilter; },
55 - "filters": function() { return /* binding */ filters; },
56 - "hasAction": function() { return /* binding */ hasAction; },
57 - "hasFilter": function() { return /* binding */ hasFilter; },
58 - "removeAction": function() { return /* binding */ removeAction; },
59 - "removeAllActions": function() { return /* binding */ removeAllActions; },
60 - "removeAllFilters": function() { return /* binding */ removeAllFilters; },
61 - "removeFilter": function() { return /* binding */ removeFilter; }
62 -});
63 -
64 -;// CONCATENATED MODULE: ./packages/hooks/build-module/validateNamespace.js
65 -/**
66 - * Validate a namespace string.
67 - *
68 - * @param {string} namespace The namespace to validate - should take the form
69 - * `vendor/plugin/function`.
70 - *
71 - * @return {boolean} Whether the namespace is valid.
72 - */
73 -function validateNamespace(namespace) {
74 - if ('string' !== typeof namespace || '' === namespace) {
75 - // eslint-disable-next-line no-console
76 - console.error('The namespace must be a non-empty string.');
77 - return false;
78 - }
79 -
80 - if (!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)) {
81 - // eslint-disable-next-line no-console
82 - console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.');
83 - return false;
84 - }
85 -
86 - return true;
87 -}
88 -
89 -/* harmony default export */ var build_module_validateNamespace = (validateNamespace);
90 -//# sourceMappingURL=validateNamespace.js.map
91 -;// CONCATENATED MODULE: ./packages/hooks/build-module/validateHookName.js
92 -/**
93 - * Validate a hookName string.
94 - *
95 - * @param {string} hookName The hook name to validate. Should be a non empty string containing
96 - * only numbers, letters, dashes, periods and underscores. Also,
97 - * the hook name cannot begin with `__`.
98 - *
99 - * @return {boolean} Whether the hook name is valid.
100 - */
101 -function validateHookName(hookName) {
102 - if ('string' !== typeof hookName || '' === hookName) {
103 - // eslint-disable-next-line no-console
104 - console.error('The hook name must be a non-empty string.');
105 - return false;
106 - }
107 -
108 - if (/^__/.test(hookName)) {
109 - // eslint-disable-next-line no-console
110 - console.error('The hook name cannot begin with `__`.');
111 - return false;
112 - }
113 -
114 - if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) {
115 - // eslint-disable-next-line no-console
116 - console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.');
117 - return false;
118 - }
119 -
120 - return true;
121 -}
122 -
123 -/* harmony default export */ var build_module_validateHookName = (validateHookName);
124 -//# sourceMappingURL=validateHookName.js.map
125 -;// CONCATENATED MODULE: ./packages/hooks/build-module/createAddHook.js
126 -/**
127 - * Internal dependencies
128 - */
129 -
130 -
131 -/**
132 - * @callback AddHook
133 - *
134 - * Adds the hook to the appropriate hooks container.
135 - *
136 - * @param {string} hookName Name of hook to add
137 - * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.
138 - * @param {import('.').Callback} callback Function to call when the hook is run
139 - * @param {number} [priority=10] Priority of this hook
140 - */
141 -
142 -/**
143 - * Returns a function which, when invoked, will add a hook.
144 - *
145 - * @param {import('.').Hooks} hooks Hooks instance.
146 - * @param {import('.').StoreKey} storeKey
147 - *
148 - * @return {AddHook} Function that adds a new hook.
149 - */
150 -
151 -function createAddHook(hooks, storeKey) {
152 - return function addHook(hookName, namespace, callback) {
153 - let priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;
154 - const hooksStore = hooks[storeKey];
155 -
156 - if (!build_module_validateHookName(hookName)) {
157 - return;
158 - }
159 -
160 - if (!build_module_validateNamespace(namespace)) {
161 - return;
162 - }
163 -
164 - if ('function' !== typeof callback) {
165 - // eslint-disable-next-line no-console
166 - console.error('The hook callback must be a function.');
167 - return;
168 - } // Validate numeric priority
169 -
170 -
171 - if ('number' !== typeof priority) {
172 - // eslint-disable-next-line no-console
173 - console.error('If specified, the hook priority must be a number.');
174 - return;
175 - }
176 -
177 - const handler = {
178 - callback,
179 - priority,
180 - namespace
181 - };
182 -
183 - if (hooksStore[hookName]) {
184 - // Find the correct insert index of the new hook.
185 - const handlers = hooksStore[hookName].handlers;
186 - /** @type {number} */
187 -
188 - let i;
189 -
190 - for (i = handlers.length; i > 0; i--) {
191 - if (priority >= handlers[i - 1].priority) {
192 - break;
193 - }
194 - }
195 -
196 - if (i === handlers.length) {
197 - // If append, operate via direct assignment.
198 - handlers[i] = handler;
199 - } else {
200 - // Otherwise, insert before index via splice.
201 - handlers.splice(i, 0, handler);
202 - } // We may also be currently executing this hook. If the callback
203 - // we're adding would come after the current callback, there's no
204 - // problem; otherwise we need to increase the execution index of
205 - // any other runs by 1 to account for the added element.
206 -
207 -
208 - hooksStore.__current.forEach(hookInfo => {
209 - if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {
210 - hookInfo.currentIndex++;
211 - }
212 - });
213 - } else {
214 - // This is the first hook of its type.
215 - hooksStore[hookName] = {
216 - handlers: [handler],
217 - runs: 0
218 - };
219 - }
220 -
221 - if (hookName !== 'hookAdded') {
222 - hooks.doAction('hookAdded', hookName, namespace, callback, priority);
223 - }
224 - };
225 -}
226 -
227 -/* harmony default export */ var build_module_createAddHook = (createAddHook);
228 -//# sourceMappingURL=createAddHook.js.map
229 -;// CONCATENATED MODULE: ./packages/hooks/build-module/createRemoveHook.js
230 -/**
231 - * Internal dependencies
232 - */
233 -
234 -
235 -/**
236 - * @callback RemoveHook
237 - * Removes the specified callback (or all callbacks) from the hook with a given hookName
238 - * and namespace.
239 - *
240 - * @param {string} hookName The name of the hook to modify.
241 - * @param {string} namespace The unique namespace identifying the callback in the
242 - * form `vendor/plugin/function`.
243 - *
244 - * @return {number | undefined} The number of callbacks removed.
245 - */
246 -
247 -/**
248 - * Returns a function which, when invoked, will remove a specified hook or all
249 - * hooks by the given name.
250 - *
251 - * @param {import('.').Hooks} hooks Hooks instance.
252 - * @param {import('.').StoreKey} storeKey
253 - * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName,
254 - * without regard to namespace. Used to create
255 - * `removeAll*` functions.
256 - *
257 - * @return {RemoveHook} Function that removes hooks.
258 - */
259 -
260 -function createRemoveHook(hooks, storeKey) {
261 - let removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
262 - return function removeHook(hookName, namespace) {
263 - const hooksStore = hooks[storeKey];
264 -
265 - if (!build_module_validateHookName(hookName)) {
266 - return;
267 - }
268 -
269 - if (!removeAll && !build_module_validateNamespace(namespace)) {
270 - return;
271 - } // Bail if no hooks exist by this name
272 -
273 -
274 - if (!hooksStore[hookName]) {
275 - return 0;
276 - }
277 -
278 - let handlersRemoved = 0;
279 -
280 - if (removeAll) {
281 - handlersRemoved = hooksStore[hookName].handlers.length;
282 - hooksStore[hookName] = {
283 - runs: hooksStore[hookName].runs,
284 - handlers: []
285 - };
286 - } else {
287 - // Try to find the specified callback to remove.
288 - const handlers = hooksStore[hookName].handlers;
289 -
290 - for (let i = handlers.length - 1; i >= 0; i--) {
291 - if (handlers[i].namespace === namespace) {
292 - handlers.splice(i, 1);
293 - handlersRemoved++; // This callback may also be part of a hook that is
294 - // currently executing. If the callback we're removing
295 - // comes after the current callback, there's no problem;
296 - // otherwise we need to decrease the execution index of any
297 - // other runs by 1 to account for the removed element.
298 -
299 - hooksStore.__current.forEach(hookInfo => {
300 - if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {
301 - hookInfo.currentIndex--;
302 - }
303 - });
304 - }
305 - }
306 - }
307 -
308 - if (hookName !== 'hookRemoved') {
309 - hooks.doAction('hookRemoved', hookName, namespace);
310 - }
311 -
312 - return handlersRemoved;
313 - };
314 -}
315 -
316 -/* harmony default export */ var build_module_createRemoveHook = (createRemoveHook);
317 -//# sourceMappingURL=createRemoveHook.js.map
318 -;// CONCATENATED MODULE: ./packages/hooks/build-module/createHasHook.js
319 -/**
320 - * @callback HasHook
321 - *
322 - * Returns whether any handlers are attached for the given hookName and optional namespace.
323 - *
324 - * @param {string} hookName The name of the hook to check for.
325 - * @param {string} [namespace] Optional. The unique namespace identifying the callback
326 - * in the form `vendor/plugin/function`.
327 - *
328 - * @return {boolean} Whether there are handlers that are attached to the given hook.
329 - */
330 -
331 -/**
332 - * Returns a function which, when invoked, will return whether any handlers are
333 - * attached to a particular hook.
334 - *
335 - * @param {import('.').Hooks} hooks Hooks instance.
336 - * @param {import('.').StoreKey} storeKey
337 - *
338 - * @return {HasHook} Function that returns whether any handlers are
339 - * attached to a particular hook and optional namespace.
340 - */
341 -function createHasHook(hooks, storeKey) {
342 - return function hasHook(hookName, namespace) {
343 - const hooksStore = hooks[storeKey]; // Use the namespace if provided.
344 -
345 - if ('undefined' !== typeof namespace) {
346 - return hookName in hooksStore && hooksStore[hookName].handlers.some(hook => hook.namespace === namespace);
347 - }
348 -
349 - return hookName in hooksStore;
350 - };
351 -}
352 -
353 -/* harmony default export */ var build_module_createHasHook = (createHasHook);
354 -//# sourceMappingURL=createHasHook.js.map
355 -;// CONCATENATED MODULE: ./packages/hooks/build-module/createRunHook.js
356 -/**
357 - * Returns a function which, when invoked, will execute all callbacks
358 - * registered to a hook of the specified type, optionally returning the final
359 - * value of the call chain.
360 - *
361 - * @param {import('.').Hooks} hooks Hooks instance.
362 - * @param {import('.').StoreKey} storeKey
363 - * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to
364 - * return its first argument.
365 - *
366 - * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks.
367 - */
368 -function createRunHook(hooks, storeKey) {
369 - let returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
370 - return function runHooks(hookName) {
371 - const hooksStore = hooks[storeKey];
372 -
373 - if (!hooksStore[hookName]) {
374 - hooksStore[hookName] = {
375 - handlers: [],
376 - runs: 0
377 - };
378 - }
379 -
380 - hooksStore[hookName].runs++;
381 - const handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds.
382 -
383 - if (false) {}
384 -
385 - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
386 - args[_key - 1] = arguments[_key];
387 - }
388 -
389 - if (!handlers || !handlers.length) {
390 - return returnFirstArg ? args[0] : undefined;
391 - }
392 -
393 - const hookInfo = {
394 - name: hookName,
395 - currentIndex: 0
396 - };
397 -
398 - hooksStore.__current.push(hookInfo);
399 -
400 - while (hookInfo.currentIndex < handlers.length) {
401 - const handler = handlers[hookInfo.currentIndex];
402 - const result = handler.callback.apply(null, args);
403 -
404 - if (returnFirstArg) {
405 - args[0] = result;
406 - }
407 -
408 - hookInfo.currentIndex++;
409 - }
410 -
411 - hooksStore.__current.pop();
412 -
413 - if (returnFirstArg) {
414 - return args[0];
415 - }
416 - };
417 -}
418 -
419 -/* harmony default export */ var build_module_createRunHook = (createRunHook);
420 -//# sourceMappingURL=createRunHook.js.map
421 -;// CONCATENATED MODULE: ./packages/hooks/build-module/createCurrentHook.js
422 -/**
423 - * Returns a function which, when invoked, will return the name of the
424 - * currently running hook, or `null` if no hook of the given type is currently
425 - * running.
426 - *
427 - * @param {import('.').Hooks} hooks Hooks instance.
428 - * @param {import('.').StoreKey} storeKey
429 - *
430 - * @return {() => string | null} Function that returns the current hook name or null.
431 - */
432 -function createCurrentHook(hooks, storeKey) {
433 - return function currentHook() {
434 - var _hooksStore$__current, _hooksStore$__current2;
435 -
436 - const hooksStore = hooks[storeKey];
437 - return (_hooksStore$__current = (_hooksStore$__current2 = hooksStore.__current[hooksStore.__current.length - 1]) === null || _hooksStore$__current2 === void 0 ? void 0 : _hooksStore$__current2.name) !== null && _hooksStore$__current !== void 0 ? _hooksStore$__current : null;
438 - };
439 -}
440 -
441 -/* harmony default export */ var build_module_createCurrentHook = (createCurrentHook);
442 -//# sourceMappingURL=createCurrentHook.js.map
443 -;// CONCATENATED MODULE: ./packages/hooks/build-module/createDoingHook.js
444 -/**
445 - * @callback DoingHook
446 - * Returns whether a hook is currently being executed.
447 - *
448 - * @param {string} [hookName] The name of the hook to check for. If
449 - * omitted, will check for any hook being executed.
450 - *
451 - * @return {boolean} Whether the hook is being executed.
452 - */
453 -
454 -/**
455 - * Returns a function which, when invoked, will return whether a hook is
456 - * currently being executed.
457 - *
458 - * @param {import('.').Hooks} hooks Hooks instance.
459 - * @param {import('.').StoreKey} storeKey
460 - *
461 - * @return {DoingHook} Function that returns whether a hook is currently
462 - * being executed.
463 - */
464 -function createDoingHook(hooks, storeKey) {
465 - return function doingHook(hookName) {
466 - const hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook.
467 -
468 - if ('undefined' === typeof hookName) {
469 - return 'undefined' !== typeof hooksStore.__current[0];
470 - } // Return the __current hook.
471 -
472 -
473 - return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false;
474 - };
475 -}
476 -
477 -/* harmony default export */ var build_module_createDoingHook = (createDoingHook);
478 -//# sourceMappingURL=createDoingHook.js.map
479 -;// CONCATENATED MODULE: ./packages/hooks/build-module/createDidHook.js
480 -/**
481 - * Internal dependencies
482 - */
483 -
484 -/**
485 - * @callback DidHook
486 - *
487 - * Returns the number of times an action has been fired.
488 - *
489 - * @param {string} hookName The hook name to check.
490 - *
491 - * @return {number | undefined} The number of times the hook has run.
492 - */
493 -
494 -/**
495 - * Returns a function which, when invoked, will return the number of times a
496 - * hook has been called.
497 - *
498 - * @param {import('.').Hooks} hooks Hooks instance.
499 - * @param {import('.').StoreKey} storeKey
500 - *
501 - * @return {DidHook} Function that returns a hook's call count.
502 - */
503 -
504 -function createDidHook(hooks, storeKey) {
505 - return function didHook(hookName) {
506 - const hooksStore = hooks[storeKey];
507 -
508 - if (!build_module_validateHookName(hookName)) {
509 - return;
510 - }
511 -
512 - return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0;
513 - };
514 -}
515 -
516 -/* harmony default export */ var build_module_createDidHook = (createDidHook);
517 -//# sourceMappingURL=createDidHook.js.map
518 -;// CONCATENATED MODULE: ./packages/hooks/build-module/createHooks.js
519 -/**
520 - * Internal dependencies
521 - */
522 -
523 -
524 -
525 -
526 -
527 -
528 -
529 -/**
530 - * Internal class for constructing hooks. Use `createHooks()` function
531 - *
532 - * Note, it is necessary to expose this class to make its type public.
533 - *
534 - * @private
535 - */
536 -
537 -class _Hooks {
538 - constructor() {
539 - /** @type {import('.').Store} actions */
540 - this.actions = Object.create(null);
541 - this.actions.__current = [];
542 - /** @type {import('.').Store} filters */
543 -
544 - this.filters = Object.create(null);
545 - this.filters.__current = [];
546 - this.addAction = build_module_createAddHook(this, 'actions');
547 - this.addFilter = build_module_createAddHook(this, 'filters');
548 - this.removeAction = build_module_createRemoveHook(this, 'actions');
549 - this.removeFilter = build_module_createRemoveHook(this, 'filters');
550 - this.hasAction = build_module_createHasHook(this, 'actions');
551 - this.hasFilter = build_module_createHasHook(this, 'filters');
552 - this.removeAllActions = build_module_createRemoveHook(this, 'actions', true);
553 - this.removeAllFilters = build_module_createRemoveHook(this, 'filters', true);
554 - this.doAction = build_module_createRunHook(this, 'actions');
555 - this.applyFilters = build_module_createRunHook(this, 'filters', true);
556 - this.currentAction = build_module_createCurrentHook(this, 'actions');
557 - this.currentFilter = build_module_createCurrentHook(this, 'filters');
558 - this.doingAction = build_module_createDoingHook(this, 'actions');
559 - this.doingFilter = build_module_createDoingHook(this, 'filters');
560 - this.didAction = build_module_createDidHook(this, 'actions');
561 - this.didFilter = build_module_createDidHook(this, 'filters');
562 - }
563 -
564 -}
565 -/** @typedef {_Hooks} Hooks */
566 -
567 -/**
568 - * Returns an instance of the hooks object.
569 - *
570 - * @return {Hooks} A Hooks instance.
571 - */
572 -
573 -function createHooks() {
574 - return new _Hooks();
575 -}
576 -
577 -/* harmony default export */ var build_module_createHooks = (createHooks);
578 -//# sourceMappingURL=createHooks.js.map
579 -;// CONCATENATED MODULE: ./packages/hooks/build-module/index.js
580 -/**
581 - * Internal dependencies
582 - */
583 -
584 -/** @typedef {(...args: any[])=>any} Callback */
585 -
586 -/**
587 - * @typedef Handler
588 - * @property {Callback} callback The callback
589 - * @property {string} namespace The namespace
590 - * @property {number} priority The namespace
591 - */
592 -
593 -/**
594 - * @typedef Hook
595 - * @property {Handler[]} handlers Array of handlers
596 - * @property {number} runs Run counter
597 - */
598 -
599 -/**
600 - * @typedef Current
601 - * @property {string} name Hook name
602 - * @property {number} currentIndex The index
603 - */
604 -
605 -/**
606 - * @typedef {Record<string, Hook> & {__current: Current[]}} Store
607 - */
608 -
609 -/**
610 - * @typedef {'actions' | 'filters'} StoreKey
611 - */
612 -
613 -/**
614 - * @typedef {import('./createHooks').Hooks} Hooks
615 - */
616 -
617 -const defaultHooks = build_module_createHooks();
618 -const {
619 - addAction,
620 - addFilter,
621 - removeAction,
622 - removeFilter,
623 - hasAction,
624 - hasFilter,
625 - removeAllActions,
626 - removeAllFilters,
627 - doAction,
628 - applyFilters,
629 - currentAction,
630 - currentFilter,
631 - doingAction,
632 - doingFilter,
633 - didAction,
634 - didFilter,
635 - actions,
636 - filters
637 -} = defaultHooks;
638 -
639 -//# sourceMappingURL=index.js.map
640 -(window.wp = window.wp || {}).hooks = __webpack_exports__;
641 -/******/ })()
642 -;
1 +window.wp=window.wp||{},window.wp.hooks=function(n){var t={};function r(e){if(t[e])return t[e].exports;var i=t[e]={i:e,l:!1,exports:{}};return n[e].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=n,r.c=t,r.d=function(n,t,e){r.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:e})},r.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.t=function(n,t){if(1&t&&(n=r(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var e=Object.create(null);if(r.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var i in n)r.d(e,i,function(t){return n[t]}.bind(null,i));return e},r.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(t,"a",t),t},r.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},r.p="",r(r.s=533)}({15:function(n,t,r){"use strict";r.d(t,"a",(function(){return u}));var e=r(24),i=r(42),o=r(30);function u(n){return function(n){if(Array.isArray(n))return Object(e.a)(n)}(n)||Object(i.a)(n)||Object(o.a)(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},24:function(n,t,r){"use strict";function e(n,t){(null==t||t>n.length)&&(t=n.length);for(var r=0,e=new Array(t);r<t;r++)e[r]=n[r];return e}r.d(t,"a",(function(){return e}))},28:function(n,t,r){"use strict";function e(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}r.d(t,"a",(function(){return e}))},30:function(n,t,r){"use strict";r.d(t,"a",(function(){return i}));var e=r(24);function i(n,t){if(n){if("string"==typeof n)return Object(e.a)(n,t);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Object(e.a)(n,t):void 0}}},42:function(n,t,r){"use strict";function e(n){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(n))return Array.from(n)}r.d(t,"a",(function(){return e}))},533:function(n,t,r){"use strict";r.r(t),r.d(t,"defaultHooks",(function(){return v})),r.d(t,"createHooks",(function(){return p})),r.d(t,"addAction",(function(){return m})),r.d(t,"addFilter",(function(){return A})),r.d(t,"removeAction",(function(){return b})),r.d(t,"removeFilter",(function(){return y})),r.d(t,"hasAction",(function(){return _})),r.d(t,"hasFilter",(function(){return g})),r.d(t,"removeAllActions",(function(){return F})),r.d(t,"removeAllFilters",(function(){return j})),r.d(t,"doAction",(function(){return w})),r.d(t,"applyFilters",(function(){return O})),r.d(t,"currentAction",(function(){return k})),r.d(t,"currentFilter",(function(){return x})),r.d(t,"doingAction",(function(){return I})),r.d(t,"doingFilter",(function(){return S})),r.d(t,"didAction",(function(){return T})),r.d(t,"didFilter",(function(){return M})),r.d(t,"actions",(function(){return P})),r.d(t,"filters",(function(){return z}));var e=r(28),i=function(n){return"string"!=typeof n||""===n?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(n)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)},o=function(n){return"string"!=typeof n||""===n?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(n)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(n)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)},u=function(n,t){return function(r,e,u){var c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,s=n[t];if(o(r)&&i(e))if("function"==typeof u)if("number"==typeof c){var a={callback:u,priority:c,namespace:e};if(s[r]){var l,f=s[r].handlers;for(l=f.length;l>0&&!(c>=f[l-1].priority);l--);l===f.length?f[l]=a:f.splice(l,0,a),s.__current.forEach((function(n){n.name===r&&n.currentIndex>=l&&n.currentIndex++}))}else s[r]={handlers:[a],runs:0};"hookAdded"!==r&&n.doAction("hookAdded",r,e,u,c)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},c=function(n,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(e,u){var c=n[t];if(o(e)&&(r||i(u))){if(!c[e])return 0;var s=0;if(r)s=c[e].handlers.length,c[e]={runs:c[e].runs,handlers:[]};else for(var a=c[e].handlers,l=function(n){a[n].namespace===u&&(a.splice(n,1),s++,c.__current.forEach((function(t){t.name===e&&t.currentIndex>=n&&t.currentIndex--})))},f=a.length-1;f>=0;f--)l(f);return"hookRemoved"!==e&&n.doAction("hookRemoved",e,u),s}}},s=function(n,t){return function(r,e){var i=n[t];return void 0!==e?r in i&&i[r].handlers.some((function(n){return n.namespace===e})):r in i}};r(15);var a=function(n,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(e){var i=n[t];i[e]||(i[e]={handlers:[],runs:0}),i[e].runs++;for(var o=i[e].handlers,u=arguments.length,c=new Array(u>1?u-1:0),s=1;s<u;s++)c[s-1]=arguments[s];if(!o||!o.length)return r?c[0]:void 0;var a={name:e,currentIndex:0};for(i.__current.push(a);a.currentIndex<o.length;){var l=o[a.currentIndex],f=l.callback.apply(null,c);r&&(c[0]=f),a.currentIndex++}return i.__current.pop(),r?c[0]:void 0}},l=function(n,t){return function(){var r,e,i=n[t];return null!==(r=null===(e=i.__current[i.__current.length-1])||void 0===e?void 0:e.name)&&void 0!==r?r:null}},f=function(n,t){return function(r){var e=n[t];return void 0===r?void 0!==e.__current[0]:!!e.__current[0]&&r===e.__current[0].name}},d=function(n,t){return function(r){var e=n[t];if(o(r))return e[r]&&e[r].runs?e[r].runs:0}},h=function n(){Object(e.a)(this,n),this.actions=Object.create(null),this.actions.__current=[],this.filters=Object.create(null),this.filters.__current=[],this.addAction=u(this,"actions"),this.addFilter=u(this,"filters"),this.removeAction=c(this,"actions"),this.removeFilter=c(this,"filters"),this.hasAction=s(this,"actions"),this.hasFilter=s(this,"filters"),this.removeAllActions=c(this,"actions",!0),this.removeAllFilters=c(this,"filters",!0),this.doAction=a(this,"actions"),this.applyFilters=a(this,"filters",!0),this.currentAction=l(this,"actions"),this.currentFilter=l(this,"filters"),this.doingAction=f(this,"actions"),this.doingFilter=f(this,"filters"),this.didAction=d(this,"actions"),this.didFilter=d(this,"filters")},p=function(){return new h},v=p(),m=v.addAction,A=v.addFilter,b=v.removeAction,y=v.removeFilter,_=v.hasAction,g=v.hasFilter,F=v.removeAllActions,j=v.removeAllFilters,w=v.doAction,O=v.applyFilters,k=v.currentAction,x=v.currentFilter,I=v.doingAction,S=v.doingFilter,T=v.didAction,M=v.didFilter,P=v.actions,z=v.filters}});