2018-12-13 23:41:57 -05:00
this [ "wp" ] = this [ "wp" ] || { } ; this [ "wp" ] [ "nux" ] =
/******/ ( 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-05-25 01:22:08 -04:00
/******/ return _ _webpack _require _ _ ( _ _webpack _require _ _ . s = "51Wn" ) ;
2018-12-13 23:41:57 -05:00
/******/ } )
/************************************************************************/
/******/ ( {
2021-05-25 01:22:08 -04:00
/***/ "1ZqX" :
2018-12-17 22:14:52 -05:00
/***/ ( function ( module , exports ) {
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
( function ( ) { module . exports = window [ "wp" ] [ "data" ] ; } ( ) ) ;
2018-12-13 23:41:57 -05:00
/***/ } ) ,
2021-05-25 01:22:08 -04:00
/***/ "25BE" :
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _iterableToArray ; } ) ;
function _iterableToArray ( iter ) {
if ( typeof Symbol !== "undefined" && Symbol . iterator in Object ( iter ) ) return Array . from ( iter ) ;
}
2018-12-13 23:41:57 -05:00
/***/ } ) ,
2021-05-25 01:22:08 -04:00
/***/ "51Wn" :
2018-12-13 23:41:57 -05:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
2021-05-25 01:22:08 -04:00
// ESM COMPAT FLAG
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
2018-12-17 22:14:52 -05:00
2020-06-29 07:50:29 -04:00
// EXPORTS
2021-05-25 01:22:08 -04:00
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "store" , function ( ) { return /* reexport */ store ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "DotTip" , function ( ) { return /* reexport */ dot _tip ; } ) ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// NAMESPACE OBJECT: ./node_modules/@wordpress/nux/build-module/store/actions.js
var actions _namespaceObject = { } ;
_ _webpack _require _ _ . r ( actions _namespaceObject ) ;
_ _webpack _require _ _ . d ( actions _namespaceObject , "triggerGuide" , function ( ) { return triggerGuide ; } ) ;
_ _webpack _require _ _ . d ( actions _namespaceObject , "dismissTip" , function ( ) { return dismissTip ; } ) ;
_ _webpack _require _ _ . d ( actions _namespaceObject , "disableTips" , function ( ) { return disableTips ; } ) ;
_ _webpack _require _ _ . d ( actions _namespaceObject , "enableTips" , function ( ) { return enableTips ; } ) ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// NAMESPACE OBJECT: ./node_modules/@wordpress/nux/build-module/store/selectors.js
var selectors _namespaceObject = { } ;
_ _webpack _require _ _ . r ( selectors _namespaceObject ) ;
_ _webpack _require _ _ . d ( selectors _namespaceObject , "getAssociatedGuide" , function ( ) { return getAssociatedGuide ; } ) ;
_ _webpack _require _ _ . d ( selectors _namespaceObject , "isTipVisible" , function ( ) { return isTipVisible ; } ) ;
_ _webpack _require _ _ . d ( selectors _namespaceObject , "areTipsEnabled" , function ( ) { return selectors _areTipsEnabled ; } ) ;
2020-03-23 19:40:19 -04:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: external ["wp","deprecated"]
var external _wp _deprecated _ = _ _webpack _require _ _ ( "NMb1" ) ;
var external _wp _deprecated _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( external _wp _deprecated _ ) ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: external ["wp","data"]
var external _wp _data _ = _ _webpack _require _ _ ( "1ZqX" ) ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
var defineProperty = _ _webpack _require _ _ ( "rePB" ) ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
var toConsumableArray = _ _webpack _require _ _ ( "KQm4" ) ;
2018-12-17 22:14:52 -05:00
2021-05-25 01:22:08 -04:00
// CONCATENATED MODULE: ./node_modules/@wordpress/nux/build-module/store/reducer.js
2020-03-23 19:40:19 -04:00
2021-05-25 01:22:08 -04:00
function ownKeys ( object , enumerableOnly ) { var keys = Object . keys ( object ) ; if ( Object . getOwnPropertySymbols ) { var symbols = Object . getOwnPropertySymbols ( object ) ; if ( enumerableOnly ) symbols = symbols . filter ( function ( sym ) { return Object . getOwnPropertyDescriptor ( object , sym ) . enumerable ; } ) ; keys . push . apply ( keys , symbols ) ; } return keys ; }
2020-07-07 10:43:35 -04:00
2021-05-25 01:22:08 -04:00
function _objectSpread ( target ) { for ( var i = 1 ; i < arguments . length ; i ++ ) { var source = arguments [ i ] != null ? arguments [ i ] : { } ; if ( i % 2 ) { ownKeys ( Object ( source ) , true ) . forEach ( function ( key ) { Object ( defineProperty [ "a" /* default */ ] ) ( target , key , source [ key ] ) ; } ) ; } else if ( Object . getOwnPropertyDescriptors ) { Object . defineProperties ( target , Object . getOwnPropertyDescriptors ( source ) ) ; } else { ownKeys ( Object ( source ) ) . forEach ( function ( key ) { Object . defineProperty ( target , key , Object . getOwnPropertyDescriptor ( source , key ) ) ; } ) ; } } return target ; }
2020-07-07 10:43:35 -04:00
2021-05-25 01:22:08 -04:00
/ * *
* WordPress dependencies
* /
2020-07-07 10:43:35 -04:00
2021-05-25 01:22:08 -04:00
/ * *
* Reducer that tracks which tips are in a guide . Each guide is represented by
* an array which contains the tip identifiers contained within that guide .
*
* @ param { Array } state Current state .
* @ param { Object } action Dispatched action .
*
* @ return { Array } Updated state .
* /
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
function guides ( ) {
var state = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : [ ] ;
var action = arguments . length > 1 ? arguments [ 1 ] : undefined ;
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
switch ( action . type ) {
case 'TRIGGER_GUIDE' :
return [ ] . concat ( Object ( toConsumableArray [ "a" /* default */ ] ) ( state ) , [ action . tipIds ] ) ;
}
2020-06-29 07:50:29 -04:00
2021-05-25 01:22:08 -04:00
return state ;
}
/ * *
* Reducer that tracks whether or not tips are globally enabled .
*
* @ param { boolean } state Current state .
* @ param { Object } action Dispatched action .
*
* @ return { boolean } Updated state .
* /
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
function areTipsEnabled ( ) {
var state = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : true ;
var action = arguments . length > 1 ? arguments [ 1 ] : undefined ;
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
switch ( action . type ) {
case 'DISABLE_TIPS' :
return false ;
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
case 'ENABLE_TIPS' :
return true ;
}
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
return state ;
2020-06-26 09:33:47 -04:00
}
2021-05-25 01:22:08 -04:00
/ * *
* Reducer that tracks which tips have been dismissed . If the state object
* contains a tip identifier , then that tip is dismissed .
*
* @ param { Object } state Current state .
* @ param { Object } action Dispatched action .
*
* @ return { Object } Updated state .
* /
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
function dismissedTips ( ) {
var state = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
var action = arguments . length > 1 ? arguments [ 1 ] : undefined ;
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
switch ( action . type ) {
case 'DISMISS_TIP' :
return _objectSpread ( _objectSpread ( { } , state ) , { } , Object ( defineProperty [ "a" /* default */ ] ) ( { } , action . id , true ) ) ;
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
case 'ENABLE_TIPS' :
return { } ;
}
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
return state ;
2020-06-26 09:33:47 -04:00
}
2021-05-25 01:22:08 -04:00
var preferences = Object ( external _wp _data _ [ "combineReducers" ] ) ( {
areTipsEnabled : areTipsEnabled ,
dismissedTips : dismissedTips
} ) ;
/* harmony default export */ var reducer = ( Object ( external _wp _data _ [ "combineReducers" ] ) ( {
guides : guides ,
preferences : preferences
} ) ) ;
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
// CONCATENATED MODULE: ./node_modules/@wordpress/nux/build-module/store/actions.js
/ * *
* Returns an action object that , when dispatched , presents a guide that takes
* the user through a series of tips step by step .
*
* @ param { string [ ] } tipIds Which tips to show in the guide .
*
* @ return { Object } Action object .
* /
function triggerGuide ( tipIds ) {
return {
type : 'TRIGGER_GUIDE' ,
tipIds : tipIds
} ;
}
/ * *
* Returns an action object that , when dispatched , dismisses the given tip . A
* dismissed tip will not show again .
*
* @ param { string } id The tip to dismiss .
*
* @ return { Object } Action object .
* /
2021-01-27 21:04:13 -05:00
2021-05-25 01:22:08 -04:00
function dismissTip ( id ) {
return {
type : 'DISMISS_TIP' ,
id : id
} ;
}
2021-01-27 21:04:13 -05:00
/ * *
2021-05-25 01:22:08 -04:00
* Returns an action object that , when dispatched , prevents all tips from
* showing again .
*
* @ return { Object } Action object .
2021-01-27 21:04:13 -05:00
* /
2021-05-25 01:22:08 -04:00
function disableTips ( ) {
return {
type : 'DISABLE_TIPS'
} ;
}
/ * *
* Returns an action object that , when dispatched , makes all tips show again .
*
* @ return { Object } Action object .
* /
2021-01-27 21:04:13 -05:00
2021-05-25 01:22:08 -04:00
function enableTips ( ) {
return {
type : 'ENABLE_TIPS'
} ;
}
2021-01-27 21:04:13 -05:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
var slicedToArray = _ _webpack _require _ _ ( "ODXe" ) ;
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js
var rememo = _ _webpack _require _ _ ( "pPDe" ) ;
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: external "lodash"
var external _lodash _ = _ _webpack _require _ _ ( "YLtl" ) ;
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
// CONCATENATED MODULE: ./node_modules/@wordpress/nux/build-module/store/selectors.js
2020-06-26 09:33:47 -04:00
2020-03-23 19:40:19 -04:00
2021-05-25 01:22:08 -04:00
function _createForOfIteratorHelper ( o , allowArrayLike ) { var it ; if ( typeof Symbol === "undefined" || o [ Symbol . iterator ] == null ) { if ( Array . isArray ( o ) || ( it = _unsupportedIterableToArray ( o ) ) || allowArrayLike && o && typeof o . length === "number" ) { if ( it ) o = it ; var i = 0 ; var F = function F ( ) { } ; return { s : F , n : function n ( ) { if ( i >= o . length ) return { done : true } ; return { done : false , value : o [ i ++ ] } ; } , e : function e ( _e ) { throw _e ; } , f : F } ; } throw new TypeError ( "Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." ) ; } var normalCompletion = true , didErr = false , err ; return { s : function s ( ) { it = o [ Symbol . iterator ] ( ) ; } , n : function n ( ) { var step = it . next ( ) ; normalCompletion = step . done ; return step ; } , e : function e ( _e2 ) { didErr = true ; err = _e2 ; } , f : function f ( ) { try { if ( ! normalCompletion && it . return != null ) it . return ( ) ; } finally { if ( didErr ) throw err ; } } } ; }
2020-03-23 19:40:19 -04:00
2021-05-25 01:22:08 -04:00
function _unsupportedIterableToArray ( o , minLen ) { if ( ! o ) return ; if ( typeof o === "string" ) return _arrayLikeToArray ( o , minLen ) ; var n = Object . prototype . toString . call ( o ) . slice ( 8 , - 1 ) ; if ( n === "Object" && o . constructor ) n = o . constructor . name ; if ( n === "Map" || n === "Set" ) return Array . from ( o ) ; if ( n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/ . test ( n ) ) return _arrayLikeToArray ( o , minLen ) ; }
2020-03-23 19:40:19 -04:00
2021-05-25 01:22:08 -04:00
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 ; }
2020-03-23 19:40:19 -04:00
2021-05-25 01:22:08 -04:00
/ * *
* External dependencies
* /
2020-03-23 19:40:19 -04:00
2020-10-13 09:10:30 -04:00
2021-05-25 01:22:08 -04:00
/ * *
* An object containing information about a guide .
*
* @ typedef { Object } NUXGuideInfo
* @ property { string [ ] } tipIds Which tips the guide contains .
* @ property { ? string } currentTipId The guide ' s currently showing tip .
* @ property { ? string } nextTipId The guide ' s next tip to show .
* /
2020-10-13 09:10:30 -04:00
2021-05-25 01:22:08 -04:00
/ * *
* Returns an object describing the guide , if any , that the given tip is a part
* of .
*
* @ param { Object } state Global application state .
* @ param { string } tipId The tip to query .
*
* @ return { ? NUXGuideInfo } Information about the associated guide .
* /
2020-10-13 09:10:30 -04:00
2021-05-25 01:22:08 -04:00
var getAssociatedGuide = Object ( rememo [ "a" /* default */ ] ) ( function ( state , tipId ) {
var _iterator = _createForOfIteratorHelper ( state . guides ) ,
_step ;
2020-03-23 19:40:19 -04:00
2021-05-25 01:22:08 -04:00
try {
for ( _iterator . s ( ) ; ! ( _step = _iterator . n ( ) ) . done ; ) {
var tipIds = _step . value ;
2020-03-23 19:40:19 -04:00
2021-05-25 01:22:08 -04:00
if ( Object ( external _lodash _ [ "includes" ] ) ( tipIds , tipId ) ) {
var nonDismissedTips = Object ( external _lodash _ [ "difference" ] ) ( tipIds , Object ( external _lodash _ [ "keys" ] ) ( state . preferences . dismissedTips ) ) ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
var _nonDismissedTips = Object ( slicedToArray [ "a" /* default */ ] ) ( nonDismissedTips , 2 ) ,
_nonDismissedTips$ = _nonDismissedTips [ 0 ] ,
currentTipId = _nonDismissedTips$ === void 0 ? null : _nonDismissedTips$ ,
_nonDismissedTips$2 = _nonDismissedTips [ 1 ] ,
nextTipId = _nonDismissedTips$2 === void 0 ? null : _nonDismissedTips$2 ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
return {
tipIds : tipIds ,
currentTipId : currentTipId ,
nextTipId : nextTipId
} ;
}
}
} catch ( err ) {
_iterator . e ( err ) ;
} finally {
_iterator . f ( ) ;
}
2019-09-19 11:19:18 -04:00
2021-05-25 01:22:08 -04:00
return null ;
} , function ( state ) {
return [ state . guides , state . preferences . dismissedTips ] ;
} ) ;
/ * *
* Determines whether or not the given tip is showing . Tips are hidden if they
* are disabled , have been dismissed , or are not the current tip in any
* guide that they have been added to .
*
* @ param { Object } state Global application state .
* @ param { string } tipId The tip to query .
*
* @ return { boolean } Whether or not the given tip is showing .
* /
2019-09-19 11:19:18 -04:00
2021-05-25 01:22:08 -04:00
function isTipVisible ( state , tipId ) {
if ( ! state . preferences . areTipsEnabled ) {
return false ;
}
2019-09-19 11:19:18 -04:00
2021-05-25 01:22:08 -04:00
if ( Object ( external _lodash _ [ "has" ] ) ( state . preferences . dismissedTips , [ tipId ] ) ) {
return false ;
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
var associatedGuide = getAssociatedGuide ( state , tipId ) ;
2019-09-19 11:19:18 -04:00
2021-05-25 01:22:08 -04:00
if ( associatedGuide && associatedGuide . currentTipId !== tipId ) {
return false ;
}
2019-09-19 11:19:18 -04:00
2021-05-25 01:22:08 -04:00
return true ;
}
/ * *
* Returns whether or not tips are globally enabled .
*
* @ param { Object } state Global application state .
*
* @ return { boolean } Whether tips are globally enabled .
* /
2020-01-03 08:17:24 -05:00
2021-05-25 01:22:08 -04:00
function selectors _areTipsEnabled ( state ) {
return state . preferences . areTipsEnabled ;
2020-02-10 17:33:27 -05:00
}
2021-05-25 01:22:08 -04:00
// CONCATENATED MODULE: ./node_modules/@wordpress/nux/build-module/store/index.js
/ * *
* WordPress dependencies
* /
2020-02-10 17:33:27 -05:00
2021-05-25 01:22:08 -04:00
/ * *
* Internal dependencies
* /
2020-02-10 17:33:27 -05:00
2020-03-23 19:40:19 -04:00
2021-05-25 01:22:08 -04:00
var STORE _NAME = 'core/nux' ;
/ * *
* Store definition for the nux namespace .
*
* @ see https : //github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
*
* @ type { Object }
* /
2020-03-23 19:40:19 -04:00
2021-05-25 01:22:08 -04:00
var store = Object ( external _wp _data _ [ "createReduxStore" ] ) ( STORE _NAME , {
reducer : reducer ,
actions : actions _namespaceObject ,
selectors : selectors _namespaceObject ,
persist : [ 'preferences' ]
} ) ; // Once we build a more generic persistence plugin that works across types of stores
// we'd be able to replace this with a register call.
2020-03-23 19:40:19 -04:00
2021-05-25 01:22:08 -04:00
Object ( external _wp _data _ [ "registerStore" ] ) ( STORE _NAME , {
reducer : reducer ,
actions : actions _namespaceObject ,
selectors : selectors _namespaceObject ,
persist : [ 'preferences' ]
} ) ;
2020-02-10 17:33:27 -05:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: external ["wp","element"]
var external _wp _element _ = _ _webpack _require _ _ ( "GRId" ) ;
2019-10-15 11:37:08 -04:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: external ["wp","compose"]
var external _wp _compose _ = _ _webpack _require _ _ ( "K9lf" ) ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: external ["wp","components"]
var external _wp _components _ = _ _webpack _require _ _ ( "tI+e" ) ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: external ["wp","i18n"]
var external _wp _i18n _ = _ _webpack _require _ _ ( "l3Sj" ) ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js
var library _close = _ _webpack _require _ _ ( "w95h" ) ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// CONCATENATED MODULE: ./node_modules/@wordpress/nux/build-module/components/dot-tip/index.js
2018-12-13 23:41:57 -05:00
2019-10-15 11:37:08 -04:00
/ * *
2021-05-25 01:22:08 -04:00
* WordPress dependencies
2020-01-03 08:17:24 -05:00
* /
2021-05-25 01:22:08 -04:00
function onClick ( event ) {
// Tips are often nested within buttons. We stop propagation so that clicking
// on a tip doesn't result in the button being clicked.
event . stopPropagation ( ) ;
2020-01-03 08:17:24 -05:00
}
2020-01-08 06:57:23 -05:00
2021-05-25 01:22:08 -04:00
function DotTip ( _ref ) {
var _ref$position = _ref . position ,
position = _ref$position === void 0 ? 'middle right' : _ref$position ,
children = _ref . children ,
isVisible = _ref . isVisible ,
hasNextTip = _ref . hasNextTip ,
onDismiss = _ref . onDismiss ,
onDisable = _ref . onDisable ;
var anchorParent = Object ( external _wp _element _ [ "useRef" ] ) ( null ) ;
var onFocusOutsideCallback = Object ( external _wp _element _ [ "useCallback" ] ) ( function ( event ) {
if ( ! anchorParent . current ) {
return ;
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
if ( anchorParent . current . contains ( event . relatedTarget ) ) {
return ;
}
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
onDisable ( ) ;
} , [ onDisable , anchorParent ] ) ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
if ( ! isVisible ) {
return null ;
}
return Object ( external _wp _element _ [ "createElement" ] ) ( external _wp _components _ [ "Popover" ] , {
className : "nux-dot-tip" ,
position : position ,
noArrow : true ,
focusOnMount : "container" ,
shouldAnchorIncludePadding : true ,
role : "dialog" ,
"aria-label" : Object ( external _wp _i18n _ [ "__" ] ) ( 'Editor tips' ) ,
onClick : onClick ,
onFocusOutside : onFocusOutsideCallback
} , Object ( external _wp _element _ [ "createElement" ] ) ( "p" , null , children ) , Object ( external _wp _element _ [ "createElement" ] ) ( "p" , null , Object ( external _wp _element _ [ "createElement" ] ) ( external _wp _components _ [ "Button" ] , {
isLink : true ,
onClick : onDismiss
} , hasNextTip ? Object ( external _wp _i18n _ [ "__" ] ) ( 'See next tip' ) : Object ( external _wp _i18n _ [ "__" ] ) ( 'Got it' ) ) ) , Object ( external _wp _element _ [ "createElement" ] ) ( external _wp _components _ [ "Button" ] , {
className : "nux-dot-tip__disable" ,
icon : library _close [ "a" /* default */ ] ,
label : Object ( external _wp _i18n _ [ "__" ] ) ( 'Disable tips' ) ,
onClick : onDisable
} ) ) ;
2020-01-08 06:57:23 -05:00
}
2021-05-25 01:22:08 -04:00
/* harmony default export */ var dot _tip = ( Object ( external _wp _compose _ [ "compose" ] ) ( Object ( external _wp _data _ [ "withSelect" ] ) ( function ( select , _ref2 ) {
var tipId = _ref2 . tipId ;
var _select = select ( 'core/nux' ) ,
isTipVisible = _select . isTipVisible ,
getAssociatedGuide = _select . getAssociatedGuide ;
var associatedGuide = getAssociatedGuide ( tipId ) ;
return {
isVisible : isTipVisible ( tipId ) ,
hasNextTip : ! ! ( associatedGuide && associatedGuide . nextTipId )
} ;
} ) , Object ( external _wp _data _ [ "withDispatch" ] ) ( function ( dispatch , _ref3 ) {
var tipId = _ref3 . tipId ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
var _dispatch = dispatch ( 'core/nux' ) ,
dismissTip = _dispatch . dismissTip ,
disableTips = _dispatch . disableTips ;
return {
onDismiss : function onDismiss ( ) {
dismissTip ( tipId ) ;
} ,
onDisable : function onDisable ( ) {
disableTips ( ) ;
}
} ;
} ) ) ( DotTip ) ) ;
// CONCATENATED MODULE: ./node_modules/@wordpress/nux/build-module/index.js
2020-01-03 08:17:24 -05:00
/ * *
2021-05-25 01:22:08 -04:00
* WordPress dependencies
2020-01-03 08:17:24 -05:00
* /
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
external _wp _deprecated _default ( ) ( 'wp.nux' , {
hint : 'wp.components.Guide can be used to show a user guide.'
} ) ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ } ) ,
/***/ "BsWD" :
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _unsupportedIterableToArray ; } ) ;
/* harmony import */ var _babel _runtime _helpers _esm _arrayLikeToArray _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( "a3WO" ) ;
function _unsupportedIterableToArray ( o , minLen ) {
if ( ! o ) return ;
if ( typeof o === "string" ) return Object ( _babel _runtime _helpers _esm _arrayLikeToArray _ _WEBPACK _IMPORTED _MODULE _0 _ _ [ /* default */ "a" ] ) ( o , minLen ) ;
var n = Object . prototype . toString . call ( o ) . slice ( 8 , - 1 ) ;
if ( n === "Object" && o . constructor ) n = o . constructor . name ;
if ( n === "Map" || n === "Set" ) return Array . from ( o ) ;
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-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ } ) ,
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ "DSFK" :
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _arrayWithHoles ; } ) ;
function _arrayWithHoles ( arr ) {
if ( Array . isArray ( arr ) ) return arr ;
}
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ } ) ,
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ "GRId" :
/***/ ( function ( module , exports ) {
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
( function ( ) { module . exports = window [ "wp" ] [ "element" ] ; } ( ) ) ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ } ) ,
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ "K9lf" :
/***/ ( function ( module , exports ) {
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
( function ( ) { module . exports = window [ "wp" ] [ "compose" ] ; } ( ) ) ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ } ) ,
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ "KQm4" :
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
"use strict" ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return /* binding */ _toConsumableArray ; } ) ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
var arrayLikeToArray = _ _webpack _require _ _ ( "a3WO" ) ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
function _arrayWithoutHoles ( arr ) {
if ( Array . isArray ( arr ) ) return Object ( arrayLikeToArray [ "a" /* default */ ] ) ( arr ) ;
}
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
var iterableToArray = _ _webpack _require _ _ ( "25BE" ) ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
var unsupportedIterableToArray = _ _webpack _require _ _ ( "BsWD" ) ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
function _nonIterableSpread ( ) {
throw new TypeError ( "Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." ) ;
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
function _toConsumableArray ( arr ) {
return _arrayWithoutHoles ( arr ) || Object ( iterableToArray [ "a" /* default */ ] ) ( arr ) || Object ( unsupportedIterableToArray [ "a" /* default */ ] ) ( arr ) || _nonIterableSpread ( ) ;
}
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ } ) ,
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ "NMb1" :
/***/ ( function ( module , exports ) {
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
( function ( ) { module . exports = window [ "wp" ] [ "deprecated" ] ; } ( ) ) ;
2019-10-15 12:17:12 -04:00
2020-01-22 17:06:21 -05:00
/***/ } ) ,
2021-05-25 01:22:08 -04:00
/***/ "ODXe" :
2020-01-08 06:57:23 -05:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
2019-10-15 12:17:12 -04:00
2020-01-08 06:57:23 -05:00
"use strict" ;
2020-06-29 07:50:29 -04:00
// EXPORTS
2021-05-25 01:22:08 -04:00
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return /* binding */ _slicedToArray ; } ) ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
var arrayWithHoles = _ _webpack _require _ _ ( "DSFK" ) ;
2020-01-22 17:06:21 -05:00
2021-05-25 01:22:08 -04:00
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
function _iterableToArrayLimit ( arr , i ) {
if ( typeof Symbol === "undefined" || ! ( Symbol . iterator in Object ( arr ) ) ) return ;
var _arr = [ ] ;
var _n = true ;
var _d = false ;
var _e = undefined ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
try {
for ( var _i = arr [ Symbol . iterator ] ( ) , _s ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) {
_arr . push ( _s . value ) ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
if ( i && _arr . length === i ) break ;
}
} catch ( err ) {
_d = true ;
_e = err ;
} finally {
try {
if ( ! _n && _i [ "return" ] != null ) _i [ "return" ] ( ) ;
} finally {
if ( _d ) throw _e ;
}
}
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
return _arr ;
}
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
var unsupportedIterableToArray = _ _webpack _require _ _ ( "BsWD" ) ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
var nonIterableRest = _ _webpack _require _ _ ( "PYwp" ) ;
2020-01-03 08:17:24 -05:00
2021-05-25 01:22:08 -04:00
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
2019-10-15 12:17:12 -04:00
2020-02-06 16:03:31 -05:00
2020-01-03 08:17:24 -05:00
2020-01-08 06:57:23 -05:00
2021-05-25 01:22:08 -04:00
function _slicedToArray ( arr , i ) {
return Object ( arrayWithHoles [ "a" /* default */ ] ) ( arr ) || _iterableToArrayLimit ( arr , i ) || Object ( unsupportedIterableToArray [ "a" /* default */ ] ) ( arr , i ) || Object ( nonIterableRest [ "a" /* default */ ] ) ( ) ;
}
2020-01-08 06:57:23 -05:00
2021-05-25 01:22:08 -04:00
/***/ } ) ,
2020-01-08 06:57:23 -05:00
2021-05-25 01:22:08 -04:00
/***/ "PYwp" :
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
2020-01-08 06:57:23 -05:00
2021-05-25 01:22:08 -04:00
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _nonIterableRest ; } ) ;
function _nonIterableRest ( ) {
throw new TypeError ( "Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." ) ;
2020-01-08 06:57:23 -05:00
}
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ } ) ,
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ "Tqx9" :
/***/ ( function ( module , exports ) {
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
( function ( ) { module . exports = window [ "wp" ] [ "primitives" ] ; } ( ) ) ;
2020-01-03 08:17:24 -05:00
2021-05-25 01:22:08 -04:00
/***/ } ) ,
2020-01-03 08:17:24 -05:00
2021-05-25 01:22:08 -04:00
/***/ "YLtl" :
/***/ ( function ( module , exports ) {
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
( function ( ) { module . exports = window [ "lodash" ] ; } ( ) ) ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ } ) ,
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
/***/ "a3WO" :
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
"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 ;
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
for ( var i = 0 , arr2 = new Array ( len ) ; i < len ; i ++ ) {
arr2 [ i ] = arr [ i ] ;
}
2020-01-08 06:57:23 -05:00
2021-05-25 01:22:08 -04:00
return arr2 ;
2020-01-03 08:17:24 -05:00
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
/***/ } ) ,
2020-01-08 06:57:23 -05:00
2021-05-25 01:22:08 -04:00
/***/ "l3Sj" :
/***/ ( function ( module , exports ) {
2020-01-08 06:57:23 -05:00
2021-05-25 01:22:08 -04:00
( function ( ) { module . exports = window [ "wp" ] [ "i18n" ] ; } ( ) ) ;
2020-01-08 06:57:23 -05:00
2021-05-25 01:22:08 -04:00
/***/ } ) ,
2020-01-08 06:57:23 -05:00
2021-05-25 01:22:08 -04:00
/***/ "pPDe" :
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
2020-01-08 06:57:23 -05:00
2021-05-25 01:22:08 -04:00
"use strict" ;
2020-06-26 09:33:47 -04:00
2021-05-25 01:22:08 -04:00
var LEAF _KEY , hasWeakMap ;
2020-06-26 09:33:47 -04:00
2019-10-15 11:37:08 -04:00
/ * *
2021-05-25 01:22:08 -04:00
* Arbitrary value used as key for referencing cache object in WeakMap tree .
*
* @ type { Object }
2019-10-15 11:37:08 -04:00
* /
2021-05-25 01:22:08 -04:00
LEAF _KEY = { } ;
2018-12-13 23:41:57 -05:00
2019-10-15 12:17:12 -04:00
/ * *
2021-05-25 01:22:08 -04:00
* Whether environment supports WeakMap .
2020-01-03 08:17:24 -05:00
*
2021-05-25 01:22:08 -04:00
* @ type { boolean }
2020-01-08 06:57:23 -05:00
* /
2021-05-25 01:22:08 -04:00
hasWeakMap = typeof WeakMap !== 'undefined' ;
2020-01-08 06:57:23 -05:00
/ * *
2021-05-25 01:22:08 -04:00
* Returns the first argument as the sole entry in an array .
2020-01-03 08:17:24 -05:00
*
2021-05-25 01:22:08 -04:00
* @ param { * } value Value to return .
2020-01-08 06:57:23 -05:00
*
2021-05-25 01:22:08 -04:00
* @ return { Array } Value returned as entry in array .
2019-10-15 12:17:12 -04:00
* /
2021-05-25 01:22:08 -04:00
function arrayOf ( value ) {
return [ value ] ;
}
2020-01-03 08:17:24 -05:00
2018-12-13 23:41:57 -05:00
/ * *
2021-05-25 01:22:08 -04:00
* Returns true if the value passed is object - like , or false otherwise . A value
* is object - like if it can support property assignment , e . g . object or array .
2020-01-03 08:17:24 -05:00
*
2021-05-25 01:22:08 -04:00
* @ param { * } value Value to test .
2020-01-03 08:17:24 -05:00
*
2021-05-25 01:22:08 -04:00
* @ return { boolean } Whether value is object - like .
2018-12-13 23:41:57 -05:00
* /
2021-05-25 01:22:08 -04:00
function isObjectLike ( value ) {
return ! ! value && 'object' === typeof value ;
2020-01-08 06:57:23 -05:00
}
2021-05-25 01:22:08 -04:00
2020-01-08 06:57:23 -05:00
/ * *
2021-05-25 01:22:08 -04:00
* Creates and returns a new cache object .
2020-01-08 06:57:23 -05:00
*
2021-05-25 01:22:08 -04:00
* @ return { Object } Cache object .
2020-01-08 06:57:23 -05:00
* /
2021-05-25 01:22:08 -04:00
function createCache ( ) {
var cache = {
clear : function ( ) {
cache . head = null ;
} ,
} ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
return cache ;
2020-01-08 06:57:23 -05:00
}
2018-12-13 23:41:57 -05:00
2020-01-08 06:57:23 -05:00
/ * *
2021-05-25 01:22:08 -04:00
* Returns true if entries within the two arrays are strictly equal by
* reference from a starting index .
*
* @ param { Array } a First array .
* @ param { Array } b Second array .
* @ param { number } fromIndex Index from which to start comparison .
*
* @ return { boolean } Whether arrays are shallowly equal .
2020-01-08 06:57:23 -05:00
* /
2021-05-25 01:22:08 -04:00
function isShallowEqual ( a , b , fromIndex ) {
var i ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
if ( a . length !== b . length ) {
return false ;
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
for ( i = fromIndex ; i < a . length ; i ++ ) {
if ( a [ i ] !== b [ i ] ) {
return false ;
}
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
return true ;
}
2018-12-13 23:41:57 -05:00
2021-01-27 21:04:13 -05:00
/ * *
2021-05-25 01:22:08 -04:00
* Returns a memoized selector function . The getDependants function argument is
* called before the memoized selector and is expected to return an immutable
* reference or array of references on which the selector depends for computing
* its own return value . The memoize cache is preserved only as long as those
* dependant references remain the same . If getDependants returns a different
* reference ( s ) , the cache is cleared and the selector value regenerated .
2021-01-27 21:04:13 -05:00
*
2021-05-25 01:22:08 -04:00
* @ param { Function } selector Selector function .
* @ param { Function } getDependants Dependant getter returning an immutable
* reference or array of reference used in
* cache bust consideration .
2021-01-27 21:04:13 -05:00
*
2021-05-25 01:22:08 -04:00
* @ return { Function } Memoized selector .
2021-01-27 21:04:13 -05:00
* /
2021-05-25 01:22:08 -04:00
/* harmony default export */ _ _webpack _exports _ _ [ "a" ] = ( function ( selector , getDependants ) {
var rootCache , getCache ;
2021-01-27 21:04:13 -05:00
2021-05-25 01:22:08 -04:00
// Use object source as dependant if getter not provided
if ( ! getDependants ) {
getDependants = arrayOf ;
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
/ * *
* Returns the root cache . If WeakMap is supported , this is assigned to the
* root WeakMap cache set , otherwise it is a shared instance of the default
* cache object .
*
* @ return { ( WeakMap | Object ) } Root cache object .
* /
function getRootCache ( ) {
return rootCache ;
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
/ * *
* Returns the cache for a given dependants array . When possible , a WeakMap
* will be used to create a unique cache for each set of dependants . This
* is feasible due to the nature of WeakMap in allowing garbage collection
* to occur on entries where the key object is no longer referenced . Since
* WeakMap requires the key to be an object , this is only possible when the
* dependant is object - like . The root cache is created as a hierarchy where
* each top - level key is the first entry in a dependants set , the value a
* WeakMap where each key is the next dependant , and so on . This continues
* so long as the dependants are object - like . If no dependants are object -
* like , then the cache is shared across all invocations .
*
* @ see isObjectLike
*
* @ param { Array } dependants Selector dependants .
*
* @ return { Object } Cache object .
* /
function getWeakMapCache ( dependants ) {
var caches = rootCache ,
isUniqueByDependants = true ,
i , dependant , map , cache ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
for ( i = 0 ; i < dependants . length ; i ++ ) {
dependant = dependants [ i ] ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// Can only compose WeakMap from object-like key.
if ( ! isObjectLike ( dependant ) ) {
isUniqueByDependants = false ;
break ;
}
2020-02-10 17:33:27 -05:00
2021-05-25 01:22:08 -04:00
// Does current segment of cache already have a WeakMap?
if ( caches . has ( dependant ) ) {
// Traverse into nested WeakMap.
caches = caches . get ( dependant ) ;
} else {
// Create, set, and traverse into a new one.
map = new WeakMap ( ) ;
caches . set ( dependant , map ) ;
caches = map ;
}
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// We use an arbitrary (but consistent) object as key for the last item
// in the WeakMap to serve as our running cache.
if ( ! caches . has ( LEAF _KEY ) ) {
cache = createCache ( ) ;
cache . isUniqueByDependants = isUniqueByDependants ;
caches . set ( LEAF _KEY , cache ) ;
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
return caches . get ( LEAF _KEY ) ;
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// Assign cache handler by availability of WeakMap
getCache = hasWeakMap ? getWeakMapCache : getRootCache ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
/ * *
* Resets root memoization cache .
* /
function clear ( ) {
rootCache = hasWeakMap ? new WeakMap ( ) : createCache ( ) ;
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// eslint-disable-next-line jsdoc/check-param-names
/ * *
* The augmented selector call , considering first whether dependants have
* changed before passing it to underlying memoize function .
*
* @ param { Object } source Source object for derivation .
* @ param { ... * } extraArgs Additional arguments to pass to selector .
*
* @ return { * } Selector result .
* /
function callSelector ( /* source, ...extraArgs */ ) {
var len = arguments . length ,
cache , node , i , args , dependants ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// Create copy of arguments (avoid leaking deoptimization).
args = new Array ( len ) ;
for ( i = 0 ; i < len ; i ++ ) {
args [ i ] = arguments [ i ] ;
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
dependants = getDependants . apply ( null , args ) ;
cache = getCache ( dependants ) ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// If not guaranteed uniqueness by dependants (primitive type or lack
// of WeakMap support), shallow compare against last dependants and, if
// references have changed, destroy cache to recalculate result.
if ( ! cache . isUniqueByDependants ) {
if ( cache . lastDependants && ! isShallowEqual ( dependants , cache . lastDependants , 0 ) ) {
cache . clear ( ) ;
}
2020-02-10 17:33:27 -05:00
2021-05-25 01:22:08 -04:00
cache . lastDependants = dependants ;
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
node = cache . head ;
while ( node ) {
// Check whether node arguments match arguments
if ( ! isShallowEqual ( node . args , args , 1 ) ) {
node = node . next ;
continue ;
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// At this point we can assume we've found a match
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// Surface matched node to head if not already
if ( node !== cache . head ) {
// Adjust siblings to point to each other.
node . prev . next = node . next ;
if ( node . next ) {
node . next . prev = node . prev ;
}
2019-10-15 12:17:12 -04:00
2021-05-25 01:22:08 -04:00
node . next = cache . head ;
node . prev = null ;
cache . head . prev = node ;
cache . head = node ;
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// Return immediately
return node . val ;
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// No cached value found. Continue to insertion phase:
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
node = {
// Generate the result from original function
val : selector . apply ( null , args ) ,
} ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// Avoid including the source object in the cache.
args [ 0 ] = null ;
node . args = args ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// Don't need to check whether node is already head, since it would
// have been returned above already if it was
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
// Shift existing head down list
if ( cache . head ) {
cache . head . prev = node ;
node . next = cache . head ;
}
cache . head = node ;
2020-01-22 17:06:21 -05:00
2021-05-25 01:22:08 -04:00
return node . val ;
}
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
callSelector . getDependants = getDependants ;
callSelector . clear = clear ;
clear ( ) ;
2018-12-13 23:41:57 -05:00
2021-05-25 01:22:08 -04:00
return callSelector ;
2020-01-22 17:06:21 -05:00
} ) ;
2018-12-13 23:41:57 -05:00
/***/ } ) ,
2021-05-25 01:22:08 -04:00
/***/ "rePB" :
2020-01-08 06:57:23 -05:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _defineProperty ; } ) ;
function _defineProperty ( obj , key , value ) {
if ( key in obj ) {
Object . defineProperty ( obj , key , {
value : value ,
enumerable : true ,
configurable : true ,
writable : true
} ) ;
} else {
obj [ key ] = value ;
}
return obj ;
}
2020-02-06 16:03:31 -05:00
/***/ } ) ,
2021-05-25 01:22:08 -04:00
/***/ "tI+e" :
2020-02-06 16:03:31 -05:00
/***/ ( function ( module , exports ) {
2021-05-25 01:22:08 -04:00
( function ( ) { module . exports = window [ "wp" ] [ "components" ] ; } ( ) ) ;
/***/ } ) ,
/***/ "w95h" :
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
/* harmony import */ var _wordpress _element _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( "GRId" ) ;
/* harmony import */ var _wordpress _element _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _wordpress _element _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/* harmony import */ var _wordpress _primitives _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( "Tqx9" ) ;
/* harmony import */ var _wordpress _primitives _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _wordpress _primitives _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ * *
* WordPress dependencies
* /
var close = Object ( _wordpress _element _ _WEBPACK _IMPORTED _MODULE _0 _ _ [ "createElement" ] ) ( _wordpress _primitives _ _WEBPACK _IMPORTED _MODULE _1 _ _ [ "SVG" ] , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , Object ( _wordpress _element _ _WEBPACK _IMPORTED _MODULE _0 _ _ [ "createElement" ] ) ( _wordpress _primitives _ _WEBPACK _IMPORTED _MODULE _1 _ _ [ "Path" ] , {
d : "M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"
} ) ) ;
/* harmony default export */ _ _webpack _exports _ _ [ "a" ] = ( close ) ;
2020-02-06 16:03:31 -05:00
2018-12-13 23:41:57 -05:00
/***/ } )
2018-12-17 22:14:52 -05:00
/******/ } ) ;