(()=> {
var __webpack_modules__=({
507:
((__unused_webpack_module, __webpack_exports__, __webpack_require__)=> {
"use strict";
__webpack_require__.d(__webpack_exports__, {
A: ()=> ( createHooks_default)
});
;
function validateNamespace(namespace){
if("string"!==typeof namespace||""===namespace){
console.error("The namespace must be a non-empty string.");
return false;
}
if(!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)){
console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."
);
return false;
}
return true;
}
var validateNamespace_default=validateNamespace;
;
function validateHookName(hookName){
if("string"!==typeof hookName||""===hookName){
console.error("The hook name must be a non-empty string.");
return false;
}
if(/^__/.test(hookName)){
console.error("The hook name cannot begin with `__`.");
return false;
}
if(!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)){
console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."
);
return false;
}
return true;
}
var validateHookName_default=validateHookName;
;
function createAddHook(hooks, storeKey){
return function addHook(hookName, namespace, callback, priority=10){
const hooksStore=hooks[storeKey];
if(!validateHookName_default(hookName)){
return;
}
if(!validateNamespace_default(namespace)){
return;
}
if("function"!==typeof callback){
console.error("The hook callback must be a function.");
return;
}
if("number"!==typeof priority){
console.error("If specified, the hook priority must be a number."
);
return;
}
const handler={ callback, priority, namespace };
if(hooksStore[hookName]){
const handlers=hooksStore[hookName].handlers;
let i;
for (i=handlers.length; i > 0; i--){
if(priority >=handlers[i - 1].priority){
break;
}}
if(i===handlers.length){
handlers[i]=handler;
}else{
handlers.splice(i, 0, handler);
}
hooksStore.__current.forEach((hookInfo)=> {
if(hookInfo.name===hookName&&hookInfo.currentIndex >=i){
hookInfo.currentIndex++;
}});
}else{
hooksStore[hookName]={
handlers: [handler],
runs: 0
};}
if(hookName!=="hookAdded"){
hooks.doAction("hookAdded",
hookName,
namespace,
callback,
priority
);
}};}
var createAddHook_default=createAddHook;
;
function createRemoveHook(hooks, storeKey, removeAll=false){
return function removeHook(hookName, namespace){
const hooksStore=hooks[storeKey];
if(!validateHookName_default(hookName)){
return;
}
if(!removeAll&&!validateNamespace_default(namespace)){
return;
}
if(!hooksStore[hookName]){
return 0;
}
let handlersRemoved=0;
if(removeAll){
handlersRemoved=hooksStore[hookName].handlers.length;
hooksStore[hookName]={
runs: hooksStore[hookName].runs,
handlers: []
};}else{
const handlers=hooksStore[hookName].handlers;
for (let i=handlers.length - 1; i >=0; i--){
if(handlers[i].namespace===namespace){
handlers.splice(i, 1);
handlersRemoved++;
hooksStore.__current.forEach((hookInfo)=> {
if(hookInfo.name===hookName&&hookInfo.currentIndex >=i){
hookInfo.currentIndex--;
}});
}}
}
if(hookName!=="hookRemoved"){
hooks.doAction("hookRemoved", hookName, namespace);
}
return handlersRemoved;
};}
var createRemoveHook_default=createRemoveHook;
;
function createHasHook(hooks, storeKey){
return function hasHook(hookName, namespace){
const hooksStore=hooks[storeKey];
if("undefined"!==typeof namespace){
return hookName in hooksStore&&hooksStore[hookName].handlers.some((hook)=> hook.namespace===namespace
);
}
return hookName in hooksStore;
};}
var createHasHook_default=createHasHook;
;
function createRunHook(hooks, storeKey, returnFirstArg, async){
return function runHook(hookName, ...args){
const hooksStore=hooks[storeKey];
if(!hooksStore[hookName]){
hooksStore[hookName]={
handlers: [],
runs: 0
};}
hooksStore[hookName].runs++;
const handlers=hooksStore[hookName].handlers;
if(false){}
if(!handlers||!handlers.length){
return returnFirstArg ? args[0]:void 0;
}
const hookInfo={
name: hookName,
currentIndex: 0
};
async function asyncRunner(){
try {
hooksStore.__current.add(hookInfo);
let result=returnFirstArg ? args[0]:void 0;
while (hookInfo.currentIndex < handlers.length){
const handler=handlers[hookInfo.currentIndex];
result=await handler.callback.apply(null, args);
if(returnFirstArg){
args[0]=result;
}
hookInfo.currentIndex++;
}
return returnFirstArg ? result:void 0;
} finally {
hooksStore.__current.delete(hookInfo);
}}
function syncRunner(){
try {
hooksStore.__current.add(hookInfo);
let result=returnFirstArg ? args[0]:void 0;
while (hookInfo.currentIndex < handlers.length){
const handler=handlers[hookInfo.currentIndex];
result=handler.callback.apply(null, args);
if(returnFirstArg){
args[0]=result;
}
hookInfo.currentIndex++;
}
return returnFirstArg ? result:void 0;
} finally {
hooksStore.__current.delete(hookInfo);
}}
return (async ? asyncRunner:syncRunner)();
};}
var createRunHook_default=createRunHook;
;
function createCurrentHook(hooks, storeKey){
return function currentHook(){
const hooksStore=hooks[storeKey];
const currentArray=Array.from(hooksStore.__current);
return currentArray.at(-1)?.name ?? null;
};}
var createCurrentHook_default=createCurrentHook;
;
function createDoingHook(hooks, storeKey){
return function doingHook(hookName){
const hooksStore=hooks[storeKey];
if("undefined"===typeof hookName){
return hooksStore.__current.size > 0;
}
return Array.from(hooksStore.__current).some((hook)=> hook.name===hookName
);
};}
var createDoingHook_default=createDoingHook;
;
function createDidHook(hooks, storeKey){
return function didHook(hookName){
const hooksStore=hooks[storeKey];
if(!validateHookName_default(hookName)){
return;
}
return hooksStore[hookName]&&hooksStore[hookName].runs ? hooksStore[hookName].runs:0;
};}
var createDidHook_default=createDidHook;
;
class _Hooks {
actions;
filters;
addAction;
addFilter;
removeAction;
removeFilter;
hasAction;
hasFilter;
removeAllActions;
removeAllFilters;
doAction;
doActionAsync;
applyFilters;
applyFiltersAsync;
currentAction;
currentFilter;
doingAction;
doingFilter;
didAction;
didFilter;
constructor(){
this.actions= Object.create(null);
this.actions.__current= new Set();
this.filters= Object.create(null);
this.filters.__current= new Set();
this.addAction=createAddHook_default(this, "actions");
this.addFilter=createAddHook_default(this, "filters");
this.removeAction=createRemoveHook_default(this, "actions");
this.removeFilter=createRemoveHook_default(this, "filters");
this.hasAction=createHasHook_default(this, "actions");
this.hasFilter=createHasHook_default(this, "filters");
this.removeAllActions=createRemoveHook_default(this, "actions", true);
this.removeAllFilters=createRemoveHook_default(this, "filters", true);
this.doAction=createRunHook_default(this, "actions", false, false);
this.doActionAsync=createRunHook_default(this, "actions", false, true);
this.applyFilters=createRunHook_default(this, "filters", true, false);
this.applyFiltersAsync=createRunHook_default(this, "filters", true, true);
this.currentAction=createCurrentHook_default(this, "actions");
this.currentFilter=createCurrentHook_default(this, "filters");
this.doingAction=createDoingHook_default(this, "actions");
this.doingFilter=createDoingHook_default(this, "filters");
this.didAction=createDidHook_default(this, "actions");
this.didFilter=createDidHook_default(this, "filters");
}}
function createHooks(){
return new _Hooks();
}
var createHooks_default=createHooks;
}),
8770:
(()=> {
})
});
var __webpack_module_cache__={};
function __webpack_require__(moduleId){
var cachedModule=__webpack_module_cache__[moduleId];
if(cachedModule!==undefined){
return cachedModule.exports;
}
var module=__webpack_module_cache__[moduleId]={
exports: {}
};
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
return module.exports;
}
(()=> {
__webpack_require__.n=(module)=> {
var getter=module&&module.__esModule ?
()=> (module['default']) :
()=> (module);
__webpack_require__.d(getter, { a: getter });
return getter;
};
})();
(()=> {
__webpack_require__.d=(exports, definition)=> {
for(var key in definition){
if(__webpack_require__.o(definition, key)&&!__webpack_require__.o(exports, key)){
Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
}
}
};
})();
(()=> {
__webpack_require__.o=(obj, prop)=> (Object.prototype.hasOwnProperty.call(obj, prop))
})();
(()=> {
__webpack_require__.r=(exports)=> {
if(typeof Symbol!=='undefined'&&Symbol.toStringTag){
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
}
Object.defineProperty(exports, '__esModule', { value: true });
};
})();
var __webpack_exports__={};
(()=> {
"use strict";
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
actions: ()=> ( actions),
addAction: ()=> ( addAction),
addFilter: ()=> ( addFilter),
applyFilters: ()=> ( applyFilters),
applyFiltersAsync: ()=> ( applyFiltersAsync),
createHooks: ()=> ( _createHooks__WEBPACK_IMPORTED_MODULE_1__.A),
currentAction: ()=> ( currentAction),
currentFilter: ()=> ( currentFilter),
defaultHooks: ()=> ( defaultHooks),
didAction: ()=> ( didAction),
didFilter: ()=> ( didFilter),
doAction: ()=> ( doAction),
doActionAsync: ()=> ( doActionAsync),
doingAction: ()=> ( doingAction),
doingFilter: ()=> ( doingFilter),
filters: ()=> ( filters),
hasAction: ()=> ( hasAction),
hasFilter: ()=> ( hasFilter),
removeAction: ()=> ( removeAction),
removeAllActions: ()=> ( removeAllActions),
removeAllFilters: ()=> ( removeAllFilters),
removeFilter: ()=> ( removeFilter)
});
var _createHooks__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(507);
var _types__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(8770);
var _types__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_types__WEBPACK_IMPORTED_MODULE_0__);
var __WEBPACK_REEXPORT_OBJECT__={};
for(const __WEBPACK_IMPORT_KEY__ in _types__WEBPACK_IMPORTED_MODULE_0__) if(["default","actions","addAction","addFilter","applyFilters","applyFiltersAsync","createHooks","currentAction","currentFilter","defaultHooks","didAction","didFilter","doAction","doActionAsync","doingAction","doingFilter","filters","hasAction","hasFilter","removeAction","removeAllActions","removeAllFilters","removeFilter"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__]=()=> _types__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
const defaultHooks=(0,_createHooks__WEBPACK_IMPORTED_MODULE_1__ .A)();
const {
addAction,
addFilter,
removeAction,
removeFilter,
hasAction,
hasFilter,
removeAllActions,
removeAllFilters,
doAction,
doActionAsync,
applyFilters,
applyFiltersAsync,
currentAction,
currentFilter,
doingAction,
doingFilter,
didAction,
didFilter,
actions,
filters
}=defaultHooks;
})();
(window.wp=window.wp||{}).hooks=__webpack_exports__;
})()
;