1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193 |
- /******/ (function() { // webpackBootstrap
- /******/ var __webpack_modules__ = ({
- /***/ 4403:
- /***/ (function(module, exports) {
- var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
- Copyright (c) 2018 Jed Watson.
- Licensed under the MIT License (MIT), see
- http://jedwatson.github.io/classnames
- */
- /* global define */
- (function () {
- 'use strict';
- var hasOwn = {}.hasOwnProperty;
- var nativeCodeString = '[native code]';
- function classNames() {
- var classes = [];
- for (var i = 0; i < arguments.length; i++) {
- var arg = arguments[i];
- if (!arg) continue;
- var argType = typeof arg;
- 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') {
- if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
- classes.push(arg.toString());
- continue;
- }
- for (var key in arg) {
- if (hasOwn.call(arg, key) && arg[key]) {
- classes.push(key);
- }
- }
- }
- }
- return classes.join(' ');
- }
- 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 {}
- }());
- /***/ })
- /******/ });
- /************************************************************************/
- /******/ // 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 */
- /******/ !function() {
- /******/ // getDefaultExport function for compatibility with non-harmony modules
- /******/ __webpack_require__.n = function(module) {
- /******/ var getter = module && module.__esModule ?
- /******/ function() { return module['default']; } :
- /******/ function() { return module; };
- /******/ __webpack_require__.d(getter, { a: getter });
- /******/ return getter;
- /******/ };
- /******/ }();
- /******/
- /******/ /* webpack/runtime/define property getters */
- /******/ !function() {
- /******/ // define getter functions for harmony exports
- /******/ __webpack_require__.d = function(exports, definition) {
- /******/ for(var key in definition) {
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
- /******/ }
- /******/ }
- /******/ };
- /******/ }();
- /******/
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
- /******/ !function() {
- /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
- /******/ }();
- /******/
- /******/ /* webpack/runtime/make namespace object */
- /******/ !function() {
- /******/ // define __esModule on exports
- /******/ __webpack_require__.r = function(exports) {
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
- /******/ }
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
- /******/ };
- /******/ }();
- /******/
- /************************************************************************/
- var __webpack_exports__ = {};
- // This entry need to be wrapped in an IIFE because it need to be in strict mode.
- !function() {
- "use strict";
- // ESM COMPAT FLAG
- __webpack_require__.r(__webpack_exports__);
- // EXPORTS
- __webpack_require__.d(__webpack_exports__, {
- "initialize": function() { return /* binding */ initialize; }
- });
- // NAMESPACE OBJECT: ./node_modules/@wordpress/customize-widgets/build-module/store/selectors.js
- var selectors_namespaceObject = {};
- __webpack_require__.r(selectors_namespaceObject);
- __webpack_require__.d(selectors_namespaceObject, {
- "__experimentalGetInsertionPoint": function() { return __experimentalGetInsertionPoint; },
- "isInserterOpened": function() { return isInserterOpened; }
- });
- // NAMESPACE OBJECT: ./node_modules/@wordpress/customize-widgets/build-module/store/actions.js
- var actions_namespaceObject = {};
- __webpack_require__.r(actions_namespaceObject);
- __webpack_require__.d(actions_namespaceObject, {
- "setIsInserterOpened": function() { return setIsInserterOpened; }
- });
- // NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/store/actions.js
- var store_actions_namespaceObject = {};
- __webpack_require__.r(store_actions_namespaceObject);
- __webpack_require__.d(store_actions_namespaceObject, {
- "disableComplementaryArea": function() { return disableComplementaryArea; },
- "enableComplementaryArea": function() { return enableComplementaryArea; },
- "pinItem": function() { return pinItem; },
- "setDefaultComplementaryArea": function() { return setDefaultComplementaryArea; },
- "setFeatureDefaults": function() { return setFeatureDefaults; },
- "setFeatureValue": function() { return setFeatureValue; },
- "toggleFeature": function() { return toggleFeature; },
- "unpinItem": function() { return unpinItem; }
- });
- // NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/store/selectors.js
- var store_selectors_namespaceObject = {};
- __webpack_require__.r(store_selectors_namespaceObject);
- __webpack_require__.d(store_selectors_namespaceObject, {
- "getActiveComplementaryArea": function() { return getActiveComplementaryArea; },
- "isFeatureActive": function() { return isFeatureActive; },
- "isItemPinned": function() { return isItemPinned; }
- });
- ;// CONCATENATED MODULE: external ["wp","element"]
- var external_wp_element_namespaceObject = window["wp"]["element"];
- ;// CONCATENATED MODULE: external ["wp","blockLibrary"]
- var external_wp_blockLibrary_namespaceObject = window["wp"]["blockLibrary"];
- ;// CONCATENATED MODULE: external ["wp","widgets"]
- var external_wp_widgets_namespaceObject = window["wp"]["widgets"];
- ;// CONCATENATED MODULE: external ["wp","blocks"]
- var external_wp_blocks_namespaceObject = window["wp"]["blocks"];
- ;// CONCATENATED MODULE: external ["wp","data"]
- var external_wp_data_namespaceObject = window["wp"]["data"];
- ;// CONCATENATED MODULE: external ["wp","preferences"]
- var external_wp_preferences_namespaceObject = window["wp"]["preferences"];
- ;// CONCATENATED MODULE: external ["wp","components"]
- var external_wp_components_namespaceObject = window["wp"]["components"];
- ;// CONCATENATED MODULE: external ["wp","keyboardShortcuts"]
- var external_wp_keyboardShortcuts_namespaceObject = window["wp"]["keyboardShortcuts"];
- ;// CONCATENATED MODULE: external ["wp","i18n"]
- var external_wp_i18n_namespaceObject = window["wp"]["i18n"];
- ;// CONCATENATED MODULE: external ["wp","blockEditor"]
- var external_wp_blockEditor_namespaceObject = window["wp"]["blockEditor"];
- ;// CONCATENATED MODULE: external ["wp","compose"]
- var external_wp_compose_namespaceObject = window["wp"]["compose"];
- ;// CONCATENATED MODULE: external ["wp","hooks"]
- var external_wp_hooks_namespaceObject = window["wp"]["hooks"];
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/error-boundary/index.js
- /**
- * WordPress dependencies
- */
- function CopyButton(_ref) {
- let {
- text,
- children
- } = _ref;
- 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);
- }
- class ErrorBoundary extends external_wp_element_namespaceObject.Component {
- constructor() {
- super(...arguments);
- this.state = {
- error: null
- };
- }
- componentDidCatch(error) {
- this.setState({
- error
- });
- (0,external_wp_hooks_namespaceObject.doAction)('editor.ErrorBoundary.errorLogged', error);
- }
- render() {
- const {
- error
- } = this.state;
- if (!error) {
- return this.props.children;
- }
- return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, {
- className: "customize-widgets-error-boundary",
- actions: [(0,external_wp_element_namespaceObject.createElement)(CopyButton, {
- key: "copy-error",
- text: error.stack
- }, (0,external_wp_i18n_namespaceObject.__)('Copy Error'))]
- }, (0,external_wp_i18n_namespaceObject.__)('The editor has encountered an unexpected error.'));
- }
- }
- ;// CONCATENATED MODULE: external ["wp","coreData"]
- var external_wp_coreData_namespaceObject = window["wp"]["coreData"];
- ;// CONCATENATED MODULE: external ["wp","mediaUtils"]
- var external_wp_mediaUtils_namespaceObject = window["wp"]["mediaUtils"];
- ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
- function _extends() {
- _extends = Object.assign ? Object.assign.bind() : function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
- return target;
- };
- return _extends.apply(this, arguments);
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/block-inspector-button/index.js
- /**
- * WordPress dependencies
- */
- function BlockInspectorButton(_ref) {
- let {
- inspector,
- closeMenu,
- ...props
- } = _ref;
- const selectedBlockClientId = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSelectedBlockClientId(), []);
- const selectedBlock = (0,external_wp_element_namespaceObject.useMemo)(() => document.getElementById(`block-${selectedBlockClientId}`), [selectedBlockClientId]);
- return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, _extends({
- onClick: () => {
- // Open the inspector.
- inspector.open({
- returnFocusWhenClose: selectedBlock
- }); // Then close the dropdown menu.
- closeMenu();
- }
- }, props), (0,external_wp_i18n_namespaceObject.__)('Show more settings'));
- }
- /* harmony default export */ var block_inspector_button = (BlockInspectorButton);
- // EXTERNAL MODULE: ./node_modules/classnames/index.js
- var classnames = __webpack_require__(4403);
- var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
- ;// CONCATENATED MODULE: external ["wp","keycodes"]
- var external_wp_keycodes_namespaceObject = window["wp"]["keycodes"];
- ;// CONCATENATED MODULE: external ["wp","primitives"]
- var external_wp_primitives_namespaceObject = window["wp"]["primitives"];
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/undo.js
- /**
- * WordPress dependencies
- */
- 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"
- }));
- /* harmony default export */ var library_undo = (undo);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/redo.js
- /**
- * WordPress dependencies
- */
- 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"
- }));
- /* harmony default export */ var library_redo = (redo);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js
- /**
- * WordPress dependencies
- */
- 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"
- }));
- /* harmony default export */ var library_plus = (plus);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js
- /**
- * WordPress dependencies
- */
- 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"
- }));
- /* harmony default export */ var close_small = (closeSmall);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/reducer.js
- /**
- * WordPress dependencies
- */
- /**
- * Reducer tracking whether the inserter is open.
- *
- * @param {boolean|Object} state
- * @param {Object} action
- */
- function blockInserterPanel() {
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
- let action = arguments.length > 1 ? arguments[1] : undefined;
- switch (action.type) {
- case 'SET_IS_INSERTER_OPENED':
- return action.value;
- }
- return state;
- }
- /* harmony default export */ var reducer = ((0,external_wp_data_namespaceObject.combineReducers)({
- blockInserterPanel
- }));
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/selectors.js
- /**
- * 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;
- }
- /**
- * 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) {
- const {
- rootClientId,
- insertionIndex
- } = state.blockInserterPanel;
- return {
- rootClientId,
- insertionIndex
- };
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/actions.js
- /**
- * 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.
- */
- function setIsInserterOpened(value) {
- return {
- type: 'SET_IS_INSERTER_OPENED',
- value
- };
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/constants.js
- /**
- * Module Constants
- */
- const STORE_NAME = 'core/customize-widgets';
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/index.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- /**
- * Block editor data store configuration.
- *
- * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#registering-a-store
- *
- * @type {Object}
- */
- const storeConfig = {
- reducer: reducer,
- selectors: selectors_namespaceObject,
- actions: actions_namespaceObject
- };
- /**
- * Store definition for the edit widgets 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, storeConfig);
- (0,external_wp_data_namespaceObject.register)(store);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/inserter/index.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- function Inserter(_ref) {
- let {
- setIsOpened
- } = _ref;
- const inserterTitleId = (0,external_wp_compose_namespaceObject.useInstanceId)(Inserter, 'customize-widget-layout__inserter-panel-title');
- const insertionPoint = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).__experimentalGetInsertionPoint(), []);
- return (0,external_wp_element_namespaceObject.createElement)("div", {
- className: "customize-widgets-layout__inserter-panel",
- "aria-labelledby": inserterTitleId
- }, (0,external_wp_element_namespaceObject.createElement)("div", {
- className: "customize-widgets-layout__inserter-panel-header"
- }, (0,external_wp_element_namespaceObject.createElement)("h2", {
- id: inserterTitleId,
- className: "customize-widgets-layout__inserter-panel-header-title"
- }, (0,external_wp_i18n_namespaceObject.__)('Add a block')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
- className: "customize-widgets-layout__inserter-panel-header-close-button",
- icon: close_small,
- onClick: () => setIsOpened(false),
- "aria-label": (0,external_wp_i18n_namespaceObject.__)('Close inserter')
- })), (0,external_wp_element_namespaceObject.createElement)("div", {
- className: "customize-widgets-layout__inserter-panel-content"
- }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalLibrary, {
- rootClientId: insertionPoint.rootClientId,
- __experimentalInsertionIndex: insertionPoint.insertionIndex,
- showInserterHelpPanel: true,
- onSelect: () => setIsOpened(false)
- })));
- }
- /* harmony default export */ var components_inserter = (Inserter);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/external.js
- /**
- * WordPress dependencies
- */
- 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, {
- d: "M18.2 17c0 .7-.6 1.2-1.2 1.2H7c-.7 0-1.2-.6-1.2-1.2V7c0-.7.6-1.2 1.2-1.2h3.2V4.2H7C5.5 4.2 4.2 5.5 4.2 7v10c0 1.5 1.2 2.8 2.8 2.8h10c1.5 0 2.8-1.2 2.8-2.8v-3.6h-1.5V17zM14.9 3v1.5h3.7l-6.4 6.4 1.1 1.1 6.4-6.4v3.7h1.5V3h-6.3z"
- }));
- /* harmony default export */ var library_external = (external);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/more-vertical.js
- /**
- * WordPress dependencies
- */
- 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"
- }));
- /* harmony default export */ var more_vertical = (moreVertical);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/more-menu-dropdown/index.js
- /**
- * External dependencies
- */
- /**
- * WordPress dependencies
- */
- function MoreMenuDropdown(_ref) {
- let {
- 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
- } = _ref;
- return (0,external_wp_element_namespaceObject.createElement)(DropdownComponent, {
- className: classnames_default()('interface-more-menu-dropdown', className),
- icon: more_vertical,
- label: label,
- popoverProps: {
- position: 'bottom left',
- ...popoverProps,
- className: classnames_default()('interface-more-menu-dropdown__content', popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.className)
- },
- toggleProps: {
- tooltipPosition: 'bottom',
- ...toggleProps
- }
- }, onClose => children(onClose));
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/index.js
- ;// CONCATENATED MODULE: external ["wp","deprecated"]
- var external_wp_deprecated_namespaceObject = window["wp"]["deprecated"];
- var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/actions.js
- /**
- * WordPress dependencies
- */
- /**
- * 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
- });
- /**
- * Enable the complementary area.
- *
- * @param {string} scope Complementary area scope.
- * @param {string} area Area identifier.
- */
- const enableComplementaryArea = (scope, area) => _ref => {
- let {
- registry,
- dispatch
- } = _ref;
- // Return early if there's no area.
- if (!area) {
- return;
- }
- 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
- });
- };
- /**
- * Disable the complementary area.
- *
- * @param {string} scope Complementary area scope.
- */
- const disableComplementaryArea = scope => _ref2 => {
- let {
- registry
- } = _ref2;
- 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);
- }
- };
- /**
- * Pins an item.
- *
- * @param {string} scope Item scope.
- * @param {string} item Item identifier.
- *
- * @return {Object} Action object.
- */
- const pinItem = (scope, item) => _ref3 => {
- let {
- registry
- } = _ref3;
- // Return early if there's no item.
- if (!item) {
- return;
- }
- const pinnedItems = registry.select(external_wp_preferences_namespaceObject.store).get(scope, 'pinnedItems'); // The item is already pinned, there's nothing to do.
- if ((pinnedItems === null || pinnedItems === void 0 ? void 0 : pinnedItems[item]) === true) {
- return;
- }
- registry.dispatch(external_wp_preferences_namespaceObject.store).set(scope, 'pinnedItems', { ...pinnedItems,
- [item]: true
- });
- };
- /**
- * Unpins an item.
- *
- * @param {string} scope Item scope.
- * @param {string} item Item identifier.
- */
- const unpinItem = (scope, item) => _ref4 => {
- let {
- registry
- } = _ref4;
- // Return early if there's no item.
- if (!item) {
- return;
- }
- const pinnedItems = registry.select(external_wp_preferences_namespaceObject.store).get(scope, 'pinnedItems');
- registry.dispatch(external_wp_preferences_namespaceObject.store).set(scope, 'pinnedItems', { ...pinnedItems,
- [item]: false
- });
- };
- /**
- * 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) {
- return function (_ref5) {
- let {
- registry
- } = _ref5;
- external_wp_deprecated_default()(`dispatch( 'core/interface' ).toggleFeature`, {
- since: '6.0',
- alternative: `dispatch( 'core/preferences' ).toggle`
- });
- registry.dispatch(external_wp_preferences_namespaceObject.store).toggle(scope, featureName);
- };
- }
- /**
- * 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) {
- return function (_ref6) {
- let {
- registry
- } = _ref6;
- external_wp_deprecated_default()(`dispatch( 'core/interface' ).setFeatureValue`, {
- since: '6.0',
- alternative: `dispatch( 'core/preferences' ).set`
- });
- registry.dispatch(external_wp_preferences_namespaceObject.store).set(scope, featureName, !!value);
- };
- }
- /**
- * 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) {
- return function (_ref7) {
- let {
- registry
- } = _ref7;
- external_wp_deprecated_default()(`dispatch( 'core/interface' ).setFeatureDefaults`, {
- since: '6.0',
- alternative: `dispatch( 'core/preferences' ).setDefaults`
- });
- registry.dispatch(external_wp_preferences_namespaceObject.store).setDefaults(scope, defaults);
- };
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/selectors.js
- /**
- * WordPress dependencies
- */
- /**
- * Returns the complementary area that is active in a given scope.
- *
- * @param {Object} state Global application state.
- * @param {string} scope Item scope.
- *
- * @return {string | null | undefined} The complementary area that is active in the given scope.
- */
- const getActiveComplementaryArea = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, scope) => {
- var _state$complementaryA;
- const isComplementaryAreaVisible = select(external_wp_preferences_namespaceObject.store).get(scope, 'isComplementaryAreaVisible'); // Return `undefined` to indicate that the user has never toggled
- // visibility, this is the vanilla default. Other code relies on this
- // nuance in the return value.
- if (isComplementaryAreaVisible === undefined) {
- return undefined;
- } // Return `null` to indicate the user hid the complementary area.
- if (!isComplementaryAreaVisible) {
- return null;
- }
- return state === null || state === void 0 ? void 0 : (_state$complementaryA = state.complementaryAreas) === null || _state$complementaryA === void 0 ? void 0 : _state$complementaryA[scope];
- });
- /**
- * Returns a boolean indicating if an item is pinned or not.
- *
- * @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.
- */
- 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');
- return (_pinnedItems$item = pinnedItems === null || pinnedItems === void 0 ? void 0 : pinnedItems[item]) !== null && _pinnedItems$item !== void 0 ? _pinnedItems$item : true;
- });
- /**
- * Returns a boolean indicating whether a feature is active for a particular
- * scope.
- *
- * @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.
- *
- * @return {boolean} Is the feature enabled?
- */
- const isFeatureActive = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, scope, featureName) => {
- external_wp_deprecated_default()(`select( 'core/interface' ).isFeatureActive( scope, featureName )`, {
- since: '6.0',
- alternative: `select( 'core/preferences' ).get( scope, featureName )`
- });
- return !!select(external_wp_preferences_namespaceObject.store).get(scope, featureName);
- });
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/reducer.js
- /**
- * WordPress dependencies
- */
- function complementaryAreas() {
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- let action = arguments.length > 1 ? arguments[1] : undefined;
- switch (action.type) {
- case 'SET_DEFAULT_COMPLEMENTARY_AREA':
- {
- const {
- scope,
- area
- } = action; // If there's already an area, don't overwrite it.
- if (state[scope]) {
- return state;
- }
- return { ...state,
- [scope]: area
- };
- }
- case 'ENABLE_COMPLEMENTARY_AREA':
- {
- const {
- scope,
- area
- } = action;
- return { ...state,
- [scope]: area
- };
- }
- }
- return state;
- }
- /* harmony default export */ var store_reducer = ((0,external_wp_data_namespaceObject.combineReducers)({
- complementaryAreas
- }));
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/constants.js
- /**
- * The identifier for the data store.
- *
- * @type {string}
- */
- const constants_STORE_NAME = 'core/interface';
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/index.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- /**
- * Store definition for the interface namespace.
- *
- * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
- *
- * @type {Object}
- */
- const store_store = (0,external_wp_data_namespaceObject.createReduxStore)(constants_STORE_NAME, {
- reducer: store_reducer,
- actions: store_actions_namespaceObject,
- selectors: store_selectors_namespaceObject
- }); // 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.
- (0,external_wp_data_namespaceObject.register)(store_store);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/index.js
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/config.js
- /**
- * WordPress dependencies
- */
- 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.')
- }, {
- keyCombination: {
- character: '[['
- },
- description: (0,external_wp_i18n_namespaceObject.__)('Insert a link to a post or page')
- }, {
- keyCombination: {
- modifier: 'primary',
- character: 'u'
- },
- description: (0,external_wp_i18n_namespaceObject.__)('Underline the selected text.')
- }, {
- 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.')
- }];
- ;// CONCATENATED MODULE: external "lodash"
- var external_lodash_namespaceObject = window["lodash"];
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/shortcut.js
- /**
- * External dependencies
- */
- /**
- * WordPress dependencies
- */
- function KeyCombination(_ref) {
- let {
- keyCombination,
- forceAriaLabel
- } = _ref;
- 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;
- return (0,external_wp_element_namespaceObject.createElement)("kbd", {
- className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination",
- "aria-label": forceAriaLabel || ariaLabel
- }, (0,external_lodash_namespaceObject.castArray)(shortcut).map((character, index) => {
- 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: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key"
- }, character);
- }));
- }
- function Shortcut(_ref2) {
- let {
- description,
- keyCombination,
- aliases = [],
- ariaLabel
- } = _ref2;
- return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", {
- className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-description"
- }, description), (0,external_wp_element_namespaceObject.createElement)("div", {
- className: "customize-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
- }))));
- }
- /* harmony default export */ var keyboard_shortcut_help_modal_shortcut = (Shortcut);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- function DynamicShortcut(_ref) {
- let {
- name
- } = _ref;
- 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
- });
- }
- /* harmony default export */ var dynamic_shortcut = (DynamicShortcut);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/index.js
- /**
- * External dependencies
- */
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- const ShortcutList = _ref => {
- let {
- shortcuts
- } = _ref;
- return (
- /*
- * 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: "customize-widgets-keyboard-shortcut-help-modal__shortcut-list",
- role: "list"
- }, shortcuts.map((shortcut, index) => (0,external_wp_element_namespaceObject.createElement)("li", {
- className: "customize-widgets-keyboard-shortcut-help-modal__shortcut",
- key: index
- }, typeof shortcut === 'string' ? (0,external_wp_element_namespaceObject.createElement)(dynamic_shortcut, {
- name: shortcut
- }) : (0,external_wp_element_namespaceObject.createElement)(keyboard_shortcut_help_modal_shortcut, shortcut))))
- /* eslint-enable jsx-a11y/no-redundant-roles */
- );
- };
- const ShortcutSection = _ref2 => {
- let {
- title,
- shortcuts,
- className
- } = _ref2;
- return (0,external_wp_element_namespaceObject.createElement)("section", {
- className: classnames_default()('customize-widgets-keyboard-shortcut-help-modal__section', className)
- }, !!title && (0,external_wp_element_namespaceObject.createElement)("h2", {
- className: "customize-widgets-keyboard-shortcut-help-modal__section-title"
- }, title), (0,external_wp_element_namespaceObject.createElement)(ShortcutList, {
- shortcuts: shortcuts
- }));
- };
- const ShortcutCategorySection = _ref3 => {
- let {
- title,
- categoryName,
- additionalShortcuts = []
- } = _ref3;
- 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)
- });
- };
- function KeyboardShortcutHelpModal(_ref4) {
- let {
- isModalActive,
- toggleModal
- } = _ref4;
- const {
- registerShortcut
- } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_keyboardShortcuts_namespaceObject.store);
- registerShortcut({
- name: 'core/customize-widgets/keyboard-shortcuts',
- category: 'main',
- description: (0,external_wp_i18n_namespaceObject.__)('Display these keyboard shortcuts.'),
- keyCombination: {
- modifier: 'access',
- character: 'h'
- }
- });
- (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/customize-widgets/keyboard-shortcuts', toggleModal);
- if (!isModalActive) {
- return null;
- }
- return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, {
- className: "customize-widgets-keyboard-shortcut-help-modal",
- title: (0,external_wp_i18n_namespaceObject.__)('Keyboard shortcuts'),
- closeLabel: (0,external_wp_i18n_namespaceObject.__)('Close'),
- onRequestClose: toggleModal
- }, (0,external_wp_element_namespaceObject.createElement)(ShortcutSection, {
- className: "customize-widgets-keyboard-shortcut-help-modal__main-shortcuts",
- shortcuts: ['core/customize-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
- }));
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/more-menu/index.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- function MoreMenu() {
- const [isKeyboardShortcutsModalActive, setIsKeyboardShortcutsModalVisible] = (0,external_wp_element_namespaceObject.useState)(false);
- const toggleKeyboardShortcutsModal = () => setIsKeyboardShortcutsModalVisible(!isKeyboardShortcutsModalActive);
- (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/customize-widgets/keyboard-shortcuts', toggleKeyboardShortcutsModal);
- return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(MoreMenuDropdown, {
- as: external_wp_components_namespaceObject.ToolbarDropdownMenu
- }, () => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
- label: (0,external_wp_i18n_namespaceObject._x)('View', 'noun')
- }, (0,external_wp_element_namespaceObject.createElement)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, {
- scope: "core/customize-widgets",
- name: "fixedToolbar",
- 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, {
- onClick: () => {
- setIsKeyboardShortcutsModalVisible(true);
- },
- shortcut: external_wp_keycodes_namespaceObject.displayShortcut.access('h')
- }, (0,external_wp_i18n_namespaceObject.__)('Keyboard shortcuts')), (0,external_wp_element_namespaceObject.createElement)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, {
- scope: "core/customize-widgets",
- name: "welcomeGuide",
- label: (0,external_wp_i18n_namespaceObject.__)('Welcome Guide')
- }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
- role: "menuitem",
- icon: library_external,
- href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/support/article/block-based-widgets-editor/'),
- target: "_blank",
- rel: "noopener noreferrer"
- }, (0,external_wp_i18n_namespaceObject.__)('Help'), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, {
- as: "span"
- },
- /* translators: accessibility text */
- (0,external_wp_i18n_namespaceObject.__)('(opens in a new tab)')))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
- label: (0,external_wp_i18n_namespaceObject.__)('Preferences')
- }, (0,external_wp_element_namespaceObject.createElement)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, {
- scope: "core/customize-widgets",
- name: "keepCaretInsideBlock",
- 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')
- })))), (0,external_wp_element_namespaceObject.createElement)(KeyboardShortcutHelpModal, {
- isModalActive: isKeyboardShortcutsModalActive,
- toggleModal: toggleKeyboardShortcutsModal
- }));
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/header/index.js
- /**
- * External dependencies
- */
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- function Header(_ref) {
- let {
- sidebar,
- inserter,
- isInserterOpened,
- setIsInserterOpened,
- isFixedToolbarActive
- } = _ref;
- const [[hasUndo, hasRedo], setUndoRedo] = (0,external_wp_element_namespaceObject.useState)([sidebar.hasUndo(), sidebar.hasRedo()]);
- const shortcut = (0,external_wp_keycodes_namespaceObject.isAppleOS)() ? external_wp_keycodes_namespaceObject.displayShortcut.primaryShift('z') : external_wp_keycodes_namespaceObject.displayShortcut.primary('y');
- (0,external_wp_element_namespaceObject.useEffect)(() => {
- return sidebar.subscribeHistory(() => {
- setUndoRedo([sidebar.hasUndo(), sidebar.hasRedo()]);
- });
- }, [sidebar]);
- return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", {
- className: classnames_default()('customize-widgets-header', {
- 'is-fixed-toolbar-active': isFixedToolbarActive
- })
- }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.NavigableToolbar, {
- className: "customize-widgets-header-toolbar",
- "aria-label": (0,external_wp_i18n_namespaceObject.__)('Document tools')
- }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
- icon: !(0,external_wp_i18n_namespaceObject.isRTL)() ? library_undo : library_redo
- /* translators: button label text should, if possible, be under 16 characters. */
- ,
- label: (0,external_wp_i18n_namespaceObject.__)('Undo'),
- shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('z') // If there are no undo levels we don't want to actually disable this
- // button, because it will remove focus for keyboard users.
- // See: https://github.com/WordPress/gutenberg/issues/3486
- ,
- "aria-disabled": !hasUndo,
- onClick: sidebar.undo,
- className: "customize-widgets-editor-history-button undo-button"
- }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
- icon: !(0,external_wp_i18n_namespaceObject.isRTL)() ? library_redo : library_undo
- /* translators: button label text should, if possible, be under 16 characters. */
- ,
- label: (0,external_wp_i18n_namespaceObject.__)('Redo'),
- shortcut: shortcut // If there are no undo levels we don't want to actually disable this
- // button, because it will remove focus for keyboard users.
- // See: https://github.com/WordPress/gutenberg/issues/3486
- ,
- "aria-disabled": !hasRedo,
- onClick: sidebar.redo,
- className: "customize-widgets-editor-history-button redo-button"
- }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
- className: "customize-widgets-header-toolbar__inserter-toggle",
- isPressed: isInserterOpened,
- variant: "primary",
- icon: library_plus,
- label: (0,external_wp_i18n_namespaceObject._x)('Add block', 'Generic label for block inserter button'),
- onClick: () => {
- setIsInserterOpened(isOpen => !isOpen);
- }
- }), (0,external_wp_element_namespaceObject.createElement)(MoreMenu, null))), (0,external_wp_element_namespaceObject.createPortal)((0,external_wp_element_namespaceObject.createElement)(components_inserter, {
- setIsOpened: setIsInserterOpened
- }), inserter.contentContainer[0]));
- }
- /* harmony default export */ var header = (Header);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/inserter/use-inserter.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- function useInserter(inserter) {
- const isInserterOpened = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).isInserterOpened(), []);
- const {
- setIsInserterOpened
- } = (0,external_wp_data_namespaceObject.useDispatch)(store);
- (0,external_wp_element_namespaceObject.useEffect)(() => {
- if (isInserterOpened) {
- inserter.open();
- } else {
- inserter.close();
- }
- }, [inserter, isInserterOpened]);
- return [isInserterOpened, (0,external_wp_element_namespaceObject.useCallback)(updater => {
- let isOpen = updater;
- if (typeof updater === 'function') {
- isOpen = updater((0,external_wp_data_namespaceObject.select)(store).isInserterOpened());
- }
- setIsInserterOpened(isOpen);
- }, [setIsInserterOpened])];
- }
- ;// CONCATENATED MODULE: external ["wp","isShallowEqual"]
- var external_wp_isShallowEqual_namespaceObject = window["wp"]["isShallowEqual"];
- var external_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_wp_isShallowEqual_namespaceObject);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/utils.js
- // @ts-check
- /**
- * WordPress dependencies
- */
- /**
- * Convert settingId to widgetId.
- *
- * @param {string} settingId The setting id.
- * @return {string} The widget id.
- */
- function settingIdToWidgetId(settingId) {
- const matches = settingId.match(/^widget_(.+)(?:\[(\d+)\])$/);
- if (matches) {
- const idBase = matches[1];
- const number = parseInt(matches[2], 10);
- return `${idBase}-${number}`;
- }
- return settingId;
- }
- /**
- * Transform a block to a customizable widget.
- *
- * @param {WPBlock} block The block to be transformed from.
- * @param {Object} existingWidget The widget to be extended from.
- * @return {Object} The transformed widget.
- */
- function blockToWidget(block) {
- let existingWidget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
- let widget;
- const isValidLegacyWidgetBlock = block.name === 'core/legacy-widget' && (block.attributes.id || block.attributes.instance);
- if (isValidLegacyWidgetBlock) {
- if (block.attributes.id) {
- // Widget that does not extend WP_Widget.
- widget = {
- id: block.attributes.id
- };
- } else {
- const {
- encoded,
- hash,
- raw,
- ...rest
- } = block.attributes.instance; // Widget that extends WP_Widget.
- widget = {
- idBase: block.attributes.idBase,
- instance: { ...(existingWidget === null || existingWidget === void 0 ? void 0 : existingWidget.instance),
- // Required only for the customizer.
- is_widget_customizer_js_value: true,
- encoded_serialized_instance: encoded,
- instance_hash_key: hash,
- raw_instance: raw,
- ...rest
- }
- };
- }
- } else {
- const instance = {
- content: (0,external_wp_blocks_namespaceObject.serialize)(block)
- };
- widget = {
- idBase: 'block',
- widgetClass: 'WP_Widget_Block',
- instance: {
- raw_instance: instance
- }
- };
- }
- const {
- form,
- rendered,
- ...restExistingWidget
- } = existingWidget || {};
- return { ...restExistingWidget,
- ...widget
- };
- }
- /**
- * Transform a widget to a block.
- *
- * @param {Object} widget The widget to be transformed from.
- * @param {string} widget.id The widget id.
- * @param {string} widget.idBase The id base of the widget.
- * @param {number} widget.number The number/index of the widget.
- * @param {Object} widget.instance The instance of the widget.
- * @return {WPBlock} The transformed block.
- */
- function widgetToBlock(_ref) {
- let {
- id,
- idBase,
- number,
- instance
- } = _ref;
- let block;
- const {
- encoded_serialized_instance: encoded,
- instance_hash_key: hash,
- raw_instance: raw,
- ...rest
- } = instance;
- if (idBase === 'block') {
- const parsedBlocks = (0,external_wp_blocks_namespaceObject.parse)(raw.content, {
- __unstableSkipAutop: true
- });
- block = parsedBlocks.length ? parsedBlocks[0] : (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {});
- } else if (number) {
- // Widget that extends WP_Widget.
- block = (0,external_wp_blocks_namespaceObject.createBlock)('core/legacy-widget', {
- idBase,
- instance: {
- encoded,
- hash,
- raw,
- ...rest
- }
- });
- } else {
- // Widget that does not extend WP_Widget.
- block = (0,external_wp_blocks_namespaceObject.createBlock)('core/legacy-widget', {
- id
- });
- }
- return (0,external_wp_widgets_namespaceObject.addWidgetIdToBlock)(block, id);
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/use-sidebar-block-editor.js
- /**
- * External dependencies
- */
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- function widgetsToBlocks(widgets) {
- return widgets.map(widget => widgetToBlock(widget));
- }
- function useSidebarBlockEditor(sidebar) {
- const [blocks, setBlocks] = (0,external_wp_element_namespaceObject.useState)(() => widgetsToBlocks(sidebar.getWidgets()));
- (0,external_wp_element_namespaceObject.useEffect)(() => {
- return sidebar.subscribe((prevWidgets, nextWidgets) => {
- setBlocks(prevBlocks => {
- const prevWidgetsMap = new Map(prevWidgets.map(widget => [widget.id, widget]));
- const prevBlocksMap = new Map(prevBlocks.map(block => [(0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(block), block]));
- const nextBlocks = nextWidgets.map(nextWidget => {
- const prevWidget = prevWidgetsMap.get(nextWidget.id); // Bail out updates.
- if (prevWidget && prevWidget === nextWidget) {
- return prevBlocksMap.get(nextWidget.id);
- }
- return widgetToBlock(nextWidget);
- }); // Bail out updates.
- if (external_wp_isShallowEqual_default()(prevBlocks, nextBlocks)) {
- return prevBlocks;
- }
- return nextBlocks;
- });
- });
- }, [sidebar]);
- const onChangeBlocks = (0,external_wp_element_namespaceObject.useCallback)(nextBlocks => {
- setBlocks(prevBlocks => {
- if (external_wp_isShallowEqual_default()(prevBlocks, nextBlocks)) {
- return prevBlocks;
- }
- const prevBlocksMap = new Map(prevBlocks.map(block => [(0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(block), block]));
- const nextWidgets = nextBlocks.map(nextBlock => {
- const widgetId = (0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(nextBlock); // Update existing widgets.
- if (widgetId && prevBlocksMap.has(widgetId)) {
- const prevBlock = prevBlocksMap.get(widgetId);
- const prevWidget = sidebar.getWidget(widgetId); // Bail out updates by returning the previous widgets.
- // Deep equality is necessary until the block editor's internals changes.
- if ((0,external_lodash_namespaceObject.isEqual)(nextBlock, prevBlock) && prevWidget) {
- return prevWidget;
- }
- return blockToWidget(nextBlock, prevWidget);
- } // Add a new widget.
- return blockToWidget(nextBlock);
- }); // Bail out updates if the updated widgets are the same.
- if (external_wp_isShallowEqual_default()(sidebar.getWidgets(), nextWidgets)) {
- return prevBlocks;
- }
- const addedWidgetIds = sidebar.setWidgets(nextWidgets);
- return nextBlocks.reduce((updatedNextBlocks, nextBlock, index) => {
- const addedWidgetId = addedWidgetIds[index];
- if (addedWidgetId !== null) {
- // Only create a new instance if necessary to prevent
- // the whole editor from re-rendering on every edit.
- if (updatedNextBlocks === nextBlocks) {
- updatedNextBlocks = nextBlocks.slice();
- }
- updatedNextBlocks[index] = (0,external_wp_widgets_namespaceObject.addWidgetIdToBlock)(nextBlock, addedWidgetId);
- }
- return updatedNextBlocks;
- }, nextBlocks);
- });
- }, [sidebar]);
- return [blocks, onChangeBlocks, onChangeBlocks];
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/focus-control/index.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- const FocusControlContext = (0,external_wp_element_namespaceObject.createContext)();
- function FocusControl(_ref) {
- let {
- api,
- sidebarControls,
- children
- } = _ref;
- const [focusedWidgetIdRef, setFocusedWidgetIdRef] = (0,external_wp_element_namespaceObject.useState)({
- current: null
- });
- const focusWidget = (0,external_wp_element_namespaceObject.useCallback)(widgetId => {
- for (const sidebarControl of sidebarControls) {
- const widgets = sidebarControl.setting.get();
- if (widgets.includes(widgetId)) {
- sidebarControl.sectionInstance.expand({
- // Schedule it after the complete callback so that
- // it won't be overridden by the "Back" button focus.
- completeCallback() {
- // Create a "ref-like" object every time to ensure
- // the same widget id can also triggers the focus control.
- setFocusedWidgetIdRef({
- current: widgetId
- });
- }
- });
- break;
- }
- }
- }, [sidebarControls]);
- (0,external_wp_element_namespaceObject.useEffect)(() => {
- function handleFocus(settingId) {
- const widgetId = settingIdToWidgetId(settingId);
- focusWidget(widgetId);
- }
- function handleReady() {
- api.previewer.preview.bind('focus-control-for-setting', handleFocus);
- }
- api.previewer.bind('ready', handleReady);
- return () => {
- api.previewer.unbind('ready', handleReady);
- api.previewer.preview.unbind('focus-control-for-setting', handleFocus);
- };
- }, [api, focusWidget]);
- const context = (0,external_wp_element_namespaceObject.useMemo)(() => [focusedWidgetIdRef, focusWidget], [focusedWidgetIdRef, focusWidget]);
- return (0,external_wp_element_namespaceObject.createElement)(FocusControlContext.Provider, {
- value: context
- }, children);
- }
- const useFocusControl = () => (0,external_wp_element_namespaceObject.useContext)(FocusControlContext);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/focus-control/use-blocks-focus-control.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- function useBlocksFocusControl(blocks) {
- const {
- selectBlock
- } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
- const [focusedWidgetIdRef] = useFocusControl();
- const blocksRef = (0,external_wp_element_namespaceObject.useRef)(blocks);
- (0,external_wp_element_namespaceObject.useEffect)(() => {
- blocksRef.current = blocks;
- }, [blocks]);
- (0,external_wp_element_namespaceObject.useEffect)(() => {
- if (focusedWidgetIdRef.current) {
- const focusedBlock = blocksRef.current.find(block => (0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(block) === focusedWidgetIdRef.current);
- if (focusedBlock) {
- selectBlock(focusedBlock.clientId); // If the block is already being selected, the DOM node won't
- // get focused again automatically.
- // We select the DOM and focus it manually here.
- const blockNode = document.querySelector(`[data-block="${focusedBlock.clientId}"]`);
- blockNode === null || blockNode === void 0 ? void 0 : blockNode.focus();
- }
- }
- }, [focusedWidgetIdRef, selectBlock]);
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/sidebar-editor-provider.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- function SidebarEditorProvider(_ref) {
- let {
- sidebar,
- settings,
- children
- } = _ref;
- const [blocks, onInput, onChange] = useSidebarBlockEditor(sidebar);
- useBlocksFocusControl(blocks);
- return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockEditorProvider, {
- value: blocks,
- onInput: onInput,
- onChange: onChange,
- settings: settings,
- useSubRegistry: false
- }, children);
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/welcome-guide/index.js
- /**
- * WordPress dependencies
- */
- function WelcomeGuide(_ref) {
- let {
- sidebar
- } = _ref;
- const {
- toggle
- } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_preferences_namespaceObject.store);
- const isEntirelyBlockWidgets = sidebar.getWidgets().every(widget => widget.id.startsWith('block-'));
- return (0,external_wp_element_namespaceObject.createElement)("div", {
- className: "customize-widgets-welcome-guide"
- }, (0,external_wp_element_namespaceObject.createElement)("div", {
- className: "customize-widgets-welcome-guide__image__wrapper"
- }, (0,external_wp_element_namespaceObject.createElement)("picture", null, (0,external_wp_element_namespaceObject.createElement)("source", {
- srcSet: "https://s.w.org/images/block-editor/welcome-editor.svg",
- media: "(prefers-reduced-motion: reduce)"
- }), (0,external_wp_element_namespaceObject.createElement)("img", {
- className: "customize-widgets-welcome-guide__image",
- src: "https://s.w.org/images/block-editor/welcome-editor.gif",
- width: "312",
- height: "240",
- alt: ""
- }))), (0,external_wp_element_namespaceObject.createElement)("h1", {
- className: "customize-widgets-welcome-guide__heading"
- }, (0,external_wp_i18n_namespaceObject.__)('Welcome to block Widgets')), (0,external_wp_element_namespaceObject.createElement)("p", {
- className: "customize-widgets-welcome-guide__text"
- }, isEntirelyBlockWidgets ? (0,external_wp_i18n_namespaceObject.__)('Your theme provides 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.') : (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)(external_wp_components_namespaceObject.Button, {
- className: "customize-widgets-welcome-guide__button",
- variant: "primary",
- onClick: () => toggle('core/customize-widgets', 'welcomeGuide')
- }, (0,external_wp_i18n_namespaceObject.__)('Got it')), (0,external_wp_element_namespaceObject.createElement)("hr", {
- className: "customize-widgets-welcome-guide__separator"
- }), !isEntirelyBlockWidgets && (0,external_wp_element_namespaceObject.createElement)("p", {
- className: "customize-widgets-welcome-guide__more-info"
- }, (0,external_wp_i18n_namespaceObject.__)('Want to stick with the old widgets?'), (0,external_wp_element_namespaceObject.createElement)("br", null), (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.'))), (0,external_wp_element_namespaceObject.createElement)("p", {
- className: "customize-widgets-welcome-guide__more-info"
- }, (0,external_wp_i18n_namespaceObject.__)('New to the block editor?'), (0,external_wp_element_namespaceObject.createElement)("br", null), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
- href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/support/article/wordpress-editor/')
- }, (0,external_wp_i18n_namespaceObject.__)("Here's a detailed guide."))));
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcuts/index.js
- /**
- * WordPress dependencies
- */
- function KeyboardShortcuts(_ref) {
- let {
- undo,
- redo,
- save
- } = _ref;
- (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/customize-widgets/undo', event => {
- undo();
- event.preventDefault();
- });
- (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/customize-widgets/redo', event => {
- redo();
- event.preventDefault();
- });
- (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/customize-widgets/save', event => {
- event.preventDefault();
- save();
- });
- return null;
- }
- function KeyboardShortcutsRegister() {
- const {
- registerShortcut,
- unregisterShortcut
- } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_keyboardShortcuts_namespaceObject.store);
- (0,external_wp_element_namespaceObject.useEffect)(() => {
- registerShortcut({
- name: 'core/customize-widgets/undo',
- category: 'global',
- description: (0,external_wp_i18n_namespaceObject.__)('Undo your last changes.'),
- keyCombination: {
- modifier: 'primary',
- character: 'z'
- }
- });
- registerShortcut({
- name: 'core/customize-widgets/redo',
- category: 'global',
- description: (0,external_wp_i18n_namespaceObject.__)('Redo your last undo.'),
- keyCombination: {
- modifier: 'primaryShift',
- character: 'z'
- }
- });
- registerShortcut({
- name: 'core/customize-widgets/save',
- category: 'global',
- description: (0,external_wp_i18n_namespaceObject.__)('Save your changes.'),
- keyCombination: {
- modifier: 'primary',
- character: 's'
- }
- });
- return () => {
- unregisterShortcut('core/customize-widgets/undo');
- unregisterShortcut('core/customize-widgets/redo');
- unregisterShortcut('core/customize-widgets/save');
- };
- }, [registerShortcut]);
- return null;
- }
- KeyboardShortcuts.Register = KeyboardShortcutsRegister;
- /* harmony default export */ var keyboard_shortcuts = (KeyboardShortcuts);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/block-appender/index.js
- /**
- * WordPress dependencies
- */
- function BlockAppender(props) {
- const ref = (0,external_wp_element_namespaceObject.useRef)();
- const isBlocksListEmpty = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlockCount() === 0); // Move the focus to the block appender to prevent focus from
- // being lost when emptying the widget area.
- (0,external_wp_element_namespaceObject.useEffect)(() => {
- if (isBlocksListEmpty && ref.current) {
- const {
- ownerDocument
- } = ref.current;
- if (!ownerDocument.activeElement || ownerDocument.activeElement === ownerDocument.body) {
- ref.current.focus();
- }
- }
- }, [isBlocksListEmpty]);
- return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ButtonBlockAppender, _extends({}, props, {
- ref: ref
- }));
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/index.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- function SidebarBlockEditor(_ref) {
- let {
- blockEditorSettings,
- sidebar,
- inserter,
- inspector
- } = _ref;
- const [isInserterOpened, setIsInserterOpened] = useInserter(inserter);
- const {
- hasUploadPermissions,
- isFixedToolbarActive,
- keepCaretInsideBlock,
- isWelcomeGuideActive
- } = (0,external_wp_data_namespaceObject.useSelect)(select => {
- var _select$canUser;
- const {
- get
- } = select(external_wp_preferences_namespaceObject.store);
- return {
- hasUploadPermissions: (_select$canUser = select(external_wp_coreData_namespaceObject.store).canUser('create', 'media')) !== null && _select$canUser !== void 0 ? _select$canUser : true,
- isFixedToolbarActive: !!get('core/customize-widgets', 'fixedToolbar'),
- keepCaretInsideBlock: !!get('core/customize-widgets', 'keepCaretInsideBlock'),
- isWelcomeGuideActive: !!get('core/customize-widgets', 'welcomeGuide')
- };
- }, []);
- const settings = (0,external_wp_element_namespaceObject.useMemo)(() => {
- let mediaUploadBlockEditor;
- if (hasUploadPermissions) {
- mediaUploadBlockEditor = _ref2 => {
- let {
- onError,
- ...argumentsObject
- } = _ref2;
- (0,external_wp_mediaUtils_namespaceObject.uploadMedia)({
- wpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,
- onError: _ref3 => {
- let {
- message
- } = _ref3;
- return onError(message);
- },
- ...argumentsObject
- });
- };
- }
- return { ...blockEditorSettings,
- __experimentalSetIsInserterOpened: setIsInserterOpened,
- mediaUpload: mediaUploadBlockEditor,
- hasFixedToolbar: isFixedToolbarActive,
- keepCaretInsideBlock,
- __unstableHasCustomAppender: true
- };
- }, [hasUploadPermissions, blockEditorSettings, isFixedToolbarActive, keepCaretInsideBlock, setIsInserterOpened]);
- if (isWelcomeGuideActive) {
- return (0,external_wp_element_namespaceObject.createElement)(WelcomeGuide, {
- sidebar: sidebar
- });
- }
- return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockEditorKeyboardShortcuts.Register, null), (0,external_wp_element_namespaceObject.createElement)(keyboard_shortcuts.Register, null), (0,external_wp_element_namespaceObject.createElement)(SidebarEditorProvider, {
- sidebar: sidebar,
- settings: settings
- }, (0,external_wp_element_namespaceObject.createElement)(keyboard_shortcuts, {
- undo: sidebar.undo,
- redo: sidebar.redo,
- save: sidebar.save
- }), (0,external_wp_element_namespaceObject.createElement)(header, {
- sidebar: sidebar,
- inserter: inserter,
- isInserterOpened: isInserterOpened,
- setIsInserterOpened: setIsInserterOpened,
- isFixedToolbarActive: isFixedToolbarActive
- }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.CopyHandler, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockTools, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__unstableEditorStyles, {
- styles: settings.defaultEditorStyles
- }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockSelectionClearer, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.WritingFlow, {
- className: "editor-styles-wrapper"
- }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ObserveTyping, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockList, {
- renderAppender: BlockAppender
- })))))), (0,external_wp_element_namespaceObject.createPortal)( // This is a temporary hack to prevent button component inside <BlockInspector>
- // from submitting form when type="button" is not specified.
- (0,external_wp_element_namespaceObject.createElement)("form", {
- onSubmit: event => event.preventDefault()
- }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockInspector, null)), inspector.contentContainer[0])), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__unstableBlockSettingsMenuFirstItem, null, _ref4 => {
- let {
- onClose
- } = _ref4;
- return (0,external_wp_element_namespaceObject.createElement)(block_inspector_button, {
- inspector: inspector,
- closeMenu: onClose
- });
- }));
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-controls/index.js
- /**
- * WordPress dependencies
- */
- const SidebarControlsContext = (0,external_wp_element_namespaceObject.createContext)();
- function SidebarControls(_ref) {
- let {
- sidebarControls,
- activeSidebarControl,
- children
- } = _ref;
- const context = (0,external_wp_element_namespaceObject.useMemo)(() => ({
- sidebarControls,
- activeSidebarControl
- }), [sidebarControls, activeSidebarControl]);
- return (0,external_wp_element_namespaceObject.createElement)(SidebarControlsContext.Provider, {
- value: context
- }, children);
- }
- function useSidebarControls() {
- const {
- sidebarControls
- } = (0,external_wp_element_namespaceObject.useContext)(SidebarControlsContext);
- return sidebarControls;
- }
- function useActiveSidebarControl() {
- const {
- activeSidebarControl
- } = (0,external_wp_element_namespaceObject.useContext)(SidebarControlsContext);
- return activeSidebarControl;
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/customize-widgets/use-clear-selected-block.js
- /**
- * WordPress dependencies
- */
- /**
- * We can't just use <BlockSelectionClearer> because the customizer has
- * many root nodes rather than just one in the post editor.
- * We need to listen to the focus events in all those roots, and also in
- * the preview iframe.
- * This hook will clear the selected block when focusing outside the editor,
- * with a few exceptions:
- * 1. Focusing on popovers.
- * 2. Focusing on the inspector.
- * 3. Focusing on any modals/dialogs.
- * These cases are normally triggered by user interactions from the editor,
- * not by explicitly focusing outside the editor, hence no need for clearing.
- *
- * @param {Object} sidebarControl The sidebar control instance.
- * @param {Object} popoverRef The ref object of the popover node container.
- */
- function useClearSelectedBlock(sidebarControl, popoverRef) {
- const {
- hasSelectedBlock,
- hasMultiSelection
- } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
- const {
- clearSelectedBlock
- } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
- (0,external_wp_element_namespaceObject.useEffect)(() => {
- if (popoverRef.current && sidebarControl) {
- const inspector = sidebarControl.inspector;
- const container = sidebarControl.container[0];
- const ownerDocument = container.ownerDocument;
- const ownerWindow = ownerDocument.defaultView;
- function handleClearSelectedBlock(element) {
- if ( // 1. Make sure there are blocks being selected.
- (hasSelectedBlock() || hasMultiSelection()) && // 2. The element should exist in the DOM (not deleted).
- element && ownerDocument.contains(element) && // 3. It should also not exist in the container, the popover, nor the dialog.
- !container.contains(element) && !popoverRef.current.contains(element) && !element.closest('[role="dialog"]') && // 4. The inspector should not be opened.
- !inspector.expanded()) {
- clearSelectedBlock();
- }
- } // Handle mouse down in the same document.
- function handleMouseDown(event) {
- handleClearSelectedBlock(event.target);
- } // Handle focusing outside the current document, like to iframes.
- function handleBlur() {
- handleClearSelectedBlock(ownerDocument.activeElement);
- }
- ownerDocument.addEventListener('mousedown', handleMouseDown);
- ownerWindow.addEventListener('blur', handleBlur);
- return () => {
- ownerDocument.removeEventListener('mousedown', handleMouseDown);
- ownerWindow.removeEventListener('blur', handleBlur);
- };
- }
- }, [popoverRef, sidebarControl, hasSelectedBlock, hasMultiSelection, clearSelectedBlock]);
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/customize-widgets/index.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- function CustomizeWidgets(_ref) {
- let {
- api,
- sidebarControls,
- blockEditorSettings
- } = _ref;
- const [activeSidebarControl, setActiveSidebarControl] = (0,external_wp_element_namespaceObject.useState)(null);
- const parentContainer = document.getElementById('customize-theme-controls');
- const popoverRef = (0,external_wp_element_namespaceObject.useRef)();
- useClearSelectedBlock(activeSidebarControl, popoverRef);
- (0,external_wp_element_namespaceObject.useEffect)(() => {
- const unsubscribers = sidebarControls.map(sidebarControl => sidebarControl.subscribe(expanded => {
- if (expanded) {
- setActiveSidebarControl(sidebarControl);
- }
- }));
- return () => {
- unsubscribers.forEach(unsubscriber => unsubscriber());
- };
- }, [sidebarControls]);
- const activeSidebar = activeSidebarControl && (0,external_wp_element_namespaceObject.createPortal)((0,external_wp_element_namespaceObject.createElement)(ErrorBoundary, null, (0,external_wp_element_namespaceObject.createElement)(SidebarBlockEditor, {
- key: activeSidebarControl.id,
- blockEditorSettings: blockEditorSettings,
- sidebar: activeSidebarControl.sidebarAdapter,
- inserter: activeSidebarControl.inserter,
- inspector: activeSidebarControl.inspector
- })), activeSidebarControl.container[0]); // We have to portal this to the parent of both the editor and the inspector,
- // so that the popovers will appear above both of them.
- const popover = parentContainer && (0,external_wp_element_namespaceObject.createPortal)((0,external_wp_element_namespaceObject.createElement)("div", {
- className: "customize-widgets-popover",
- ref: popoverRef
- }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover.Slot, null)), parentContainer);
- return (0,external_wp_element_namespaceObject.createElement)(external_wp_keyboardShortcuts_namespaceObject.ShortcutProvider, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SlotFillProvider, null, (0,external_wp_element_namespaceObject.createElement)(SidebarControls, {
- sidebarControls: sidebarControls,
- activeSidebarControl: activeSidebarControl
- }, (0,external_wp_element_namespaceObject.createElement)(FocusControl, {
- api: api,
- sidebarControls: sidebarControls
- }, activeSidebar, popover))));
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/inspector-section.js
- function getInspectorSection() {
- const {
- wp: {
- customize
- }
- } = window;
- return class InspectorSection extends customize.Section {
- constructor(id, options) {
- super(id, options);
- this.parentSection = options.parentSection;
- this.returnFocusWhenClose = null;
- this._isOpen = false;
- }
- get isOpen() {
- return this._isOpen;
- }
- set isOpen(value) {
- this._isOpen = value;
- this.triggerActiveCallbacks();
- }
- ready() {
- this.contentContainer[0].classList.add('customize-widgets-layout__inspector');
- }
- isContextuallyActive() {
- return this.isOpen;
- }
- onChangeExpanded(expanded, args) {
- super.onChangeExpanded(expanded, args);
- if (this.parentSection && !args.unchanged) {
- if (expanded) {
- this.parentSection.collapse({
- manualTransition: true
- });
- } else {
- this.parentSection.expand({
- manualTransition: true,
- completeCallback: () => {
- // Return focus after finishing the transition.
- if (this.returnFocusWhenClose && !this.contentContainer[0].contains(this.returnFocusWhenClose)) {
- this.returnFocusWhenClose.focus();
- }
- }
- });
- }
- }
- }
- open() {
- let {
- returnFocusWhenClose
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- this.isOpen = true;
- this.returnFocusWhenClose = returnFocusWhenClose;
- this.expand({
- allowMultiple: true
- });
- }
- close() {
- this.collapse({
- allowMultiple: true
- });
- }
- collapse(options) {
- // Overridden collapse() function. Mostly call the parent collapse(), but also
- // move our .isOpen to false.
- // Initially, I tried tracking this with onChangeExpanded(), but it doesn't work
- // because the block settings sidebar is a layer "on top of" the G editor sidebar.
- //
- // For example, when closing the block settings sidebar, the G
- // editor sidebar would display, and onChangeExpanded in
- // inspector-section would run with expanded=true, but I want
- // isOpen to be false when the block settings is closed.
- this.isOpen = false;
- super.collapse(options);
- }
- triggerActiveCallbacks() {
- // Manually fire the callbacks associated with moving this.active
- // from false to true. "active" is always true for this section,
- // and "isContextuallyActive" reflects if the block settings
- // sidebar is currently visible, that is, it has replaced the main
- // Gutenberg view.
- // The WP customizer only checks ".isContextuallyActive()" when
- // ".active" changes values. But our ".active" never changes value.
- // The WP customizer never foresaw a section being used a way we
- // fit the block settings sidebar into a section. By manually
- // triggering the "this.active" callbacks, we force the WP
- // customizer to query our .isContextuallyActive() function and
- // update its view of our status.
- this.active.callbacks.fireWith(this.active, [false, true]);
- }
- };
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/sidebar-section.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- const getInspectorSectionId = sidebarId => `widgets-inspector-${sidebarId}`;
- function getSidebarSection() {
- const {
- wp: {
- customize
- }
- } = window;
- const reduceMotionMediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');
- let isReducedMotion = reduceMotionMediaQuery.matches;
- reduceMotionMediaQuery.addEventListener('change', event => {
- isReducedMotion = event.matches;
- });
- return class SidebarSection extends customize.Section {
- ready() {
- const InspectorSection = getInspectorSection();
- this.inspector = new InspectorSection(getInspectorSectionId(this.id), {
- title: (0,external_wp_i18n_namespaceObject.__)('Block Settings'),
- parentSection: this,
- customizeAction: [(0,external_wp_i18n_namespaceObject.__)('Customizing'), (0,external_wp_i18n_namespaceObject.__)('Widgets'), this.params.title].join(' ▸ ')
- });
- customize.section.add(this.inspector);
- this.contentContainer[0].classList.add('customize-widgets__sidebar-section');
- }
- hasSubSectionOpened() {
- return this.inspector.expanded();
- }
- onChangeExpanded(expanded, _args) {
- const controls = this.controls();
- const args = { ..._args,
- completeCallback() {
- var _args$completeCallbac;
- controls.forEach(control => {
- var _control$onChangeSect;
- (_control$onChangeSect = control.onChangeSectionExpanded) === null || _control$onChangeSect === void 0 ? void 0 : _control$onChangeSect.call(control, expanded, args);
- });
- (_args$completeCallbac = _args.completeCallback) === null || _args$completeCallbac === void 0 ? void 0 : _args$completeCallbac.call(_args);
- }
- };
- if (args.manualTransition) {
- if (expanded) {
- this.contentContainer.addClass(['busy', 'open']);
- this.contentContainer.removeClass('is-sub-section-open');
- this.contentContainer.closest('.wp-full-overlay').addClass('section-open');
- } else {
- this.contentContainer.addClass(['busy', 'is-sub-section-open']);
- this.contentContainer.closest('.wp-full-overlay').addClass('section-open');
- this.contentContainer.removeClass('open');
- }
- const handleTransitionEnd = () => {
- this.contentContainer.removeClass('busy');
- args.completeCallback();
- };
- if (isReducedMotion) {
- handleTransitionEnd();
- } else {
- this.contentContainer.one('transitionend', handleTransitionEnd);
- }
- } else {
- super.onChangeExpanded(expanded, args);
- }
- }
- };
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/sidebar-adapter.js
- /**
- * Internal dependencies
- */
- const {
- wp
- } = window;
- function parseWidgetId(widgetId) {
- const matches = widgetId.match(/^(.+)-(\d+)$/);
- if (matches) {
- return {
- idBase: matches[1],
- number: parseInt(matches[2], 10)
- };
- } // Likely an old single widget.
- return {
- idBase: widgetId
- };
- }
- function widgetIdToSettingId(widgetId) {
- const {
- idBase,
- number
- } = parseWidgetId(widgetId);
- if (number) {
- return `widget_${idBase}[${number}]`;
- }
- return `widget_${idBase}`;
- }
- /**
- * This is a custom debounce function to call different callbacks depending on
- * whether it's the _leading_ call or not.
- *
- * @param {Function} leading The callback that gets called first.
- * @param {Function} callback The callback that gets called after the first time.
- * @param {number} timeout The debounced time in milliseconds.
- * @return {Function} The debounced function.
- */
- function debounce(leading, callback, timeout) {
- let isLeading = false;
- let timerID;
- function debounced() {
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- const result = (isLeading ? callback : leading).apply(this, args);
- isLeading = true;
- clearTimeout(timerID);
- timerID = setTimeout(() => {
- isLeading = false;
- }, timeout);
- return result;
- }
- debounced.cancel = () => {
- isLeading = false;
- clearTimeout(timerID);
- };
- return debounced;
- }
- class SidebarAdapter {
- constructor(setting, api) {
- this.setting = setting;
- this.api = api;
- this.locked = false;
- this.widgetsCache = new WeakMap();
- this.subscribers = new Set();
- this.history = [this._getWidgetIds().map(widgetId => this.getWidget(widgetId))];
- this.historyIndex = 0;
- this.historySubscribers = new Set(); // Debounce the input for 1 second.
- this._debounceSetHistory = debounce(this._pushHistory, this._replaceHistory, 1000);
- this.setting.bind(this._handleSettingChange.bind(this));
- this.api.bind('change', this._handleAllSettingsChange.bind(this));
- this.undo = this.undo.bind(this);
- this.redo = this.redo.bind(this);
- this.save = this.save.bind(this);
- }
- subscribe(callback) {
- this.subscribers.add(callback);
- return () => {
- this.subscribers.delete(callback);
- };
- }
- getWidgets() {
- return this.history[this.historyIndex];
- }
- _emit() {
- for (const callback of this.subscribers) {
- callback(...arguments);
- }
- }
- _getWidgetIds() {
- return this.setting.get();
- }
- _pushHistory() {
- this.history = [...this.history.slice(0, this.historyIndex + 1), this._getWidgetIds().map(widgetId => this.getWidget(widgetId))];
- this.historyIndex += 1;
- this.historySubscribers.forEach(listener => listener());
- }
- _replaceHistory() {
- this.history[this.historyIndex] = this._getWidgetIds().map(widgetId => this.getWidget(widgetId));
- }
- _handleSettingChange() {
- if (this.locked) {
- return;
- }
- const prevWidgets = this.getWidgets();
- this._pushHistory();
- this._emit(prevWidgets, this.getWidgets());
- }
- _handleAllSettingsChange(setting) {
- if (this.locked) {
- return;
- }
- if (!setting.id.startsWith('widget_')) {
- return;
- }
- const widgetId = settingIdToWidgetId(setting.id);
- if (!this.setting.get().includes(widgetId)) {
- return;
- }
- const prevWidgets = this.getWidgets();
- this._pushHistory();
- this._emit(prevWidgets, this.getWidgets());
- }
- _createWidget(widget) {
- const widgetModel = wp.customize.Widgets.availableWidgets.findWhere({
- id_base: widget.idBase
- });
- let number = widget.number;
- if (widgetModel.get('is_multi') && !number) {
- widgetModel.set('multi_number', widgetModel.get('multi_number') + 1);
- number = widgetModel.get('multi_number');
- }
- const settingId = number ? `widget_${widget.idBase}[${number}]` : `widget_${widget.idBase}`;
- const settingArgs = {
- transport: wp.customize.Widgets.data.selectiveRefreshableWidgets[widgetModel.get('id_base')] ? 'postMessage' : 'refresh',
- previewer: this.setting.previewer
- };
- const setting = this.api.create(settingId, settingId, '', settingArgs);
- setting.set(widget.instance);
- const widgetId = settingIdToWidgetId(settingId);
- return widgetId;
- }
- _removeWidget(widget) {
- const settingId = widgetIdToSettingId(widget.id);
- const setting = this.api(settingId);
- if (setting) {
- const instance = setting.get();
- this.widgetsCache.delete(instance);
- }
- this.api.remove(settingId);
- }
- _updateWidget(widget) {
- const prevWidget = this.getWidget(widget.id); // Bail out update if nothing changed.
- if (prevWidget === widget) {
- return widget.id;
- } // Update existing setting if only the widget's instance changed.
- if (prevWidget.idBase && widget.idBase && prevWidget.idBase === widget.idBase) {
- const settingId = widgetIdToSettingId(widget.id);
- this.api(settingId).set(widget.instance);
- return widget.id;
- } // Otherwise delete and re-create.
- this._removeWidget(widget);
- return this._createWidget(widget);
- }
- getWidget(widgetId) {
- if (!widgetId) {
- return null;
- }
- const {
- idBase,
- number
- } = parseWidgetId(widgetId);
- const settingId = widgetIdToSettingId(widgetId);
- const setting = this.api(settingId);
- if (!setting) {
- return null;
- }
- const instance = setting.get();
- if (this.widgetsCache.has(instance)) {
- return this.widgetsCache.get(instance);
- }
- const widget = {
- id: widgetId,
- idBase,
- number,
- instance
- };
- this.widgetsCache.set(instance, widget);
- return widget;
- }
- _updateWidgets(nextWidgets) {
- this.locked = true;
- const addedWidgetIds = [];
- const nextWidgetIds = nextWidgets.map(nextWidget => {
- if (nextWidget.id && this.getWidget(nextWidget.id)) {
- addedWidgetIds.push(null);
- return this._updateWidget(nextWidget);
- }
- const widgetId = this._createWidget(nextWidget);
- addedWidgetIds.push(widgetId);
- return widgetId;
- });
- const deletedWidgets = this.getWidgets().filter(widget => !nextWidgetIds.includes(widget.id));
- deletedWidgets.forEach(widget => this._removeWidget(widget));
- this.setting.set(nextWidgetIds);
- this.locked = false;
- return addedWidgetIds;
- }
- setWidgets(nextWidgets) {
- const addedWidgetIds = this._updateWidgets(nextWidgets);
- this._debounceSetHistory();
- return addedWidgetIds;
- }
- /**
- * Undo/Redo related features
- */
- hasUndo() {
- return this.historyIndex > 0;
- }
- hasRedo() {
- return this.historyIndex < this.history.length - 1;
- }
- _seek(historyIndex) {
- const currentWidgets = this.getWidgets();
- this.historyIndex = historyIndex;
- const widgets = this.history[this.historyIndex];
- this._updateWidgets(widgets);
- this._emit(currentWidgets, this.getWidgets());
- this.historySubscribers.forEach(listener => listener());
- this._debounceSetHistory.cancel();
- }
- undo() {
- if (!this.hasUndo()) {
- return;
- }
- this._seek(this.historyIndex - 1);
- }
- redo() {
- if (!this.hasRedo()) {
- return;
- }
- this._seek(this.historyIndex + 1);
- }
- subscribeHistory(listener) {
- this.historySubscribers.add(listener);
- return () => {
- this.historySubscribers.delete(listener);
- };
- }
- save() {
- this.api.previewer.save();
- }
- }
- ;// CONCATENATED MODULE: external ["wp","dom"]
- var external_wp_dom_namespaceObject = window["wp"]["dom"];
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/inserter-outer-section.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- function getInserterOuterSection() {
- const {
- wp: {
- customize
- }
- } = window;
- const OuterSection = customize.OuterSection; // Override the OuterSection class to handle multiple outer sections.
- // It closes all the other outer sections whenever one is opened.
- // The result is that at most one outer section can be opened at the same time.
- customize.OuterSection = class extends OuterSection {
- onChangeExpanded(expanded, args) {
- if (expanded) {
- customize.section.each(section => {
- if (section.params.type === 'outer' && section.id !== this.id) {
- if (section.expanded()) {
- section.collapse();
- }
- }
- });
- }
- return super.onChangeExpanded(expanded, args);
- }
- }; // Handle constructor so that "params.type" can be correctly pointed to "outer".
- customize.sectionConstructor.outer = customize.OuterSection;
- return class InserterOuterSection extends customize.OuterSection {
- constructor() {
- super(...arguments); // This is necessary since we're creating a new class which is not identical to the original OuterSection.
- // @See https://github.com/WordPress/wordpress-develop/blob/42b05c397c50d9dc244083eff52991413909d4bd/src/js/_enqueues/wp/customize/controls.js#L1427-L1436
- this.params.type = 'outer';
- this.activeElementBeforeExpanded = null;
- const ownerWindow = this.contentContainer[0].ownerDocument.defaultView; // Handle closing the inserter when pressing the Escape key.
- ownerWindow.addEventListener('keydown', event => {
- if (this.expanded() && (event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE || event.code === 'Escape') && !event.defaultPrevented) {
- event.preventDefault();
- event.stopPropagation();
- (0,external_wp_data_namespaceObject.dispatch)(store).setIsInserterOpened(false);
- }
- }, // Use capture mode to make this run before other event listeners.
- true);
- this.contentContainer.addClass('widgets-inserter'); // Set a flag if the state is being changed from open() or close().
- // Don't propagate the event if it's an internal action to prevent infinite loop.
- this.isFromInternalAction = false;
- this.expanded.bind(() => {
- if (!this.isFromInternalAction) {
- // Propagate the event to React to sync the state.
- (0,external_wp_data_namespaceObject.dispatch)(store).setIsInserterOpened(this.expanded());
- }
- this.isFromInternalAction = false;
- });
- }
- open() {
- if (!this.expanded()) {
- const contentContainer = this.contentContainer[0];
- this.activeElementBeforeExpanded = contentContainer.ownerDocument.activeElement;
- this.isFromInternalAction = true;
- this.expand({
- completeCallback() {
- // We have to do this in a "completeCallback" or else the elements will not yet be visible/tabbable.
- // The first one should be the close button,
- // we want to skip it and choose the second one instead, which is the search box.
- const searchBox = external_wp_dom_namespaceObject.focus.tabbable.find(contentContainer)[1];
- if (searchBox) {
- searchBox.focus();
- }
- }
- });
- }
- }
- close() {
- if (this.expanded()) {
- const contentContainer = this.contentContainer[0];
- const activeElement = contentContainer.ownerDocument.activeElement;
- this.isFromInternalAction = true;
- this.collapse({
- completeCallback() {
- // Return back the focus when closing the inserter.
- // Only do this if the active element which triggers the action is inside the inserter,
- // (the close button for instance). In that case the focus will be lost.
- // Otherwise, we don't hijack the focus when the user is focusing on other elements
- // (like the quick inserter).
- if (contentContainer.contains(activeElement)) {
- // Return back the focus when closing the inserter.
- if (this.activeElementBeforeExpanded) {
- this.activeElementBeforeExpanded.focus();
- }
- }
- }
- });
- }
- }
- };
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/sidebar-control.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- const getInserterId = controlId => `widgets-inserter-${controlId}`;
- function getSidebarControl() {
- const {
- wp: {
- customize
- }
- } = window;
- return class SidebarControl extends customize.Control {
- constructor() {
- super(...arguments);
- this.subscribers = new Set();
- }
- ready() {
- const InserterOuterSection = getInserterOuterSection();
- this.inserter = new InserterOuterSection(getInserterId(this.id), {});
- customize.section.add(this.inserter);
- this.sectionInstance = customize.section(this.section());
- this.inspector = this.sectionInstance.inspector;
- this.sidebarAdapter = new SidebarAdapter(this.setting, customize);
- }
- subscribe(callback) {
- this.subscribers.add(callback);
- return () => {
- this.subscribers.delete(callback);
- };
- }
- onChangeSectionExpanded(expanded, args) {
- if (!args.unchanged) {
- // Close the inserter when the section collapses.
- if (!expanded) {
- (0,external_wp_data_namespaceObject.dispatch)(store).setIsInserterOpened(false);
- }
- this.subscribers.forEach(subscriber => subscriber(expanded, args));
- }
- }
- };
- }
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/move-to-sidebar.js
- /**
- * External dependencies
- */
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- const withMoveToSidebarToolbarItem = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => {
- let widgetId = (0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(props);
- const sidebarControls = useSidebarControls();
- const activeSidebarControl = useActiveSidebarControl();
- const hasMultipleSidebars = (sidebarControls === null || sidebarControls === void 0 ? void 0 : sidebarControls.length) > 1;
- const blockName = props.name;
- const clientId = props.clientId;
- const canInsertBlockInSidebar = (0,external_wp_data_namespaceObject.useSelect)(select => {
- // Use an empty string to represent the root block list, which
- // in the customizer editor represents a sidebar/widget area.
- return select(external_wp_blockEditor_namespaceObject.store).canInsertBlockType(blockName, '');
- }, [blockName]);
- const block = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId), [clientId]);
- const {
- removeBlock
- } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
- const [, focusWidget] = useFocusControl();
- function moveToSidebar(sidebarControlId) {
- const newSidebarControl = sidebarControls.find(sidebarControl => sidebarControl.id === sidebarControlId);
- if (widgetId) {
- /**
- * If there's a widgetId, move it to the other sidebar.
- */
- const oldSetting = activeSidebarControl.setting;
- const newSetting = newSidebarControl.setting;
- oldSetting((0,external_lodash_namespaceObject.without)(oldSetting(), widgetId));
- newSetting([...newSetting(), widgetId]);
- } else {
- /**
- * If there isn't a widgetId, it's most likely a inner block.
- * First, remove the block in the original sidebar,
- * then, create a new widget in the new sidebar and get back its widgetId.
- */
- const sidebarAdapter = newSidebarControl.sidebarAdapter;
- removeBlock(clientId);
- const addedWidgetIds = sidebarAdapter.setWidgets([...sidebarAdapter.getWidgets(), blockToWidget(block)]); // The last non-null id is the added widget's id.
- widgetId = addedWidgetIds.reverse().find(id => !!id);
- } // Move focus to the moved widget and expand the sidebar.
- focusWidget(widgetId);
- }
- return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(BlockEdit, props), hasMultipleSidebars && canInsertBlockInSidebar && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_widgets_namespaceObject.MoveToWidgetArea, {
- widgetAreas: sidebarControls.map(sidebarControl => ({
- id: sidebarControl.id,
- name: sidebarControl.params.label,
- description: sidebarControl.params.description
- })),
- currentWidgetAreaId: activeSidebarControl === null || activeSidebarControl === void 0 ? void 0 : activeSidebarControl.id,
- onSelect: moveToSidebar
- })));
- }, 'withMoveToSidebarToolbarItem');
- (0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/customize-widgets/block-edit', withMoveToSidebarToolbarItem);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/replace-media-upload.js
- /**
- * WordPress dependencies
- */
- 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/customize-widgets/build-module/filters/wide-widget-display.js
- /**
- * WordPress dependencies
- */
- const {
- wp: wide_widget_display_wp
- } = window;
- const withWideWidgetDisplay = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => {
- var _wp$customize$Widgets, _wp$customize$Widgets2;
- const {
- idBase
- } = props.attributes;
- const isWide = (_wp$customize$Widgets = (_wp$customize$Widgets2 = wide_widget_display_wp.customize.Widgets.data.availableWidgets.find(widget => widget.id_base === idBase)) === null || _wp$customize$Widgets2 === void 0 ? void 0 : _wp$customize$Widgets2.is_wide) !== null && _wp$customize$Widgets !== void 0 ? _wp$customize$Widgets : false;
- return (0,external_wp_element_namespaceObject.createElement)(BlockEdit, _extends({}, props, {
- isWide: isWide
- }));
- }, 'withWideWidgetDisplay');
- (0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/customize-widgets/wide-widget-display', withWideWidgetDisplay);
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/index.js
- /**
- * Internal dependencies
- */
- ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/index.js
- /**
- * WordPress dependencies
- */
- /**
- * Internal dependencies
- */
- const {
- wp: build_module_wp
- } = window;
- const DISABLED_BLOCKS = ['core/more', 'core/block', 'core/freeform', 'core/template-part'];
- const ENABLE_EXPERIMENTAL_FSE_BLOCKS = false;
- /**
- * Initializes the widgets block editor in the customizer.
- *
- * @param {string} editorName The editor name.
- * @param {Object} blockEditorSettings Block editor settings.
- */
- function initialize(editorName, blockEditorSettings) {
- (0,external_wp_data_namespaceObject.dispatch)(external_wp_preferences_namespaceObject.store).setDefaults('core/customize-widgets', {
- fixedToolbar: false,
- welcomeGuide: true
- });
- (0,external_wp_data_namespaceObject.dispatch)(external_wp_blocks_namespaceObject.store).__experimentalReapplyBlockTypeFilters();
- const coreBlocks = (0,external_wp_blockLibrary_namespaceObject.__experimentalGetCoreBlocks)().filter(block => {
- return !(DISABLED_BLOCKS.includes(block.name) || block.name.startsWith('core/post') || block.name.startsWith('core/query') || block.name.startsWith('core/site') || block.name.startsWith('core/navigation'));
- });
- (0,external_wp_blockLibrary_namespaceObject.registerCoreBlocks)(coreBlocks);
- (0,external_wp_widgets_namespaceObject.registerLegacyWidgetBlock)();
- if (false) {}
- (0,external_wp_widgets_namespaceObject.registerLegacyWidgetVariations)(blockEditorSettings);
- (0,external_wp_widgets_namespaceObject.registerWidgetGroupBlock)(); // As we are unregistering `core/freeform` to avoid the Classic block, we must
- // 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');
- const SidebarControl = getSidebarControl(blockEditorSettings);
- build_module_wp.customize.sectionConstructor.sidebar = getSidebarSection();
- build_module_wp.customize.controlConstructor.sidebar_block_editor = SidebarControl;
- const container = document.createElement('div');
- document.body.appendChild(container);
- build_module_wp.customize.bind('ready', () => {
- const sidebarControls = [];
- build_module_wp.customize.control.each(control => {
- if (control instanceof SidebarControl) {
- sidebarControls.push(control);
- }
- });
- (0,external_wp_element_namespaceObject.render)((0,external_wp_element_namespaceObject.createElement)(CustomizeWidgets, {
- api: build_module_wp.customize,
- sidebarControls: sidebarControls,
- blockEditorSettings: blockEditorSettings
- }), container);
- });
- }
- }();
- (window.wp = window.wp || {}).customizeWidgets = __webpack_exports__;
- /******/ })()
- ;
|