2023-09-21 15:26:32 +02:00
/******/ ( function ( ) { // webpackBootstrap
2022-04-11 14:04:30 +02:00
/******/ var _ _webpack _modules _ _ = ( {
Editor: Update block editor packages for WordPress 5.8.1.
The following packages were updated:
- @wordpress/a11y to `3.1.2`
- @wordpress/annotations to `2.1.6`
- @wordpress/api-fetch to `5.1.2`
- @wordpress/autop to `3.1.2`
- @wordpress/babel-preset-default to `6.2.1`
- @wordpress/blob to `3.1.2`
- @wordpress/block-directory to `2.1.21`
- @wordpress/block-editor to `6.1.14`
- @wordpress/block-library to `3.2.19`
- @wordpress/block-serialization-default-parser to `4.1.2`
- @wordpress/blocks to `9.1.8`
- @wordpress/components to `14.1.11`
- @wordpress/compose to `4.1.6`
- @wordpress/core-data to `3.1.12`
- @wordpress/customize-widgets to `1.0.20`
- @wordpress/data-controls to `2.1.6`
- @wordpress/data to `5.1.6`
- @wordpress/date to `4.1.2`
- @wordpress/deprecated to `3.1.2`
- @wordpress/dom-ready to `3.1.2`
- @wordpress/dom to `3.1.5`
- @wordpress/e2e-test-utils to `5.3.1`
- @wordpress/edit-post to `4.1.21`
- @wordpress/edit-widgets to `2.1.21`
- @wordpress/editor to `10.1.17`
- @wordpress/element to `3.1.2`
- @wordpress/escape-html to `2.1.2`
- @wordpress/format-library to `2.1.14`
- @wordpress/html-entities to `3.1.2`
- @wordpress/i18n to `4.1.2`
- @wordpress/icons to `4.0.3`
- @wordpress/interface to `3.1.12`
- @wordpress/keyboard-shortcuts to `2.1.7`
- @wordpress/keycodes to `3.1.2`
- @wordpress/list-reusable-blocks to `2.1.11`
- @wordpress/media-utils to `2.1.2`
- @wordpress/notices to `3.1.6`
- @wordpress/nux to `4.1.11`
- @wordpress/plugins to `3.1.6`
- @wordpress/primitives to `2.1.2`
- @wordpress/priority-queue to `2.1.2`
- @wordpress/react-i18n to `2.1.2`
- @wordpress/redux-routine to `4.1.2`
- @wordpress/reusable-blocks to `2.1.17`
- @wordpress/rich-text to `4.1.6`
- @wordpress/scripts to `16.1.5`
- @wordpress/server-side-render to `2.1.12`
- @wordpress/shortcode to `3.1.2`
- @wordpress/url to `3.1.2`
- @wordpress/viewport to `3.1.6`
- @wordpress/warning to `2.1.2`
- @wordpress/widgets to `1.1.19`
- @wordpress/wordcount to `3.1.2`
Props oandregal, juanmaguitar, gziolo, jblz, talldanwp, ribaricplusplus, peterwisoncc, youknowriad, paaljoachim, kreppar, ellatrix, aristath, walbo, ajlende, kevin940726, mamaduka, ntsekouras, toro_unit, mkaz, joen, noisysocks, zieladam, andraganescu, antonvlasenko, terraling, dariak, vladytimy, circlecube, desrosj.
Fixes #54052, #52818.
Built from https://develop.svn.wordpress.org/trunk@51719
git-svn-id: http://core.svn.wordpress.org/trunk@51325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-01 21:08:24 +02:00
2022-04-11 14:04:30 +02:00
/***/ 4403 :
2023-09-21 15:26:32 +02:00
/***/ ( function ( module , exports ) {
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
var _ _WEBPACK _AMD _DEFINE _ARRAY _ _ , _ _WEBPACK _AMD _DEFINE _RESULT _ _ ; / * !
2022-09-20 17:43:29 +02:00
Copyright ( c ) 2018 Jed Watson .
Licensed under the MIT License ( MIT ) , see
http : //jedwatson.github.io/classnames
2022-04-11 14:04:30 +02:00
* /
/* global define */
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
( function ( ) {
'use strict' ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
var hasOwn = { } . hasOwnProperty ;
2022-09-20 17:43:29 +02:00
var nativeCodeString = '[native code]' ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
function classNames ( ) {
var classes = [ ] ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
for ( var i = 0 ; i < arguments . length ; i ++ ) {
var arg = arguments [ i ] ;
if ( ! arg ) continue ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
var argType = typeof arg ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
if ( argType === 'string' || argType === 'number' ) {
classes . push ( arg ) ;
} else if ( Array . isArray ( arg ) ) {
if ( arg . length ) {
var inner = classNames . apply ( null , arg ) ;
if ( inner ) {
classes . push ( inner ) ;
}
}
} else if ( argType === 'object' ) {
2022-09-20 17:43:29 +02:00
if ( arg . toString !== Object . prototype . toString && ! arg . toString . toString ( ) . includes ( '[native code]' ) ) {
2022-04-11 14:04:30 +02:00
classes . push ( arg . toString ( ) ) ;
2022-09-20 17:43:29 +02:00
continue ;
}
for ( var key in arg ) {
if ( hasOwn . call ( arg , key ) && arg [ key ] ) {
classes . push ( key ) ;
}
2022-04-11 14:04:30 +02:00
}
}
}
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
return classes . join ( ' ' ) ;
}
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
if ( true && module . exports ) {
classNames . default = classNames ;
module . exports = classNames ;
} else if ( true ) {
// register as 'classnames', consistent with npm package name
! ( _ _WEBPACK _AMD _DEFINE _ARRAY _ _ = [ ] , _ _WEBPACK _AMD _DEFINE _RESULT _ _ = ( function ( ) {
return classNames ;
} ) . apply ( exports , _ _WEBPACK _AMD _DEFINE _ARRAY _ _ ) ,
_ _WEBPACK _AMD _DEFINE _RESULT _ _ !== undefined && ( module . exports = _ _WEBPACK _AMD _DEFINE _RESULT _ _ ) ) ;
} else { }
} ( ) ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
/***/ } )
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
/******/ } ) ;
/************************************************************************/
/******/ // The module cache
/******/ var _ _webpack _module _cache _ _ = { } ;
/******/
/******/ // The require function
/******/ function _ _webpack _require _ _ ( moduleId ) {
/******/ // Check if module is in cache
/******/ var cachedModule = _ _webpack _module _cache _ _ [ moduleId ] ;
/******/ if ( cachedModule !== undefined ) {
/******/ return cachedModule . exports ;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = _ _webpack _module _cache _ _ [ moduleId ] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports : { }
/******/ } ;
/******/
/******/ // Execute the module function
/******/ _ _webpack _modules _ _ [ moduleId ] ( module , module . exports , _ _webpack _require _ _ ) ;
/******/
/******/ // Return the exports of the module
/******/ return module . exports ;
/******/ }
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
2023-09-21 15:26:32 +02:00
/******/ ! function ( ) {
2022-04-11 14:04:30 +02:00
/******/ // getDefaultExport function for compatibility with non-harmony modules
2023-09-21 15:26:32 +02:00
/******/ _ _webpack _require _ _ . n = function ( module ) {
2022-04-11 14:04:30 +02:00
/******/ var getter = module && module . _ _esModule ?
2023-09-21 15:26:32 +02:00
/******/ function ( ) { return module [ 'default' ] ; } :
/******/ function ( ) { return module ; } ;
2022-04-11 14:04:30 +02:00
/******/ _ _webpack _require _ _ . d ( getter , { a : getter } ) ;
/******/ return getter ;
/******/ } ;
2023-09-21 15:26:32 +02:00
/******/ } ( ) ;
2022-04-11 14:04:30 +02:00
/******/
/******/ /* webpack/runtime/define property getters */
2023-09-21 15:26:32 +02:00
/******/ ! function ( ) {
2022-04-11 14:04:30 +02:00
/******/ // define getter functions for harmony exports
2023-09-21 15:26:32 +02:00
/******/ _ _webpack _require _ _ . d = function ( exports , definition ) {
2022-04-11 14:04:30 +02:00
/******/ 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 ] } ) ;
/******/ }
/******/ }
/******/ } ;
2023-09-21 15:26:32 +02:00
/******/ } ( ) ;
2022-04-11 14:04:30 +02:00
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
2023-09-21 15:26:32 +02:00
/******/ ! function ( ) {
/******/ _ _webpack _require _ _ . o = function ( obj , prop ) { return Object . prototype . hasOwnProperty . call ( obj , prop ) ; }
/******/ } ( ) ;
2022-04-11 14:04:30 +02:00
/******/
/******/ /* webpack/runtime/make namespace object */
2023-09-21 15:26:32 +02:00
/******/ ! function ( ) {
2022-04-11 14:04:30 +02:00
/******/ // define __esModule on exports
2023-09-21 15:26:32 +02:00
/******/ _ _webpack _require _ _ . r = function ( exports ) {
2022-04-11 14:04:30 +02:00
/******/ if ( typeof Symbol !== 'undefined' && Symbol . toStringTag ) {
/******/ Object . defineProperty ( exports , Symbol . toStringTag , { value : 'Module' } ) ;
/******/ }
/******/ Object . defineProperty ( exports , '__esModule' , { value : true } ) ;
/******/ } ;
2023-09-21 15:26:32 +02:00
/******/ } ( ) ;
2022-04-11 14:04:30 +02:00
/******/
/************************************************************************/
var _ _webpack _exports _ _ = { } ;
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
2023-09-21 15:26:32 +02:00
! function ( ) {
2021-05-25 10:40:25 +02:00
"use strict" ;
// ESM COMPAT FLAG
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
// EXPORTS
2022-04-11 14:04:30 +02:00
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
2023-09-21 15:26:32 +02:00
initialize : function ( ) { return /* binding */ initialize ; } ,
initializeEditor : function ( ) { return /* binding */ initializeEditor ; } ,
2023-09-26 16:23:26 +02:00
reinitializeEditor : function ( ) { return /* binding */ reinitializeEditor ; } ,
store : function ( ) { return /* reexport */ store _store ; }
2022-04-11 14:04:30 +02:00
} ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
// NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/store/actions.js
2021-05-25 10:40:25 +02:00
var actions _namespaceObject = { } ;
_ _webpack _require _ _ . r ( actions _namespaceObject ) ;
2022-04-11 14:04:30 +02:00
_ _webpack _require _ _ . d ( actions _namespaceObject , {
2023-09-21 15:26:32 +02:00
closeModal : function ( ) { return closeModal ; } ,
disableComplementaryArea : function ( ) { return disableComplementaryArea ; } ,
enableComplementaryArea : function ( ) { return enableComplementaryArea ; } ,
openModal : function ( ) { return openModal ; } ,
pinItem : function ( ) { return pinItem ; } ,
setDefaultComplementaryArea : function ( ) { return setDefaultComplementaryArea ; } ,
setFeatureDefaults : function ( ) { return setFeatureDefaults ; } ,
setFeatureValue : function ( ) { return setFeatureValue ; } ,
toggleFeature : function ( ) { return toggleFeature ; } ,
unpinItem : function ( ) { return unpinItem ; }
2022-04-11 14:04:30 +02:00
} ) ;
// NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/store/selectors.js
var selectors _namespaceObject = { } ;
_ _webpack _require _ _ . r ( selectors _namespaceObject ) ;
_ _webpack _require _ _ . d ( selectors _namespaceObject , {
2023-09-21 15:26:32 +02:00
getActiveComplementaryArea : function ( ) { return getActiveComplementaryArea ; } ,
isComplementaryAreaLoading : function ( ) { return isComplementaryAreaLoading ; } ,
isFeatureActive : function ( ) { return isFeatureActive ; } ,
isItemPinned : function ( ) { return isItemPinned ; } ,
isModalActive : function ( ) { return isModalActive ; }
2022-04-11 14:04:30 +02:00
} ) ;
// NAMESPACE OBJECT: ./node_modules/@wordpress/edit-widgets/build-module/store/actions.js
var store _actions _namespaceObject = { } ;
_ _webpack _require _ _ . r ( store _actions _namespaceObject ) ;
_ _webpack _require _ _ . d ( store _actions _namespaceObject , {
2023-09-21 15:26:32 +02:00
closeGeneralSidebar : function ( ) { return closeGeneralSidebar ; } ,
moveBlockToWidgetArea : function ( ) { return moveBlockToWidgetArea ; } ,
persistStubPost : function ( ) { return persistStubPost ; } ,
saveEditedWidgetAreas : function ( ) { return saveEditedWidgetAreas ; } ,
saveWidgetArea : function ( ) { return saveWidgetArea ; } ,
saveWidgetAreas : function ( ) { return saveWidgetAreas ; } ,
setIsInserterOpened : function ( ) { return setIsInserterOpened ; } ,
setIsListViewOpened : function ( ) { return setIsListViewOpened ; } ,
setIsWidgetAreaOpen : function ( ) { return setIsWidgetAreaOpen ; } ,
setWidgetAreasOpenState : function ( ) { return setWidgetAreasOpenState ; } ,
setWidgetIdForClientId : function ( ) { return setWidgetIdForClientId ; }
2022-04-11 14:04:30 +02:00
} ) ;
2021-05-25 10:40:25 +02:00
// NAMESPACE OBJECT: ./node_modules/@wordpress/edit-widgets/build-module/store/resolvers.js
var resolvers _namespaceObject = { } ;
_ _webpack _require _ _ . r ( resolvers _namespaceObject ) ;
2022-04-11 14:04:30 +02:00
_ _webpack _require _ _ . d ( resolvers _namespaceObject , {
2023-09-21 15:26:32 +02:00
getWidgetAreas : function ( ) { return getWidgetAreas ; } ,
getWidgets : function ( ) { return getWidgets ; }
2022-04-11 14:04:30 +02:00
} ) ;
2021-05-25 10:40:25 +02:00
// NAMESPACE OBJECT: ./node_modules/@wordpress/edit-widgets/build-module/store/selectors.js
2022-04-11 14:04:30 +02:00
var store _selectors _namespaceObject = { } ;
_ _webpack _require _ _ . r ( store _selectors _namespaceObject ) ;
_ _webpack _require _ _ . d ( store _selectors _namespaceObject , {
2023-09-21 15:26:32 +02:00
_ _experimentalGetInsertionPoint : function ( ) { return _ _experimentalGetInsertionPoint ; } ,
canInsertBlockInWidgetArea : function ( ) { return canInsertBlockInWidgetArea ; } ,
getEditedWidgetAreas : function ( ) { return getEditedWidgetAreas ; } ,
getIsWidgetAreaOpen : function ( ) { return getIsWidgetAreaOpen ; } ,
getParentWidgetAreaBlock : function ( ) { return getParentWidgetAreaBlock ; } ,
getReferenceWidgetBlocks : function ( ) { return getReferenceWidgetBlocks ; } ,
getWidget : function ( ) { return getWidget ; } ,
getWidgetAreaForWidgetId : function ( ) { return getWidgetAreaForWidgetId ; } ,
getWidgetAreas : function ( ) { return selectors _getWidgetAreas ; } ,
getWidgets : function ( ) { return selectors _getWidgets ; } ,
isInserterOpened : function ( ) { return isInserterOpened ; } ,
isListViewOpened : function ( ) { return isListViewOpened ; } ,
isSavingWidgetAreas : function ( ) { return isSavingWidgetAreas ; }
2022-04-11 14:04:30 +02:00
} ) ;
2021-05-25 10:40:25 +02:00
// NAMESPACE OBJECT: ./node_modules/@wordpress/edit-widgets/build-module/blocks/widget-area/index.js
var widget _area _namespaceObject = { } ;
_ _webpack _require _ _ . r ( widget _area _namespaceObject ) ;
2022-04-11 14:04:30 +02:00
_ _webpack _require _ _ . d ( widget _area _namespaceObject , {
2023-09-21 15:26:32 +02:00
metadata : function ( ) { return metadata ; } ,
name : function ( ) { return widget _area _name ; } ,
settings : function ( ) { return settings ; }
2022-04-11 14:04:30 +02:00
} ) ;
2021-11-08 15:29:21 +01:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","element"]
2023-09-21 15:26:32 +02:00
var external _wp _element _namespaceObject = window [ "wp" ] [ "element" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","blocks"]
2023-09-21 15:26:32 +02:00
var external _wp _blocks _namespaceObject = window [ "wp" ] [ "blocks" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","data"]
2023-09-21 15:26:32 +02:00
var external _wp _data _namespaceObject = window [ "wp" ] [ "data" ] ;
2023-02-07 08:04:52 +01:00
; // CONCATENATED MODULE: external ["wp","deprecated"]
2023-09-21 15:26:32 +02:00
var external _wp _deprecated _namespaceObject = window [ "wp" ] [ "deprecated" ] ;
2023-02-07 08:04:52 +01:00
var external _wp _deprecated _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( external _wp _deprecated _namespaceObject ) ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","blockLibrary"]
2023-09-21 15:26:32 +02:00
var external _wp _blockLibrary _namespaceObject = window [ "wp" ] [ "blockLibrary" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","coreData"]
2023-09-21 15:26:32 +02:00
var external _wp _coreData _namespaceObject = window [ "wp" ] [ "coreData" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","widgets"]
2023-09-21 15:26:32 +02:00
var external _wp _widgets _namespaceObject = window [ "wp" ] [ "widgets" ] ;
2022-04-12 17:12:47 +02:00
; // CONCATENATED MODULE: external ["wp","preferences"]
2023-09-21 15:26:32 +02:00
var external _wp _preferences _namespaceObject = window [ "wp" ] [ "preferences" ] ;
2022-04-12 17:12:47 +02:00
; // CONCATENATED MODULE: external ["wp","apiFetch"]
2023-09-21 15:26:32 +02:00
var external _wp _apiFetch _namespaceObject = window [ "wp" ] [ "apiFetch" ] ;
2022-04-12 17:12:47 +02:00
var external _wp _apiFetch _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( external _wp _apiFetch _namespaceObject ) ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/store/reducer.js
/ * *
* WordPress dependencies
* /
2023-09-26 16:23:26 +02:00
2022-04-12 17:12:47 +02:00
/ * *
* Controls the open state of the widget areas .
*
* @ param { Object } state Redux state .
* @ param { Object } action Redux action .
*
* @ return { Array } Updated state .
* /
2023-06-27 16:24:19 +02:00
function widgetAreasOpenState ( state = { } , action ) {
2022-04-12 17:12:47 +02:00
const {
type
} = action ;
switch ( type ) {
case 'SET_WIDGET_AREAS_OPEN_STATE' :
{
return action . widgetAreasOpenState ;
}
case 'SET_IS_WIDGET_AREA_OPEN' :
{
const {
clientId ,
isOpen
} = action ;
2023-09-26 16:23:26 +02:00
return {
... state ,
2022-04-12 17:12:47 +02:00
[ clientId ] : isOpen
} ;
}
default :
{
return state ;
}
}
}
2023-09-26 16:23:26 +02:00
2022-04-12 17:12:47 +02:00
/ * *
* Reducer to set the block inserter panel open or closed .
*
* Note : this reducer interacts with the list view panel reducer
* to make sure that only one of the two panels is open at the same time .
*
* @ param { Object } state Current state .
* @ param { Object } action Dispatched action .
* /
2023-06-27 16:24:19 +02:00
function blockInserterPanel ( state = false , action ) {
2022-04-12 17:12:47 +02:00
switch ( action . type ) {
case 'SET_IS_LIST_VIEW_OPENED' :
return action . isOpen ? false : state ;
case 'SET_IS_INSERTER_OPENED' :
return action . value ;
}
return state ;
}
2023-09-26 16:23:26 +02:00
2022-04-12 17:12:47 +02:00
/ * *
* Reducer to set the list view panel open or closed .
*
* Note : this reducer interacts with the inserter panel reducer
* to make sure that only one of the two panels is open at the same time .
*
* @ param { Object } state Current state .
* @ param { Object } action Dispatched action .
* /
2023-06-27 16:24:19 +02:00
function listViewPanel ( state = false , action ) {
2022-04-12 17:12:47 +02:00
switch ( action . type ) {
case 'SET_IS_INSERTER_OPENED' :
return action . value ? false : state ;
case 'SET_IS_LIST_VIEW_OPENED' :
return action . isOpen ;
}
return state ;
}
2023-09-21 15:26:32 +02:00
/* harmony default export */ var reducer = ( ( 0 , external _wp _data _namespaceObject . combineReducers ) ( {
2022-04-12 17:12:47 +02:00
blockInserterPanel ,
listViewPanel ,
widgetAreasOpenState
} ) ) ;
; // CONCATENATED MODULE: external ["wp","i18n"]
2023-09-21 15:26:32 +02:00
var external _wp _i18n _namespaceObject = window [ "wp" ] [ "i18n" ] ;
2022-04-12 17:12:47 +02:00
; // CONCATENATED MODULE: external ["wp","notices"]
2023-09-21 15:26:32 +02:00
var external _wp _notices _namespaceObject = window [ "wp" ] [ "notices" ] ;
2022-04-11 14:04:30 +02:00
// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = _ _webpack _require _ _ ( 4403 ) ;
var classnames _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( classnames ) ;
; // CONCATENATED MODULE: external ["wp","components"]
2023-09-21 15:26:32 +02:00
var external _wp _components _namespaceObject = window [ "wp" ] [ "components" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","primitives"]
2023-09-21 15:26:32 +02:00
var external _wp _primitives _namespaceObject = window [ "wp" ] [ "primitives" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js
2021-11-08 15:29:21 +01:00
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2022-04-11 14:04:30 +02:00
const check = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
d : "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
} ) ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var library _check = ( check ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/star-filled.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const starFilled = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
d : "M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z"
} ) ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var star _filled = ( starFilled ) ;
2021-11-15 13:50:17 +01:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/star-empty.js
2021-11-08 15:29:21 +01:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const starEmpty = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
fillRule : "evenodd" ,
d : "M9.706 8.646a.25.25 0 01-.188.137l-4.626.672a.25.25 0 00-.139.427l3.348 3.262a.25.25 0 01.072.222l-.79 4.607a.25.25 0 00.362.264l4.138-2.176a.25.25 0 01.233 0l4.137 2.175a.25.25 0 00.363-.263l-.79-4.607a.25.25 0 01.072-.222l3.347-3.262a.25.25 0 00-.139-.427l-4.626-.672a.25.25 0 01-.188-.137l-2.069-4.192a.25.25 0 00-.448 0L9.706 8.646zM12 7.39l-.948 1.921a1.75 1.75 0 01-1.317.957l-2.12.308 1.534 1.495c.412.402.6.982.503 1.55l-.362 2.11 1.896-.997a1.75 1.75 0 011.629 0l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39z" ,
clipRule : "evenodd"
2021-05-25 10:40:25 +02:00
} ) ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var star _empty = ( starEmpty ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","viewport"]
2023-09-21 15:26:32 +02:00
var external _wp _viewport _namespaceObject = window [ "wp" ] [ "viewport" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js
2021-11-08 15:29:21 +01:00
/ * *
* WordPress dependencies
* /
2022-04-11 14:04:30 +02:00
const closeSmall = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
d : "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z"
} ) ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var close _small = ( closeSmall ) ;
2021-11-08 15:29:21 +01:00
2022-04-12 17:12:47 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/actions.js
2022-04-11 14:04:30 +02:00
/ * *
* WordPress dependencies
* /
2021-11-08 15:29:21 +01:00
2023-09-26 16:23:26 +02:00
2022-09-20 17:43:29 +02:00
/ * *
* Set a default complementary area .
*
* @ param { string } scope Complementary area scope .
* @ param { string } area Area identifier .
*
* @ return { Object } Action object .
* /
const setDefaultComplementaryArea = ( scope , area ) => ( {
type : 'SET_DEFAULT_COMPLEMENTARY_AREA' ,
scope ,
area
} ) ;
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
2022-04-12 17:12:47 +02:00
* Enable the complementary area .
2022-04-11 14:04:30 +02:00
*
2022-04-12 17:12:47 +02:00
* @ param { string } scope Complementary area scope .
* @ param { string } area Area identifier .
2022-04-11 14:04:30 +02:00
* /
2023-06-27 16:24:19 +02:00
const enableComplementaryArea = ( scope , area ) => ( {
registry ,
dispatch
} ) => {
2022-04-12 17:12:47 +02:00
// Return early if there's no area.
if ( ! area ) {
return ;
2021-11-08 15:29:21 +01:00
}
2022-09-20 17:43:29 +02:00
const isComplementaryAreaVisible = registry . select ( external _wp _preferences _namespaceObject . store ) . get ( scope , 'isComplementaryAreaVisible' ) ;
if ( ! isComplementaryAreaVisible ) {
registry . dispatch ( external _wp _preferences _namespaceObject . store ) . set ( scope , 'isComplementaryAreaVisible' , true ) ;
}
dispatch ( {
type : 'ENABLE_COMPLEMENTARY_AREA' ,
scope ,
area
} ) ;
2022-04-12 17:12:47 +02:00
} ;
2023-09-26 16:23:26 +02:00
2021-11-08 15:29:21 +01:00
/ * *
2022-04-12 17:12:47 +02:00
* Disable the complementary area .
2022-04-11 14:04:30 +02:00
*
2022-04-12 17:12:47 +02:00
* @ param { string } scope Complementary area scope .
2021-11-08 15:29:21 +01:00
* /
2023-06-27 16:24:19 +02:00
const disableComplementaryArea = scope => ( {
registry
} ) => {
2022-09-20 17:43:29 +02:00
const isComplementaryAreaVisible = registry . select ( external _wp _preferences _namespaceObject . store ) . get ( scope , 'isComplementaryAreaVisible' ) ;
if ( isComplementaryAreaVisible ) {
registry . dispatch ( external _wp _preferences _namespaceObject . store ) . set ( scope , 'isComplementaryAreaVisible' , false ) ;
}
2022-04-12 17:12:47 +02:00
} ;
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-12 17:12:47 +02:00
* Pins an item .
2021-05-25 10:40:25 +02:00
*
2022-04-12 17:12:47 +02:00
* @ param { string } scope Item scope .
* @ param { string } item Item identifier .
2022-04-11 14:04:30 +02:00
*
* @ return { Object } Action object .
2021-05-25 10:40:25 +02:00
* /
2023-06-27 16:24:19 +02:00
const pinItem = ( scope , item ) => ( {
registry
} ) => {
2022-04-12 17:12:47 +02:00
// Return early if there's no item.
if ( ! item ) {
return ;
}
2023-09-26 16:23:26 +02:00
const pinnedItems = registry . select ( external _wp _preferences _namespaceObject . store ) . get ( scope , 'pinnedItems' ) ;
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
// The item is already pinned, there's nothing to do.
2023-06-27 16:24:19 +02:00
if ( pinnedItems ? . [ item ] === true ) {
2022-04-12 17:12:47 +02:00
return ;
}
2023-09-26 16:23:26 +02:00
registry . dispatch ( external _wp _preferences _namespaceObject . store ) . set ( scope , 'pinnedItems' , {
... pinnedItems ,
2022-04-12 17:12:47 +02:00
[ item ] : true
} ) ;
} ;
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-12 17:12:47 +02:00
* Unpins an item .
2021-05-25 10:40:25 +02:00
*
2022-04-12 17:12:47 +02:00
* @ param { string } scope Item scope .
* @ param { string } item Item identifier .
2021-05-25 10:40:25 +02:00
* /
2023-06-27 16:24:19 +02:00
const unpinItem = ( scope , item ) => ( {
registry
} ) => {
2022-04-12 17:12:47 +02:00
// Return early if there's no item.
if ( ! item ) {
return ;
}
const pinnedItems = registry . select ( external _wp _preferences _namespaceObject . store ) . get ( scope , 'pinnedItems' ) ;
2023-09-26 16:23:26 +02:00
registry . dispatch ( external _wp _preferences _namespaceObject . store ) . set ( scope , 'pinnedItems' , {
... pinnedItems ,
2022-04-12 17:12:47 +02:00
[ item ] : false
} ) ;
} ;
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Returns an action object used in signalling that a feature should be toggled .
*
* @ param { string } scope The feature scope ( e . g . core / edit - post ) .
* @ param { string } featureName The feature name .
* /
function toggleFeature ( scope , featureName ) {
2023-06-27 16:24:19 +02:00
return function ( {
registry
} ) {
2022-05-10 16:49:35 +02:00
external _wp _deprecated _default ( ) ( ` dispatch( 'core/interface' ).toggleFeature ` , {
2022-04-12 17:12:47 +02:00
since : '6.0' ,
2022-05-10 16:49:35 +02:00
alternative : ` dispatch( 'core/preferences' ).toggle `
2022-04-12 17:12:47 +02:00
} ) ;
registry . dispatch ( external _wp _preferences _namespaceObject . store ) . toggle ( scope , featureName ) ;
2022-04-11 14:04:30 +02:00
} ;
}
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Returns an action object used in signalling that a feature should be set to
* a true or false value
*
* @ param { string } scope The feature scope ( e . g . core / edit - post ) .
* @ param { string } featureName The feature name .
* @ param { boolean } value The value to set .
*
* @ return { Object } Action object .
* /
function setFeatureValue ( scope , featureName , value ) {
2023-06-27 16:24:19 +02:00
return function ( {
registry
} ) {
2022-05-10 16:49:35 +02:00
external _wp _deprecated _default ( ) ( ` dispatch( 'core/interface' ).setFeatureValue ` , {
2022-04-12 17:12:47 +02:00
since : '6.0' ,
2022-05-10 16:49:35 +02:00
alternative : ` dispatch( 'core/preferences' ).set `
2022-04-12 17:12:47 +02:00
} ) ;
registry . dispatch ( external _wp _preferences _namespaceObject . store ) . set ( scope , featureName , ! ! value ) ;
2022-04-11 14:04:30 +02:00
} ;
}
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Returns an action object used in signalling that defaults should be set for features .
*
* @ param { string } scope The feature scope ( e . g . core / edit - post ) .
* @ param { Object < string , boolean > } defaults A key / value map of feature names to values .
*
* @ return { Object } Action object .
* /
function setFeatureDefaults ( scope , defaults ) {
2023-06-27 16:24:19 +02:00
return function ( {
registry
} ) {
2022-05-10 16:49:35 +02:00
external _wp _deprecated _default ( ) ( ` dispatch( 'core/interface' ).setFeatureDefaults ` , {
2022-04-12 17:12:47 +02:00
since : '6.0' ,
2022-05-10 16:49:35 +02:00
alternative : ` dispatch( 'core/preferences' ).setDefaults `
2022-04-12 17:12:47 +02:00
} ) ;
registry . dispatch ( external _wp _preferences _namespaceObject . store ) . setDefaults ( scope , defaults ) ;
2022-04-11 14:04:30 +02:00
} ;
}
2023-09-26 16:23:26 +02:00
2023-06-28 09:04:13 +02:00
/ * *
* Returns an action object used in signalling that the user opened a modal .
*
* @ param { string } name A string that uniquely identifies the modal .
*
* @ return { Object } Action object .
* /
function openModal ( name ) {
return {
type : 'OPEN_MODAL' ,
name
} ;
}
2023-09-26 16:23:26 +02:00
2023-06-28 09:04:13 +02:00
/ * *
* Returns an action object signalling that the user closed a modal .
*
* @ return { Object } Action object .
* /
function closeModal ( ) {
return {
type : 'CLOSE_MODAL'
} ;
}
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/selectors.js
/ * *
2022-04-12 17:12:47 +02:00
* WordPress dependencies
2022-04-11 14:04:30 +02:00
* /
2021-05-25 10:40:25 +02:00
2022-04-12 17:12:47 +02:00
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Returns the complementary area that is active in a given scope .
*
* @ param { Object } state Global application state .
* @ param { string } scope Item scope .
*
2022-09-20 17:43:29 +02:00
* @ return { string | null | undefined } The complementary area that is active in the given scope .
2022-04-11 14:04:30 +02:00
* /
2022-04-12 17:12:47 +02:00
const getActiveComplementaryArea = ( 0 , external _wp _data _namespaceObject . createRegistrySelector ) ( select => ( state , scope ) => {
2023-09-26 16:23:26 +02:00
const isComplementaryAreaVisible = select ( external _wp _preferences _namespaceObject . store ) . get ( scope , 'isComplementaryAreaVisible' ) ;
// Return `undefined` to indicate that the user has never toggled
2022-09-20 17:43:29 +02:00
// visibility, this is the vanilla default. Other code relies on this
// nuance in the return value.
if ( isComplementaryAreaVisible === undefined ) {
return undefined ;
2023-09-26 16:23:26 +02:00
}
2022-09-20 17:43:29 +02:00
2023-09-26 16:23:26 +02:00
// Return `null` to indicate the user hid the complementary area.
2023-06-27 16:24:19 +02:00
if ( isComplementaryAreaVisible === false ) {
2022-09-20 17:43:29 +02:00
return null ;
}
2023-06-27 16:24:19 +02:00
return state ? . complementaryAreas ? . [ scope ] ;
} ) ;
const isComplementaryAreaLoading = ( 0 , external _wp _data _namespaceObject . createRegistrySelector ) ( select => ( state , scope ) => {
const isVisible = select ( external _wp _preferences _namespaceObject . store ) . get ( scope , 'isComplementaryAreaVisible' ) ;
const identifier = state ? . complementaryAreas ? . [ scope ] ;
return isVisible && identifier === undefined ;
2022-04-12 17:12:47 +02:00
} ) ;
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Returns a boolean indicating if an item is pinned or not .
2021-05-25 10:40:25 +02:00
*
2022-04-11 14:04:30 +02:00
* @ param { Object } state Global application state .
* @ param { string } scope Scope .
* @ param { string } item Item to check .
*
* @ return { boolean } True if the item is pinned and false otherwise .
2021-05-25 10:40:25 +02:00
* /
2022-04-12 17:12:47 +02:00
const isItemPinned = ( 0 , external _wp _data _namespaceObject . createRegistrySelector ) ( select => ( state , scope , item ) => {
var _pinnedItems$item ;
const pinnedItems = select ( external _wp _preferences _namespaceObject . store ) . get ( scope , 'pinnedItems' ) ;
2023-06-27 16:24:19 +02:00
return ( _pinnedItems$item = pinnedItems ? . [ item ] ) !== null && _pinnedItems$item !== void 0 ? _pinnedItems$item : true ;
2022-04-12 17:12:47 +02:00
} ) ;
2023-09-26 16:23:26 +02:00
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* Returns a boolean indicating whether a feature is active for a particular
* scope .
2021-11-08 15:29:21 +01:00
*
2022-04-11 14:04:30 +02:00
* @ param { Object } state The store state .
* @ param { string } scope The scope of the feature ( e . g . core / edit - post ) .
* @ param { string } featureName The name of the feature .
2021-11-08 15:29:21 +01:00
*
2022-04-11 14:04:30 +02:00
* @ return { boolean } Is the feature enabled ?
2021-11-08 15:29:21 +01:00
* /
2022-04-12 17:12:47 +02:00
const isFeatureActive = ( 0 , external _wp _data _namespaceObject . createRegistrySelector ) ( select => ( state , scope , featureName ) => {
2022-05-10 16:49:35 +02:00
external _wp _deprecated _default ( ) ( ` select( 'core/interface' ).isFeatureActive( scope, featureName ) ` , {
2022-04-12 17:12:47 +02:00
since : '6.0' ,
2022-05-10 16:49:35 +02:00
alternative : ` select( 'core/preferences' ).get( scope, featureName ) `
2022-04-12 17:12:47 +02:00
} ) ;
return ! ! select ( external _wp _preferences _namespaceObject . store ) . get ( scope , featureName ) ;
} ) ;
2023-09-26 16:23:26 +02:00
2023-06-28 09:04:13 +02:00
/ * *
* Returns true if a modal is active , or false otherwise .
*
* @ param { Object } state Global application state .
* @ param { string } modalName A string that uniquely identifies the modal .
*
* @ return { boolean } Whether the modal is active .
* /
function isModalActive ( state , modalName ) {
return state . activeModal === modalName ;
}
2021-05-25 10:40:25 +02:00
2022-09-20 17:43:29 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/reducer.js
/ * *
* WordPress dependencies
* /
2023-06-27 16:24:19 +02:00
function complementaryAreas ( state = { } , action ) {
2022-09-20 17:43:29 +02:00
switch ( action . type ) {
case 'SET_DEFAULT_COMPLEMENTARY_AREA' :
{
const {
scope ,
area
2023-09-26 16:23:26 +02:00
} = action ;
2022-09-20 17:43:29 +02:00
2023-09-26 16:23:26 +02:00
// If there's already an area, don't overwrite it.
2022-09-20 17:43:29 +02:00
if ( state [ scope ] ) {
return state ;
}
2023-09-26 16:23:26 +02:00
return {
... state ,
2022-09-20 17:43:29 +02:00
[ scope ] : area
} ;
}
case 'ENABLE_COMPLEMENTARY_AREA' :
{
const {
scope ,
area
} = action ;
2023-09-26 16:23:26 +02:00
return {
... state ,
2022-09-20 17:43:29 +02:00
[ scope ] : area
} ;
}
}
return state ;
}
2023-09-26 16:23:26 +02:00
2023-06-28 09:04:13 +02:00
/ * *
* Reducer for storing the name of the open modal , or null if no modal is open .
*
* @ param { Object } state Previous state .
* @ param { Object } action Action object containing the ` name ` of the modal
*
* @ return { Object } Updated state
* /
function activeModal ( state = null , action ) {
switch ( action . type ) {
case 'OPEN_MODAL' :
return action . name ;
case 'CLOSE_MODAL' :
return null ;
}
return state ;
}
2023-09-21 15:26:32 +02:00
/* harmony default export */ var store _reducer = ( ( 0 , external _wp _data _namespaceObject . combineReducers ) ( {
2023-06-28 09:04:13 +02:00
complementaryAreas ,
activeModal
2022-09-20 17:43:29 +02:00
} ) ) ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/constants.js
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* The identifier for the data store .
2021-11-08 15:29:21 +01:00
*
2022-04-11 14:04:30 +02:00
* @ type { string }
2021-11-08 15:29:21 +01:00
* /
2022-04-11 14:04:30 +02:00
const STORE _NAME = 'core/interface' ;
2021-11-08 15:29:21 +01:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/index.js
/ * *
* WordPress dependencies
* /
2021-11-15 13:50:17 +01:00
2023-09-26 16:23:26 +02:00
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* Internal dependencies
2021-11-08 15:29:21 +01:00
* /
2021-05-25 10:40:25 +02:00
2021-06-25 17:52:22 +02:00
2022-09-20 17:43:29 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Store definition for the interface namespace .
*
* @ see https : //github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
*
* @ type { Object }
* /
const store = ( 0 , external _wp _data _namespaceObject . createReduxStore ) ( STORE _NAME , {
2022-09-20 17:43:29 +02:00
reducer : store _reducer ,
2022-04-11 14:04:30 +02:00
actions : actions _namespaceObject ,
2022-04-12 17:12:47 +02:00
selectors : selectors _namespaceObject
2023-09-26 16:23:26 +02:00
} ) ;
2021-06-22 12:00:50 +02:00
2023-09-26 16:23:26 +02:00
// 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.
2022-04-12 17:12:47 +02:00
( 0 , external _wp _data _namespaceObject . register ) ( store ) ;
2021-06-22 12:00:50 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","plugins"]
2023-09-21 15:26:32 +02:00
var external _wp _plugins _namespaceObject = window [ "wp" ] [ "plugins" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-context/index.js
/ * *
* WordPress dependencies
* /
2021-06-22 12:00:50 +02:00
2023-09-21 15:26:32 +02:00
/* harmony default export */ var complementary _area _context = ( ( 0 , external _wp _plugins _namespaceObject . withPluginContext ) ( ( context , ownProps ) => {
2022-04-11 14:04:30 +02:00
return {
icon : ownProps . icon || context . icon ,
identifier : ownProps . identifier || ` ${ context . name } / ${ ownProps . name } `
} ;
} ) ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-toggle/index.js
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* WordPress dependencies
* /
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Internal dependencies
* /
2021-05-25 10:40:25 +02:00
2021-06-15 10:52:30 +02:00
2023-06-27 16:24:19 +02:00
function ComplementaryAreaToggle ( {
as = external _wp _components _namespaceObject . Button ,
scope ,
identifier ,
icon ,
selectedIcon ,
name ,
... props
} ) {
2022-04-11 14:04:30 +02:00
const ComponentToUse = as ;
2023-09-26 16:23:26 +02:00
const isSelected = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => select ( store ) . getActiveComplementaryArea ( scope ) === identifier , [ identifier , scope ] ) ;
2022-04-11 14:04:30 +02:00
const {
enableComplementaryArea ,
disableComplementaryArea
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( store ) ;
2023-06-27 16:24:19 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( ComponentToUse , {
2022-04-11 14:04:30 +02:00
icon : selectedIcon && isSelected ? selectedIcon : icon ,
2023-09-26 16:23:26 +02:00
"aria-controls" : identifier . replace ( '/' , ':' ) ,
2022-04-11 14:04:30 +02:00
onClick : ( ) => {
if ( isSelected ) {
disableComplementaryArea ( scope ) ;
} else {
enableComplementaryArea ( scope , identifier ) ;
}
2023-06-27 16:24:19 +02:00
} ,
... props
} ) ;
2022-04-11 14:04:30 +02:00
}
2023-09-21 15:26:32 +02:00
/* harmony default export */ var complementary _area _toggle = ( complementary _area _context ( ComplementaryAreaToggle ) ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-header/index.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* External dependencies
2021-05-25 10:40:25 +02:00
* /
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-05-25 10:40:25 +02:00
* /
/ * *
2022-04-11 14:04:30 +02:00
* Internal dependencies
2021-05-25 10:40:25 +02:00
* /
2023-06-27 16:24:19 +02:00
const ComplementaryAreaHeader = ( {
smallScreenTitle ,
children ,
className ,
toggleButtonProps
} ) => {
const toggleButton = ( 0 , external _wp _element _namespaceObject . createElement ) ( complementary _area _toggle , {
icon : close _small ,
... toggleButtonProps
} ) ;
2022-04-11 14:04:30 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "components-panel__header interface-complementary-area-header__small"
} , smallScreenTitle && ( 0 , external _wp _element _namespaceObject . createElement ) ( "span" , {
className : "interface-complementary-area-header__small-title"
} , smallScreenTitle ) , toggleButton ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : classnames _default ( ) ( 'components-panel__header' , 'interface-complementary-area-header' , className ) ,
tabIndex : - 1
} , children , toggleButton ) ) ;
2021-11-08 15:29:21 +01:00
} ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var complementary _area _header = ( ComplementaryAreaHeader ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/action-item/index.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-05-25 10:40:25 +02:00
* /
2022-09-20 17:43:29 +02:00
const noop = ( ) => { } ;
2023-06-27 16:24:19 +02:00
function ActionItemSlot ( {
name ,
as : Component = external _wp _components _namespaceObject . ButtonGroup ,
fillProps = { } ,
bubblesVirtually ,
... props
} ) {
2022-04-11 14:04:30 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Slot , {
name : name ,
bubblesVirtually : bubblesVirtually ,
fillProps : fillProps
} , fills => {
2022-09-20 17:43:29 +02:00
if ( ! external _wp _element _namespaceObject . Children . toArray ( fills ) . length ) {
2022-04-11 14:04:30 +02:00
return null ;
2023-09-26 16:23:26 +02:00
}
// Special handling exists for backward compatibility.
2022-04-11 14:04:30 +02:00
// It ensures that menu items created by plugin authors aren't
// duplicated with automatically injected menu items coming
// from pinnable plugin sidebars.
// @see https://github.com/WordPress/gutenberg/issues/14457
const initializedByPlugins = [ ] ;
2023-06-27 16:24:19 +02:00
external _wp _element _namespaceObject . Children . forEach ( fills , ( {
props : {
_ _unstableExplicitMenuItem ,
_ _unstableTarget
}
} ) => {
2022-04-11 14:04:30 +02:00
if ( _ _unstableTarget && _ _unstableExplicitMenuItem ) {
initializedByPlugins . push ( _ _unstableTarget ) ;
}
} ) ;
const children = external _wp _element _namespaceObject . Children . map ( fills , child => {
if ( ! child . props . _ _unstableExplicitMenuItem && initializedByPlugins . includes ( child . props . _ _unstableTarget ) ) {
return null ;
}
return child ;
} ) ;
2023-09-26 16:23:26 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( Component , {
... props
2023-06-27 16:24:19 +02:00
} , children ) ;
2021-05-25 10:40:25 +02:00
} ) ;
2022-04-11 14:04:30 +02:00
}
2023-06-27 16:24:19 +02:00
function ActionItem ( {
name ,
as : Component = external _wp _components _namespaceObject . Button ,
onClick ,
... props
} ) {
2022-04-11 14:04:30 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Fill , {
name : name
2023-06-27 16:24:19 +02:00
} , ( {
onClick : fpOnClick
} ) => {
return ( 0 , external _wp _element _namespaceObject . createElement ) ( Component , {
onClick : onClick || fpOnClick ? ( ... args ) => {
( onClick || noop ) ( ... args ) ;
( fpOnClick || noop ) ( ... args ) ;
} : undefined ,
... props
} ) ;
2022-04-11 14:04:30 +02:00
} ) ;
}
ActionItem . Slot = ActionItemSlot ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var action _item = ( ActionItem ) ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-more-menu-item/index.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
* Internal dependencies
* /
2023-06-27 16:24:19 +02:00
const PluginsMenuItem = ( {
// Menu item is marked with unstable prop for backward compatibility.
// They are removed so they don't leak to DOM elements.
// @see https://github.com/WordPress/gutenberg/issues/14457
_ _unstableExplicitMenuItem ,
_ _unstableTarget ,
... restProps
2023-09-26 16:23:26 +02:00
} ) => ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . MenuItem , {
... restProps
2023-06-27 16:24:19 +02:00
} ) ;
function ComplementaryAreaMoreMenuItem ( {
scope ,
target ,
_ _unstableExplicitMenuItem ,
... props
} ) {
return ( 0 , external _wp _element _namespaceObject . createElement ) ( complementary _area _toggle , {
2022-04-11 14:04:30 +02:00
as : toggleProps => {
2023-06-27 16:24:19 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( action _item , {
2022-04-11 14:04:30 +02:00
_ _unstableExplicitMenuItem : _ _unstableExplicitMenuItem ,
_ _unstableTarget : ` ${ scope } / ${ target } ` ,
as : PluginsMenuItem ,
2023-06-27 16:24:19 +02:00
name : ` ${ scope } /plugin-more-menu ` ,
... toggleProps
} ) ;
2022-04-11 14:04:30 +02:00
} ,
role : "menuitemcheckbox" ,
selectedIcon : library _check ,
name : target ,
2023-06-27 16:24:19 +02:00
scope : scope ,
... props
} ) ;
2022-04-11 14:04:30 +02:00
}
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/pinned-items/index.js
2021-05-25 10:40:25 +02:00
2021-07-06 16:38:40 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* External dependencies
2021-07-06 16:38:40 +02:00
* /
2023-09-26 16:23:26 +02:00
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-11-08 15:29:21 +01:00
* /
2023-06-27 16:24:19 +02:00
function PinnedItems ( {
scope ,
... props
} ) {
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Fill , {
name : ` PinnedItems/ ${ scope } ` ,
2022-04-11 14:04:30 +02:00
... props
2023-06-27 16:24:19 +02:00
} ) ;
2022-04-11 14:04:30 +02:00
}
2023-06-27 16:24:19 +02:00
function PinnedItemsSlot ( {
scope ,
className ,
... props
} ) {
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Slot , {
name : ` PinnedItems/ ${ scope } ` ,
2022-04-11 14:04:30 +02:00
... props
2023-06-27 16:24:19 +02:00
} , fills => fills ? . length > 0 && ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
2022-04-11 14:04:30 +02:00
className : classnames _default ( ) ( className , 'interface-pinned-items' )
} , fills ) ) ;
}
PinnedItems . Slot = PinnedItemsSlot ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var pinned _items = ( PinnedItems ) ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area/index.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* External dependencies
2021-05-25 10:40:25 +02:00
* /
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* WordPress dependencies
* /
2021-05-25 10:40:25 +02:00
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* Internal dependencies
2021-11-08 15:29:21 +01:00
* /
2021-05-25 10:40:25 +02:00
2023-06-27 16:24:19 +02:00
function ComplementaryAreaSlot ( {
scope ,
... props
} ) {
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Slot , {
name : ` ComplementaryArea/ ${ scope } ` ,
2022-04-11 14:04:30 +02:00
... props
2023-06-27 16:24:19 +02:00
} ) ;
2022-04-11 14:04:30 +02:00
}
2023-06-27 16:24:19 +02:00
function ComplementaryAreaFill ( {
scope ,
children ,
2023-09-26 16:23:26 +02:00
className ,
id
2023-06-27 16:24:19 +02:00
} ) {
2022-04-11 14:04:30 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Fill , {
name : ` ComplementaryArea/ ${ scope } `
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
2023-09-26 16:23:26 +02:00
id : id ,
2022-04-11 14:04:30 +02:00
className : className
} , children ) ) ;
2021-05-25 10:40:25 +02:00
}
2022-04-11 14:04:30 +02:00
function useAdjustComplementaryListener ( scope , identifier , activeArea , isActive , isSmall ) {
const previousIsSmall = ( 0 , external _wp _element _namespaceObject . useRef ) ( false ) ;
const shouldOpenWhenNotSmall = ( 0 , external _wp _element _namespaceObject . useRef ) ( false ) ;
Editor: Update block editor packages for WordPress 5.8.1.
The following packages were updated:
- @wordpress/a11y to `3.1.2`
- @wordpress/annotations to `2.1.6`
- @wordpress/api-fetch to `5.1.2`
- @wordpress/autop to `3.1.2`
- @wordpress/babel-preset-default to `6.2.1`
- @wordpress/blob to `3.1.2`
- @wordpress/block-directory to `2.1.21`
- @wordpress/block-editor to `6.1.14`
- @wordpress/block-library to `3.2.19`
- @wordpress/block-serialization-default-parser to `4.1.2`
- @wordpress/blocks to `9.1.8`
- @wordpress/components to `14.1.11`
- @wordpress/compose to `4.1.6`
- @wordpress/core-data to `3.1.12`
- @wordpress/customize-widgets to `1.0.20`
- @wordpress/data-controls to `2.1.6`
- @wordpress/data to `5.1.6`
- @wordpress/date to `4.1.2`
- @wordpress/deprecated to `3.1.2`
- @wordpress/dom-ready to `3.1.2`
- @wordpress/dom to `3.1.5`
- @wordpress/e2e-test-utils to `5.3.1`
- @wordpress/edit-post to `4.1.21`
- @wordpress/edit-widgets to `2.1.21`
- @wordpress/editor to `10.1.17`
- @wordpress/element to `3.1.2`
- @wordpress/escape-html to `2.1.2`
- @wordpress/format-library to `2.1.14`
- @wordpress/html-entities to `3.1.2`
- @wordpress/i18n to `4.1.2`
- @wordpress/icons to `4.0.3`
- @wordpress/interface to `3.1.12`
- @wordpress/keyboard-shortcuts to `2.1.7`
- @wordpress/keycodes to `3.1.2`
- @wordpress/list-reusable-blocks to `2.1.11`
- @wordpress/media-utils to `2.1.2`
- @wordpress/notices to `3.1.6`
- @wordpress/nux to `4.1.11`
- @wordpress/plugins to `3.1.6`
- @wordpress/primitives to `2.1.2`
- @wordpress/priority-queue to `2.1.2`
- @wordpress/react-i18n to `2.1.2`
- @wordpress/redux-routine to `4.1.2`
- @wordpress/reusable-blocks to `2.1.17`
- @wordpress/rich-text to `4.1.6`
- @wordpress/scripts to `16.1.5`
- @wordpress/server-side-render to `2.1.12`
- @wordpress/shortcode to `3.1.2`
- @wordpress/url to `3.1.2`
- @wordpress/viewport to `3.1.6`
- @wordpress/warning to `2.1.2`
- @wordpress/widgets to `1.1.19`
- @wordpress/wordcount to `3.1.2`
Props oandregal, juanmaguitar, gziolo, jblz, talldanwp, ribaricplusplus, peterwisoncc, youknowriad, paaljoachim, kreppar, ellatrix, aristath, walbo, ajlende, kevin940726, mamaduka, ntsekouras, toro_unit, mkaz, joen, noisysocks, zieladam, andraganescu, antonvlasenko, terraling, dariak, vladytimy, circlecube, desrosj.
Fixes #54052, #52818.
Built from https://develop.svn.wordpress.org/trunk@51719
git-svn-id: http://core.svn.wordpress.org/trunk@51325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-01 21:08:24 +02:00
const {
2022-04-11 14:04:30 +02:00
enableComplementaryArea ,
disableComplementaryArea
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( store ) ;
( 0 , external _wp _element _namespaceObject . useEffect ) ( ( ) => {
2023-06-27 16:24:19 +02:00
// If the complementary area is active and the editor is switching from
// a big to a small window size.
2022-04-11 14:04:30 +02:00
if ( isActive && isSmall && ! previousIsSmall . current ) {
2023-09-26 16:23:26 +02:00
disableComplementaryArea ( scope ) ;
// Flag the complementary area to be reopened when the window size
2023-06-27 16:24:19 +02:00
// goes from small to big.
2022-04-11 14:04:30 +02:00
shouldOpenWhenNotSmall . current = true ;
2023-09-26 16:23:26 +02:00
} else if (
// If there is a flag indicating the complementary area should be
2023-06-27 16:24:19 +02:00
// enabled when we go from small to big window size and we are going
// from a small to big window size.
2022-04-11 14:04:30 +02:00
shouldOpenWhenNotSmall . current && ! isSmall && previousIsSmall . current ) {
2023-06-27 16:24:19 +02:00
// Remove the flag indicating the complementary area should be
// enabled.
shouldOpenWhenNotSmall . current = false ;
2022-04-11 14:04:30 +02:00
enableComplementaryArea ( scope , identifier ) ;
2023-09-26 16:23:26 +02:00
} else if (
// If the flag is indicating the current complementary should be
2023-06-27 16:24:19 +02:00
// reopened but another complementary area becomes active, remove
// the flag.
2022-04-11 14:04:30 +02:00
shouldOpenWhenNotSmall . current && activeArea && activeArea !== identifier ) {
shouldOpenWhenNotSmall . current = false ;
}
if ( isSmall !== previousIsSmall . current ) {
previousIsSmall . current = isSmall ;
}
2023-09-26 16:23:26 +02:00
} , [ isActive , isSmall , scope , identifier , activeArea , disableComplementaryArea , enableComplementaryArea ] ) ;
2021-05-25 10:40:25 +02:00
}
2023-06-27 16:24:19 +02:00
function ComplementaryArea ( {
children ,
className ,
closeLabel = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Close plugin' ) ,
identifier ,
header ,
headerClassName ,
icon ,
isPinnable = true ,
panelClassName ,
scope ,
name ,
smallScreenTitle ,
title ,
toggleShortcut ,
isActiveByDefault ,
showIconLabels = false
} ) {
2022-04-11 14:04:30 +02:00
const {
2023-06-27 16:24:19 +02:00
isLoading ,
2022-04-11 14:04:30 +02:00
isActive ,
isPinned ,
activeArea ,
isSmall ,
isLarge
} = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
const {
getActiveComplementaryArea ,
2023-06-27 16:24:19 +02:00
isComplementaryAreaLoading ,
2022-04-11 14:04:30 +02:00
isItemPinned
} = select ( store ) ;
const _activeArea = getActiveComplementaryArea ( scope ) ;
return {
2023-06-27 16:24:19 +02:00
isLoading : isComplementaryAreaLoading ( scope ) ,
2022-04-11 14:04:30 +02:00
isActive : _activeArea === identifier ,
isPinned : isItemPinned ( scope , identifier ) ,
activeArea : _activeArea ,
isSmall : select ( external _wp _viewport _namespaceObject . store ) . isViewportMatch ( '< medium' ) ,
isLarge : select ( external _wp _viewport _namespaceObject . store ) . isViewportMatch ( 'large' )
} ;
} , [ identifier , scope ] ) ;
useAdjustComplementaryListener ( scope , identifier , activeArea , isActive , isSmall ) ;
const {
enableComplementaryArea ,
disableComplementaryArea ,
pinItem ,
unpinItem
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( store ) ;
( 0 , external _wp _element _namespaceObject . useEffect ) ( ( ) => {
2023-06-27 16:24:19 +02:00
// Set initial visibility: For large screens, enable if it's active by
// default. For small screens, always initially disable.
2022-04-11 14:04:30 +02:00
if ( isActiveByDefault && activeArea === undefined && ! isSmall ) {
enableComplementaryArea ( scope , identifier ) ;
2023-06-27 16:24:19 +02:00
} else if ( activeArea === undefined && isSmall ) {
disableComplementaryArea ( scope , identifier ) ;
2022-04-11 14:04:30 +02:00
}
2023-09-26 16:23:26 +02:00
} , [ activeArea , isActiveByDefault , scope , identifier , isSmall , enableComplementaryArea , disableComplementaryArea ] ) ;
2022-04-11 14:04:30 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , isPinnable && ( 0 , external _wp _element _namespaceObject . createElement ) ( pinned _items , {
scope : scope
} , isPinned && ( 0 , external _wp _element _namespaceObject . createElement ) ( complementary _area _toggle , {
scope : scope ,
identifier : identifier ,
isPressed : isActive && ( ! showIconLabels || isLarge ) ,
"aria-expanded" : isActive ,
2023-06-27 16:24:19 +02:00
"aria-disabled" : isLoading ,
2022-04-11 14:04:30 +02:00
label : title ,
icon : showIconLabels ? library _check : icon ,
showTooltip : ! showIconLabels ,
variant : showIconLabels ? 'tertiary' : undefined
} ) ) , name && isPinnable && ( 0 , external _wp _element _namespaceObject . createElement ) ( ComplementaryAreaMoreMenuItem , {
target : name ,
scope : scope ,
icon : icon
} , title ) , isActive && ( 0 , external _wp _element _namespaceObject . createElement ) ( ComplementaryAreaFill , {
className : classnames _default ( ) ( 'interface-complementary-area' , className ) ,
2023-09-26 16:23:26 +02:00
scope : scope ,
id : identifier . replace ( '/' , ':' )
2022-04-11 14:04:30 +02:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( complementary _area _header , {
className : headerClassName ,
closeLabel : closeLabel ,
onClose : ( ) => disableComplementaryArea ( scope ) ,
smallScreenTitle : smallScreenTitle ,
toggleButtonProps : {
label : closeLabel ,
shortcut : toggleShortcut ,
scope ,
identifier
}
} , header || ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( "strong" , null , title ) , isPinnable && ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Button , {
className : "interface-complementary-area__pin-unpin-item" ,
icon : isPinned ? star _filled : star _empty ,
label : isPinned ? ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Unpin from toolbar' ) : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Pin to toolbar' ) ,
onClick : ( ) => ( isPinned ? unpinItem : pinItem ) ( scope , identifier ) ,
isPressed : isPinned ,
"aria-expanded" : isPinned
} ) ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Panel , {
className : panelClassName
} , children ) ) ) ;
}
const ComplementaryAreaWrapped = complementary _area _context ( ComplementaryArea ) ;
ComplementaryAreaWrapped . Slot = ComplementaryAreaSlot ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var complementary _area = ( ComplementaryAreaWrapped ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","compose"]
2023-09-21 15:26:32 +02:00
var external _wp _compose _namespaceObject = window [ "wp" ] [ "compose" ] ;
2023-02-07 08:04:52 +01:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/navigable-region/index.js
/ * *
* External dependencies
* /
2023-06-27 16:24:19 +02:00
function NavigableRegion ( {
children ,
className ,
ariaLabel ,
as : Tag = 'div' ,
... props
} ) {
return ( 0 , external _wp _element _namespaceObject . createElement ) ( Tag , {
2023-02-07 08:04:52 +01:00
className : classnames _default ( ) ( 'interface-navigable-region' , className ) ,
"aria-label" : ariaLabel ,
role : "region" ,
2023-06-27 16:24:19 +02:00
tabIndex : "-1" ,
... props
} , children ) ;
2023-02-07 08:04:52 +01:00
}
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/interface-skeleton/index.js
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* External dependencies
* /
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-05-25 10:40:25 +02:00
* /
2023-02-07 08:04:52 +01:00
/ * *
* Internal dependencies
* /
2022-04-11 14:04:30 +02:00
function useHTMLClass ( className ) {
( 0 , external _wp _element _namespaceObject . useEffect ) ( ( ) => {
const element = document && document . querySelector ( ` html:not(. ${ className } ) ` ) ;
if ( ! element ) {
return ;
}
element . classList . toggle ( className ) ;
return ( ) => {
element . classList . toggle ( className ) ;
} ;
} , [ className ] ) ;
}
2023-06-27 16:24:19 +02:00
const headerVariants = {
hidden : {
opacity : 0
} ,
hover : {
opacity : 1 ,
transition : {
type : 'tween' ,
delay : 0.2 ,
delayChildren : 0.2
}
} ,
distractionFreeInactive : {
opacity : 1 ,
transition : {
delay : 0
}
}
} ;
function InterfaceSkeleton ( {
isDistractionFree ,
footer ,
header ,
editorNotices ,
sidebar ,
secondarySidebar ,
notices ,
content ,
2023-09-26 16:23:26 +02:00
contentProps ,
2023-06-27 16:24:19 +02:00
actions ,
labels ,
className ,
enableRegionNavigation = true ,
// Todo: does this need to be a prop.
// Can we use a dependency to keyboard-shortcuts directly?
shortcuts
} , ref ) {
2022-04-11 14:04:30 +02:00
const navigateRegionsProps = ( 0 , external _wp _components _namespaceObject . _ _unstableUseNavigateRegions ) ( shortcuts ) ;
useHTMLClass ( 'interface-interface-skeleton__html-container' ) ;
const defaultLabels = {
/* translators: accessibility text for the top bar landmark region. */
header : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Header' ) ,
/* translators: accessibility text for the content landmark region. */
body : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Content' ) ,
/* translators: accessibility text for the secondary sidebar landmark region. */
secondarySidebar : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Block Library' ) ,
/* translators: accessibility text for the settings landmark region. */
sidebar : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Settings' ) ,
/* translators: accessibility text for the publish landmark region. */
actions : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Publish' ) ,
/* translators: accessibility text for the footer landmark region. */
footer : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Footer' )
} ;
2023-09-26 16:23:26 +02:00
const mergedLabels = {
... defaultLabels ,
2022-04-11 14:04:30 +02:00
... labels
} ;
2023-09-26 16:23:26 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
... ( enableRegionNavigation ? navigateRegionsProps : { } ) ,
2023-02-07 08:04:52 +01:00
ref : ( 0 , external _wp _compose _namespaceObject . useMergeRefs ) ( [ ref , enableRegionNavigation ? navigateRegionsProps . ref : undefined ] ) ,
2022-04-11 14:04:30 +02:00
className : classnames _default ( ) ( className , 'interface-interface-skeleton' , navigateRegionsProps . className , ! ! footer && 'has-footer' )
2023-06-27 16:24:19 +02:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
2022-04-11 14:04:30 +02:00
className : "interface-interface-skeleton__editor"
2023-06-27 16:24:19 +02:00
} , ! ! header && ( 0 , external _wp _element _namespaceObject . createElement ) ( NavigableRegion , {
2023-02-07 08:04:52 +01:00
as : external _wp _components _namespaceObject . _ _unstableMotion . div ,
2022-04-11 14:04:30 +02:00
className : "interface-interface-skeleton__header" ,
"aria-label" : mergedLabels . header ,
2023-06-27 16:24:19 +02:00
initial : isDistractionFree ? 'hidden' : 'distractionFreeInactive' ,
whileHover : isDistractionFree ? 'hover' : 'distractionFreeInactive' ,
animate : isDistractionFree ? 'hidden' : 'distractionFreeInactive' ,
2023-02-07 08:04:52 +01:00
variants : headerVariants ,
2023-06-27 16:24:19 +02:00
transition : isDistractionFree ? {
2023-02-07 08:04:52 +01:00
type : 'tween' ,
delay : 0.8
2023-06-27 16:24:19 +02:00
} : undefined
2023-02-07 08:04:52 +01:00
} , header ) , isDistractionFree && ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "interface-interface-skeleton__header"
} , editorNotices ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
2022-04-11 14:04:30 +02:00
className : "interface-interface-skeleton__body"
2023-02-07 08:04:52 +01:00
} , ! ! secondarySidebar && ( 0 , external _wp _element _namespaceObject . createElement ) ( NavigableRegion , {
2022-04-11 14:04:30 +02:00
className : "interface-interface-skeleton__secondary-sidebar" ,
2023-02-07 08:04:52 +01:00
ariaLabel : mergedLabels . secondarySidebar
2022-04-11 14:04:30 +02:00
} , secondarySidebar ) , ! ! notices && ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "interface-interface-skeleton__notices"
2023-02-07 08:04:52 +01:00
} , notices ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( NavigableRegion , {
2022-04-11 14:04:30 +02:00
className : "interface-interface-skeleton__content" ,
2023-09-26 16:23:26 +02:00
ariaLabel : mergedLabels . body ,
... contentProps
2023-02-07 08:04:52 +01:00
} , content ) , ! ! sidebar && ( 0 , external _wp _element _namespaceObject . createElement ) ( NavigableRegion , {
2022-04-11 14:04:30 +02:00
className : "interface-interface-skeleton__sidebar" ,
2023-02-07 08:04:52 +01:00
ariaLabel : mergedLabels . sidebar
} , sidebar ) , ! ! actions && ( 0 , external _wp _element _namespaceObject . createElement ) ( NavigableRegion , {
2022-04-11 14:04:30 +02:00
className : "interface-interface-skeleton__actions" ,
2023-02-07 08:04:52 +01:00
ariaLabel : mergedLabels . actions
} , actions ) ) ) , ! ! footer && ( 0 , external _wp _element _namespaceObject . createElement ) ( NavigableRegion , {
2022-04-11 14:04:30 +02:00
className : "interface-interface-skeleton__footer" ,
2023-02-07 08:04:52 +01:00
ariaLabel : mergedLabels . footer
2022-04-11 14:04:30 +02:00
} , footer ) ) ;
}
2023-09-21 15:26:32 +02:00
/* harmony default export */ var interface _skeleton = ( ( 0 , external _wp _element _namespaceObject . forwardRef ) ( InterfaceSkeleton ) ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/more-vertical.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2022-04-11 14:04:30 +02:00
const moreVertical = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
d : "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z"
} ) ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var more _vertical = ( moreVertical ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/more-menu-dropdown/index.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* External dependencies
2021-05-25 10:40:25 +02:00
* /
2023-09-26 16:23:26 +02:00
2021-06-25 17:52:22 +02:00
/ * *
* WordPress dependencies
* /
2023-06-27 16:24:19 +02:00
function MoreMenuDropdown ( {
as : DropdownComponent = external _wp _components _namespaceObject . DropdownMenu ,
className ,
/* translators: button label text should, if possible, be under 16 characters. */
label = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Options' ) ,
popoverProps ,
toggleProps ,
children
} ) {
2022-04-11 14:04:30 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( DropdownComponent , {
className : classnames _default ( ) ( 'interface-more-menu-dropdown' , className ) ,
icon : more _vertical ,
label : label ,
popoverProps : {
2023-02-07 08:04:52 +01:00
placement : 'bottom-end' ,
2022-04-11 14:04:30 +02:00
... popoverProps ,
2023-06-27 16:24:19 +02:00
className : classnames _default ( ) ( 'interface-more-menu-dropdown__content' , popoverProps ? . className )
2022-04-11 14:04:30 +02:00
} ,
toggleProps : {
tooltipPosition : 'bottom' ,
... toggleProps
2021-06-25 17:52:22 +02:00
}
2022-04-11 14:04:30 +02:00
} , onClose => children ( onClose ) ) ;
}
2021-06-25 17:52:22 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/index.js
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
2021-05-25 10:40:25 +02:00
2021-06-25 17:52:22 +02:00
2021-05-25 10:40:25 +02:00
2023-02-07 08:04:52 +01:00
2022-04-12 17:12:47 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/index.js
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","blockEditor"]
2023-09-21 15:26:32 +02:00
var external _wp _blockEditor _namespaceObject = window [ "wp" ] [ "blockEditor" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/store/transformers.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
Editor: Update block editor packages for WordPress 5.8.1.
The following packages were updated:
- @wordpress/a11y to `3.1.2`
- @wordpress/annotations to `2.1.6`
- @wordpress/api-fetch to `5.1.2`
- @wordpress/autop to `3.1.2`
- @wordpress/babel-preset-default to `6.2.1`
- @wordpress/blob to `3.1.2`
- @wordpress/block-directory to `2.1.21`
- @wordpress/block-editor to `6.1.14`
- @wordpress/block-library to `3.2.19`
- @wordpress/block-serialization-default-parser to `4.1.2`
- @wordpress/blocks to `9.1.8`
- @wordpress/components to `14.1.11`
- @wordpress/compose to `4.1.6`
- @wordpress/core-data to `3.1.12`
- @wordpress/customize-widgets to `1.0.20`
- @wordpress/data-controls to `2.1.6`
- @wordpress/data to `5.1.6`
- @wordpress/date to `4.1.2`
- @wordpress/deprecated to `3.1.2`
- @wordpress/dom-ready to `3.1.2`
- @wordpress/dom to `3.1.5`
- @wordpress/e2e-test-utils to `5.3.1`
- @wordpress/edit-post to `4.1.21`
- @wordpress/edit-widgets to `2.1.21`
- @wordpress/editor to `10.1.17`
- @wordpress/element to `3.1.2`
- @wordpress/escape-html to `2.1.2`
- @wordpress/format-library to `2.1.14`
- @wordpress/html-entities to `3.1.2`
- @wordpress/i18n to `4.1.2`
- @wordpress/icons to `4.0.3`
- @wordpress/interface to `3.1.12`
- @wordpress/keyboard-shortcuts to `2.1.7`
- @wordpress/keycodes to `3.1.2`
- @wordpress/list-reusable-blocks to `2.1.11`
- @wordpress/media-utils to `2.1.2`
- @wordpress/notices to `3.1.6`
- @wordpress/nux to `4.1.11`
- @wordpress/plugins to `3.1.6`
- @wordpress/primitives to `2.1.2`
- @wordpress/priority-queue to `2.1.2`
- @wordpress/react-i18n to `2.1.2`
- @wordpress/redux-routine to `4.1.2`
- @wordpress/reusable-blocks to `2.1.17`
- @wordpress/rich-text to `4.1.6`
- @wordpress/scripts to `16.1.5`
- @wordpress/server-side-render to `2.1.12`
- @wordpress/shortcode to `3.1.2`
- @wordpress/url to `3.1.2`
- @wordpress/viewport to `3.1.6`
- @wordpress/warning to `2.1.2`
- @wordpress/widgets to `1.1.19`
- @wordpress/wordcount to `3.1.2`
Props oandregal, juanmaguitar, gziolo, jblz, talldanwp, ribaricplusplus, peterwisoncc, youknowriad, paaljoachim, kreppar, ellatrix, aristath, walbo, ajlende, kevin940726, mamaduka, ntsekouras, toro_unit, mkaz, joen, noisysocks, zieladam, andraganescu, antonvlasenko, terraling, dariak, vladytimy, circlecube, desrosj.
Fixes #54052, #52818.
Built from https://develop.svn.wordpress.org/trunk@51719
git-svn-id: http://core.svn.wordpress.org/trunk@51325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-01 21:08:24 +02:00
2023-09-26 16:23:26 +02:00
Editor: Update block editor packages for WordPress 5.8.1.
The following packages were updated:
- @wordpress/a11y to `3.1.2`
- @wordpress/annotations to `2.1.6`
- @wordpress/api-fetch to `5.1.2`
- @wordpress/autop to `3.1.2`
- @wordpress/babel-preset-default to `6.2.1`
- @wordpress/blob to `3.1.2`
- @wordpress/block-directory to `2.1.21`
- @wordpress/block-editor to `6.1.14`
- @wordpress/block-library to `3.2.19`
- @wordpress/block-serialization-default-parser to `4.1.2`
- @wordpress/blocks to `9.1.8`
- @wordpress/components to `14.1.11`
- @wordpress/compose to `4.1.6`
- @wordpress/core-data to `3.1.12`
- @wordpress/customize-widgets to `1.0.20`
- @wordpress/data-controls to `2.1.6`
- @wordpress/data to `5.1.6`
- @wordpress/date to `4.1.2`
- @wordpress/deprecated to `3.1.2`
- @wordpress/dom-ready to `3.1.2`
- @wordpress/dom to `3.1.5`
- @wordpress/e2e-test-utils to `5.3.1`
- @wordpress/edit-post to `4.1.21`
- @wordpress/edit-widgets to `2.1.21`
- @wordpress/editor to `10.1.17`
- @wordpress/element to `3.1.2`
- @wordpress/escape-html to `2.1.2`
- @wordpress/format-library to `2.1.14`
- @wordpress/html-entities to `3.1.2`
- @wordpress/i18n to `4.1.2`
- @wordpress/icons to `4.0.3`
- @wordpress/interface to `3.1.12`
- @wordpress/keyboard-shortcuts to `2.1.7`
- @wordpress/keycodes to `3.1.2`
- @wordpress/list-reusable-blocks to `2.1.11`
- @wordpress/media-utils to `2.1.2`
- @wordpress/notices to `3.1.6`
- @wordpress/nux to `4.1.11`
- @wordpress/plugins to `3.1.6`
- @wordpress/primitives to `2.1.2`
- @wordpress/priority-queue to `2.1.2`
- @wordpress/react-i18n to `2.1.2`
- @wordpress/redux-routine to `4.1.2`
- @wordpress/reusable-blocks to `2.1.17`
- @wordpress/rich-text to `4.1.6`
- @wordpress/scripts to `16.1.5`
- @wordpress/server-side-render to `2.1.12`
- @wordpress/shortcode to `3.1.2`
- @wordpress/url to `3.1.2`
- @wordpress/viewport to `3.1.6`
- @wordpress/warning to `2.1.2`
- @wordpress/widgets to `1.1.19`
- @wordpress/wordcount to `3.1.2`
Props oandregal, juanmaguitar, gziolo, jblz, talldanwp, ribaricplusplus, peterwisoncc, youknowriad, paaljoachim, kreppar, ellatrix, aristath, walbo, ajlende, kevin940726, mamaduka, ntsekouras, toro_unit, mkaz, joen, noisysocks, zieladam, andraganescu, antonvlasenko, terraling, dariak, vladytimy, circlecube, desrosj.
Fixes #54052, #52818.
Built from https://develop.svn.wordpress.org/trunk@51719
git-svn-id: http://core.svn.wordpress.org/trunk@51325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-01 21:08:24 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Converts a widget entity record into a block .
*
* @ param { Object } widget The widget entity record .
* @ return { Object } a block ( converted from the entity record ) .
Editor: Update block editor packages for WordPress 5.8.1.
The following packages were updated:
- @wordpress/a11y to `3.1.2`
- @wordpress/annotations to `2.1.6`
- @wordpress/api-fetch to `5.1.2`
- @wordpress/autop to `3.1.2`
- @wordpress/babel-preset-default to `6.2.1`
- @wordpress/blob to `3.1.2`
- @wordpress/block-directory to `2.1.21`
- @wordpress/block-editor to `6.1.14`
- @wordpress/block-library to `3.2.19`
- @wordpress/block-serialization-default-parser to `4.1.2`
- @wordpress/blocks to `9.1.8`
- @wordpress/components to `14.1.11`
- @wordpress/compose to `4.1.6`
- @wordpress/core-data to `3.1.12`
- @wordpress/customize-widgets to `1.0.20`
- @wordpress/data-controls to `2.1.6`
- @wordpress/data to `5.1.6`
- @wordpress/date to `4.1.2`
- @wordpress/deprecated to `3.1.2`
- @wordpress/dom-ready to `3.1.2`
- @wordpress/dom to `3.1.5`
- @wordpress/e2e-test-utils to `5.3.1`
- @wordpress/edit-post to `4.1.21`
- @wordpress/edit-widgets to `2.1.21`
- @wordpress/editor to `10.1.17`
- @wordpress/element to `3.1.2`
- @wordpress/escape-html to `2.1.2`
- @wordpress/format-library to `2.1.14`
- @wordpress/html-entities to `3.1.2`
- @wordpress/i18n to `4.1.2`
- @wordpress/icons to `4.0.3`
- @wordpress/interface to `3.1.12`
- @wordpress/keyboard-shortcuts to `2.1.7`
- @wordpress/keycodes to `3.1.2`
- @wordpress/list-reusable-blocks to `2.1.11`
- @wordpress/media-utils to `2.1.2`
- @wordpress/notices to `3.1.6`
- @wordpress/nux to `4.1.11`
- @wordpress/plugins to `3.1.6`
- @wordpress/primitives to `2.1.2`
- @wordpress/priority-queue to `2.1.2`
- @wordpress/react-i18n to `2.1.2`
- @wordpress/redux-routine to `4.1.2`
- @wordpress/reusable-blocks to `2.1.17`
- @wordpress/rich-text to `4.1.6`
- @wordpress/scripts to `16.1.5`
- @wordpress/server-side-render to `2.1.12`
- @wordpress/shortcode to `3.1.2`
- @wordpress/url to `3.1.2`
- @wordpress/viewport to `3.1.6`
- @wordpress/warning to `2.1.2`
- @wordpress/widgets to `1.1.19`
- @wordpress/wordcount to `3.1.2`
Props oandregal, juanmaguitar, gziolo, jblz, talldanwp, ribaricplusplus, peterwisoncc, youknowriad, paaljoachim, kreppar, ellatrix, aristath, walbo, ajlende, kevin940726, mamaduka, ntsekouras, toro_unit, mkaz, joen, noisysocks, zieladam, andraganescu, antonvlasenko, terraling, dariak, vladytimy, circlecube, desrosj.
Fixes #54052, #52818.
Built from https://develop.svn.wordpress.org/trunk@51719
git-svn-id: http://core.svn.wordpress.org/trunk@51325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-01 21:08:24 +02:00
* /
2022-04-11 14:04:30 +02:00
function transformWidgetToBlock ( widget ) {
if ( widget . id _base === 'block' ) {
2022-09-20 17:43:29 +02:00
const parsedBlocks = ( 0 , external _wp _blocks _namespaceObject . parse ) ( widget . instance . raw . content , {
_ _unstableSkipAutop : true
} ) ;
2022-04-11 14:04:30 +02:00
if ( ! parsedBlocks . length ) {
return ( 0 , external _wp _widgets _namespaceObject . addWidgetIdToBlock ) ( ( 0 , external _wp _blocks _namespaceObject . createBlock ) ( 'core/paragraph' , { } , [ ] ) , widget . id ) ;
}
return ( 0 , external _wp _widgets _namespaceObject . addWidgetIdToBlock ) ( parsedBlocks [ 0 ] , widget . id ) ;
}
let attributes ;
if ( widget . _embedded . about [ 0 ] . is _multi ) {
attributes = {
idBase : widget . id _base ,
instance : widget . instance
} ;
} else {
attributes = {
id : widget . id
Editor: Update block editor packages for WordPress 5.8.1.
The following packages were updated:
- @wordpress/a11y to `3.1.2`
- @wordpress/annotations to `2.1.6`
- @wordpress/api-fetch to `5.1.2`
- @wordpress/autop to `3.1.2`
- @wordpress/babel-preset-default to `6.2.1`
- @wordpress/blob to `3.1.2`
- @wordpress/block-directory to `2.1.21`
- @wordpress/block-editor to `6.1.14`
- @wordpress/block-library to `3.2.19`
- @wordpress/block-serialization-default-parser to `4.1.2`
- @wordpress/blocks to `9.1.8`
- @wordpress/components to `14.1.11`
- @wordpress/compose to `4.1.6`
- @wordpress/core-data to `3.1.12`
- @wordpress/customize-widgets to `1.0.20`
- @wordpress/data-controls to `2.1.6`
- @wordpress/data to `5.1.6`
- @wordpress/date to `4.1.2`
- @wordpress/deprecated to `3.1.2`
- @wordpress/dom-ready to `3.1.2`
- @wordpress/dom to `3.1.5`
- @wordpress/e2e-test-utils to `5.3.1`
- @wordpress/edit-post to `4.1.21`
- @wordpress/edit-widgets to `2.1.21`
- @wordpress/editor to `10.1.17`
- @wordpress/element to `3.1.2`
- @wordpress/escape-html to `2.1.2`
- @wordpress/format-library to `2.1.14`
- @wordpress/html-entities to `3.1.2`
- @wordpress/i18n to `4.1.2`
- @wordpress/icons to `4.0.3`
- @wordpress/interface to `3.1.12`
- @wordpress/keyboard-shortcuts to `2.1.7`
- @wordpress/keycodes to `3.1.2`
- @wordpress/list-reusable-blocks to `2.1.11`
- @wordpress/media-utils to `2.1.2`
- @wordpress/notices to `3.1.6`
- @wordpress/nux to `4.1.11`
- @wordpress/plugins to `3.1.6`
- @wordpress/primitives to `2.1.2`
- @wordpress/priority-queue to `2.1.2`
- @wordpress/react-i18n to `2.1.2`
- @wordpress/redux-routine to `4.1.2`
- @wordpress/reusable-blocks to `2.1.17`
- @wordpress/rich-text to `4.1.6`
- @wordpress/scripts to `16.1.5`
- @wordpress/server-side-render to `2.1.12`
- @wordpress/shortcode to `3.1.2`
- @wordpress/url to `3.1.2`
- @wordpress/viewport to `3.1.6`
- @wordpress/warning to `2.1.2`
- @wordpress/widgets to `1.1.19`
- @wordpress/wordcount to `3.1.2`
Props oandregal, juanmaguitar, gziolo, jblz, talldanwp, ribaricplusplus, peterwisoncc, youknowriad, paaljoachim, kreppar, ellatrix, aristath, walbo, ajlende, kevin940726, mamaduka, ntsekouras, toro_unit, mkaz, joen, noisysocks, zieladam, andraganescu, antonvlasenko, terraling, dariak, vladytimy, circlecube, desrosj.
Fixes #54052, #52818.
Built from https://develop.svn.wordpress.org/trunk@51719
git-svn-id: http://core.svn.wordpress.org/trunk@51325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-01 21:08:24 +02:00
} ;
}
2022-04-11 14:04:30 +02:00
return ( 0 , external _wp _widgets _namespaceObject . addWidgetIdToBlock ) ( ( 0 , external _wp _blocks _namespaceObject . createBlock ) ( 'core/legacy-widget' , attributes , [ ] ) , widget . id ) ;
}
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Converts a block to a widget entity record .
*
* @ param { Object } block The block .
* @ param { Object ? } relatedWidget A related widget entity record from the API ( optional ) .
* @ return { Object } the widget object ( converted from block ) .
* /
2023-06-27 16:24:19 +02:00
function transformBlockToWidget ( block , relatedWidget = { } ) {
2022-04-11 14:04:30 +02:00
let widget ;
const isValidLegacyWidgetBlock = block . name === 'core/legacy-widget' && ( block . attributes . id || block . attributes . instance ) ;
if ( isValidLegacyWidgetBlock ) {
var _block$attributes$id , _block$attributes$idB , _block$attributes$ins ;
2023-09-26 16:23:26 +02:00
widget = {
... relatedWidget ,
2022-04-11 14:04:30 +02:00
id : ( _block$attributes$id = block . attributes . id ) !== null && _block$attributes$id !== void 0 ? _block$attributes$id : relatedWidget . id ,
id _base : ( _block$attributes$idB = block . attributes . idBase ) !== null && _block$attributes$idB !== void 0 ? _block$attributes$idB : relatedWidget . id _base ,
instance : ( _block$attributes$ins = block . attributes . instance ) !== null && _block$attributes$ins !== void 0 ? _block$attributes$ins : relatedWidget . instance
} ;
} else {
2023-09-26 16:23:26 +02:00
widget = {
... relatedWidget ,
2022-04-11 14:04:30 +02:00
id _base : 'block' ,
instance : {
raw : {
content : ( 0 , external _wp _blocks _namespaceObject . serialize ) ( block )
}
}
} ;
2023-09-26 16:23:26 +02:00
}
Editor: Update block editor packages for WordPress 5.8.1.
The following packages were updated:
- @wordpress/a11y to `3.1.2`
- @wordpress/annotations to `2.1.6`
- @wordpress/api-fetch to `5.1.2`
- @wordpress/autop to `3.1.2`
- @wordpress/babel-preset-default to `6.2.1`
- @wordpress/blob to `3.1.2`
- @wordpress/block-directory to `2.1.21`
- @wordpress/block-editor to `6.1.14`
- @wordpress/block-library to `3.2.19`
- @wordpress/block-serialization-default-parser to `4.1.2`
- @wordpress/blocks to `9.1.8`
- @wordpress/components to `14.1.11`
- @wordpress/compose to `4.1.6`
- @wordpress/core-data to `3.1.12`
- @wordpress/customize-widgets to `1.0.20`
- @wordpress/data-controls to `2.1.6`
- @wordpress/data to `5.1.6`
- @wordpress/date to `4.1.2`
- @wordpress/deprecated to `3.1.2`
- @wordpress/dom-ready to `3.1.2`
- @wordpress/dom to `3.1.5`
- @wordpress/e2e-test-utils to `5.3.1`
- @wordpress/edit-post to `4.1.21`
- @wordpress/edit-widgets to `2.1.21`
- @wordpress/editor to `10.1.17`
- @wordpress/element to `3.1.2`
- @wordpress/escape-html to `2.1.2`
- @wordpress/format-library to `2.1.14`
- @wordpress/html-entities to `3.1.2`
- @wordpress/i18n to `4.1.2`
- @wordpress/icons to `4.0.3`
- @wordpress/interface to `3.1.12`
- @wordpress/keyboard-shortcuts to `2.1.7`
- @wordpress/keycodes to `3.1.2`
- @wordpress/list-reusable-blocks to `2.1.11`
- @wordpress/media-utils to `2.1.2`
- @wordpress/notices to `3.1.6`
- @wordpress/nux to `4.1.11`
- @wordpress/plugins to `3.1.6`
- @wordpress/primitives to `2.1.2`
- @wordpress/priority-queue to `2.1.2`
- @wordpress/react-i18n to `2.1.2`
- @wordpress/redux-routine to `4.1.2`
- @wordpress/reusable-blocks to `2.1.17`
- @wordpress/rich-text to `4.1.6`
- @wordpress/scripts to `16.1.5`
- @wordpress/server-side-render to `2.1.12`
- @wordpress/shortcode to `3.1.2`
- @wordpress/url to `3.1.2`
- @wordpress/viewport to `3.1.6`
- @wordpress/warning to `2.1.2`
- @wordpress/widgets to `1.1.19`
- @wordpress/wordcount to `3.1.2`
Props oandregal, juanmaguitar, gziolo, jblz, talldanwp, ribaricplusplus, peterwisoncc, youknowriad, paaljoachim, kreppar, ellatrix, aristath, walbo, ajlende, kevin940726, mamaduka, ntsekouras, toro_unit, mkaz, joen, noisysocks, zieladam, andraganescu, antonvlasenko, terraling, dariak, vladytimy, circlecube, desrosj.
Fixes #54052, #52818.
Built from https://develop.svn.wordpress.org/trunk@51719
git-svn-id: http://core.svn.wordpress.org/trunk@51325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-01 21:08:24 +02:00
2023-09-26 16:23:26 +02:00
// Delete read-only properties.
2022-04-11 14:04:30 +02:00
delete widget . rendered ;
delete widget . rendered _form ;
return widget ;
Editor: Update block editor packages for WordPress 5.8.1.
The following packages were updated:
- @wordpress/a11y to `3.1.2`
- @wordpress/annotations to `2.1.6`
- @wordpress/api-fetch to `5.1.2`
- @wordpress/autop to `3.1.2`
- @wordpress/babel-preset-default to `6.2.1`
- @wordpress/blob to `3.1.2`
- @wordpress/block-directory to `2.1.21`
- @wordpress/block-editor to `6.1.14`
- @wordpress/block-library to `3.2.19`
- @wordpress/block-serialization-default-parser to `4.1.2`
- @wordpress/blocks to `9.1.8`
- @wordpress/components to `14.1.11`
- @wordpress/compose to `4.1.6`
- @wordpress/core-data to `3.1.12`
- @wordpress/customize-widgets to `1.0.20`
- @wordpress/data-controls to `2.1.6`
- @wordpress/data to `5.1.6`
- @wordpress/date to `4.1.2`
- @wordpress/deprecated to `3.1.2`
- @wordpress/dom-ready to `3.1.2`
- @wordpress/dom to `3.1.5`
- @wordpress/e2e-test-utils to `5.3.1`
- @wordpress/edit-post to `4.1.21`
- @wordpress/edit-widgets to `2.1.21`
- @wordpress/editor to `10.1.17`
- @wordpress/element to `3.1.2`
- @wordpress/escape-html to `2.1.2`
- @wordpress/format-library to `2.1.14`
- @wordpress/html-entities to `3.1.2`
- @wordpress/i18n to `4.1.2`
- @wordpress/icons to `4.0.3`
- @wordpress/interface to `3.1.12`
- @wordpress/keyboard-shortcuts to `2.1.7`
- @wordpress/keycodes to `3.1.2`
- @wordpress/list-reusable-blocks to `2.1.11`
- @wordpress/media-utils to `2.1.2`
- @wordpress/notices to `3.1.6`
- @wordpress/nux to `4.1.11`
- @wordpress/plugins to `3.1.6`
- @wordpress/primitives to `2.1.2`
- @wordpress/priority-queue to `2.1.2`
- @wordpress/react-i18n to `2.1.2`
- @wordpress/redux-routine to `4.1.2`
- @wordpress/reusable-blocks to `2.1.17`
- @wordpress/rich-text to `4.1.6`
- @wordpress/scripts to `16.1.5`
- @wordpress/server-side-render to `2.1.12`
- @wordpress/shortcode to `3.1.2`
- @wordpress/url to `3.1.2`
- @wordpress/viewport to `3.1.6`
- @wordpress/warning to `2.1.2`
- @wordpress/widgets to `1.1.19`
- @wordpress/wordcount to `3.1.2`
Props oandregal, juanmaguitar, gziolo, jblz, talldanwp, ribaricplusplus, peterwisoncc, youknowriad, paaljoachim, kreppar, ellatrix, aristath, walbo, ajlende, kevin940726, mamaduka, ntsekouras, toro_unit, mkaz, joen, noisysocks, zieladam, andraganescu, antonvlasenko, terraling, dariak, vladytimy, circlecube, desrosj.
Fixes #54052, #52818.
Built from https://develop.svn.wordpress.org/trunk@51719
git-svn-id: http://core.svn.wordpress.org/trunk@51325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-01 21:08:24 +02:00
}
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/store/utils.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* "Kind" of the navigation post .
*
* @ type { string }
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const KIND = 'root' ;
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* "post type" of the navigation post .
*
* @ type { string }
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const WIDGET _AREA _ENTITY _TYPE = 'sidebar' ;
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* "post type" of the widget area post .
*
* @ type { string }
* /
const POST _TYPE = 'postType' ;
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Builds an ID for a new widget area post .
*
* @ param { number } widgetAreaId Widget area id .
* @ return { string } An ID .
* /
const buildWidgetAreaPostId = widgetAreaId => ` widget-area- ${ widgetAreaId } ` ;
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Builds an ID for a global widget areas post .
*
* @ return { string } An ID .
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const buildWidgetAreasPostId = ( ) => ` widget-areas ` ;
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Builds a query to resolve sidebars .
*
* @ return { Object } Query .
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
function buildWidgetAreasQuery ( ) {
return {
per _page : - 1
} ;
}
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Builds a query to resolve widgets .
2021-05-25 10:40:25 +02:00
*
2022-04-11 14:04:30 +02:00
* @ return { Object } Query .
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
function buildWidgetsQuery ( ) {
return {
per _page : - 1 ,
_embed : 'about'
} ;
}
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Creates a stub post with given id and set of blocks . Used as a governing entity records
* for all widget areas .
*
* @ param { string } id Post ID .
* @ param { Array } blocks The list of blocks .
* @ return { Object } A stub post object formatted in compliance with the data layer .
* /
const createStubPost = ( id , blocks ) => ( {
id ,
slug : id ,
status : 'draft' ,
type : 'page' ,
blocks ,
meta : {
widgetAreaId : id
2021-07-06 16:38:40 +02:00
}
2022-04-11 14:04:30 +02:00
} ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/store/constants.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Module Constants
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const constants _STORE _NAME = 'core/edit-widgets' ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/store/actions.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
* Internal dependencies
* /
2022-04-11 14:04:30 +02:00
/ * *
* Persists a stub post with given ID to core data store . The post is meant to be in - memory only and
* shouldn ' t be saved via the API .
*
* @ param { string } id Post ID .
* @ param { Array } blocks Blocks the post should consist of .
* @ return { Object } The post object .
* /
2023-06-27 16:24:19 +02:00
const persistStubPost = ( id , blocks ) => ( {
registry
} ) => {
2022-04-11 14:04:30 +02:00
const stubPost = createStubPost ( id , blocks ) ;
registry . dispatch ( external _wp _coreData _namespaceObject . store ) . receiveEntityRecords ( KIND , POST _TYPE , stubPost , {
id : stubPost . id
} , false ) ;
return stubPost ;
} ;
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Converts all the blocks from edited widget areas into widgets ,
* and submits a batch request to save everything at once .
*
* Creates a snackbar notice on either success or error .
*
* @ return { Function } An action creator .
2021-05-25 10:40:25 +02:00
* /
2023-06-27 16:24:19 +02:00
const saveEditedWidgetAreas = ( ) => async ( {
select ,
dispatch ,
registry
} ) => {
2022-04-11 14:04:30 +02:00
const editedWidgetAreas = select . getEditedWidgetAreas ( ) ;
2023-06-27 16:24:19 +02:00
if ( ! editedWidgetAreas ? . length ) {
2022-04-11 14:04:30 +02:00
return ;
2021-05-25 10:40:25 +02:00
}
2022-04-11 14:04:30 +02:00
try {
await dispatch . saveWidgetAreas ( editedWidgetAreas ) ;
registry . dispatch ( external _wp _notices _namespaceObject . store ) . createSuccessNotice ( ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Widgets saved.' ) , {
type : 'snackbar'
} ) ;
} catch ( e ) {
2023-09-26 16:23:26 +02:00
registry . dispatch ( external _wp _notices _namespaceObject . store ) . createErrorNotice ( /* translators: %s: The error message. */
2022-04-11 14:04:30 +02:00
( 0 , external _wp _i18n _namespaceObject . sprintf ) ( ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'There was an error. %s' ) , e . message ) , {
type : 'snackbar'
} ) ;
}
} ;
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Converts all the blocks from specified widget areas into widgets ,
* and submits a batch request to save everything at once .
*
* @ param { Object [ ] } widgetAreas Widget areas to save .
* @ return { Function } An action creator .
2021-05-25 10:40:25 +02:00
* /
2023-06-27 16:24:19 +02:00
const saveWidgetAreas = widgetAreas => async ( {
dispatch ,
registry
} ) => {
2022-04-11 14:04:30 +02:00
try {
for ( const widgetArea of widgetAreas ) {
await dispatch . saveWidgetArea ( widgetArea . id ) ;
2021-05-25 10:40:25 +02:00
}
2022-04-11 14:04:30 +02:00
} finally {
2022-04-12 17:12:47 +02:00
// saveEditedEntityRecord resets the resolution status, let's fix it manually.
2022-04-11 14:04:30 +02:00
await registry . dispatch ( external _wp _coreData _namespaceObject . store ) . finishResolution ( 'getEntityRecord' , KIND , WIDGET _AREA _ENTITY _TYPE , buildWidgetAreasQuery ( ) ) ;
}
} ;
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Converts all the blocks from a widget area specified by ID into widgets ,
* and submits a batch request to save everything at once .
*
* @ param { string } widgetAreaId ID of the widget area to process .
* @ return { Function } An action creator .
2021-05-25 10:40:25 +02:00
* /
2023-06-27 16:24:19 +02:00
const saveWidgetArea = widgetAreaId => async ( {
dispatch ,
select ,
registry
} ) => {
2022-04-11 14:04:30 +02:00
const widgets = select . getWidgets ( ) ;
2023-09-26 16:23:26 +02:00
const post = registry . select ( external _wp _coreData _namespaceObject . store ) . getEditedEntityRecord ( KIND , POST _TYPE , buildWidgetAreaPostId ( widgetAreaId ) ) ;
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
// Get all widgets from this area
2023-06-27 16:24:19 +02:00
const areaWidgets = Object . values ( widgets ) . filter ( ( {
sidebar
2023-09-26 16:23:26 +02:00
} ) => sidebar === widgetAreaId ) ;
// Remove all duplicate reference widget instances for legacy widgets.
2022-04-11 14:04:30 +02:00
// Why? We filter out the widgets with duplicate IDs to prevent adding more than one instance of a widget
// implemented using a function. WordPress doesn't support having more than one instance of these, if you try to
// save multiple instances of these in different sidebars you will run into undefined behaviors.
const usedReferenceWidgets = [ ] ;
const widgetsBlocks = post . blocks . filter ( block => {
2021-05-25 10:40:25 +02:00
const {
2022-04-11 14:04:30 +02:00
id
} = block . attributes ;
if ( block . name === 'core/legacy-widget' && id ) {
if ( usedReferenceWidgets . includes ( id ) ) {
return false ;
}
usedReferenceWidgets . push ( id ) ;
}
return true ;
2023-09-26 16:23:26 +02:00
} ) ;
// Determine which widgets have been deleted. We can tell if a widget is
2022-04-11 14:04:30 +02:00
// deleted and not just moved to a different area by looking to see if
// getWidgetAreaForWidgetId() finds something.
const deletedWidgets = [ ] ;
for ( const widget of areaWidgets ) {
const widgetsNewArea = select . getWidgetAreaForWidgetId ( widget . id ) ;
if ( ! widgetsNewArea ) {
deletedWidgets . push ( widget ) ;
}
}
const batchMeta = [ ] ;
const batchTasks = [ ] ;
const sidebarWidgetsIds = [ ] ;
for ( let i = 0 ; i < widgetsBlocks . length ; i ++ ) {
const block = widgetsBlocks [ i ] ;
const widgetId = ( 0 , external _wp _widgets _namespaceObject . getWidgetIdFromBlock ) ( block ) ;
const oldWidget = widgets [ widgetId ] ;
2023-09-26 16:23:26 +02:00
const widget = transformBlockToWidget ( block , oldWidget ) ;
// We'll replace the null widgetId after save, but we track it here
2022-04-11 14:04:30 +02:00
// since order is important.
2023-09-26 16:23:26 +02:00
sidebarWidgetsIds . push ( widgetId ) ;
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
// Check oldWidget as widgetId might refer to an ID which has been
2022-04-11 14:04:30 +02:00
// deleted, e.g. if a deleted block is restored via undo after saving.
if ( oldWidget ) {
// Update an existing widget.
2023-09-26 16:23:26 +02:00
registry . dispatch ( external _wp _coreData _namespaceObject . store ) . editEntityRecord ( 'root' , 'widget' , widgetId , {
... widget ,
2022-04-11 14:04:30 +02:00
sidebar : widgetAreaId
} , {
undoIgnore : true
} ) ;
const hasEdits = registry . select ( external _wp _coreData _namespaceObject . store ) . hasEditsForEntityRecord ( 'root' , 'widget' , widgetId ) ;
if ( ! hasEdits ) {
continue ;
}
2023-06-27 16:24:19 +02:00
batchTasks . push ( ( {
saveEditedEntityRecord
} ) => saveEditedEntityRecord ( 'root' , 'widget' , widgetId ) ) ;
2022-04-11 14:04:30 +02:00
} else {
// Create a new widget.
2023-06-27 16:24:19 +02:00
batchTasks . push ( ( {
saveEntityRecord
2023-09-26 16:23:26 +02:00
} ) => saveEntityRecord ( 'root' , 'widget' , {
... widget ,
2023-06-27 16:24:19 +02:00
sidebar : widgetAreaId
} ) ) ;
2022-04-11 14:04:30 +02:00
}
batchMeta . push ( {
block ,
position : i ,
clientId : block . clientId
} ) ;
}
for ( const widget of deletedWidgets ) {
2023-06-27 16:24:19 +02:00
batchTasks . push ( ( {
deleteEntityRecord
} ) => deleteEntityRecord ( 'root' , 'widget' , widget . id , {
force : true
} ) ) ;
2022-04-11 14:04:30 +02:00
}
const records = await registry . dispatch ( external _wp _coreData _namespaceObject . store ) . _ _experimentalBatch ( batchTasks ) ;
const preservedRecords = records . filter ( record => ! record . hasOwnProperty ( 'deleted' ) ) ;
const failedWidgetNames = [ ] ;
for ( let i = 0 ; i < preservedRecords . length ; i ++ ) {
const widget = preservedRecords [ i ] ;
const {
block ,
position
2023-09-26 16:23:26 +02:00
} = batchMeta [ i ] ;
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
// Set __internalWidgetId on the block. This will be persisted to the
// store when we dispatch receiveEntityRecords( post ) below.
2022-04-11 14:04:30 +02:00
post . blocks [ position ] . attributes . _ _internalWidgetId = widget . id ;
const error = registry . select ( external _wp _coreData _namespaceObject . store ) . getLastEntitySaveError ( 'root' , 'widget' , widget . id ) ;
if ( error ) {
2023-06-27 16:24:19 +02:00
failedWidgetNames . push ( block . attributes ? . name || block ? . name ) ;
2022-04-11 14:04:30 +02:00
}
if ( ! sidebarWidgetsIds [ position ] ) {
sidebarWidgetsIds [ position ] = widget . id ;
}
}
if ( failedWidgetNames . length ) {
2023-09-26 16:23:26 +02:00
throw new Error ( ( 0 , external _wp _i18n _namespaceObject . sprintf ) ( /* translators: %s: List of widget names */
2022-04-11 14:04:30 +02:00
( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Could not save the following widgets: %s.' ) , failedWidgetNames . join ( ', ' ) ) ) ;
}
registry . dispatch ( external _wp _coreData _namespaceObject . store ) . editEntityRecord ( KIND , WIDGET _AREA _ENTITY _TYPE , widgetAreaId , {
widgets : sidebarWidgetsIds
} , {
undoIgnore : true
2021-05-25 10:40:25 +02:00
} ) ;
2022-04-11 14:04:30 +02:00
dispatch ( trySaveWidgetArea ( widgetAreaId ) ) ;
registry . dispatch ( external _wp _coreData _namespaceObject . store ) . receiveEntityRecords ( KIND , POST _TYPE , post , undefined ) ;
2021-05-25 10:40:25 +02:00
} ;
2023-06-27 16:24:19 +02:00
const trySaveWidgetArea = widgetAreaId => ( {
registry
} ) => {
2022-04-12 17:12:47 +02:00
registry . dispatch ( external _wp _coreData _namespaceObject . store ) . saveEditedEntityRecord ( KIND , WIDGET _AREA _ENTITY _TYPE , widgetAreaId , {
throwOnError : true
} ) ;
2022-04-11 14:04:30 +02:00
} ;
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Sets the clientId stored for a particular widgetId .
*
* @ param { number } clientId Client id .
* @ param { number } widgetId Widget id .
*
* @ return { Object } Action .
* /
function setWidgetIdForClientId ( clientId , widgetId ) {
return {
type : 'SET_WIDGET_ID_FOR_CLIENT_ID' ,
clientId ,
widgetId
} ;
}
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Sets the open state of all the widget areas .
*
* @ param { Object } widgetAreasOpenState The open states of all the widget areas .
*
* @ return { Object } Action .
* /
function setWidgetAreasOpenState ( widgetAreasOpenState ) {
return {
type : 'SET_WIDGET_AREAS_OPEN_STATE' ,
widgetAreasOpenState
} ;
}
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Sets the open state of the widget area .
*
* @ param { string } clientId The clientId of the widget area .
* @ param { boolean } isOpen Whether the widget area should be opened .
*
* @ return { Object } Action .
* /
function setIsWidgetAreaOpen ( clientId , isOpen ) {
return {
type : 'SET_IS_WIDGET_AREA_OPEN' ,
clientId ,
isOpen
} ;
2021-05-25 10:40:25 +02:00
}
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Returns an action object used to open / close the inserter .
*
* @ param { boolean | Object } value Whether the inserter should be
* opened ( true ) or closed ( false ) .
* To specify an insertion point ,
* use an object .
* @ param { string } value . rootClientId The root client ID to insert at .
* @ param { number } value . insertionIndex The index to insert at .
*
* @ return { Object } Action object .
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
function setIsInserterOpened ( value ) {
return {
type : 'SET_IS_INSERTER_OPENED' ,
value
} ;
}
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Returns an action object used to open / close the list view .
*
* @ param { boolean } isOpen A boolean representing whether the list view should be opened or closed .
* @ return { Object } Action object .
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
function setIsListViewOpened ( isOpen ) {
return {
type : 'SET_IS_LIST_VIEW_OPENED' ,
isOpen
} ;
2021-05-25 10:40:25 +02:00
}
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Returns an action object signalling that the user closed the sidebar .
*
* @ return { Object } Action creator .
2021-05-25 10:40:25 +02:00
* /
2023-06-27 16:24:19 +02:00
const closeGeneralSidebar = ( ) => ( {
registry
} ) => {
2022-04-11 14:04:30 +02:00
registry . dispatch ( store ) . disableComplementaryArea ( constants _STORE _NAME ) ;
} ;
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Action that handles moving a block between widget areas
*
* @ param { string } clientId The clientId of the block to move .
* @ param { string } widgetAreaId The id of the widget area to move the block to .
2021-05-25 10:40:25 +02:00
* /
2023-06-27 16:24:19 +02:00
const moveBlockToWidgetArea = ( clientId , widgetAreaId ) => async ( {
dispatch ,
select ,
registry
} ) => {
2023-09-26 16:23:26 +02:00
const sourceRootClientId = registry . select ( external _wp _blockEditor _namespaceObject . store ) . getBlockRootClientId ( clientId ) ;
// Search the top level blocks (widget areas) for the one with the matching
2022-04-11 14:04:30 +02:00
// id attribute. Makes the assumption that all top-level blocks are widget
// areas.
const widgetAreas = registry . select ( external _wp _blockEditor _namespaceObject . store ) . getBlocks ( ) ;
2023-06-27 16:24:19 +02:00
const destinationWidgetAreaBlock = widgetAreas . find ( ( {
attributes
} ) => attributes . id === widgetAreaId ) ;
2023-09-26 16:23:26 +02:00
const destinationRootClientId = destinationWidgetAreaBlock . clientId ;
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
// Get the index for moving to the end of the destination widget area.
2022-04-11 14:04:30 +02:00
const destinationInnerBlocksClientIds = registry . select ( external _wp _blockEditor _namespaceObject . store ) . getBlockOrder ( destinationRootClientId ) ;
2023-09-26 16:23:26 +02:00
const destinationIndex = destinationInnerBlocksClientIds . length ;
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
// Reveal the widget area, if it's not open.
2022-04-11 14:04:30 +02:00
const isDestinationWidgetAreaOpen = select . getIsWidgetAreaOpen ( destinationRootClientId ) ;
if ( ! isDestinationWidgetAreaOpen ) {
dispatch . setIsWidgetAreaOpen ( destinationRootClientId , true ) ;
2023-09-26 16:23:26 +02:00
}
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
// Move the block.
2022-04-11 14:04:30 +02:00
registry . dispatch ( external _wp _blockEditor _namespaceObject . store ) . moveBlocksToPosition ( [ clientId ] , sourceRootClientId , destinationRootClientId , destinationIndex ) ;
} ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/store/resolvers.js
/ * *
* WordPress dependencies
* /
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Internal dependencies
* /
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Creates a "stub" widgets post reflecting all available widget areas . The
* post is meant as a convenient to only exists in runtime and should never be saved . It
* enables a convenient way of editing the widgets by using a regular post editor .
*
* Fetches all widgets from all widgets aras , converts them into blocks , and hydrates a new post with them .
*
* @ return { Function } An action creator .
2021-05-25 10:40:25 +02:00
* /
2023-06-27 16:24:19 +02:00
const getWidgetAreas = ( ) => async ( {
dispatch ,
registry
} ) => {
2022-04-11 14:04:30 +02:00
const query = buildWidgetAreasQuery ( ) ;
const widgetAreas = await registry . resolveSelect ( external _wp _coreData _namespaceObject . store ) . getEntityRecords ( KIND , WIDGET _AREA _ENTITY _TYPE , query ) ;
const widgetAreaBlocks = [ ] ;
const sortedWidgetAreas = widgetAreas . sort ( ( a , b ) => {
if ( a . id === 'wp_inactive_widgets' ) {
return 1 ;
}
if ( b . id === 'wp_inactive_widgets' ) {
return - 1 ;
}
return 0 ;
} ) ;
for ( const widgetArea of sortedWidgetAreas ) {
widgetAreaBlocks . push ( ( 0 , external _wp _blocks _namespaceObject . createBlock ) ( 'core/widget-area' , {
id : widgetArea . id ,
name : widgetArea . name
} ) ) ;
if ( ! widgetArea . widgets . length ) {
// If this widget area has no widgets, it won't get a post setup by
// the getWidgets resolver.
dispatch ( persistStubPost ( buildWidgetAreaPostId ( widgetArea . id ) , [ ] ) ) ;
}
}
const widgetAreasOpenState = { } ;
widgetAreaBlocks . forEach ( ( widgetAreaBlock , index ) => {
// Defaults to open the first widget area.
widgetAreasOpenState [ widgetAreaBlock . clientId ] = index === 0 ;
2021-05-25 10:40:25 +02:00
} ) ;
2022-04-11 14:04:30 +02:00
dispatch ( setWidgetAreasOpenState ( widgetAreasOpenState ) ) ;
dispatch ( persistStubPost ( buildWidgetAreasPostId ( ) , widgetAreaBlocks ) ) ;
} ;
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Fetches all widgets from all widgets ares , and groups them by widget area Id .
*
* @ return { Function } An action creator .
* /
2023-06-27 16:24:19 +02:00
const getWidgets = ( ) => async ( {
dispatch ,
registry
} ) => {
2022-04-11 14:04:30 +02:00
const query = buildWidgetsQuery ( ) ;
const widgets = await registry . resolveSelect ( external _wp _coreData _namespaceObject . store ) . getEntityRecords ( 'root' , 'widget' , query ) ;
const groupedBySidebar = { } ;
for ( const widget of widgets ) {
const block = transformWidgetToBlock ( widget ) ;
groupedBySidebar [ widget . sidebar ] = groupedBySidebar [ widget . sidebar ] || [ ] ;
groupedBySidebar [ widget . sidebar ] . push ( block ) ;
}
for ( const sidebarId in groupedBySidebar ) {
if ( groupedBySidebar . hasOwnProperty ( sidebarId ) ) {
// Persist the actual post containing the widget block
dispatch ( persistStubPost ( buildWidgetAreaPostId ( sidebarId ) , groupedBySidebar [ sidebarId ] ) ) ;
}
}
} ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/store/selectors.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2021-06-22 12:00:50 +02:00
2021-11-08 15:29:21 +01:00
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
* Internal dependencies
* /
2023-09-26 16:23:26 +02:00
const EMPTY _INSERTION _POINT = {
rootClientId : undefined ,
insertionIndex : undefined
} ;
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Returns all API widgets .
*
* @ return { Object [ ] } API List of widgets .
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const selectors _getWidgets = ( 0 , external _wp _data _namespaceObject . createRegistrySelector ) ( select => ( ) => {
const widgets = select ( external _wp _coreData _namespaceObject . store ) . getEntityRecords ( 'root' , 'widget' , buildWidgetsQuery ( ) ) ;
2023-09-26 16:23:26 +02:00
return (
// Key widgets by their ID.
widgets ? . reduce ( ( allWidgets , widget ) => ( {
... allWidgets ,
2022-09-20 17:43:29 +02:00
[ widget . id ] : widget
2023-06-27 16:24:19 +02:00
} ) , { } ) || { }
2022-09-20 17:43:29 +02:00
) ;
2022-04-11 14:04:30 +02:00
} ) ;
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Returns API widget data for a particular widget ID .
*
* @ param { number } id Widget ID .
*
* @ return { Object } API widget data for a particular widget ID .
* /
const getWidget = ( 0 , external _wp _data _namespaceObject . createRegistrySelector ) ( select => ( state , id ) => {
const widgets = select ( constants _STORE _NAME ) . getWidgets ( ) ;
return widgets [ id ] ;
} ) ;
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Returns all API widget areas .
*
* @ return { Object [ ] } API List of widget areas .
* /
const selectors _getWidgetAreas = ( 0 , external _wp _data _namespaceObject . createRegistrySelector ) ( select => ( ) => {
const query = buildWidgetAreasQuery ( ) ;
return select ( external _wp _coreData _namespaceObject . store ) . getEntityRecords ( KIND , WIDGET _AREA _ENTITY _TYPE , query ) ;
} ) ;
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Returns widgetArea containing a block identify by given widgetId
*
* @ param { string } widgetId The ID of the widget .
* @ return { Object } Containing widget area .
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const getWidgetAreaForWidgetId = ( 0 , external _wp _data _namespaceObject . createRegistrySelector ) ( select => ( state , widgetId ) => {
const widgetAreas = select ( constants _STORE _NAME ) . getWidgetAreas ( ) ;
return widgetAreas . find ( widgetArea => {
const post = select ( external _wp _coreData _namespaceObject . store ) . getEditedEntityRecord ( KIND , POST _TYPE , buildWidgetAreaPostId ( widgetArea . id ) ) ;
const blockWidgetIds = post . blocks . map ( block => ( 0 , external _wp _widgets _namespaceObject . getWidgetIdFromBlock ) ( block ) ) ;
return blockWidgetIds . includes ( widgetId ) ;
} ) ;
} ) ;
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Given a child client id , returns the parent widget area block .
*
* @ param { string } clientId The client id of a block in a widget area .
*
* @ return { WPBlock } The widget area block .
* /
const getParentWidgetAreaBlock = ( 0 , external _wp _data _namespaceObject . createRegistrySelector ) ( select => ( state , clientId ) => {
const {
getBlock ,
getBlockName ,
getBlockParents
} = select ( external _wp _blockEditor _namespaceObject . store ) ;
const blockParents = getBlockParents ( clientId ) ;
const widgetAreaClientId = blockParents . find ( parentClientId => getBlockName ( parentClientId ) === 'core/widget-area' ) ;
return getBlock ( widgetAreaClientId ) ;
} ) ;
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Returns all edited widget area entity records .
*
* @ return { Object [ ] } List of edited widget area entity records .
* /
const getEditedWidgetAreas = ( 0 , external _wp _data _namespaceObject . createRegistrySelector ) ( select => ( state , ids ) => {
let widgetAreas = select ( constants _STORE _NAME ) . getWidgetAreas ( ) ;
if ( ! widgetAreas ) {
return [ ] ;
}
if ( ids ) {
2023-06-27 16:24:19 +02:00
widgetAreas = widgetAreas . filter ( ( {
id
} ) => ids . includes ( id ) ) ;
2022-04-11 14:04:30 +02:00
}
2023-06-27 16:24:19 +02:00
return widgetAreas . filter ( ( {
id
} ) => select ( external _wp _coreData _namespaceObject . store ) . hasEditsForEntityRecord ( KIND , POST _TYPE , buildWidgetAreaPostId ( id ) ) ) . map ( ( {
id
} ) => select ( external _wp _coreData _namespaceObject . store ) . getEditedEntityRecord ( KIND , WIDGET _AREA _ENTITY _TYPE , id ) ) ;
2022-04-11 14:04:30 +02:00
} ) ;
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Returns all blocks representing reference widgets .
*
* @ param { string } referenceWidgetName Optional . If given , only reference widgets with this name will be returned .
* @ return { Array } List of all blocks representing reference widgets
* /
2023-06-27 16:24:19 +02:00
const getReferenceWidgetBlocks = ( 0 , external _wp _data _namespaceObject . createRegistrySelector ) ( select => ( state , referenceWidgetName = null ) => {
2022-04-11 14:04:30 +02:00
const results = [ ] ;
const widgetAreas = select ( constants _STORE _NAME ) . getWidgetAreas ( ) ;
for ( const _widgetArea of widgetAreas ) {
const post = select ( external _wp _coreData _namespaceObject . store ) . getEditedEntityRecord ( KIND , POST _TYPE , buildWidgetAreaPostId ( _widgetArea . id ) ) ;
for ( const block of post . blocks ) {
2023-06-27 16:24:19 +02:00
if ( block . name === 'core/legacy-widget' && ( ! referenceWidgetName || block . attributes ? . referenceWidgetName === referenceWidgetName ) ) {
2022-04-11 14:04:30 +02:00
results . push ( block ) ;
}
2021-05-25 10:40:25 +02:00
}
2022-04-11 14:04:30 +02:00
}
return results ;
} ) ;
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Returns true if any widget area is currently being saved .
*
* @ return { boolean } True if any widget area is currently being saved . False otherwise .
* /
const isSavingWidgetAreas = ( 0 , external _wp _data _namespaceObject . createRegistrySelector ) ( select => ( ) => {
2023-06-27 16:24:19 +02:00
const widgetAreasIds = select ( constants _STORE _NAME ) . getWidgetAreas ( ) ? . map ( ( {
id
} ) => id ) ;
2022-04-11 14:04:30 +02:00
if ( ! widgetAreasIds ) {
return false ;
}
for ( const id of widgetAreasIds ) {
const isSaving = select ( external _wp _coreData _namespaceObject . store ) . isSavingEntityRecord ( KIND , WIDGET _AREA _ENTITY _TYPE , id ) ;
if ( isSaving ) {
return true ;
}
}
const widgetIds = [ ... Object . keys ( select ( constants _STORE _NAME ) . getWidgets ( ) ) , undefined // account for new widgets without an ID
] ;
2021-11-08 15:29:21 +01:00
2022-04-11 14:04:30 +02:00
for ( const id of widgetIds ) {
const isSaving = select ( external _wp _coreData _namespaceObject . store ) . isSavingEntityRecord ( 'root' , 'widget' , id ) ;
if ( isSaving ) {
return true ;
}
}
return false ;
} ) ;
2023-09-26 16:23:26 +02:00
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* Gets whether the widget area is opened .
*
* @ param { Array } state The open state of the widget areas .
* @ param { string } clientId The clientId of the widget area .
*
* @ return { boolean } True if the widget area is open .
2021-11-08 15:29:21 +01:00
* /
2022-04-11 14:04:30 +02:00
const getIsWidgetAreaOpen = ( state , clientId ) => {
const {
widgetAreasOpenState
} = state ;
return ! ! widgetAreasOpenState [ clientId ] ;
} ;
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Returns true if the inserter is opened .
*
* @ param { Object } state Global application state .
*
* @ return { boolean } Whether the inserter is opened .
* /
function isInserterOpened ( state ) {
return ! ! state . blockInserterPanel ;
}
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Get the insertion point for the inserter .
*
* @ param { Object } state Global application state .
*
* @ return { Object } The root client ID and index to insert at .
* /
function _ _experimentalGetInsertionPoint ( state ) {
2023-09-26 16:23:26 +02:00
if ( typeof state . blockInserterPanel === 'boolean' ) {
return EMPTY _INSERTION _POINT ;
}
return state . blockInserterPanel ;
2021-11-08 15:29:21 +01:00
}
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Returns true if a block can be inserted into a widget area .
*
* @ param { Array } state The open state of the widget areas .
* @ param { string } blockName The name of the block being inserted .
*
* @ return { boolean } True if the block can be inserted in a widget area .
* /
const canInsertBlockInWidgetArea = ( 0 , external _wp _data _namespaceObject . createRegistrySelector ) ( select => ( state , blockName ) => {
// Widget areas are always top-level blocks, which getBlocks will return.
2023-09-26 16:23:26 +02:00
const widgetAreas = select ( external _wp _blockEditor _namespaceObject . store ) . getBlocks ( ) ;
// Makes an assumption that a block that can be inserted into one
2022-04-11 14:04:30 +02:00
// widget area can be inserted into any widget area. Uses the first
// widget area for testing whether the block can be inserted.
const [ firstWidgetArea ] = widgetAreas ;
return select ( external _wp _blockEditor _namespaceObject . store ) . canInsertBlockType ( blockName , firstWidgetArea . clientId ) ;
} ) ;
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Returns true if the list view is opened .
*
* @ param { Object } state Global application state .
*
* @ return { boolean } Whether the list view is opened .
* /
function isListViewOpened ( state ) {
return state . listViewPanel ;
}
2021-11-08 15:29:21 +01:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/store/index.js
2021-11-08 15:29:21 +01:00
/ * *
* WordPress dependencies
* /
2023-09-26 16:23:26 +02:00
2021-11-08 15:29:21 +01:00
/ * *
* Internal dependencies
* /
2021-05-25 10:40:25 +02:00
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* Block editor data store configuration .
*
2022-04-12 17:12:47 +02:00
* @ see https : //github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#register
2022-04-11 14:04:30 +02:00
*
* @ type { Object }
2021-11-08 15:29:21 +01:00
* /
2022-04-11 14:04:30 +02:00
const storeConfig = {
2022-04-12 17:12:47 +02:00
reducer : reducer ,
2022-04-11 14:04:30 +02:00
selectors : store _selectors _namespaceObject ,
resolvers : resolvers _namespaceObject ,
2022-04-12 17:12:47 +02:00
actions : store _actions _namespaceObject
2022-04-11 14:04:30 +02:00
} ;
2023-09-26 16:23:26 +02:00
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* Store definition for the edit widgets namespace .
*
* @ see https : //github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
*
* @ type { Object }
2021-11-08 15:29:21 +01:00
* /
2022-04-12 17:12:47 +02:00
const store _store = ( 0 , external _wp _data _namespaceObject . createReduxStore ) ( constants _STORE _NAME , storeConfig ) ;
2023-09-26 16:23:26 +02:00
( 0 , external _wp _data _namespaceObject . register ) ( store _store ) ;
// This package uses a few in-memory post types as wrappers for convenience.
2022-04-11 14:04:30 +02:00
// This middleware prevents any network requests related to these types as they are
// bound to fail anyway.
external _wp _apiFetch _default ( ) . use ( function ( options , next ) {
2023-06-27 16:24:19 +02:00
if ( options . path ? . indexOf ( '/wp/v2/types/widget-area' ) === 0 ) {
2022-04-11 14:04:30 +02:00
return Promise . resolve ( { } ) ;
2021-11-08 15:29:21 +01:00
}
2022-04-11 14:04:30 +02:00
return next ( options ) ;
} ) ;
2021-11-08 15:29:21 +01:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","hooks"]
2023-09-21 15:26:32 +02:00
var external _wp _hooks _namespaceObject = window [ "wp" ] [ "hooks" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/filters/move-to-widget-area.js
2021-11-08 15:29:21 +01:00
/ * *
* WordPress dependencies
* /
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
* Internal dependencies
* /
2022-04-11 14:04:30 +02:00
const withMoveToWidgetAreaToolbarItem = ( 0 , external _wp _compose _namespaceObject . createHigherOrderComponent ) ( BlockEdit => props => {
2021-05-25 10:40:25 +02:00
const {
2022-04-11 14:04:30 +02:00
clientId ,
name : blockName
} = props ;
2021-05-25 10:40:25 +02:00
const {
2022-04-11 14:04:30 +02:00
widgetAreas ,
currentWidgetAreaId ,
canInsertBlockInWidgetArea
} = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
// Component won't display for a widget area, so don't run selectors.
if ( blockName === 'core/widget-area' ) {
return { } ;
2021-06-22 12:00:50 +02:00
}
2022-04-11 14:04:30 +02:00
const selectors = select ( store _store ) ;
const widgetAreaBlock = selectors . getParentWidgetAreaBlock ( clientId ) ;
return {
widgetAreas : selectors . getWidgetAreas ( ) ,
2023-06-27 16:24:19 +02:00
currentWidgetAreaId : widgetAreaBlock ? . attributes ? . id ,
2022-04-11 14:04:30 +02:00
canInsertBlockInWidgetArea : selectors . canInsertBlockInWidgetArea ( blockName )
} ;
} , [ clientId , blockName ] ) ;
const {
moveBlockToWidgetArea
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( store _store ) ;
2023-06-27 16:24:19 +02:00
const hasMultipleWidgetAreas = widgetAreas ? . length > 1 ;
2022-04-11 14:04:30 +02:00
const isMoveToWidgetAreaVisible = blockName !== 'core/widget-area' && hasMultipleWidgetAreas && canInsertBlockInWidgetArea ;
2023-09-26 16:23:26 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( BlockEdit , {
... props
2023-06-27 16:24:19 +02:00
} ) , isMoveToWidgetAreaVisible && ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . BlockControls , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _widgets _namespaceObject . MoveToWidgetArea , {
2022-04-11 14:04:30 +02:00
widgetAreas : widgetAreas ,
currentWidgetAreaId : currentWidgetAreaId ,
onSelect : widgetAreaId => {
moveBlockToWidgetArea ( props . clientId , widgetAreaId ) ;
}
} ) ) ) ;
} , 'withMoveToWidgetAreaToolbarItem' ) ;
( 0 , external _wp _hooks _namespaceObject . addFilter ) ( 'editor.BlockEdit' , 'core/edit-widgets/block-edit' , withMoveToWidgetAreaToolbarItem ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","mediaUtils"]
2023-09-21 15:26:32 +02:00
var external _wp _mediaUtils _namespaceObject = window [ "wp" ] [ "mediaUtils" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/filters/replace-media-upload.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2022-04-11 14:04:30 +02:00
const replaceMediaUpload = ( ) => external _wp _mediaUtils _namespaceObject . MediaUpload ;
( 0 , external _wp _hooks _namespaceObject . addFilter ) ( 'editor.MediaUpload' , 'core/edit-widgets/replace-media-upload' , replaceMediaUpload ) ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/filters/index.js
2021-06-01 10:10:04 +02:00
/ * *
* Internal dependencies
* /
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/blocks/widget-area/edit/use-is-dragging-within.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
* /
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/** @typedef {import('@wordpress/element').RefObject} RefObject */
/ * *
* A React hook to determine if it ' s dragging within the target element .
2021-05-25 10:40:25 +02:00
*
2022-04-11 14:04:30 +02:00
* @ param { RefObject < HTMLElement > } elementRef The target elementRef object .
2021-05-25 10:40:25 +02:00
*
2022-04-11 14:04:30 +02:00
* @ return { boolean } Is dragging within the target element .
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const useIsDraggingWithin = elementRef => {
const [ isDraggingWithin , setIsDraggingWithin ] = ( 0 , external _wp _element _namespaceObject . useState ) ( false ) ;
( 0 , external _wp _element _namespaceObject . useEffect ) ( ( ) => {
2021-06-01 10:10:04 +02:00
const {
2022-04-11 14:04:30 +02:00
ownerDocument
} = elementRef . current ;
function handleDragStart ( event ) {
// Check the first time when the dragging starts.
handleDragEnter ( event ) ;
2023-09-26 16:23:26 +02:00
}
2022-04-11 14:04:30 +02:00
2023-09-26 16:23:26 +02:00
// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.
2022-04-11 14:04:30 +02:00
function handleDragEnd ( ) {
setIsDraggingWithin ( false ) ;
}
function handleDragEnter ( event ) {
// Check if the current target is inside the item element.
if ( elementRef . current . contains ( event . target ) ) {
setIsDraggingWithin ( true ) ;
} else {
setIsDraggingWithin ( false ) ;
2021-05-25 10:40:25 +02:00
}
2023-09-26 16:23:26 +02:00
}
2022-04-11 14:04:30 +02:00
2023-09-26 16:23:26 +02:00
// Bind these events to the document to catch all drag events.
// Ideally, we can also use `event.relatedTarget`, but sadly that doesn't work in Safari.
2022-04-11 14:04:30 +02:00
ownerDocument . addEventListener ( 'dragstart' , handleDragStart ) ;
ownerDocument . addEventListener ( 'dragend' , handleDragEnd ) ;
ownerDocument . addEventListener ( 'dragenter' , handleDragEnter ) ;
2021-05-25 10:40:25 +02:00
return ( ) => {
2022-04-11 14:04:30 +02:00
ownerDocument . removeEventListener ( 'dragstart' , handleDragStart ) ;
ownerDocument . removeEventListener ( 'dragend' , handleDragEnd ) ;
ownerDocument . removeEventListener ( 'dragenter' , handleDragEnter ) ;
2021-05-25 10:40:25 +02:00
} ;
2022-04-11 14:04:30 +02:00
} , [ ] ) ;
return isDraggingWithin ;
} ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var use _is _dragging _within = ( useIsDraggingWithin ) ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/blocks/widget-area/edit/inner-blocks.js
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* External dependencies
* /
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
/ * *
* Internal dependencies
* /
2023-06-27 16:24:19 +02:00
function WidgetAreaInnerBlocks ( {
id
} ) {
2022-04-11 14:04:30 +02:00
const [ blocks , onInput , onChange ] = ( 0 , external _wp _coreData _namespaceObject . useEntityBlockEditor ) ( 'root' , 'postType' ) ;
const innerBlocksRef = ( 0 , external _wp _element _namespaceObject . useRef ) ( ) ;
const isDraggingWithinInnerBlocks = use _is _dragging _within ( innerBlocksRef ) ;
2023-09-26 16:23:26 +02:00
const shouldHighlightDropZone = isDraggingWithinInnerBlocks ;
// Using the experimental hook so that we can control the className of the element.
2022-04-11 14:04:30 +02:00
const innerBlocksProps = ( 0 , external _wp _blockEditor _namespaceObject . useInnerBlocksProps ) ( {
ref : innerBlocksRef
} , {
value : blocks ,
onInput ,
onChange ,
templateLock : false ,
renderAppender : external _wp _blockEditor _namespaceObject . InnerBlocks . ButtonBlockAppender
} ) ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
"data-widget-area-id" : id ,
className : classnames _default ( ) ( 'wp-block-widget-area__inner-blocks block-editor-inner-blocks editor-styles-wrapper' , {
'wp-block-widget-area__highlight-drop-zone' : shouldHighlightDropZone
} )
2023-09-26 16:23:26 +02:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
... innerBlocksProps
2023-06-27 16:24:19 +02:00
} ) ) ;
2021-06-01 10:10:04 +02:00
}
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/blocks/widget-area/edit/index.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2022-04-11 14:04:30 +02:00
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
* Internal dependencies
* /
2022-04-11 14:04:30 +02:00
/** @typedef {import('@wordpress/element').RefObject} RefObject */
2021-05-25 10:40:25 +02:00
2023-06-27 16:24:19 +02:00
function WidgetAreaEdit ( {
clientId ,
className ,
attributes : {
id ,
name
}
} ) {
2022-04-11 14:04:30 +02:00
const isOpen = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => select ( store _store ) . getIsWidgetAreaOpen ( clientId ) , [ clientId ] ) ;
const {
setIsWidgetAreaOpen
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( store _store ) ;
const wrapper = ( 0 , external _wp _element _namespaceObject . useRef ) ( ) ;
const setOpen = ( 0 , external _wp _element _namespaceObject . useCallback ) ( openState => setIsWidgetAreaOpen ( clientId , openState ) , [ clientId ] ) ;
const isDragging = useIsDragging ( wrapper ) ;
const isDraggingWithin = use _is _dragging _within ( wrapper ) ;
const [ openedWhileDragging , setOpenedWhileDragging ] = ( 0 , external _wp _element _namespaceObject . useState ) ( false ) ;
( 0 , external _wp _element _namespaceObject . useEffect ) ( ( ) => {
if ( ! isDragging ) {
setOpenedWhileDragging ( false ) ;
return ;
}
if ( isDraggingWithin && ! isOpen ) {
setOpen ( true ) ;
setOpenedWhileDragging ( true ) ;
} else if ( ! isDraggingWithin && isOpen && openedWhileDragging ) {
setOpen ( false ) ;
}
} , [ isOpen , isDragging , isDraggingWithin , openedWhileDragging ] ) ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Panel , {
className : className ,
ref : wrapper
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . PanelBody , {
title : name ,
opened : isOpen ,
onToggle : ( ) => {
setIsWidgetAreaOpen ( clientId , ! isOpen ) ;
} ,
scrollAfterOpen : ! isDragging
2023-06-27 16:24:19 +02:00
} , ( {
opened
2023-09-26 16:23:26 +02:00
} ) =>
// This is required to ensure LegacyWidget blocks are not
2023-06-27 16:24:19 +02:00
// unmounted when the panel is collapsed. Unmounting legacy
// widgets may have unintended consequences (e.g. TinyMCE
// not being properly reinitialized)
( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . _ _unstableDisclosureContent , {
className : "wp-block-widget-area__panel-body-content" ,
visible : opened
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _coreData _namespaceObject . EntityProvider , {
kind : "root" ,
type : "postType" ,
id : ` widget-area- ${ id } `
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( WidgetAreaInnerBlocks , {
id : id
} ) ) ) ) ) ;
2022-04-11 14:04:30 +02:00
}
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* A React hook to determine if dragging is active .
*
* @ param { RefObject < HTMLElement > } elementRef The target elementRef object .
*
* @ return { boolean } Is dragging within the entire document .
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const useIsDragging = elementRef => {
const [ isDragging , setIsDragging ] = ( 0 , external _wp _element _namespaceObject . useState ) ( false ) ;
( 0 , external _wp _element _namespaceObject . useEffect ) ( ( ) => {
const {
ownerDocument
} = elementRef . current ;
function handleDragStart ( ) {
setIsDragging ( true ) ;
}
function handleDragEnd ( ) {
setIsDragging ( false ) ;
}
ownerDocument . addEventListener ( 'dragstart' , handleDragStart ) ;
ownerDocument . addEventListener ( 'dragend' , handleDragEnd ) ;
return ( ) => {
ownerDocument . removeEventListener ( 'dragstart' , handleDragStart ) ;
ownerDocument . removeEventListener ( 'dragend' , handleDragEnd ) ;
} ;
} , [ ] ) ;
return isDragging ;
} ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/blocks/widget-area/index.js
/ * *
* WordPress dependencies
* /
2021-11-08 15:29:21 +01:00
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
* Internal dependencies
* /
2022-04-11 14:04:30 +02:00
const metadata = {
name : "core/widget-area" ,
category : "widgets" ,
attributes : {
id : {
type : "string"
} ,
name : {
type : "string"
}
} ,
supports : {
html : false ,
inserter : false ,
customClassName : false ,
reusable : false ,
_ _experimentalToolbar : false ,
2022-09-20 17:43:29 +02:00
_ _experimentalParentSelector : false ,
_ _experimentalDisableBlockOverlay : true
2022-04-11 14:04:30 +02:00
} ,
editorStyle : "wp-block-widget-area-editor" ,
style : "wp-block-widget-area"
} ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
const {
name : widget _area _name
} = metadata ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
const settings = {
title : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Widget Area' ) ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'A widget area container.' ) ,
2023-06-27 16:24:19 +02:00
_ _experimentalLabel : ( {
name : label
} ) => label ,
2022-04-11 14:04:30 +02:00
edit : WidgetAreaEdit
} ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/error-boundary/index.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-05-25 10:40:25 +02:00
* /
2021-07-06 16:38:40 +02:00
2021-05-25 10:40:25 +02:00
2023-06-27 16:24:19 +02:00
function CopyButton ( {
text ,
children
} ) {
2022-04-11 14:04:30 +02:00
const ref = ( 0 , external _wp _compose _namespaceObject . useCopyToClipboard ) ( text ) ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Button , {
variant : "secondary" ,
ref : ref
} , children ) ;
2021-05-25 10:40:25 +02:00
}
2023-06-27 16:24:19 +02:00
function ErrorBoundaryWarning ( {
message ,
error
} ) {
2023-02-07 08:04:52 +01:00
const actions = [ ( 0 , external _wp _element _namespaceObject . createElement ) ( CopyButton , {
key : "copy-error" ,
text : error . stack
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Copy Error' ) ) ] ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . Warning , {
className : "edit-widgets-error-boundary" ,
actions : actions
} , message ) ;
}
2022-04-11 14:04:30 +02:00
class ErrorBoundary extends external _wp _element _namespaceObject . Component {
constructor ( ) {
super ( ... arguments ) ;
this . state = {
error : null
} ;
2021-05-25 10:40:25 +02:00
}
2022-04-11 14:04:30 +02:00
componentDidCatch ( error ) {
2022-09-20 17:43:29 +02:00
( 0 , external _wp _hooks _namespaceObject . doAction ) ( 'editor.ErrorBoundary.errorLogged' , error ) ;
2021-05-25 10:40:25 +02:00
}
2023-02-07 08:04:52 +01:00
static getDerivedStateFromError ( error ) {
return {
error
} ;
2022-04-11 14:04:30 +02:00
}
render ( ) {
2023-02-07 08:04:52 +01:00
if ( ! this . state . error ) {
2022-04-11 14:04:30 +02:00
return this . props . children ;
}
2023-02-07 08:04:52 +01:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( ErrorBoundaryWarning , {
message : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'The editor has encountered an unexpected error.' ) ,
error : this . state . error
} ) ;
2022-04-11 14:04:30 +02:00
}
}
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
; // CONCATENATED MODULE: external ["wp","patterns"]
var external _wp _patterns _namespaceObject = window [ "wp" ] [ "patterns" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","keyboardShortcuts"]
2023-09-21 15:26:32 +02:00
var external _wp _keyboardShortcuts _namespaceObject = window [ "wp" ] [ "keyboardShortcuts" ] ;
2023-02-07 08:04:52 +01:00
; // CONCATENATED MODULE: external ["wp","keycodes"]
2023-09-21 15:26:32 +02:00
var external _wp _keycodes _namespaceObject = window [ "wp" ] [ "keycodes" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/keyboard-shortcuts/index.js
/ * *
* WordPress dependencies
* /
2021-05-25 10:40:25 +02:00
2023-02-07 08:04:52 +01:00
2023-06-27 16:24:19 +02:00
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Internal dependencies
* /
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
function KeyboardShortcuts ( ) {
const {
redo ,
undo
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( external _wp _coreData _namespaceObject . store ) ;
const {
saveEditedWidgetAreas
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( store _store ) ;
2023-06-27 16:24:19 +02:00
const {
replaceBlocks
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( external _wp _blockEditor _namespaceObject . store ) ;
const {
getBlockName ,
getSelectedBlockClientId ,
getBlockAttributes
} = ( 0 , external _wp _data _namespaceObject . useSelect ) ( external _wp _blockEditor _namespaceObject . store ) ;
const handleTextLevelShortcut = ( event , level ) => {
event . preventDefault ( ) ;
const destinationBlockName = level === 0 ? 'core/paragraph' : 'core/heading' ;
const currentClientId = getSelectedBlockClientId ( ) ;
if ( currentClientId === null ) {
return ;
}
const blockName = getBlockName ( currentClientId ) ;
if ( blockName !== 'core/paragraph' && blockName !== 'core/heading' ) {
return ;
}
const attributes = getBlockAttributes ( currentClientId ) ;
const textAlign = blockName === 'core/paragraph' ? 'align' : 'textAlign' ;
const destinationTextAlign = destinationBlockName === 'core/paragraph' ? 'align' : 'textAlign' ;
replaceBlocks ( currentClientId , ( 0 , external _wp _blocks _namespaceObject . createBlock ) ( destinationBlockName , {
level ,
content : attributes . content ,
... {
[ destinationTextAlign ] : attributes [ textAlign ]
}
} ) ) ;
} ;
2022-04-11 14:04:30 +02:00
( 0 , external _wp _keyboardShortcuts _namespaceObject . useShortcut ) ( 'core/edit-widgets/undo' , event => {
undo ( ) ;
event . preventDefault ( ) ;
} ) ;
( 0 , external _wp _keyboardShortcuts _namespaceObject . useShortcut ) ( 'core/edit-widgets/redo' , event => {
redo ( ) ;
event . preventDefault ( ) ;
} ) ;
( 0 , external _wp _keyboardShortcuts _namespaceObject . useShortcut ) ( 'core/edit-widgets/save' , event => {
event . preventDefault ( ) ;
saveEditedWidgetAreas ( ) ;
} ) ;
2023-06-27 16:24:19 +02:00
( 0 , external _wp _keyboardShortcuts _namespaceObject . useShortcut ) ( 'core/edit-widgets/transform-heading-to-paragraph' , event => handleTextLevelShortcut ( event , 0 ) ) ;
[ 1 , 2 , 3 , 4 , 5 , 6 ] . forEach ( level => {
//the loop is based off on a constant therefore
//the hook will execute the same way every time
//eslint-disable-next-line react-hooks/rules-of-hooks
( 0 , external _wp _keyboardShortcuts _namespaceObject . useShortcut ) ( ` core/edit-widgets/transform-paragraph-to-heading- ${ level } ` , event => handleTextLevelShortcut ( event , level ) ) ;
} ) ;
2022-04-11 14:04:30 +02:00
return null ;
}
function KeyboardShortcutsRegister ( ) {
2022-04-12 17:12:47 +02:00
// Registering the shortcuts.
2022-04-11 14:04:30 +02:00
const {
registerShortcut
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( external _wp _keyboardShortcuts _namespaceObject . store ) ;
( 0 , external _wp _element _namespaceObject . useEffect ) ( ( ) => {
registerShortcut ( {
name : 'core/edit-widgets/undo' ,
category : 'global' ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Undo your last changes.' ) ,
keyCombination : {
modifier : 'primary' ,
character : 'z'
}
} ) ;
registerShortcut ( {
name : 'core/edit-widgets/redo' ,
category : 'global' ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Redo your last undo.' ) ,
keyCombination : {
modifier : 'primaryShift' ,
character : 'z'
2023-02-07 08:04:52 +01:00
} ,
// Disable on Apple OS because it conflicts with the browser's
// history shortcut. It's a fine alias for both Windows and Linux.
// Since there's no conflict for Ctrl+Shift+Z on both Windows and
// Linux, we keep it as the default for consistency.
aliases : ( 0 , external _wp _keycodes _namespaceObject . isAppleOS ) ( ) ? [ ] : [ {
modifier : 'primary' ,
character : 'y'
} ]
2022-04-11 14:04:30 +02:00
} ) ;
registerShortcut ( {
name : 'core/edit-widgets/save' ,
category : 'global' ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Save your changes.' ) ,
keyCombination : {
modifier : 'primary' ,
character : 's'
}
} ) ;
registerShortcut ( {
name : 'core/edit-widgets/keyboard-shortcuts' ,
category : 'main' ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Display these keyboard shortcuts.' ) ,
keyCombination : {
modifier : 'access' ,
character : 'h'
}
} ) ;
registerShortcut ( {
name : 'core/edit-widgets/next-region' ,
category : 'global' ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Navigate to the next part of the editor.' ) ,
keyCombination : {
modifier : 'ctrl' ,
character : '`'
} ,
aliases : [ {
modifier : 'access' ,
character : 'n'
} ]
} ) ;
registerShortcut ( {
name : 'core/edit-widgets/previous-region' ,
category : 'global' ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Navigate to the previous part of the editor.' ) ,
keyCombination : {
modifier : 'ctrlShift' ,
character : '`'
} ,
aliases : [ {
modifier : 'access' ,
character : 'p'
2023-02-07 08:04:52 +01:00
} , {
modifier : 'ctrlShift' ,
character : '~'
2022-04-11 14:04:30 +02:00
} ]
} ) ;
2023-06-27 16:24:19 +02:00
registerShortcut ( {
name : 'core/edit-widgets/transform-heading-to-paragraph' ,
category : 'block-library' ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Transform heading to paragraph.' ) ,
keyCombination : {
modifier : 'access' ,
character : ` 0 `
}
} ) ;
[ 1 , 2 , 3 , 4 , 5 , 6 ] . forEach ( level => {
registerShortcut ( {
name : ` core/edit-widgets/transform-paragraph-to-heading- ${ level } ` ,
category : 'block-library' ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Transform paragraph to heading.' ) ,
keyCombination : {
modifier : 'access' ,
character : ` ${ level } `
}
} ) ;
} ) ;
2022-04-11 14:04:30 +02:00
} , [ registerShortcut ] ) ;
return null ;
}
KeyboardShortcuts . Register = KeyboardShortcutsRegister ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var keyboard _shortcuts = ( KeyboardShortcuts ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/hooks/use-last-selected-widget-area.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Internal dependencies
* /
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* A react hook that returns the client id of the last widget area to have
* been selected , or to have a selected block within it .
*
* @ return { string } clientId of the widget area last selected .
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const useLastSelectedWidgetArea = ( ) => ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
const {
getBlockSelectionEnd ,
getBlockName
} = select ( external _wp _blockEditor _namespaceObject . store ) ;
2023-09-26 16:23:26 +02:00
const selectionEndClientId = getBlockSelectionEnd ( ) ;
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
// If the selected block is a widget area, return its clientId.
2022-04-11 14:04:30 +02:00
if ( getBlockName ( selectionEndClientId ) === 'core/widget-area' ) {
return selectionEndClientId ;
}
const {
getParentWidgetAreaBlock
} = select ( store _store ) ;
const widgetAreaBlock = getParentWidgetAreaBlock ( selectionEndClientId ) ;
2023-06-27 16:24:19 +02:00
const widgetAreaBlockClientId = widgetAreaBlock ? . clientId ;
2022-04-11 14:04:30 +02:00
if ( widgetAreaBlockClientId ) {
return widgetAreaBlockClientId ;
2023-09-26 16:23:26 +02:00
}
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
// If no widget area has been selected, return the clientId of the first
// area.
2022-04-11 14:04:30 +02:00
const {
getEntityRecord
} = select ( external _wp _coreData _namespaceObject . store ) ;
const widgetAreasPost = getEntityRecord ( KIND , POST _TYPE , buildWidgetAreasPostId ( ) ) ;
2023-06-27 16:24:19 +02:00
return widgetAreasPost ? . blocks [ 0 ] ? . clientId ;
2022-04-11 14:04:30 +02:00
} , [ ] ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var use _last _selected _widget _area = ( useLastSelectedWidgetArea ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/constants.js
const ALLOW _REUSABLE _BLOCKS = false ;
const ENABLE _EXPERIMENTAL _FSE _BLOCKS = false ;
2021-11-08 15:29:21 +01:00
2023-02-14 16:44:36 +01:00
; // CONCATENATED MODULE: external ["wp","privateApis"]
2023-09-21 15:26:32 +02:00
var external _wp _privateApis _namespaceObject = window [ "wp" ] [ "privateApis" ] ;
2023-06-27 16:24:19 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/lock-unlock.js
2023-02-07 08:04:52 +01:00
/ * *
* WordPress dependencies
* /
const {
lock ,
unlock
2023-02-14 16:44:36 +01:00
} = ( 0 , external _wp _privateApis _namespaceObject . _ _dangerousOptInToUnstableAPIsOnlyForCoreModules ) ( 'I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.' , '@wordpress/edit-widgets' ) ;
2023-02-07 08:04:52 +01:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/widget-areas-block-editor-provider/index.js
2021-11-08 15:29:21 +01:00
/ * *
* WordPress dependencies
* /
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Internal dependencies
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
2023-02-07 08:04:52 +01:00
const {
ExperimentalBlockEditorProvider
2023-02-14 16:44:36 +01:00
} = unlock ( external _wp _blockEditor _namespaceObject . privateApis ) ;
2023-09-26 16:23:26 +02:00
const {
PatternsMenuItems
} = unlock ( external _wp _patterns _namespaceObject . privateApis ) ;
2023-06-27 16:24:19 +02:00
function WidgetAreasBlockEditorProvider ( {
blockEditorSettings ,
children ,
... props
} ) {
2022-09-20 17:43:29 +02:00
const mediaPermissions = ( 0 , external _wp _coreData _namespaceObject . useResourcePermissions ) ( 'media' ) ;
2022-04-11 14:04:30 +02:00
const {
reusableBlocks ,
isFixedToolbarActive ,
keepCaretInsideBlock
} = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => ( {
widgetAreas : select ( store _store ) . getWidgetAreas ( ) ,
widgets : select ( store _store ) . getWidgets ( ) ,
reusableBlocks : ALLOW _REUSABLE _BLOCKS ? select ( external _wp _coreData _namespaceObject . store ) . getEntityRecords ( 'postType' , 'wp_block' ) : [ ] ,
2022-04-12 17:12:47 +02:00
isFixedToolbarActive : ! ! select ( external _wp _preferences _namespaceObject . store ) . get ( 'core/edit-widgets' , 'fixedToolbar' ) ,
keepCaretInsideBlock : ! ! select ( external _wp _preferences _namespaceObject . store ) . get ( 'core/edit-widgets' , 'keepCaretInsideBlock' )
2022-04-11 14:04:30 +02:00
} ) , [ ] ) ;
const {
setIsInserterOpened
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( store _store ) ;
const settings = ( 0 , external _wp _element _namespaceObject . useMemo ) ( ( ) => {
let mediaUploadBlockEditor ;
2022-09-20 17:43:29 +02:00
if ( mediaPermissions . canCreate ) {
2023-06-27 16:24:19 +02:00
mediaUploadBlockEditor = ( {
onError ,
... argumentsObject
} ) => {
2022-04-11 14:04:30 +02:00
( 0 , external _wp _mediaUtils _namespaceObject . uploadMedia ) ( {
wpAllowedMimeTypes : blockEditorSettings . allowedMimeTypes ,
2023-06-27 16:24:19 +02:00
onError : ( {
message
} ) => onError ( message ) ,
2022-04-11 14:04:30 +02:00
... argumentsObject
} ) ;
} ;
}
2023-09-26 16:23:26 +02:00
return {
... blockEditorSettings ,
2022-04-11 14:04:30 +02:00
_ _experimentalReusableBlocks : reusableBlocks ,
hasFixedToolbar : isFixedToolbarActive ,
keepCaretInsideBlock ,
mediaUpload : mediaUploadBlockEditor ,
templateLock : 'all' ,
_ _experimentalSetIsInserterOpened : setIsInserterOpened
} ;
2022-09-20 17:43:29 +02:00
} , [ blockEditorSettings , isFixedToolbarActive , keepCaretInsideBlock , mediaPermissions . canCreate , reusableBlocks , setIsInserterOpened ] ) ;
2022-04-11 14:04:30 +02:00
const widgetAreaId = use _last _selected _widget _area ( ) ;
const [ blocks , onInput , onChange ] = ( 0 , external _wp _coreData _namespaceObject . useEntityBlockEditor ) ( KIND , POST _TYPE , {
id : buildWidgetAreasPostId ( )
} ) ;
2023-09-26 16:23:26 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . SlotFillProvider , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( keyboard _shortcuts . Register , null ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( ExperimentalBlockEditorProvider , {
2022-04-11 14:04:30 +02:00
value : blocks ,
onInput : onInput ,
onChange : onChange ,
settings : settings ,
2023-06-27 16:24:19 +02:00
useSubRegistry : false ,
... props
2023-09-26 16:23:26 +02:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . CopyHandler , null , children ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( PatternsMenuItems , {
2022-04-11 14:04:30 +02:00
rootClientId : widgetAreaId
2023-09-26 16:23:26 +02:00
} ) ) ) ;
2022-04-11 14:04:30 +02:00
}
2023-06-27 16:24:19 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/drawer-left.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2023-06-27 16:24:19 +02:00
const drawerLeft = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
width : "24" ,
height : "24" ,
2021-05-25 10:40:25 +02:00
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
2022-04-11 14:04:30 +02:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
fillRule : "evenodd" ,
2023-06-27 16:24:19 +02:00
clipRule : "evenodd" ,
d : "M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM8.5 18.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h2.5v13zm10-.5c0 .3-.2.5-.5.5h-8v-13h8c.3 0 .5.2.5.5v12z"
} ) ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var drawer _left = ( drawerLeft ) ;
2023-06-27 16:24:19 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/drawer-right.js
/ * *
* WordPress dependencies
* /
const drawerRight = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
width : "24" ,
height : "24" ,
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
fillRule : "evenodd" ,
clipRule : "evenodd" ,
d : "M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-4 14.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h8v13zm4.5-.5c0 .3-.2.5-.5.5h-2.5v-13H18c.3 0 .5.2.5.5v12z"
2021-05-25 10:40:25 +02:00
} ) ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var drawer _right = ( drawerRight ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/block-default.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2022-04-11 14:04:30 +02:00
const blockDefault = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
2021-05-25 10:40:25 +02:00
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
2022-04-11 14:04:30 +02:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
d : "M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z"
2021-05-25 10:40:25 +02:00
} ) ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var block _default = ( blockDefault ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","url"]
2023-09-21 15:26:32 +02:00
var external _wp _url _namespaceObject = window [ "wp" ] [ "url" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","dom"]
2023-09-21 15:26:32 +02:00
var external _wp _dom _namespaceObject = window [ "wp" ] [ "dom" ] ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/sidebar/widget-areas.js
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* WordPress dependencies
* /
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Internal dependencies
* /
2021-05-25 10:40:25 +02:00
2023-06-27 16:24:19 +02:00
function WidgetAreas ( {
selectedWidgetAreaId
} ) {
2022-04-11 14:04:30 +02:00
const widgetAreas = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => select ( store _store ) . getWidgetAreas ( ) , [ ] ) ;
2023-06-27 16:24:19 +02:00
const selectedWidgetArea = ( 0 , external _wp _element _namespaceObject . useMemo ) ( ( ) => selectedWidgetAreaId && widgetAreas ? . find ( widgetArea => widgetArea . id === selectedWidgetAreaId ) , [ selectedWidgetAreaId , widgetAreas ] ) ;
2022-04-11 14:04:30 +02:00
let description ;
if ( ! selectedWidgetArea ) {
description = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Widget Areas are global parts in your site’ s layout that can accept blocks. These vary by theme, but are typically parts like your Sidebar or Footer.' ) ;
} else if ( selectedWidgetAreaId === 'wp_inactive_widgets' ) {
description = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Blocks in this Widget Area will not be displayed in your site.' ) ;
} else {
description = selectedWidgetArea . description ;
}
return ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "edit-widgets-widget-areas"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "edit-widgets-widget-areas__top-container"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . BlockIcon , {
icon : block _default
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( "p" , {
// Use `dangerouslySetInnerHTML` to keep backwards
// compatibility. Basic markup in the description is an
// established feature of WordPress.
// @see https://github.com/WordPress/gutenberg/issues/33106
dangerouslySetInnerHTML : {
_ _html : ( 0 , external _wp _dom _namespaceObject . safeHTML ) ( description )
}
2023-06-27 16:24:19 +02:00
} ) , widgetAreas ? . length === 0 && ( 0 , external _wp _element _namespaceObject . createElement ) ( "p" , null , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Your theme does not contain any Widget Areas.' ) ) , ! selectedWidgetArea && ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Button , {
2022-04-11 14:04:30 +02:00
href : ( 0 , external _wp _url _namespaceObject . addQueryArgs ) ( 'customize.php' , {
'autofocus[panel]' : 'widgets' ,
return : window . location . pathname
} ) ,
variant : "tertiary"
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Manage with live preview' ) ) ) ) ) ;
}
2021-11-08 15:29:21 +01:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/sidebar/index.js
2021-11-08 15:29:21 +01:00
2022-04-11 14:04:30 +02:00
/ * *
* External dependencies
* /
2021-11-08 15:29:21 +01:00
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* WordPress dependencies
* /
2021-05-25 10:40:25 +02:00
2021-11-08 15:29:21 +01:00
2022-04-11 14:04:30 +02:00
const SIDEBAR _ACTIVE _BY _DEFAULT = external _wp _element _namespaceObject . Platform . select ( {
web : true ,
native : false
} ) ;
2023-09-26 16:23:26 +02:00
const BLOCK _INSPECTOR _IDENTIFIER = 'edit-widgets/block-inspector' ;
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
// Widget areas were one called block areas, so use 'edit-widgets/block-areas'
// for backwards compatibility.
2022-04-11 14:04:30 +02:00
const WIDGET _AREAS _IDENTIFIER = 'edit-widgets/block-areas' ;
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Internal dependencies
2021-05-25 10:40:25 +02:00
* /
2023-06-27 16:24:19 +02:00
function ComplementaryAreaTab ( {
identifier ,
label ,
isActive
} ) {
2022-04-11 14:04:30 +02:00
const {
enableComplementaryArea
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( store ) ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Button , {
onClick : ( ) => enableComplementaryArea ( store _store . name , identifier ) ,
className : classnames _default ( ) ( 'edit-widgets-sidebar__panel-tab' , {
'is-active' : isActive
} ) ,
2023-09-26 16:23:26 +02:00
"aria-label" : isActive ?
// translators: %s: sidebar label e.g: "Widget Areas".
2022-04-11 14:04:30 +02:00
( 0 , external _wp _i18n _namespaceObject . sprintf ) ( ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( '%s (selected)' ) , label ) : label ,
"data-label" : label
} , label ) ;
}
function Sidebar ( ) {
const {
enableComplementaryArea
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( store ) ;
const {
currentArea ,
hasSelectedNonAreaBlock ,
isGeneralSidebarOpen ,
selectedWidgetAreaBlock
} = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
const {
getSelectedBlock ,
getBlock ,
getBlockParentsByBlockName
} = select ( external _wp _blockEditor _namespaceObject . store ) ;
const {
getActiveComplementaryArea
} = select ( store ) ;
const selectedBlock = getSelectedBlock ( ) ;
const activeArea = getActiveComplementaryArea ( store _store . name ) ;
let currentSelection = activeArea ;
if ( ! currentSelection ) {
if ( selectedBlock ) {
currentSelection = BLOCK _INSPECTOR _IDENTIFIER ;
} else {
currentSelection = WIDGET _AREAS _IDENTIFIER ;
}
2021-05-25 10:40:25 +02:00
}
2022-04-11 14:04:30 +02:00
let widgetAreaBlock ;
if ( selectedBlock ) {
if ( selectedBlock . name === 'core/widget-area' ) {
widgetAreaBlock = selectedBlock ;
} else {
widgetAreaBlock = getBlock ( getBlockParentsByBlockName ( selectedBlock . clientId , 'core/widget-area' ) [ 0 ] ) ;
2021-05-25 10:40:25 +02:00
}
}
2022-04-11 14:04:30 +02:00
return {
currentArea : currentSelection ,
hasSelectedNonAreaBlock : ! ! ( selectedBlock && selectedBlock . name !== 'core/widget-area' ) ,
isGeneralSidebarOpen : ! ! activeArea ,
selectedWidgetAreaBlock : widgetAreaBlock
} ;
2023-09-26 16:23:26 +02:00
} , [ ] ) ;
2022-04-11 14:04:30 +02:00
2023-09-26 16:23:26 +02:00
// currentArea, and isGeneralSidebarOpen are intentionally left out from the dependencies,
// because we want to run the effect when a block is selected/unselected and not when the sidebar state changes.
2022-04-11 14:04:30 +02:00
( 0 , external _wp _element _namespaceObject . useEffect ) ( ( ) => {
if ( hasSelectedNonAreaBlock && currentArea === WIDGET _AREAS _IDENTIFIER && isGeneralSidebarOpen ) {
enableComplementaryArea ( 'core/edit-widgets' , BLOCK _INSPECTOR _IDENTIFIER ) ;
}
if ( ! hasSelectedNonAreaBlock && currentArea === BLOCK _INSPECTOR _IDENTIFIER && isGeneralSidebarOpen ) {
enableComplementaryArea ( 'core/edit-widgets' , WIDGET _AREAS _IDENTIFIER ) ;
}
} , [ hasSelectedNonAreaBlock , enableComplementaryArea ] ) ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( complementary _area , {
className : "edit-widgets-sidebar" ,
header : ( 0 , external _wp _element _namespaceObject . createElement ) ( "ul" , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( "li" , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( ComplementaryAreaTab , {
identifier : WIDGET _AREAS _IDENTIFIER ,
label : selectedWidgetAreaBlock ? selectedWidgetAreaBlock . attributes . name : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Widget Areas' ) ,
isActive : currentArea === WIDGET _AREAS _IDENTIFIER
} ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( "li" , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( ComplementaryAreaTab , {
identifier : BLOCK _INSPECTOR _IDENTIFIER ,
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Block' ) ,
isActive : currentArea === BLOCK _INSPECTOR _IDENTIFIER
} ) ) ) ,
headerClassName : "edit-widgets-sidebar__panel-tabs"
2023-09-26 16:23:26 +02:00
/* translators: button label text should, if possible, be under 16 characters. */ ,
2022-04-11 14:04:30 +02:00
title : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Settings' ) ,
2023-06-27 16:24:19 +02:00
closeLabel : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Close Settings' ) ,
2022-04-11 14:04:30 +02:00
scope : "core/edit-widgets" ,
identifier : currentArea ,
2023-06-27 16:24:19 +02:00
icon : ( 0 , external _wp _i18n _namespaceObject . isRTL ) ( ) ? drawer _left : drawer _right ,
2022-04-11 14:04:30 +02:00
isActiveByDefault : SIDEBAR _ACTIVE _BY _DEFAULT
} , currentArea === WIDGET _AREAS _IDENTIFIER && ( 0 , external _wp _element _namespaceObject . createElement ) ( WidgetAreas , {
2023-06-27 16:24:19 +02:00
selectedWidgetAreaId : selectedWidgetAreaBlock ? . attributes . id
2023-09-26 16:23:26 +02:00
} ) , currentArea === BLOCK _INSPECTOR _IDENTIFIER && ( hasSelectedNonAreaBlock ? ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . BlockInspector , null ) :
// Pretend that Widget Areas are part of the UI by not
2022-04-11 14:04:30 +02:00
// showing the Block Inspector when one is selected.
( 0 , external _wp _element _namespaceObject . createElement ) ( "span" , {
className : "block-editor-block-inspector__no-blocks"
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'No block selected.' ) ) ) ) ;
2021-05-25 10:40:25 +02:00
}
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-11-08 15:29:21 +01:00
* /
2022-04-11 14:04:30 +02:00
const plus = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
d : "M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z"
} ) ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var library _plus = ( plus ) ;
2021-11-15 13:50:17 +01:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/list-view.js
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-11-08 15:29:21 +01:00
* /
2022-04-11 14:04:30 +02:00
const listView = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
viewBox : "0 0 24 24" ,
xmlns : "http://www.w3.org/2000/svg"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
2023-06-27 16:24:19 +02:00
d : "M3 6h11v1.5H3V6Zm3.5 5.5h11V13h-11v-1.5ZM21 17H10v1.5h11V17Z"
2022-04-11 14:04:30 +02:00
} ) ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var list _view = ( listView ) ;
2021-11-08 15:29:21 +01:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/save-button/index.js
2021-11-08 15:29:21 +01:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-05-25 10:40:25 +02:00
* /
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Internal dependencies
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
function SaveButton ( ) {
const {
hasEditedWidgetAreaIds ,
isSaving
} = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
const {
getEditedWidgetAreas ,
isSavingWidgetAreas
} = select ( store _store ) ;
return {
2023-06-27 16:24:19 +02:00
hasEditedWidgetAreaIds : getEditedWidgetAreas ( ) ? . length > 0 ,
2022-04-11 14:04:30 +02:00
isSaving : isSavingWidgetAreas ( )
} ;
} , [ ] ) ;
const {
saveEditedWidgetAreas
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( store _store ) ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Button , {
variant : "primary" ,
isBusy : isSaving ,
"aria-disabled" : isSaving ,
onClick : isSaving ? undefined : saveEditedWidgetAreas ,
disabled : ! hasEditedWidgetAreaIds
} , isSaving ? ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Saving…' ) : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Update' ) ) ;
2021-05-25 10:40:25 +02:00
}
2023-09-21 15:26:32 +02:00
/* harmony default export */ var save _button = ( SaveButton ) ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/undo.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const undo = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
d : "M18.3 11.7c-.6-.6-1.4-.9-2.3-.9H6.7l2.9-3.3-1.1-1-4.5 5L8.5 16l1-1-2.7-2.7H16c.5 0 .9.2 1.3.5 1 1 1 3.4 1 4.5v.3h1.5v-.2c0-1.5 0-4.3-1.5-5.7z"
} ) ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var library _undo = ( undo ) ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/redo.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const redo = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
d : "M15.6 6.5l-1.1 1 2.9 3.3H8c-.9 0-1.7.3-2.3.9-1.4 1.5-1.4 4.2-1.4 5.6v.2h1.5v-.3c0-1.1 0-3.5 1-4.5.3-.3.7-.5 1.3-.5h9.2L14.5 15l1.1 1.1 4.6-4.6-4.6-5z"
} ) ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var library _redo = ( redo ) ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/header/undo-redo/undo.js
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-11-08 15:29:21 +01:00
* /
2022-04-11 14:04:30 +02:00
function UndoButton ( ) {
const hasUndo = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => select ( external _wp _coreData _namespaceObject . store ) . hasUndo ( ) , [ ] ) ;
const {
undo
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( external _wp _coreData _namespaceObject . store ) ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . ToolbarButton , {
icon : ! ( 0 , external _wp _i18n _namespaceObject . isRTL ) ( ) ? library _undo : library _redo ,
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Undo' ) ,
2023-09-26 16:23:26 +02:00
shortcut : external _wp _keycodes _namespaceObject . displayShortcut . primary ( 'z' )
// If there are no undo levels we don't want to actually disable this
2022-04-11 14:04:30 +02:00
// button, because it will remove focus for keyboard users.
// See: https://github.com/WordPress/gutenberg/issues/3486
,
"aria-disabled" : ! hasUndo ,
onClick : hasUndo ? undo : undefined
} ) ;
2021-11-08 15:29:21 +01:00
}
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/header/undo-redo/redo.js
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-11-08 15:29:21 +01:00
* /
2022-04-11 14:04:30 +02:00
function RedoButton ( ) {
2022-09-20 17:43:29 +02:00
const shortcut = ( 0 , external _wp _keycodes _namespaceObject . isAppleOS ) ( ) ? external _wp _keycodes _namespaceObject . displayShortcut . primaryShift ( 'z' ) : external _wp _keycodes _namespaceObject . displayShortcut . primary ( 'y' ) ;
2022-04-11 14:04:30 +02:00
const hasRedo = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => select ( external _wp _coreData _namespaceObject . store ) . hasRedo ( ) , [ ] ) ;
const {
redo
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( external _wp _coreData _namespaceObject . store ) ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . ToolbarButton , {
icon : ! ( 0 , external _wp _i18n _namespaceObject . isRTL ) ( ) ? library _redo : library _undo ,
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Redo' ) ,
2023-09-26 16:23:26 +02:00
shortcut : shortcut
// If there are no undo levels we don't want to actually disable this
2022-04-11 14:04:30 +02:00
// button, because it will remove focus for keyboard users.
// See: https://github.com/WordPress/gutenberg/issues/3486
,
"aria-disabled" : ! hasRedo ,
onClick : hasRedo ? redo : undefined
} ) ;
2021-11-08 15:29:21 +01:00
}
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/external.js
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-11-08 15:29:21 +01:00
* /
2022-04-11 14:04:30 +02:00
const external = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
2023-06-27 16:24:19 +02:00
d : "M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z"
2022-04-11 14:04:30 +02:00
} ) ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var library _external = ( external ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/keyboard-shortcut-help-modal/config.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const textFormattingShortcuts = [ {
keyCombination : {
modifier : 'primary' ,
character : 'b'
} ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Make the selected text bold.' )
} , {
keyCombination : {
modifier : 'primary' ,
character : 'i'
} ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Make the selected text italic.' )
} , {
keyCombination : {
modifier : 'primary' ,
character : 'k'
} ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Convert the selected text into a link.' )
} , {
keyCombination : {
modifier : 'primaryShift' ,
character : 'k'
} ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Remove a link.' )
2022-09-20 17:43:29 +02:00
} , {
keyCombination : {
character : '[['
} ,
2023-02-14 16:44:36 +01:00
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Insert a link to a post or page.' )
2022-04-11 14:04:30 +02:00
} , {
keyCombination : {
modifier : 'primary' ,
character : 'u'
} ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Underline the selected text.' )
2022-09-20 17:43:29 +02:00
} , {
keyCombination : {
modifier : 'access' ,
character : 'd'
} ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Strikethrough the selected text.' )
} , {
keyCombination : {
modifier : 'access' ,
character : 'x'
} ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Make the selected text inline code.' )
2023-06-27 16:24:19 +02:00
} , {
keyCombination : {
modifier : 'access' ,
character : '0'
} ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Convert the current heading to a paragraph.' )
} , {
keyCombination : {
modifier : 'access' ,
character : '1-6'
} ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Convert the current paragraph or heading to a heading of level 1 to 6.' )
2022-04-11 14:04:30 +02:00
} ] ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/keyboard-shortcut-help-modal/shortcut.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-05-25 10:40:25 +02:00
* /
2023-06-27 16:24:19 +02:00
function KeyCombination ( {
keyCombination ,
forceAriaLabel
} ) {
2022-04-11 14:04:30 +02:00
const shortcut = keyCombination . modifier ? external _wp _keycodes _namespaceObject . displayShortcutList [ keyCombination . modifier ] ( keyCombination . character ) : keyCombination . character ;
const ariaLabel = keyCombination . modifier ? external _wp _keycodes _namespaceObject . shortcutAriaLabel [ keyCombination . modifier ] ( keyCombination . character ) : keyCombination . character ;
2022-09-20 17:43:29 +02:00
const shortcuts = Array . isArray ( shortcut ) ? shortcut : [ shortcut ] ;
2022-04-11 14:04:30 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( "kbd" , {
className : "edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination" ,
"aria-label" : forceAriaLabel || ariaLabel
2022-09-20 17:43:29 +02:00
} , shortcuts . map ( ( character , index ) => {
2022-04-11 14:04:30 +02:00
if ( character === '+' ) {
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , {
key : index
} , character ) ;
}
return ( 0 , external _wp _element _namespaceObject . createElement ) ( "kbd" , {
key : index ,
className : "edit-widgets-keyboard-shortcut-help-modal__shortcut-key"
} , character ) ;
} ) ) ;
2021-05-25 10:40:25 +02:00
}
2023-06-27 16:24:19 +02:00
function Shortcut ( {
description ,
keyCombination ,
aliases = [ ] ,
ariaLabel
} ) {
2022-04-11 14:04:30 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "edit-widgets-keyboard-shortcut-help-modal__shortcut-description"
} , description ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "edit-widgets-keyboard-shortcut-help-modal__shortcut-term"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( KeyCombination , {
keyCombination : keyCombination ,
forceAriaLabel : ariaLabel
} ) , aliases . map ( ( alias , index ) => ( 0 , external _wp _element _namespaceObject . createElement ) ( KeyCombination , {
keyCombination : alias ,
forceAriaLabel : ariaLabel ,
key : index
} ) ) ) ) ;
2021-05-25 10:40:25 +02:00
}
2023-09-21 15:26:32 +02:00
/* harmony default export */ var keyboard _shortcut _help _modal _shortcut = ( Shortcut ) ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-05-25 10:40:25 +02:00
* /
2023-09-26 16:23:26 +02:00
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* Internal dependencies
2021-11-08 15:29:21 +01:00
* /
2023-06-27 16:24:19 +02:00
function DynamicShortcut ( {
name
} ) {
2022-04-11 14:04:30 +02:00
const {
keyCombination ,
description ,
aliases
} = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
const {
getShortcutKeyCombination ,
getShortcutDescription ,
getShortcutAliases
} = select ( external _wp _keyboardShortcuts _namespaceObject . store ) ;
return {
keyCombination : getShortcutKeyCombination ( name ) ,
aliases : getShortcutAliases ( name ) ,
description : getShortcutDescription ( name )
} ;
} , [ name ] ) ;
if ( ! keyCombination ) {
return null ;
}
return ( 0 , external _wp _element _namespaceObject . createElement ) ( keyboard _shortcut _help _modal _shortcut , {
keyCombination : keyCombination ,
description : description ,
aliases : aliases
} ) ;
2021-11-08 15:29:21 +01:00
}
2023-09-21 15:26:32 +02:00
/* harmony default export */ var dynamic _shortcut = ( DynamicShortcut ) ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/keyboard-shortcut-help-modal/index.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* External dependencies
2021-05-25 10:40:25 +02:00
* /
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2022-04-11 14:04:30 +02:00
2021-05-25 10:40:25 +02:00
/ * *
* Internal dependencies
* /
2023-06-27 16:24:19 +02:00
const ShortcutList = ( {
shortcuts
} ) =>
/ *
* Disable reason : The ` list ` ARIA role is redundant but
* Safari + VoiceOver won ' t announce the list otherwise .
* /
/* eslint-disable jsx-a11y/no-redundant-roles */
( 0 , external _wp _element _namespaceObject . createElement ) ( "ul" , {
className : "edit-widgets-keyboard-shortcut-help-modal__shortcut-list" ,
role : "list"
} , shortcuts . map ( ( shortcut , index ) => ( 0 , external _wp _element _namespaceObject . createElement ) ( "li" , {
className : "edit-widgets-keyboard-shortcut-help-modal__shortcut" ,
key : index
} , typeof shortcut === 'string' ? ( 0 , external _wp _element _namespaceObject . createElement ) ( dynamic _shortcut , {
name : shortcut
2023-09-26 16:23:26 +02:00
} ) : ( 0 , external _wp _element _namespaceObject . createElement ) ( keyboard _shortcut _help _modal _shortcut , {
... shortcut
2023-06-27 16:24:19 +02:00
} ) ) ) )
2023-09-26 16:23:26 +02:00
/* eslint-enable jsx-a11y/no-redundant-roles */ ;
2022-04-11 14:04:30 +02:00
2023-06-27 16:24:19 +02:00
const ShortcutSection = ( {
title ,
shortcuts ,
className
} ) => ( 0 , external _wp _element _namespaceObject . createElement ) ( "section" , {
className : classnames _default ( ) ( 'edit-widgets-keyboard-shortcut-help-modal__section' , className )
} , ! ! title && ( 0 , external _wp _element _namespaceObject . createElement ) ( "h2" , {
className : "edit-widgets-keyboard-shortcut-help-modal__section-title"
} , title ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( ShortcutList , {
shortcuts : shortcuts
} ) ) ;
const ShortcutCategorySection = ( {
title ,
categoryName ,
additionalShortcuts = [ ]
} ) => {
2022-04-11 14:04:30 +02:00
const categoryShortcuts = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
return select ( external _wp _keyboardShortcuts _namespaceObject . store ) . getCategoryShortcuts ( categoryName ) ;
} , [ categoryName ] ) ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( ShortcutSection , {
title : title ,
shortcuts : categoryShortcuts . concat ( additionalShortcuts )
} ) ;
} ;
2023-06-27 16:24:19 +02:00
function KeyboardShortcutHelpModal ( {
isModalActive ,
toggleModal
} ) {
2022-04-11 14:04:30 +02:00
( 0 , external _wp _keyboardShortcuts _namespaceObject . useShortcut ) ( 'core/edit-widgets/keyboard-shortcuts' , toggleModal , {
bindGlobal : true
} ) ;
if ( ! isModalActive ) {
return null ;
}
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Modal , {
className : "edit-widgets-keyboard-shortcut-help-modal" ,
title : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Keyboard shortcuts' ) ,
onRequestClose : toggleModal
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( ShortcutSection , {
className : "edit-widgets-keyboard-shortcut-help-modal__main-shortcuts" ,
shortcuts : [ 'core/edit-widgets/keyboard-shortcuts' ]
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( ShortcutCategorySection , {
title : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Global shortcuts' ) ,
categoryName : "global"
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( ShortcutCategorySection , {
title : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Selection shortcuts' ) ,
categoryName : "selection"
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( ShortcutCategorySection , {
title : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Block shortcuts' ) ,
categoryName : "block" ,
additionalShortcuts : [ {
keyCombination : {
character : '/'
} ,
description : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Change the block type after adding a new paragraph.' ) ,
/* translators: The forward-slash character. e.g. '/'. */
ariaLabel : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Forward-slash' )
} ]
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( ShortcutSection , {
title : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Text formatting' ) ,
shortcuts : textFormattingShortcuts
} ) ) ;
}
2021-05-25 10:40:25 +02:00
2022-04-12 17:12:47 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/more-menu/tools-more-menu-group.js
/ * *
* WordPress dependencies
* /
const {
Fill : ToolsMoreMenuGroup ,
Slot
} = ( 0 , external _wp _components _namespaceObject . createSlotFill ) ( 'EditWidgetsToolsMoreMenuGroup' ) ;
2023-06-27 16:24:19 +02:00
ToolsMoreMenuGroup . Slot = ( {
fillProps
} ) => ( 0 , external _wp _element _namespaceObject . createElement ) ( Slot , {
fillProps : fillProps
} , fills => fills . length > 0 && fills ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var tools _more _menu _group = ( ToolsMoreMenuGroup ) ;
2022-04-12 17:12:47 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/more-menu/index.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2022-04-12 17:12:47 +02:00
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
* Internal dependencies
* /
2022-04-11 14:04:30 +02:00
function MoreMenu ( ) {
const [ isKeyboardShortcutsModalActive , setIsKeyboardShortcutsModalVisible ] = ( 0 , external _wp _element _namespaceObject . useState ) ( false ) ;
const toggleKeyboardShortcutsModal = ( ) => setIsKeyboardShortcutsModalVisible ( ! isKeyboardShortcutsModalActive ) ;
( 0 , external _wp _keyboardShortcuts _namespaceObject . useShortcut ) ( 'core/edit-widgets/keyboard-shortcuts' , toggleKeyboardShortcutsModal ) ;
const isLargeViewport = ( 0 , external _wp _compose _namespaceObject . useViewportMatch ) ( 'medium' ) ;
2022-04-12 17:12:47 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( MoreMenuDropdown , null , onClose => ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , isLargeViewport && ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . MenuGroup , {
2022-04-11 14:04:30 +02:00
label : ( 0 , external _wp _i18n _namespaceObject . _x ) ( 'View' , 'noun' )
2022-04-12 17:12:47 +02:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _preferences _namespaceObject . PreferenceToggleMenuItem , {
2022-04-11 14:04:30 +02:00
scope : "core/edit-widgets" ,
2022-04-12 17:12:47 +02:00
name : "fixedToolbar" ,
2022-04-11 14:04:30 +02:00
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Top toolbar' ) ,
info : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Access all block and document tools in a single place' ) ,
messageActivated : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Top toolbar activated' ) ,
messageDeactivated : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Top toolbar deactivated' )
} ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . MenuGroup , {
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Tools' )
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . MenuItem , {
2021-05-25 10:40:25 +02:00
onClick : ( ) => {
2022-04-11 14:04:30 +02:00
setIsKeyboardShortcutsModalVisible ( true ) ;
} ,
shortcut : external _wp _keycodes _namespaceObject . displayShortcut . access ( 'h' )
2022-04-12 17:12:47 +02:00
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Keyboard shortcuts' ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _preferences _namespaceObject . PreferenceToggleMenuItem , {
2022-04-11 14:04:30 +02:00
scope : "core/edit-widgets" ,
2022-04-12 17:12:47 +02:00
name : "welcomeGuide" ,
2022-04-11 14:04:30 +02:00
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Welcome Guide' )
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . MenuItem , {
role : "menuitem" ,
icon : library _external ,
2023-06-27 16:24:19 +02:00
href : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'https://wordpress.org/documentation/article/block-based-widgets-editor/' ) ,
2022-04-11 14:04:30 +02:00
target : "_blank" ,
rel : "noopener noreferrer"
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Help' ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . VisuallyHidden , {
as : "span"
2023-09-26 16:23:26 +02:00
} , /* translators: accessibility text */
2022-04-12 17:12:47 +02:00
( 0 , external _wp _i18n _namespaceObject . _ _ ) ( '(opens in a new tab)' ) ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( tools _more _menu _group . Slot , {
fillProps : {
onClose
}
} ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . MenuGroup , {
2022-04-11 14:04:30 +02:00
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Preferences' )
2022-04-12 17:12:47 +02:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _preferences _namespaceObject . PreferenceToggleMenuItem , {
2022-04-11 14:04:30 +02:00
scope : "core/edit-widgets" ,
2022-04-12 17:12:47 +02:00
name : "keepCaretInsideBlock" ,
2022-04-11 14:04:30 +02:00
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Contain text cursor inside block' ) ,
info : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Aids screen readers by stopping text caret from leaving blocks.' ) ,
messageActivated : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Contain text cursor inside block activated' ) ,
messageDeactivated : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Contain text cursor inside block deactivated' )
2022-04-12 17:12:47 +02:00
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _preferences _namespaceObject . PreferenceToggleMenuItem , {
2022-04-11 14:04:30 +02:00
scope : "core/edit-widgets" ,
2022-04-12 17:12:47 +02:00
name : "themeStyles" ,
2022-04-11 14:04:30 +02:00
info : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Make the editor look like your theme.' ) ,
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Use theme styles' )
2022-04-12 17:12:47 +02:00
} ) , isLargeViewport && ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _preferences _namespaceObject . PreferenceToggleMenuItem , {
2022-04-11 14:04:30 +02:00
scope : "core/edit-widgets" ,
2022-04-12 17:12:47 +02:00
name : "showBlockBreadcrumbs" ,
2022-04-11 14:04:30 +02:00
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Display block breadcrumbs' ) ,
info : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Shows block breadcrumbs at the bottom of the editor.' ) ,
messageActivated : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Display block breadcrumbs activated' ) ,
messageDeactivated : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Display block breadcrumbs deactivated' )
} ) ) ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( KeyboardShortcutHelpModal , {
isModalActive : isKeyboardShortcutsModalActive ,
toggleModal : toggleKeyboardShortcutsModal
} ) ) ;
2021-05-25 10:40:25 +02:00
}
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/header/index.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Internal dependencies
2021-05-25 10:40:25 +02:00
* /
2023-06-27 16:24:19 +02:00
const {
useShouldContextualToolbarShow
} = unlock ( external _wp _blockEditor _namespaceObject . privateApis ) ;
2023-09-26 16:23:26 +02:00
function Header ( {
setListViewToggleElement
} ) {
2022-04-11 14:04:30 +02:00
const isMediumViewport = ( 0 , external _wp _compose _namespaceObject . useViewportMatch ) ( 'medium' ) ;
const inserterButton = ( 0 , external _wp _element _namespaceObject . useRef ) ( ) ;
const widgetAreaClientId = use _last _selected _widget _area ( ) ;
const isLastSelectedWidgetAreaOpen = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => select ( store _store ) . getIsWidgetAreaOpen ( widgetAreaClientId ) , [ widgetAreaClientId ] ) ;
const {
isInserterOpen ,
isListViewOpen
} = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
const {
isInserterOpened ,
isListViewOpened
} = select ( store _store ) ;
return {
isInserterOpen : isInserterOpened ( ) ,
isListViewOpen : isListViewOpened ( )
} ;
} , [ ] ) ;
const {
setIsWidgetAreaOpen ,
setIsInserterOpened ,
setIsListViewOpened
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( store _store ) ;
const {
selectBlock
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( external _wp _blockEditor _namespaceObject . store ) ;
const handleClick = ( ) => {
if ( isInserterOpen ) {
2022-04-12 17:12:47 +02:00
// Focusing the inserter button closes the inserter popover.
2022-04-11 14:04:30 +02:00
setIsInserterOpened ( false ) ;
} else {
if ( ! isLastSelectedWidgetAreaOpen ) {
// Select the last selected block if hasn't already.
2023-09-26 16:23:26 +02:00
selectBlock ( widgetAreaClientId ) ;
// Open the last selected widget area when opening the inserter.
2022-04-11 14:04:30 +02:00
setIsWidgetAreaOpen ( widgetAreaClientId , true ) ;
2023-09-26 16:23:26 +02:00
}
// The DOM updates resulting from selectBlock() and setIsInserterOpened() calls are applied the
2022-04-11 14:04:30 +02:00
// same tick and pretty much in a random order. The inserter is closed if any other part of the
// app receives focus. If selectBlock() happens to take effect after setIsInserterOpened() then
// the inserter is visible for a brief moment and then gets auto-closed due to focus moving to
// the selected block.
window . requestAnimationFrame ( ( ) => setIsInserterOpened ( true ) ) ;
}
} ;
const toggleListView = ( 0 , external _wp _element _namespaceObject . useCallback ) ( ( ) => setIsListViewOpened ( ! isListViewOpen ) , [ setIsListViewOpened , isListViewOpen ] ) ;
2023-06-27 16:24:19 +02:00
const {
shouldShowContextualToolbar ,
canFocusHiddenToolbar ,
fixedToolbarCanBeFocused
2023-09-26 16:23:26 +02:00
} = useShouldContextualToolbarShow ( ) ;
// If there's a block toolbar to be focused, disable the focus shortcut for the document toolbar.
2023-06-27 16:24:19 +02:00
// There's a fixed block toolbar when the fixed toolbar option is enabled or when the browser width is less than the large viewport.
const blockToolbarCanBeFocused = shouldShowContextualToolbar || canFocusHiddenToolbar || fixedToolbarCanBeFocused ;
2022-04-11 14:04:30 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "edit-widgets-header"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "edit-widgets-header__navigable-toolbar-wrapper"
} , isMediumViewport && ( 0 , external _wp _element _namespaceObject . createElement ) ( "h1" , {
className : "edit-widgets-header__title"
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Widgets' ) ) , ! isMediumViewport && ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . VisuallyHidden , {
as : "h1" ,
className : "edit-widgets-header__title"
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Widgets' ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . NavigableToolbar , {
className : "edit-widgets-header-toolbar" ,
2023-06-27 16:24:19 +02:00
"aria-label" : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Document tools' ) ,
shouldUseKeyboardFocusShortcut : ! blockToolbarCanBeFocused
2022-04-11 14:04:30 +02:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . ToolbarItem , {
ref : inserterButton ,
as : external _wp _components _namespaceObject . Button ,
className : "edit-widgets-header-toolbar__inserter-toggle" ,
variant : "primary" ,
isPressed : isInserterOpen ,
onMouseDown : event => {
event . preventDefault ( ) ;
2021-05-25 10:40:25 +02:00
} ,
2022-04-11 14:04:30 +02:00
onClick : handleClick ,
icon : library _plus
/ * t r a n s l a t o r s : b u t t o n l a b e l t e x t s h o u l d , i f p o s s i b l e , b e u n d e r 1 6
2023-09-26 16:23:26 +02:00
characters . * / ,
2022-04-11 14:04:30 +02:00
label : ( 0 , external _wp _i18n _namespaceObject . _x ) ( 'Toggle block inserter' , 'Generic label for block inserter button' )
} ) , isMediumViewport && ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( UndoButton , null ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( RedoButton , null ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . ToolbarItem , {
as : external _wp _components _namespaceObject . Button ,
className : "edit-widgets-header-toolbar__list-view-toggle" ,
icon : list _view ,
isPressed : isListViewOpen
2023-09-26 16:23:26 +02:00
/* translators: button label text should, if possible, be under 16 characters. */ ,
2022-04-11 14:04:30 +02:00
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'List View' ) ,
2023-09-26 16:23:26 +02:00
onClick : toggleListView ,
ref : setListViewToggleElement
2022-04-11 14:04:30 +02:00
} ) ) ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "edit-widgets-header__actions"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( save _button , null ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( pinned _items . Slot , {
scope : "core/edit-widgets"
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( MoreMenu , null ) ) ) ) ;
2021-05-25 10:40:25 +02:00
}
2023-09-21 15:26:32 +02:00
/* harmony default export */ var header = ( Header ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/notices/index.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2022-04-11 14:04:30 +02:00
function Notices ( ) {
const {
removeNotice
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( external _wp _notices _namespaceObject . store ) ;
const {
notices
} = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
return {
notices : select ( external _wp _notices _namespaceObject . store ) . getNotices ( )
} ;
} , [ ] ) ;
2023-06-27 16:24:19 +02:00
const dismissibleNotices = notices . filter ( ( {
isDismissible ,
type
} ) => isDismissible && type === 'default' ) ;
const nonDismissibleNotices = notices . filter ( ( {
isDismissible ,
type
} ) => ! isDismissible && type === 'default' ) ;
const snackbarNotices = notices . filter ( ( {
type
} ) => type === 'snackbar' ) ;
2022-04-11 14:04:30 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . NoticeList , {
notices : nonDismissibleNotices ,
className : "edit-widgets-notices__pinned"
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . NoticeList , {
notices : dismissibleNotices ,
className : "edit-widgets-notices__dismissible" ,
onRemove : removeNotice
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . SnackbarList , {
notices : snackbarNotices ,
className : "edit-widgets-notices__snackbar" ,
onRemove : removeNotice
} ) ) ;
}
2023-09-21 15:26:32 +02:00
/* harmony default export */ var notices = ( Notices ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/widget-areas-block-editor-content/index.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Internal dependencies
2021-05-25 10:40:25 +02:00
* /
2023-06-27 16:24:19 +02:00
function WidgetAreasBlockEditorContent ( {
blockEditorSettings
} ) {
2022-04-12 17:12:47 +02:00
const hasThemeStyles = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => ! ! select ( external _wp _preferences _namespaceObject . store ) . get ( 'core/edit-widgets' , 'themeStyles' ) , [ ] ) ;
2022-04-11 14:04:30 +02:00
const styles = ( 0 , external _wp _element _namespaceObject . useMemo ) ( ( ) => {
return hasThemeStyles ? blockEditorSettings . styles : [ ] ;
} , [ blockEditorSettings , hasThemeStyles ] ) ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "edit-widgets-block-editor"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( notices , null ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . BlockTools , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( keyboard _shortcuts , null ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . _ _unstableEditorStyles , {
2023-09-26 16:23:26 +02:00
styles : styles ,
scope : ".editor-styles-wrapper"
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . BlockSelectionClearer , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . WritingFlow , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . BlockList , {
2022-04-11 14:04:30 +02:00
className : "edit-widgets-main-block-list"
2023-09-26 16:23:26 +02:00
} ) ) ) ) ) ;
2022-04-11 14:04:30 +02:00
}
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* WordPress dependencies
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
const close _close = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . 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"
} ) ) ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var library _close = ( close _close ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/hooks/use-widget-library-insertion-point.js
/ * *
* WordPress dependencies
* /
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Internal dependencies
* /
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
const useWidgetLibraryInsertionPoint = ( ) => {
const firstRootId = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
// Default to the first widget area
const {
getEntityRecord
} = select ( external _wp _coreData _namespaceObject . store ) ;
const widgetAreasPost = getEntityRecord ( KIND , POST _TYPE , buildWidgetAreasPostId ( ) ) ;
2023-06-27 16:24:19 +02:00
return widgetAreasPost ? . blocks [ 0 ] ? . clientId ;
2022-04-11 14:04:30 +02:00
} , [ ] ) ;
return ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
const {
getBlockRootClientId ,
getBlockSelectionEnd ,
getBlockOrder ,
getBlockIndex
} = select ( external _wp _blockEditor _namespaceObject . store ) ;
2023-09-26 16:23:26 +02:00
const insertionPoint = select ( store _store ) . _ _experimentalGetInsertionPoint ( ) ;
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
// "Browse all" in the quick inserter will set the rootClientId to the current block.
2022-04-11 14:04:30 +02:00
// Otherwise, it will just be undefined, and we'll have to handle it differently below.
if ( insertionPoint . rootClientId ) {
return insertionPoint ;
2021-05-25 10:40:25 +02:00
}
2022-04-11 14:04:30 +02:00
const clientId = getBlockSelectionEnd ( ) || firstRootId ;
2023-09-26 16:23:26 +02:00
const rootClientId = getBlockRootClientId ( clientId ) ;
// If the selected block is at the root level, it's a widget area and
2022-04-11 14:04:30 +02:00
// blocks can't be inserted here. Return this block as the root and the
// last child clientId indicating insertion at the end.
if ( clientId && rootClientId === '' ) {
return {
rootClientId : clientId ,
insertionIndex : getBlockOrder ( clientId ) . length
} ;
}
2021-05-25 10:40:25 +02:00
return {
2022-04-11 14:04:30 +02:00
rootClientId ,
insertionIndex : getBlockIndex ( clientId ) + 1
2021-05-25 10:40:25 +02:00
} ;
2022-04-11 14:04:30 +02:00
} , [ firstRootId ] ) ;
} ;
2023-09-21 15:26:32 +02:00
/* harmony default export */ var use _widget _library _insertion _point = ( useWidgetLibraryInsertionPoint ) ;
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/secondary-sidebar/inserter-sidebar.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2021-11-08 15:29:21 +01:00
2021-05-25 10:40:25 +02:00
2022-04-12 17:12:47 +02:00
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Internal dependencies
* /
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
function InserterSidebar ( ) {
const isMobileViewport = ( 0 , external _wp _compose _namespaceObject . useViewportMatch ) ( 'medium' , '<' ) ;
const {
rootClientId ,
insertionIndex
} = use _widget _library _insertion _point ( ) ;
const {
setIsInserterOpened
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( store _store ) ;
const closeInserter = ( 0 , external _wp _element _namespaceObject . useCallback ) ( ( ) => {
2022-04-12 17:12:47 +02:00
return setIsInserterOpened ( false ) ;
2022-04-11 14:04:30 +02:00
} , [ setIsInserterOpened ] ) ;
2022-04-12 17:12:47 +02:00
const TagName = ! isMobileViewport ? external _wp _components _namespaceObject . VisuallyHidden : 'div' ;
2022-04-11 14:04:30 +02:00
const [ inserterDialogRef , inserterDialogProps ] = ( 0 , external _wp _compose _namespaceObject . _ _experimentalUseDialog ) ( {
2022-04-12 17:12:47 +02:00
onClose : closeInserter ,
focusOnMount : null
2022-04-11 14:04:30 +02:00
} ) ;
2022-04-12 17:12:47 +02:00
const libraryRef = ( 0 , external _wp _element _namespaceObject . useRef ) ( ) ;
( 0 , external _wp _element _namespaceObject . useEffect ) ( ( ) => {
libraryRef . current . focusSearch ( ) ;
} , [ ] ) ;
2023-06-27 16:24:19 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
ref : inserterDialogRef ,
... inserterDialogProps ,
2022-04-11 14:04:30 +02:00
className : "edit-widgets-layout__inserter-panel"
2023-06-27 16:24:19 +02:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( TagName , {
2022-04-11 14:04:30 +02:00
className : "edit-widgets-layout__inserter-panel-header"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Button , {
icon : library _close ,
2022-04-12 17:12:47 +02:00
onClick : closeInserter ,
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Close block inserter' )
2022-04-11 14:04:30 +02:00
} ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "edit-widgets-layout__inserter-panel-content"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . _ _experimentalLibrary , {
showInserterHelpPanel : true ,
shouldFocusBlock : isMobileViewport ,
rootClientId : rootClientId ,
2022-04-12 17:12:47 +02:00
_ _experimentalInsertionIndex : insertionIndex ,
ref : libraryRef
2022-04-11 14:04:30 +02:00
} ) ) ) ;
}
2021-11-08 15:29:21 +01:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/secondary-sidebar/list-view-sidebar.js
2021-05-25 10:40:25 +02:00
2021-07-15 20:55:29 +02:00
/ * *
* WordPress dependencies
* /
2021-05-25 10:40:25 +02:00
2023-06-27 16:24:19 +02:00
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Internal dependencies
* /
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
function ListViewSidebar ( {
listViewToggleElement
} ) {
2022-04-11 14:04:30 +02:00
const {
setIsListViewOpened
2023-09-26 16:23:26 +02:00
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( store _store ) ;
2023-06-27 16:24:19 +02:00
2023-09-26 16:23:26 +02:00
// Use internal state instead of a ref to make sure that the component
// re-renders when the dropZoneElement updates.
2023-06-27 16:24:19 +02:00
const [ dropZoneElement , setDropZoneElement ] = ( 0 , external _wp _element _namespaceObject . useState ) ( null ) ;
2022-04-11 14:04:30 +02:00
const focusOnMountRef = ( 0 , external _wp _compose _namespaceObject . useFocusOnMount ) ( 'firstElement' ) ;
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
// When closing the list view, focus should return to the toggle button.
const closeListView = ( 0 , external _wp _element _namespaceObject . useCallback ) ( ( ) => {
setIsListViewOpened ( false ) ;
listViewToggleElement ? . focus ( ) ;
} , [ listViewToggleElement , setIsListViewOpened ] ) ;
const closeOnEscape = ( 0 , external _wp _element _namespaceObject . useCallback ) ( event => {
2022-04-11 14:04:30 +02:00
if ( event . keyCode === external _wp _keycodes _namespaceObject . ESCAPE && ! event . defaultPrevented ) {
event . preventDefault ( ) ;
2023-09-26 16:23:26 +02:00
closeListView ( ) ;
2022-04-11 14:04:30 +02:00
}
2023-09-26 16:23:26 +02:00
} , [ closeListView ] ) ;
return (
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
2022-04-11 14:04:30 +02:00
( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "edit-widgets-editor__list-view-panel" ,
onKeyDown : closeOnEscape
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
2023-09-26 16:23:26 +02:00
className : "edit-widgets-editor__list-view-panel-header"
2023-06-27 16:24:19 +02:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( "strong" , null , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'List View' ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Button , {
2022-04-11 14:04:30 +02:00
icon : close _small ,
2023-06-27 16:24:19 +02:00
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Close' ) ,
2023-09-26 16:23:26 +02:00
onClick : closeListView
2022-04-11 14:04:30 +02:00
} ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "edit-widgets-editor__list-view-panel-content" ,
2023-09-26 16:23:26 +02:00
ref : ( 0 , external _wp _compose _namespaceObject . useMergeRefs ) ( [ focusOnMountRef , setDropZoneElement ] )
2023-06-27 16:24:19 +02:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . _ _experimentalListView , {
dropZoneElement : dropZoneElement
} ) ) )
2022-04-11 14:04:30 +02:00
) ;
2021-05-25 10:40:25 +02:00
}
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/secondary-sidebar/index.js
2021-11-08 15:29:21 +01:00
2022-04-11 14:04:30 +02:00
/ * *
* WordPress dependencies
* /
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* Internal dependencies
2021-11-08 15:29:21 +01:00
* /
2022-04-11 14:04:30 +02:00
2021-11-08 15:29:21 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* Internal dependencies
2021-11-08 15:29:21 +01:00
* /
2023-09-26 16:23:26 +02:00
function SecondarySidebar ( {
listViewToggleElement
} ) {
2022-04-11 14:04:30 +02:00
const {
isInserterOpen ,
isListViewOpen
} = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
const {
isInserterOpened ,
isListViewOpened
} = select ( store _store ) ;
return {
isInserterOpen : isInserterOpened ( ) ,
isListViewOpen : isListViewOpened ( )
} ;
} , [ ] ) ;
if ( isInserterOpen ) {
return ( 0 , external _wp _element _namespaceObject . createElement ) ( InserterSidebar , null ) ;
}
if ( isListViewOpen ) {
2023-09-26 16:23:26 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( ListViewSidebar , {
listViewToggleElement : listViewToggleElement
} ) ;
2022-04-11 14:04:30 +02:00
}
return null ;
}
2021-11-08 15:29:21 +01:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/layout/interface.js
2021-11-08 15:29:21 +01:00
/ * *
* WordPress dependencies
* /
2022-04-11 14:04:30 +02:00
2022-04-12 17:12:47 +02:00
2023-09-26 16:23:26 +02:00
2021-11-08 15:29:21 +01:00
/ * *
* Internal dependencies
* /
2022-04-11 14:04:30 +02:00
const interfaceLabels = {
/* translators: accessibility text for the widgets screen top bar landmark region. */
header : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Widgets top bar' ) ,
/* translators: accessibility text for the widgets screen content landmark region. */
body : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Widgets and blocks' ) ,
/* translators: accessibility text for the widgets screen settings landmark region. */
sidebar : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Widgets settings' ) ,
/* translators: accessibility text for the widgets screen footer landmark region. */
footer : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Widgets footer' )
} ;
2023-06-27 16:24:19 +02:00
function Interface ( {
blockEditorSettings
} ) {
2022-04-11 14:04:30 +02:00
const isMobileViewport = ( 0 , external _wp _compose _namespaceObject . useViewportMatch ) ( 'medium' , '<' ) ;
const isHugeViewport = ( 0 , external _wp _compose _namespaceObject . useViewportMatch ) ( 'huge' , '>=' ) ;
2021-11-08 15:29:21 +01:00
const {
2022-04-11 14:04:30 +02:00
setIsInserterOpened ,
setIsListViewOpened ,
closeGeneralSidebar
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( store _store ) ;
const {
hasBlockBreadCrumbsEnabled ,
hasSidebarEnabled ,
isInserterOpened ,
isListViewOpened ,
previousShortcut ,
nextShortcut
} = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => ( {
hasSidebarEnabled : ! ! select ( store ) . getActiveComplementaryArea ( store _store . name ) ,
isInserterOpened : ! ! select ( store _store ) . isInserterOpened ( ) ,
isListViewOpened : ! ! select ( store _store ) . isListViewOpened ( ) ,
2022-04-12 17:12:47 +02:00
hasBlockBreadCrumbsEnabled : ! ! select ( external _wp _preferences _namespaceObject . store ) . get ( 'core/edit-widgets' , 'showBlockBreadcrumbs' ) ,
2022-04-11 14:04:30 +02:00
previousShortcut : select ( external _wp _keyboardShortcuts _namespaceObject . store ) . getAllShortcutKeyCombinations ( 'core/edit-widgets/previous-region' ) ,
nextShortcut : select ( external _wp _keyboardShortcuts _namespaceObject . store ) . getAllShortcutKeyCombinations ( 'core/edit-widgets/next-region' )
2023-09-26 16:23:26 +02:00
} ) , [ ] ) ;
const [ listViewToggleElement , setListViewToggleElement ] = ( 0 , external _wp _element _namespaceObject . useState ) ( null ) ;
2021-11-08 15:29:21 +01:00
2023-09-26 16:23:26 +02:00
// Inserter and Sidebars are mutually exclusive
2022-04-11 14:04:30 +02:00
( 0 , external _wp _element _namespaceObject . useEffect ) ( ( ) => {
if ( hasSidebarEnabled && ! isHugeViewport ) {
setIsInserterOpened ( false ) ;
setIsListViewOpened ( false ) ;
2021-11-08 15:29:21 +01:00
}
2022-04-11 14:04:30 +02:00
} , [ hasSidebarEnabled , isHugeViewport ] ) ;
( 0 , external _wp _element _namespaceObject . useEffect ) ( ( ) => {
if ( ( isInserterOpened || isListViewOpened ) && ! isHugeViewport ) {
closeGeneralSidebar ( ) ;
}
} , [ isInserterOpened , isListViewOpened , isHugeViewport ] ) ;
2022-04-19 17:11:17 +02:00
const secondarySidebarLabel = isListViewOpened ? ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'List View' ) : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Block Library' ) ;
2022-04-11 14:04:30 +02:00
const hasSecondarySidebar = isListViewOpened || isInserterOpened ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( interface _skeleton , {
2023-09-26 16:23:26 +02:00
labels : {
... interfaceLabels ,
2022-04-19 17:11:17 +02:00
secondarySidebar : secondarySidebarLabel
} ,
2023-09-26 16:23:26 +02:00
header : ( 0 , external _wp _element _namespaceObject . createElement ) ( header , {
setListViewToggleElement : setListViewToggleElement
} ) ,
secondarySidebar : hasSecondarySidebar && ( 0 , external _wp _element _namespaceObject . createElement ) ( SecondarySidebar , {
listViewToggleElement : listViewToggleElement
} ) ,
2022-04-11 14:04:30 +02:00
sidebar : hasSidebarEnabled && ( 0 , external _wp _element _namespaceObject . createElement ) ( complementary _area . Slot , {
scope : "core/edit-widgets"
} ) ,
2022-04-12 17:12:47 +02:00
content : ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( WidgetAreasBlockEditorContent , {
2022-04-11 14:04:30 +02:00
blockEditorSettings : blockEditorSettings
2022-04-12 17:12:47 +02:00
} ) ) ,
2022-04-11 14:04:30 +02:00
footer : hasBlockBreadCrumbsEnabled && ! isMobileViewport && ( 0 , external _wp _element _namespaceObject . createElement ) ( "div" , {
className : "edit-widgets-layout__footer"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . BlockBreadcrumb , {
rootLabelText : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Widgets' )
} ) ) ,
shortcuts : {
previous : previousShortcut ,
next : nextShortcut
}
} ) ;
2021-11-08 15:29:21 +01:00
}
2023-09-21 15:26:32 +02:00
/* harmony default export */ var layout _interface = ( Interface ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/layout/unsaved-changes-warning.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Internal dependencies
2021-05-25 10:40:25 +02:00
* /
2022-04-11 14:04:30 +02:00
/ * *
* Warns the user if there are unsaved changes before leaving the editor .
*
* This is a duplicate of the component implemented in the editor package .
* Duplicated here as edit - widgets doesn ' t depend on editor .
*
* @ return { WPComponent } The component .
* /
function UnsavedChangesWarning ( ) {
const isDirty = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
const {
getEditedWidgetAreas
} = select ( store _store ) ;
const editedWidgetAreas = getEditedWidgetAreas ( ) ;
2023-06-27 16:24:19 +02:00
return editedWidgetAreas ? . length > 0 ;
2022-04-11 14:04:30 +02:00
} , [ ] ) ;
( 0 , external _wp _element _namespaceObject . useEffect ) ( ( ) => {
/ * *
* Warns the user if there are unsaved changes before leaving the editor .
*
* @ param { Event } event ` beforeunload ` event .
*
2023-02-07 08:04:52 +01:00
* @ return { string | undefined } Warning prompt message , if unsaved changes exist .
2022-04-11 14:04:30 +02:00
* /
const warnIfUnsavedChanges = event => {
if ( isDirty ) {
event . returnValue = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'You have unsaved changes. If you proceed, they will be lost.' ) ;
return event . returnValue ;
}
} ;
window . addEventListener ( 'beforeunload' , warnIfUnsavedChanges ) ;
return ( ) => {
window . removeEventListener ( 'beforeunload' , warnIfUnsavedChanges ) ;
} ;
} , [ isDirty ] ) ;
return null ;
}
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/welcome-guide/index.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Internal dependencies
* /
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
function WelcomeGuide ( ) {
var _widgetAreas$filter$l ;
2022-04-12 17:12:47 +02:00
const isActive = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => ! ! select ( external _wp _preferences _namespaceObject . store ) . get ( 'core/edit-widgets' , 'welcomeGuide' ) , [ ] ) ;
2022-04-11 14:04:30 +02:00
const {
2022-04-12 17:12:47 +02:00
toggle
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( external _wp _preferences _namespaceObject . store ) ;
2022-04-11 14:04:30 +02:00
const widgetAreas = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => select ( store _store ) . getWidgetAreas ( {
per _page : - 1
} ) , [ ] ) ;
if ( ! isActive ) {
return null ;
}
2023-06-27 16:24:19 +02:00
const isEntirelyBlockWidgets = widgetAreas ? . every ( widgetArea => widgetArea . id === 'wp_inactive_widgets' || widgetArea . widgets . every ( widgetId => widgetId . startsWith ( 'block-' ) ) ) ;
const numWidgetAreas = ( _widgetAreas$filter$l = widgetAreas ? . filter ( widgetArea => widgetArea . id !== 'wp_inactive_widgets' ) . length ) !== null && _widgetAreas$filter$l !== void 0 ? _widgetAreas$filter$l : 0 ;
2022-04-11 14:04:30 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Guide , {
className : "edit-widgets-welcome-guide" ,
contentLabel : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Welcome to block Widgets' ) ,
finishButtonText : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Get started' ) ,
2022-04-12 17:12:47 +02:00
onFinish : ( ) => toggle ( 'core/edit-widgets' , 'welcomeGuide' ) ,
2022-04-11 14:04:30 +02:00
pages : [ {
image : ( 0 , external _wp _element _namespaceObject . createElement ) ( WelcomeGuideImage , {
nonAnimatedSrc : "https://s.w.org/images/block-editor/welcome-canvas.svg" ,
animatedSrc : "https://s.w.org/images/block-editor/welcome-canvas.gif"
} ) ,
content : ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( "h1" , {
className : "edit-widgets-welcome-guide__heading"
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Welcome to block Widgets' ) ) , isEntirelyBlockWidgets ? ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( "p" , {
className : "edit-widgets-welcome-guide__text"
2023-09-26 16:23:26 +02:00
} , ( 0 , external _wp _i18n _namespaceObject . sprintf ) (
// Translators: %s: Number of block areas in the current theme.
2022-04-11 14:04:30 +02:00
( 0 , external _wp _i18n _namespaceObject . _n ) ( 'Your theme provides %s “block” area for you to add and edit content. Try adding a search bar, social icons, or other types of blocks here and see how they’ ll look on your site.' , 'Your theme provides %s different “block” areas for you to add and edit content. Try adding a search bar, social icons, or other types of blocks here and see how they’ ll look on your site.' , numWidgetAreas ) , numWidgetAreas ) ) ) : ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( "p" , {
className : "edit-widgets-welcome-guide__text"
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'You can now add any block to your site’ s widget areas. Don’ t worry, all of your favorite widgets still work flawlessly.' ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( "p" , {
className : "edit-widgets-welcome-guide__text"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( "strong" , null , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Want to stick with the old widgets?' ) ) , ' ' , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . ExternalLink , {
href : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'https://wordpress.org/plugins/classic-widgets/' )
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Get the Classic Widgets plugin.' ) ) ) ) )
} , {
image : ( 0 , external _wp _element _namespaceObject . createElement ) ( WelcomeGuideImage , {
nonAnimatedSrc : "https://s.w.org/images/block-editor/welcome-editor.svg" ,
animatedSrc : "https://s.w.org/images/block-editor/welcome-editor.gif"
} ) ,
content : ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( "h1" , {
className : "edit-widgets-welcome-guide__heading"
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Make each block your own' ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( "p" , {
className : "edit-widgets-welcome-guide__text"
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Each block comes with its own set of controls for changing things like color, width, and alignment. These will show and hide automatically when you have a block selected.' ) ) )
} , {
image : ( 0 , external _wp _element _namespaceObject . createElement ) ( WelcomeGuideImage , {
nonAnimatedSrc : "https://s.w.org/images/block-editor/welcome-library.svg" ,
animatedSrc : "https://s.w.org/images/block-editor/welcome-library.gif"
} ) ,
content : ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( "h1" , {
className : "edit-widgets-welcome-guide__heading"
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Get to know the block library' ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( "p" , {
className : "edit-widgets-welcome-guide__text"
} , ( 0 , external _wp _element _namespaceObject . createInterpolateElement ) ( ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'All of the blocks available to you live in the block library. You’ ll find it wherever you see the <InserterIconImage /> icon.' ) , {
InserterIconImage : ( 0 , external _wp _element _namespaceObject . createElement ) ( "img" , {
className : "edit-widgets-welcome-guide__inserter-icon" ,
alt : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'inserter' ) ,
src : "data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='18' height='18' rx='2' fill='%231E1E1E'/%3E%3Cpath d='M9.22727 4V14M4 8.77273H14' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E%0A"
} )
} ) ) )
} , {
image : ( 0 , external _wp _element _namespaceObject . createElement ) ( WelcomeGuideImage , {
nonAnimatedSrc : "https://s.w.org/images/block-editor/welcome-documentation.svg" ,
animatedSrc : "https://s.w.org/images/block-editor/welcome-documentation.gif"
} ) ,
content : ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( "h1" , {
className : "edit-widgets-welcome-guide__heading"
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Learn how to use the block editor' ) ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( "p" , {
className : "edit-widgets-welcome-guide__text"
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'New to the block editor? Want to learn more about using it? ' ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . ExternalLink , {
2023-06-27 16:24:19 +02:00
href : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'https://wordpress.org/documentation/article/wordpress-block-editor/' )
2022-04-11 14:04:30 +02:00
} , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( "Here's a detailed guide." ) ) ) )
} ]
} ) ;
}
2023-06-27 16:24:19 +02:00
function WelcomeGuideImage ( {
nonAnimatedSrc ,
animatedSrc
} ) {
2022-04-11 14:04:30 +02:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( "picture" , {
className : "edit-widgets-welcome-guide__image"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( "source" , {
srcSet : nonAnimatedSrc ,
media : "(prefers-reduced-motion: reduce)"
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( "img" , {
src : animatedSrc ,
width : "312" ,
height : "240" ,
alt : ""
} ) ) ;
}
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/components/layout/index.js
2021-05-25 10:40:25 +02:00
/ * *
* WordPress dependencies
* /
2022-04-12 17:12:47 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Internal dependencies
* /
2021-05-25 10:40:25 +02:00
2023-06-27 16:24:19 +02:00
function Layout ( {
blockEditorSettings
} ) {
2022-04-12 17:12:47 +02:00
const {
createErrorNotice
} = ( 0 , external _wp _data _namespaceObject . useDispatch ) ( external _wp _notices _namespaceObject . store ) ;
function onPluginAreaError ( name ) {
2023-09-26 16:23:26 +02:00
createErrorNotice ( ( 0 , external _wp _i18n _namespaceObject . sprintf ) ( /* translators: %s: plugin name */
2022-04-12 17:12:47 +02:00
( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'The "%s" plugin has encountered an error and cannot be rendered.' ) , name ) ) ;
}
2023-02-07 08:04:52 +01:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( ErrorBoundary , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( WidgetAreasBlockEditorProvider , {
2022-04-11 14:04:30 +02:00
blockEditorSettings : blockEditorSettings
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( layout _interface , {
blockEditorSettings : blockEditorSettings
2023-09-26 16:23:26 +02:00
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( Sidebar , null ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _plugins _namespaceObject . PluginArea , {
2022-04-12 17:12:47 +02:00
onError : onPluginAreaError
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( UnsavedChangesWarning , null ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( WelcomeGuide , null ) ) ) ;
2022-04-11 14:04:30 +02:00
}
2023-09-21 15:26:32 +02:00
/* harmony default export */ var layout = ( Layout ) ;
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/edit-widgets/build-module/index.js
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* WordPress dependencies
* /
2021-05-25 10:40:25 +02:00
2023-02-07 08:04:52 +01:00
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Internal dependencies
* /
2021-05-25 10:40:25 +02:00
2022-04-11 14:04:30 +02:00
const disabledBlocks = [ 'core/more' , 'core/freeform' , 'core/template-part' , ... ( ALLOW _REUSABLE _BLOCKS ? [ ] : [ 'core/block' ] ) ] ;
2023-09-26 16:23:26 +02:00
2021-05-25 10:40:25 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Initializes the block editor in the widgets screen .
*
* @ param { string } id ID of the root element to render the screen in .
* @ param { Object } settings Block editor settings .
2021-05-25 10:40:25 +02:00
* /
2023-02-07 08:04:52 +01:00
function initializeEditor ( id , settings ) {
2022-04-11 14:04:30 +02:00
const target = document . getElementById ( id ) ;
2023-02-07 08:04:52 +01:00
const root = ( 0 , external _wp _element _namespaceObject . createRoot ) ( target ) ;
2022-04-11 14:04:30 +02:00
const coreBlocks = ( 0 , external _wp _blockLibrary _namespaceObject . _ _experimentalGetCoreBlocks ) ( ) . filter ( block => {
return ! ( disabledBlocks . includes ( block . name ) || block . name . startsWith ( 'core/post' ) || block . name . startsWith ( 'core/query' ) || block . name . startsWith ( 'core/site' ) || block . name . startsWith ( 'core/navigation' ) ) ;
} ) ;
2022-04-12 17:12:47 +02:00
( 0 , external _wp _data _namespaceObject . dispatch ) ( external _wp _preferences _namespaceObject . store ) . setDefaults ( 'core/edit-widgets' , {
2022-04-11 14:04:30 +02:00
fixedToolbar : false ,
welcomeGuide : true ,
showBlockBreadcrumbs : true ,
themeStyles : true
} ) ;
2023-09-26 16:23:26 +02:00
( 0 , external _wp _data _namespaceObject . dispatch ) ( external _wp _blocks _namespaceObject . store ) . reapplyBlockTypeFilters ( ) ;
2022-04-11 14:04:30 +02:00
( 0 , external _wp _blockLibrary _namespaceObject . registerCoreBlocks ) ( coreBlocks ) ;
( 0 , external _wp _widgets _namespaceObject . registerLegacyWidgetBlock ) ( ) ;
if ( false ) { }
( 0 , external _wp _widgets _namespaceObject . registerLegacyWidgetVariations ) ( settings ) ;
registerBlock ( widget _area _namespaceObject ) ;
( 0 , external _wp _widgets _namespaceObject . registerWidgetGroupBlock ) ( ) ;
2023-09-26 16:23:26 +02:00
settings . _ _experimentalFetchLinkSuggestions = ( search , searchOptions ) => ( 0 , external _wp _coreData _namespaceObject . _ _experimentalFetchLinkSuggestions ) ( search , searchOptions , settings ) ;
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
// As we are unregistering `core/freeform` to avoid the Classic block, we must
2022-04-11 14:04:30 +02:00
// replace it with something as the default freeform content handler. Failure to
// do this will result in errors in the default block parser.
// see: https://github.com/WordPress/gutenberg/issues/33097
( 0 , external _wp _blocks _namespaceObject . setFreeformContentHandlerName ) ( 'core/html' ) ;
2023-02-07 08:04:52 +01:00
root . render ( ( 0 , external _wp _element _namespaceObject . createElement ) ( layout , {
blockEditorSettings : settings
} ) ) ;
return root ;
}
2023-09-26 16:23:26 +02:00
2023-02-07 08:04:52 +01:00
/ * *
* Compatibility export under the old ` initialize ` name .
* /
const initialize = initializeEditor ;
function reinitializeEditor ( ) {
external _wp _deprecated _default ( ) ( 'wp.editWidgets.reinitializeEditor' , {
since : '6.2' ,
version : '6.3'
} ) ;
2021-05-25 10:40:25 +02:00
}
2023-09-26 16:23:26 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* Function to register an individual block .
*
* @ param { Object } block The block to be registered .
* /
const registerBlock = block => {
if ( ! block ) {
return ;
}
const {
metadata ,
settings ,
name
} = block ;
if ( metadata ) {
( 0 , external _wp _blocks _namespaceObject . unstable _ _bootstrapServerSideBlockDefinitions ) ( {
[ name ] : metadata
} ) ;
}
( 0 , external _wp _blocks _namespaceObject . registerBlockType ) ( name , settings ) ;
} ;
2021-05-25 10:40:25 +02:00
2023-09-26 16:23:26 +02:00
2023-09-21 15:26:32 +02:00
} ( ) ;
2022-04-11 14:04:30 +02:00
( window . wp = window . wp || { } ) . editWidgets = _ _webpack _exports _ _ ;
/******/ } ) ( )
;