2018-12-13 23:41:57 -05:00
this [ "wp" ] = this [ "wp" ] || { } ; this [ "wp" ] [ "hooks" ] =
/******/ ( 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
2021-02-02 00:17:13 -05:00
/******/ return _ _webpack _require _ _ ( _ _webpack _require _ _ . s = 467 ) ;
2018-12-13 23:41:57 -05:00
/******/ } )
/************************************************************************/
/******/ ( {
2021-01-27 21:04:13 -05:00
/***/ 15 :
2019-09-19 11:19:18 -04:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
2020-06-29 07:50:29 -04:00
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return /* binding */ _toConsumableArray ; } ) ;
2020-03-23 19:40:19 -04:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
2021-01-27 21:04:13 -05:00
var arrayLikeToArray = _ _webpack _require _ _ ( 24 ) ;
2020-03-23 19:40:19 -04:00
2019-09-19 11:19:18 -04:00
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
2020-03-23 19:40:19 -04:00
function _arrayWithoutHoles ( arr ) {
if ( Array . isArray ( arr ) ) return Object ( arrayLikeToArray [ "a" /* default */ ] ) ( arr ) ;
2019-09-19 11:19:18 -04:00
}
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
2020-10-13 09:10:30 -04:00
var iterableToArray = _ _webpack _require _ _ ( 37 ) ;
2020-03-23 19:40:19 -04:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
2021-02-02 00:17:13 -05:00
var unsupportedIterableToArray = _ _webpack _require _ _ ( 31 ) ;
2019-09-19 11:19:18 -04:00
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
function _nonIterableSpread ( ) {
2020-03-23 19:40:19 -04:00
throw new TypeError ( "Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." ) ;
2019-09-19 11:19:18 -04:00
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
2020-03-23 19:40:19 -04:00
2019-09-19 11:19:18 -04:00
function _toConsumableArray ( arr ) {
2020-03-23 19:40:19 -04:00
return _arrayWithoutHoles ( arr ) || Object ( iterableToArray [ "a" /* default */ ] ) ( arr ) || Object ( unsupportedIterableToArray [ "a" /* default */ ] ) ( arr ) || _nonIterableSpread ( ) ;
}
/***/ } ) ,
2021-01-27 21:04:13 -05:00
/***/ 24 :
2020-03-23 19:40:19 -04:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _arrayLikeToArray ; } ) ;
function _arrayLikeToArray ( arr , len ) {
if ( len == null || len > arr . length ) len = arr . length ;
for ( var i = 0 , arr2 = new Array ( len ) ; i < len ; i ++ ) {
arr2 [ i ] = arr [ i ] ;
}
return arr2 ;
}
/***/ } ) ,
2021-01-27 21:04:13 -05:00
/***/ 25 :
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _classCallCheck ; } ) ;
function _classCallCheck ( instance , Constructor ) {
if ( ! ( instance instanceof Constructor ) ) {
throw new TypeError ( "Cannot call a class as a function" ) ;
}
}
/***/ } ) ,
2021-02-02 00:17:13 -05:00
/***/ 31 :
2020-03-23 19:40:19 -04:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _unsupportedIterableToArray ; } ) ;
2021-01-27 21:04:13 -05:00
/* harmony import */ var _babel _runtime _helpers _esm _arrayLikeToArray _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 24 ) ;
2020-03-23 19:40:19 -04:00
function _unsupportedIterableToArray ( o , minLen ) {
if ( ! o ) return ;
2021-01-27 21:04:13 -05:00
if ( typeof o === "string" ) return Object ( _babel _runtime _helpers _esm _arrayLikeToArray _ _WEBPACK _IMPORTED _MODULE _0 _ _ [ /* default */ "a" ] ) ( o , minLen ) ;
2020-03-23 19:40:19 -04:00
var n = Object . prototype . toString . call ( o ) . slice ( 8 , - 1 ) ;
if ( n === "Object" && o . constructor ) n = o . constructor . name ;
2020-06-26 09:33:47 -04:00
if ( n === "Map" || n === "Set" ) return Array . from ( o ) ;
2021-01-27 21:04:13 -05:00
if ( n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/ . test ( n ) ) return Object ( _babel _runtime _helpers _esm _arrayLikeToArray _ _WEBPACK _IMPORTED _MODULE _0 _ _ [ /* default */ "a" ] ) ( o , minLen ) ;
2019-09-19 11:19:18 -04:00
}
/***/ } ) ,
2020-10-13 09:10:30 -04:00
/***/ 37 :
2019-09-19 11:19:18 -04:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _iterableToArray ; } ) ;
function _iterableToArray ( iter ) {
2020-03-23 19:40:19 -04:00
if ( typeof Symbol !== "undefined" && Symbol . iterator in Object ( iter ) ) return Array . from ( iter ) ;
2019-09-19 11:19:18 -04:00
}
/***/ } ) ,
2021-02-02 00:17:13 -05:00
/***/ 467 :
2018-12-13 23:41:57 -05:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
2020-06-29 07:50:29 -04:00
// ESM COMPAT FLAG
2018-12-13 23:41:57 -05:00
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
2018-12-17 22:14:52 -05:00
2020-06-29 07:50:29 -04:00
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "createHooks" , function ( ) { return /* reexport */ build _module _createHooks ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "addAction" , function ( ) { return /* binding */ addAction ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "addFilter" , function ( ) { return /* binding */ addFilter ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "removeAction" , function ( ) { return /* binding */ removeAction ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "removeFilter" , function ( ) { return /* binding */ removeFilter ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "hasAction" , function ( ) { return /* binding */ hasAction ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "hasFilter" , function ( ) { return /* binding */ hasFilter ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "removeAllActions" , function ( ) { return /* binding */ removeAllActions ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "removeAllFilters" , function ( ) { return /* binding */ removeAllFilters ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "doAction" , function ( ) { return /* binding */ doAction ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "applyFilters" , function ( ) { return /* binding */ applyFilters ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "currentAction" , function ( ) { return /* binding */ currentAction ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "currentFilter" , function ( ) { return /* binding */ currentFilter ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "doingAction" , function ( ) { return /* binding */ doingAction ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "doingFilter" , function ( ) { return /* binding */ doingFilter ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "didAction" , function ( ) { return /* binding */ didAction ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "didFilter" , function ( ) { return /* binding */ didFilter ; } ) ;
2021-01-27 21:04:13 -05:00
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "actions" , function ( ) { return /* binding */ actions ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "filters" , function ( ) { return /* binding */ filters ; } ) ;
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = _ _webpack _require _ _ ( 25 ) ;
2020-06-29 07:50:29 -04:00
2018-12-17 22:14:52 -05:00
// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/validateNamespace.js
/ * *
* Validate a namespace string .
*
* @ param { string } namespace The namespace to validate - should take the form
* ` vendor/plugin/function ` .
*
* @ return { boolean } Whether the namespace is valid .
* /
function validateNamespace ( namespace ) {
if ( 'string' !== typeof namespace || '' === namespace ) {
// eslint-disable-next-line no-console
console . error ( 'The namespace must be a non-empty string.' ) ;
return false ;
}
if ( ! /^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/ . test ( namespace ) ) {
// eslint-disable-next-line no-console
console . error ( 'The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.' ) ;
return false ;
}
return true ;
}
/* harmony default export */ var build _module _validateNamespace = ( validateNamespace ) ;
// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/validateHookName.js
/ * *
* Validate a hookName string .
*
* @ param { string } hookName The hook name to validate . Should be a non empty string containing
* only numbers , letters , dashes , periods and underscores . Also ,
* the hook name cannot begin with ` __ ` .
*
* @ return { boolean } Whether the hook name is valid .
* /
function validateHookName ( hookName ) {
if ( 'string' !== typeof hookName || '' === hookName ) {
// eslint-disable-next-line no-console
console . error ( 'The hook name must be a non-empty string.' ) ;
return false ;
}
if ( /^__/ . test ( hookName ) ) {
// eslint-disable-next-line no-console
console . error ( 'The hook name cannot begin with `__`.' ) ;
return false ;
}
if ( ! /^[a-zA-Z][a-zA-Z0-9_.-]*$/ . test ( hookName ) ) {
// eslint-disable-next-line no-console
console . error ( 'The hook name can only contain numbers, letters, dashes, periods and underscores.' ) ;
return false ;
}
return true ;
}
/* harmony default export */ var build _module _validateHookName = ( validateHookName ) ;
// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createAddHook.js
2019-03-07 04:09:59 -05:00
/ * *
* Internal dependencies
* /
2018-12-13 23:41:57 -05:00
2021-01-27 21:04:13 -05:00
/ * *
* @ callback AddHook
*
* Adds the hook to the appropriate hooks container .
*
* @ param { string } hookName Name of hook to add
* @ param { string } namespace The unique namespace identifying the callback in the form ` vendor/plugin/function ` .
* @ param { import ( '.' ) . Callback } callback Function to call when the hook is run
* @ param { number } [ priority = 10 ] Priority of this hook
* /
2018-12-13 23:41:57 -05:00
/ * *
* Returns a function which , when invoked , will add a hook .
*
2021-01-27 21:04:13 -05:00
* @ param { import ( '.' ) . Hooks } hooks Hooks instance .
* @ param { import ( '.' ) . StoreKey } storeKey
2018-12-13 23:41:57 -05:00
*
2021-01-27 21:04:13 -05:00
* @ return { AddHook } Function that adds a new hook .
2018-12-13 23:41:57 -05:00
* /
2021-01-27 21:04:13 -05:00
function createAddHook ( hooks , storeKey ) {
2018-12-13 23:41:57 -05:00
return function addHook ( hookName , namespace , callback ) {
var priority = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : 10 ;
2021-01-27 21:04:13 -05:00
var hooksStore = hooks [ storeKey ] ;
2018-12-13 23:41:57 -05:00
2018-12-17 22:14:52 -05:00
if ( ! build _module _validateHookName ( hookName ) ) {
2018-12-13 23:41:57 -05:00
return ;
}
2018-12-17 22:14:52 -05:00
if ( ! build _module _validateNamespace ( namespace ) ) {
2018-12-13 23:41:57 -05:00
return ;
}
if ( 'function' !== typeof callback ) {
// eslint-disable-next-line no-console
console . error ( 'The hook callback must be a function.' ) ;
return ;
} // Validate numeric priority
if ( 'number' !== typeof priority ) {
// eslint-disable-next-line no-console
console . error ( 'If specified, the hook priority must be a number.' ) ;
return ;
}
var handler = {
callback : callback ,
priority : priority ,
namespace : namespace
} ;
2021-01-27 21:04:13 -05:00
if ( hooksStore [ hookName ] ) {
2018-12-13 23:41:57 -05:00
// Find the correct insert index of the new hook.
2021-01-27 21:04:13 -05:00
var handlers = hooksStore [ hookName ] . handlers ;
/** @type {number} */
2019-01-04 14:38:57 -05:00
var i ;
2018-12-13 23:41:57 -05:00
2019-01-04 14:38:57 -05:00
for ( i = handlers . length ; i > 0 ; i -- ) {
if ( priority >= handlers [ i - 1 ] . priority ) {
2018-12-13 23:41:57 -05:00
break ;
}
2019-01-04 14:38:57 -05:00
}
if ( i === handlers . length ) {
// If append, operate via direct assignment.
handlers [ i ] = handler ;
} else {
// Otherwise, insert before index via splice.
handlers . splice ( i , 0 , handler ) ;
} // We may also be currently executing this hook. If the callback
2018-12-13 23:41:57 -05:00
// we're adding would come after the current callback, there's no
// problem; otherwise we need to increase the execution index of
// any other runs by 1 to account for the added element.
2019-01-04 14:38:57 -05:00
2021-01-27 21:04:13 -05:00
hooksStore . _ _current . forEach ( function ( hookInfo ) {
2018-12-13 23:41:57 -05:00
if ( hookInfo . name === hookName && hookInfo . currentIndex >= i ) {
hookInfo . currentIndex ++ ;
}
} ) ;
} else {
// This is the first hook of its type.
2021-01-27 21:04:13 -05:00
hooksStore [ hookName ] = {
2018-12-13 23:41:57 -05:00
handlers : [ handler ] ,
runs : 0
} ;
}
if ( hookName !== 'hookAdded' ) {
2021-01-27 21:04:13 -05:00
hooks . doAction ( 'hookAdded' , hookName , namespace , callback , priority ) ;
2018-12-13 23:41:57 -05:00
}
} ;
}
2018-12-17 22:14:52 -05:00
/* harmony default export */ var build _module _createAddHook = ( createAddHook ) ;
2018-12-13 23:41:57 -05:00
2018-12-17 22:14:52 -05:00
// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js
2019-03-07 04:09:59 -05:00
/ * *
* Internal dependencies
* /
2018-12-13 23:41:57 -05:00
2021-01-27 21:04:13 -05:00
/ * *
* @ callback RemoveHook
* Removes the specified callback ( or all callbacks ) from the hook with a given hookName
* and namespace .
*
* @ param { string } hookName The name of the hook to modify .
* @ param { string } namespace The unique namespace identifying the callback in the
* form ` vendor/plugin/function ` .
*
* @ return { number | undefined } The number of callbacks removed .
* /
2018-12-13 23:41:57 -05:00
/ * *
* Returns a function which , when invoked , will remove a specified hook or all
* hooks by the given name .
*
2021-01-27 21:04:13 -05:00
* @ param { import ( '.' ) . Hooks } hooks Hooks instance .
* @ param { import ( '.' ) . StoreKey } storeKey
* @ param { boolean } [ removeAll = false ] Whether to remove all callbacks for a hookName ,
* without regard to namespace . Used to create
* ` removeAll* ` functions .
2018-12-13 23:41:57 -05:00
*
2021-01-27 21:04:13 -05:00
* @ return { RemoveHook } Function that removes hooks .
2018-12-13 23:41:57 -05:00
* /
2021-01-27 21:04:13 -05:00
function createRemoveHook ( hooks , storeKey ) {
var removeAll = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : false ;
2018-12-13 23:41:57 -05:00
return function removeHook ( hookName , namespace ) {
2021-01-27 21:04:13 -05:00
var hooksStore = hooks [ storeKey ] ;
2018-12-17 22:14:52 -05:00
if ( ! build _module _validateHookName ( hookName ) ) {
2018-12-13 23:41:57 -05:00
return ;
}
2018-12-17 22:14:52 -05:00
if ( ! removeAll && ! build _module _validateNamespace ( namespace ) ) {
2018-12-13 23:41:57 -05:00
return ;
} // Bail if no hooks exist by this name
2021-01-27 21:04:13 -05:00
if ( ! hooksStore [ hookName ] ) {
2018-12-13 23:41:57 -05:00
return 0 ;
}
var handlersRemoved = 0 ;
if ( removeAll ) {
2021-01-27 21:04:13 -05:00
handlersRemoved = hooksStore [ hookName ] . handlers . length ;
hooksStore [ hookName ] = {
runs : hooksStore [ hookName ] . runs ,
2018-12-13 23:41:57 -05:00
handlers : [ ]
} ;
} else {
// Try to find the specified callback to remove.
2021-01-27 21:04:13 -05:00
var handlers = hooksStore [ hookName ] . handlers ;
2018-12-13 23:41:57 -05:00
var _loop = function _loop ( i ) {
if ( handlers [ i ] . namespace === namespace ) {
handlers . splice ( i , 1 ) ;
handlersRemoved ++ ; // This callback may also be part of a hook that is
// currently executing. If the callback we're removing
// comes after the current callback, there's no problem;
// otherwise we need to decrease the execution index of any
// other runs by 1 to account for the removed element.
2021-01-27 21:04:13 -05:00
hooksStore . _ _current . forEach ( function ( hookInfo ) {
2018-12-13 23:41:57 -05:00
if ( hookInfo . name === hookName && hookInfo . currentIndex >= i ) {
hookInfo . currentIndex -- ;
}
} ) ;
}
} ;
for ( var i = handlers . length - 1 ; i >= 0 ; i -- ) {
_loop ( i ) ;
}
}
if ( hookName !== 'hookRemoved' ) {
2021-01-27 21:04:13 -05:00
hooks . doAction ( 'hookRemoved' , hookName , namespace ) ;
2018-12-13 23:41:57 -05:00
}
return handlersRemoved ;
} ;
}
2018-12-17 22:14:52 -05:00
/* harmony default export */ var build _module _createRemoveHook = ( createRemoveHook ) ;
2018-12-13 23:41:57 -05:00
2018-12-17 22:14:52 -05:00
// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createHasHook.js
2021-01-27 21:04:13 -05:00
/ * *
* @ callback HasHook
*
* Returns whether any handlers are attached for the given hookName and optional namespace .
*
* @ param { string } hookName The name of the hook to check for .
* @ param { string } [ namespace ] Optional . The unique namespace identifying the callback
* in the form ` vendor/plugin/function ` .
*
* @ return { boolean } Whether there are handlers that are attached to the given hook .
* /
2018-12-17 22:14:52 -05:00
/ * *
* Returns a function which , when invoked , will return whether any handlers are
* attached to a particular hook .
*
2021-01-27 21:04:13 -05:00
* @ param { import ( '.' ) . Hooks } hooks Hooks instance .
* @ param { import ( '.' ) . StoreKey } storeKey
2018-12-17 22:14:52 -05:00
*
2021-01-27 21:04:13 -05:00
* @ return { HasHook } Function that returns whether any handlers are
* attached to a particular hook and optional namespace .
2018-12-17 22:14:52 -05:00
* /
2021-01-27 21:04:13 -05:00
function createHasHook ( hooks , storeKey ) {
2019-09-19 11:19:18 -04:00
return function hasHook ( hookName , namespace ) {
2021-01-27 21:04:13 -05:00
var hooksStore = hooks [ storeKey ] ; // Use the namespace if provided.
2019-09-19 11:19:18 -04:00
if ( 'undefined' !== typeof namespace ) {
2021-01-27 21:04:13 -05:00
return hookName in hooksStore && hooksStore [ hookName ] . handlers . some ( function ( hook ) {
2019-09-19 11:19:18 -04:00
return hook . namespace === namespace ;
} ) ;
}
2021-01-27 21:04:13 -05:00
return hookName in hooksStore ;
2018-12-17 22:14:52 -05:00
} ;
}
2018-12-13 23:41:57 -05:00
2018-12-17 22:14:52 -05:00
/* harmony default export */ var build _module _createHasHook = ( createHasHook ) ;
2018-12-13 23:41:57 -05:00
2019-09-19 11:19:18 -04:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
2021-01-27 21:04:13 -05:00
var toConsumableArray = _ _webpack _require _ _ ( 15 ) ;
2019-09-19 11:19:18 -04:00
2018-12-17 22:14:52 -05:00
// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createRunHook.js
2019-09-19 11:19:18 -04:00
2018-12-13 23:41:57 -05:00
/ * *
* Returns a function which , when invoked , will execute all callbacks
* registered to a hook of the specified type , optionally returning the final
* value of the call chain .
*
2021-01-27 21:04:13 -05:00
* @ param { import ( '.' ) . Hooks } hooks Hooks instance .
* @ param { import ( '.' ) . StoreKey } storeKey
* @ param { boolean } [ returnFirstArg = false ] Whether each hook callback is expected to
* return its first argument .
2018-12-13 23:41:57 -05:00
*
2021-01-27 21:04:13 -05:00
* @ return { ( hookName : string , ... args : unknown [ ] ) => unknown } Function that runs hook callbacks .
2018-12-13 23:41:57 -05:00
* /
2021-01-27 21:04:13 -05:00
function createRunHook ( hooks , storeKey ) {
var returnFirstArg = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : false ;
2018-12-13 23:41:57 -05:00
return function runHooks ( hookName ) {
2021-01-27 21:04:13 -05:00
var hooksStore = hooks [ storeKey ] ;
if ( ! hooksStore [ hookName ] ) {
hooksStore [ hookName ] = {
2018-12-13 23:41:57 -05:00
handlers : [ ] ,
runs : 0
} ;
}
2021-01-27 21:04:13 -05:00
hooksStore [ hookName ] . runs ++ ;
var handlers = hooksStore [ hookName ] . handlers ; // The following code is stripped from production builds.
2019-09-19 11:19:18 -04:00
if ( false ) { }
2018-12-13 23:41:57 -05:00
for ( var _len = arguments . length , args = new Array ( _len > 1 ? _len - 1 : 0 ) , _key = 1 ; _key < _len ; _key ++ ) {
args [ _key - 1 ] = arguments [ _key ] ;
}
if ( ! handlers || ! handlers . length ) {
return returnFirstArg ? args [ 0 ] : undefined ;
}
var hookInfo = {
name : hookName ,
currentIndex : 0
} ;
2021-01-27 21:04:13 -05:00
hooksStore . _ _current . push ( hookInfo ) ;
2018-12-13 23:41:57 -05:00
while ( hookInfo . currentIndex < handlers . length ) {
var handler = handlers [ hookInfo . currentIndex ] ;
var result = handler . callback . apply ( null , args ) ;
if ( returnFirstArg ) {
args [ 0 ] = result ;
}
hookInfo . currentIndex ++ ;
}
2021-01-27 21:04:13 -05:00
hooksStore . _ _current . pop ( ) ;
2018-12-13 23:41:57 -05:00
if ( returnFirstArg ) {
return args [ 0 ] ;
}
} ;
}
2018-12-17 22:14:52 -05:00
/* harmony default export */ var build _module _createRunHook = ( createRunHook ) ;
// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js
/ * *
* Returns a function which , when invoked , will return the name of the
* currently running hook , or ` null ` if no hook of the given type is currently
* running .
*
2021-01-27 21:04:13 -05:00
* @ param { import ( '.' ) . Hooks } hooks Hooks instance .
* @ param { import ( '.' ) . StoreKey } storeKey
2018-12-17 22:14:52 -05:00
*
2021-01-27 21:04:13 -05:00
* @ return { ( ) => string | null } Function that returns the current hook name or null .
2018-12-17 22:14:52 -05:00
* /
2021-01-27 21:04:13 -05:00
function createCurrentHook ( hooks , storeKey ) {
2018-12-17 22:14:52 -05:00
return function currentHook ( ) {
2021-01-27 21:04:13 -05:00
var _hooksStore$ _ _current , _hooksStore$ _ _current2 ;
2018-12-17 22:14:52 -05:00
2021-01-27 21:04:13 -05:00
var hooksStore = hooks [ storeKey ] ;
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 ;
2018-12-17 22:14:52 -05:00
} ;
}
/* harmony default export */ var build _module _createCurrentHook = ( createCurrentHook ) ;
// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createDoingHook.js
2021-01-27 21:04:13 -05:00
/ * *
* @ callback DoingHook
* Returns whether a hook is currently being executed .
*
* @ param { string } [ hookName ] The name of the hook to check for . If
* omitted , will check for any hook being executed .
*
* @ return { boolean } Whether the hook is being executed .
* /
2018-12-17 22:14:52 -05:00
/ * *
* Returns a function which , when invoked , will return whether a hook is
* currently being executed .
*
2021-01-27 21:04:13 -05:00
* @ param { import ( '.' ) . Hooks } hooks Hooks instance .
* @ param { import ( '.' ) . StoreKey } storeKey
2018-12-17 22:14:52 -05:00
*
2021-01-27 21:04:13 -05:00
* @ return { DoingHook } Function that returns whether a hook is currently
* being executed .
2018-12-17 22:14:52 -05:00
* /
2021-01-27 21:04:13 -05:00
function createDoingHook ( hooks , storeKey ) {
2018-12-17 22:14:52 -05:00
return function doingHook ( hookName ) {
2021-01-27 21:04:13 -05:00
var hooksStore = hooks [ storeKey ] ; // If the hookName was not passed, check for any current hook.
2018-12-17 22:14:52 -05:00
if ( 'undefined' === typeof hookName ) {
2021-01-27 21:04:13 -05:00
return 'undefined' !== typeof hooksStore . _ _current [ 0 ] ;
2018-12-17 22:14:52 -05:00
} // Return the __current hook.
2018-12-13 23:41:57 -05:00
2021-01-27 21:04:13 -05:00
return hooksStore . _ _current [ 0 ] ? hookName === hooksStore . _ _current [ 0 ] . name : false ;
2018-12-17 22:14:52 -05:00
} ;
}
2018-12-13 23:41:57 -05:00
2018-12-17 22:14:52 -05:00
/* harmony default export */ var build _module _createDoingHook = ( createDoingHook ) ;
2018-12-13 23:41:57 -05:00
2018-12-17 22:14:52 -05:00
// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createDidHook.js
2019-03-07 04:09:59 -05:00
/ * *
* Internal dependencies
* /
2018-12-13 23:41:57 -05:00
2021-01-27 21:04:13 -05:00
/ * *
* @ callback DidHook
*
* Returns the number of times an action has been fired .
*
* @ param { string } hookName The hook name to check .
*
* @ return { number | undefined } The number of times the hook has run .
* /
2018-12-17 22:14:52 -05:00
/ * *
* Returns a function which , when invoked , will return the number of times a
* hook has been called .
*
2021-01-27 21:04:13 -05:00
* @ param { import ( '.' ) . Hooks } hooks Hooks instance .
* @ param { import ( '.' ) . StoreKey } storeKey
2018-12-17 22:14:52 -05:00
*
2021-01-27 21:04:13 -05:00
* @ return { DidHook } Function that returns a hook ' s call count .
2018-12-17 22:14:52 -05:00
* /
2021-01-27 21:04:13 -05:00
function createDidHook ( hooks , storeKey ) {
2018-12-17 22:14:52 -05:00
return function didHook ( hookName ) {
2021-01-27 21:04:13 -05:00
var hooksStore = hooks [ storeKey ] ;
2018-12-17 22:14:52 -05:00
if ( ! build _module _validateHookName ( hookName ) ) {
return ;
}
2021-01-27 21:04:13 -05:00
return hooksStore [ hookName ] && hooksStore [ hookName ] . runs ? hooksStore [ hookName ] . runs : 0 ;
2018-12-17 22:14:52 -05:00
} ;
}
/* harmony default export */ var build _module _createDidHook = ( createDidHook ) ;
// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createHooks.js
2021-01-27 21:04:13 -05:00
2019-03-07 04:09:59 -05:00
/ * *
* Internal dependencies
* /
2018-12-17 22:14:52 -05:00
2021-01-27 21:04:13 -05:00
/ * *
* Internal class for constructing hooks . Use ` createHooks() ` function
*
* Note , it is necessary to expose this class to make its type public .
*
* @ private
* /
var createHooks _Hooks = function _Hooks ( ) {
Object ( classCallCheck [ "a" /* default */ ] ) ( this , _Hooks ) ;
/** @type {import('.').Store} actions */
this . actions = Object . create ( null ) ;
this . actions . _ _current = [ ] ;
/** @type {import('.').Store} filters */
this . filters = Object . create ( null ) ;
this . filters . _ _current = [ ] ;
this . addAction = build _module _createAddHook ( this , 'actions' ) ;
this . addFilter = build _module _createAddHook ( this , 'filters' ) ;
this . removeAction = build _module _createRemoveHook ( this , 'actions' ) ;
this . removeFilter = build _module _createRemoveHook ( this , 'filters' ) ;
this . hasAction = build _module _createHasHook ( this , 'actions' ) ;
this . hasFilter = build _module _createHasHook ( this , 'filters' ) ;
this . removeAllActions = build _module _createRemoveHook ( this , 'actions' , true ) ;
this . removeAllFilters = build _module _createRemoveHook ( this , 'filters' , true ) ;
this . doAction = build _module _createRunHook ( this , 'actions' ) ;
this . applyFilters = build _module _createRunHook ( this , 'filters' , true ) ;
this . currentAction = build _module _createCurrentHook ( this , 'actions' ) ;
this . currentFilter = build _module _createCurrentHook ( this , 'filters' ) ;
this . doingAction = build _module _createDoingHook ( this , 'actions' ) ;
this . doingFilter = build _module _createDoingHook ( this , 'filters' ) ;
this . didAction = build _module _createDidHook ( this , 'actions' ) ;
this . didFilter = build _module _createDidHook ( this , 'filters' ) ;
} ;
/** @typedef {_Hooks} Hooks */
2018-12-17 22:14:52 -05:00
/ * *
* Returns an instance of the hooks object .
*
2021-01-27 21:04:13 -05:00
* @ return { Hooks } A Hooks instance .
2018-12-17 22:14:52 -05:00
* /
function createHooks ( ) {
2021-01-27 21:04:13 -05:00
return new createHooks _Hooks ( ) ;
2018-12-17 22:14:52 -05:00
}
/* harmony default export */ var build _module _createHooks = ( createHooks ) ;
// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/index.js
2019-03-07 04:09:59 -05:00
/ * *
* Internal dependencies
* /
2018-12-13 23:41:57 -05:00
2021-01-27 21:04:13 -05:00
/** @typedef {(...args: any[])=>any} Callback */
/ * *
* @ typedef Handler
* @ property { Callback } callback The callback
* @ property { string } namespace The namespace
* @ property { number } priority The namespace
* /
/ * *
* @ typedef Hook
* @ property { Handler [ ] } handlers Array of handlers
* @ property { number } runs Run counter
* /
/ * *
* @ typedef Current
* @ property { string } name Hook name
* @ property { number } currentIndex The index
* /
/ * *
* @ typedef { Record < string , Hook > & { _ _current : Current [ ] } } Store
* /
/ * *
* @ typedef { 'actions' | 'filters' } StoreKey
* /
/ * *
* @ typedef { import ( './createHooks' ) . Hooks } Hooks
* /
2018-12-13 23:41:57 -05:00
2018-12-17 22:14:52 -05:00
var _createHooks = build _module _createHooks ( ) ,
2018-12-13 23:41:57 -05:00
addAction = _createHooks . addAction ,
addFilter = _createHooks . addFilter ,
removeAction = _createHooks . removeAction ,
removeFilter = _createHooks . removeFilter ,
hasAction = _createHooks . hasAction ,
hasFilter = _createHooks . hasFilter ,
removeAllActions = _createHooks . removeAllActions ,
removeAllFilters = _createHooks . removeAllFilters ,
doAction = _createHooks . doAction ,
applyFilters = _createHooks . applyFilters ,
currentAction = _createHooks . currentAction ,
currentFilter = _createHooks . currentFilter ,
doingAction = _createHooks . doingAction ,
doingFilter = _createHooks . doingFilter ,
didAction = _createHooks . didAction ,
didFilter = _createHooks . didFilter ,
2021-01-27 21:04:13 -05:00
actions = _createHooks . actions ,
filters = _createHooks . filters ;
2018-12-13 23:41:57 -05:00
/***/ } )
2018-12-17 22:14:52 -05:00
/******/ } ) ;