Нема описа

customize-widgets.js 98KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095
  1. this["wp"] = this["wp"] || {}; this["wp"]["customizeWidgets"] =
  2. /******/ (function(modules) { // webpackBootstrap
  3. /******/ // The module cache
  4. /******/ var installedModules = {};
  5. /******/
  6. /******/ // The require function
  7. /******/ function __webpack_require__(moduleId) {
  8. /******/
  9. /******/ // Check if module is in cache
  10. /******/ if(installedModules[moduleId]) {
  11. /******/ return installedModules[moduleId].exports;
  12. /******/ }
  13. /******/ // Create a new module (and put it into the cache)
  14. /******/ var module = installedModules[moduleId] = {
  15. /******/ i: moduleId,
  16. /******/ l: false,
  17. /******/ exports: {}
  18. /******/ };
  19. /******/
  20. /******/ // Execute the module function
  21. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  22. /******/
  23. /******/ // Flag the module as loaded
  24. /******/ module.l = true;
  25. /******/
  26. /******/ // Return the exports of the module
  27. /******/ return module.exports;
  28. /******/ }
  29. /******/
  30. /******/
  31. /******/ // expose the modules object (__webpack_modules__)
  32. /******/ __webpack_require__.m = modules;
  33. /******/
  34. /******/ // expose the module cache
  35. /******/ __webpack_require__.c = installedModules;
  36. /******/
  37. /******/ // define getter function for harmony exports
  38. /******/ __webpack_require__.d = function(exports, name, getter) {
  39. /******/ if(!__webpack_require__.o(exports, name)) {
  40. /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
  41. /******/ }
  42. /******/ };
  43. /******/
  44. /******/ // define __esModule on exports
  45. /******/ __webpack_require__.r = function(exports) {
  46. /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  47. /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  48. /******/ }
  49. /******/ Object.defineProperty(exports, '__esModule', { value: true });
  50. /******/ };
  51. /******/
  52. /******/ // create a fake namespace object
  53. /******/ // mode & 1: value is a module id, require it
  54. /******/ // mode & 2: merge all properties of value into the ns
  55. /******/ // mode & 4: return value when already ns object
  56. /******/ // mode & 8|1: behave like require
  57. /******/ __webpack_require__.t = function(value, mode) {
  58. /******/ if(mode & 1) value = __webpack_require__(value);
  59. /******/ if(mode & 8) return value;
  60. /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  61. /******/ var ns = Object.create(null);
  62. /******/ __webpack_require__.r(ns);
  63. /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  64. /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  65. /******/ return ns;
  66. /******/ };
  67. /******/
  68. /******/ // getDefaultExport function for compatibility with non-harmony modules
  69. /******/ __webpack_require__.n = function(module) {
  70. /******/ var getter = module && module.__esModule ?
  71. /******/ function getDefault() { return module['default']; } :
  72. /******/ function getModuleExports() { return module; };
  73. /******/ __webpack_require__.d(getter, 'a', getter);
  74. /******/ return getter;
  75. /******/ };
  76. /******/
  77. /******/ // Object.prototype.hasOwnProperty.call
  78. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  79. /******/
  80. /******/ // __webpack_public_path__
  81. /******/ __webpack_require__.p = "";
  82. /******/
  83. /******/
  84. /******/ // Load entry module and return exports
  85. /******/ return __webpack_require__(__webpack_require__.s = "9pbN");
  86. /******/ })
  87. /************************************************************************/
  88. /******/ ({
  89. /***/ "1CF3":
  90. /***/ (function(module, exports) {
  91. (function() { module.exports = window["wp"]["dom"]; }());
  92. /***/ }),
  93. /***/ "1ZqX":
  94. /***/ (function(module, exports) {
  95. (function() { module.exports = window["wp"]["data"]; }());
  96. /***/ }),
  97. /***/ "6aBm":
  98. /***/ (function(module, exports) {
  99. (function() { module.exports = window["wp"]["mediaUtils"]; }());
  100. /***/ }),
  101. /***/ "9pbN":
  102. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  103. "use strict";
  104. // ESM COMPAT FLAG
  105. __webpack_require__.r(__webpack_exports__);
  106. // EXPORTS
  107. __webpack_require__.d(__webpack_exports__, "initialize", function() { return /* binding */ initialize; });
  108. // NAMESPACE OBJECT: ./node_modules/@wordpress/customize-widgets/build-module/store/selectors.js
  109. var selectors_namespaceObject = {};
  110. __webpack_require__.r(selectors_namespaceObject);
  111. __webpack_require__.d(selectors_namespaceObject, "__unstableIsFeatureActive", function() { return __unstableIsFeatureActive; });
  112. __webpack_require__.d(selectors_namespaceObject, "isInserterOpened", function() { return selectors_isInserterOpened; });
  113. __webpack_require__.d(selectors_namespaceObject, "__experimentalGetInsertionPoint", function() { return __experimentalGetInsertionPoint; });
  114. // NAMESPACE OBJECT: ./node_modules/@wordpress/customize-widgets/build-module/store/actions.js
  115. var actions_namespaceObject = {};
  116. __webpack_require__.r(actions_namespaceObject);
  117. __webpack_require__.d(actions_namespaceObject, "__unstableToggleFeature", function() { return __unstableToggleFeature; });
  118. __webpack_require__.d(actions_namespaceObject, "setIsInserterOpened", function() { return actions_setIsInserterOpened; });
  119. // EXTERNAL MODULE: external ["wp","element"]
  120. var external_wp_element_ = __webpack_require__("GRId");
  121. // EXTERNAL MODULE: external ["wp","blockLibrary"]
  122. var external_wp_blockLibrary_ = __webpack_require__("QyPg");
  123. // EXTERNAL MODULE: external ["wp","widgets"]
  124. var external_wp_widgets_ = __webpack_require__("GLVC");
  125. // EXTERNAL MODULE: external ["wp","blocks"]
  126. var external_wp_blocks_ = __webpack_require__("HSyU");
  127. // EXTERNAL MODULE: external ["wp","components"]
  128. var external_wp_components_ = __webpack_require__("tI+e");
  129. // EXTERNAL MODULE: external ["wp","i18n"]
  130. var external_wp_i18n_ = __webpack_require__("l3Sj");
  131. // EXTERNAL MODULE: external ["wp","blockEditor"]
  132. var external_wp_blockEditor_ = __webpack_require__("axFQ");
  133. // EXTERNAL MODULE: external ["wp","compose"]
  134. var external_wp_compose_ = __webpack_require__("K9lf");
  135. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/error-boundary/index.js
  136. /**
  137. * WordPress dependencies
  138. */
  139. function CopyButton({
  140. text,
  141. children
  142. }) {
  143. const ref = Object(external_wp_compose_["useCopyToClipboard"])(text);
  144. return Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
  145. variant: "secondary",
  146. ref: ref
  147. }, children);
  148. }
  149. class error_boundary_ErrorBoundary extends external_wp_element_["Component"] {
  150. constructor() {
  151. super(...arguments);
  152. this.state = {
  153. error: null
  154. };
  155. }
  156. componentDidCatch(error) {
  157. this.setState({
  158. error
  159. });
  160. }
  161. render() {
  162. const {
  163. error
  164. } = this.state;
  165. if (!error) {
  166. return this.props.children;
  167. }
  168. return Object(external_wp_element_["createElement"])(external_wp_blockEditor_["Warning"], {
  169. className: "customize-widgets-error-boundary",
  170. actions: [Object(external_wp_element_["createElement"])(CopyButton, {
  171. key: "copy-error",
  172. text: error.stack
  173. }, Object(external_wp_i18n_["__"])('Copy Error'))]
  174. }, Object(external_wp_i18n_["__"])('The editor has encountered an unexpected error.'));
  175. }
  176. }
  177. // EXTERNAL MODULE: external "lodash"
  178. var external_lodash_ = __webpack_require__("YLtl");
  179. // EXTERNAL MODULE: external ["wp","coreData"]
  180. var external_wp_coreData_ = __webpack_require__("jZUy");
  181. // EXTERNAL MODULE: external ["wp","data"]
  182. var external_wp_data_ = __webpack_require__("1ZqX");
  183. // EXTERNAL MODULE: external ["wp","mediaUtils"]
  184. var external_wp_mediaUtils_ = __webpack_require__("6aBm");
  185. // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
  186. var esm_extends = __webpack_require__("wx14");
  187. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/block-inspector-button/index.js
  188. /**
  189. * WordPress dependencies
  190. */
  191. function BlockInspectorButton({
  192. inspector,
  193. closeMenu,
  194. ...props
  195. }) {
  196. const selectedBlockClientId = Object(external_wp_data_["useSelect"])(select => select(external_wp_blockEditor_["store"]).getSelectedBlockClientId(), []);
  197. const selectedBlock = Object(external_wp_element_["useMemo"])(() => document.getElementById(`block-${selectedBlockClientId}`), [selectedBlockClientId]);
  198. return Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], Object(esm_extends["a" /* default */])({
  199. onClick: () => {
  200. // Open the inspector.
  201. inspector.open({
  202. returnFocusWhenClose: selectedBlock
  203. }); // Then close the dropdown menu.
  204. closeMenu();
  205. }
  206. }, props), Object(external_wp_i18n_["__"])('Show more settings'));
  207. }
  208. /* harmony default export */ var block_inspector_button = (BlockInspectorButton);
  209. // EXTERNAL MODULE: ./node_modules/classnames/index.js
  210. var classnames = __webpack_require__("TSYQ");
  211. var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
  212. // EXTERNAL MODULE: external ["wp","keycodes"]
  213. var external_wp_keycodes_ = __webpack_require__("RxS6");
  214. // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/undo.js
  215. var library_undo = __webpack_require__("Ntru");
  216. // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/redo.js
  217. var library_redo = __webpack_require__("K2cm");
  218. // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js
  219. var plus = __webpack_require__("Q4Sy");
  220. // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js
  221. var close_small = __webpack_require__("bWcr");
  222. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/defaults.js
  223. const PREFERENCES_DEFAULTS = {
  224. features: {
  225. fixedToolbar: false,
  226. welcomeGuide: true
  227. }
  228. };
  229. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/reducer.js
  230. /**
  231. * External dependencies
  232. */
  233. /**
  234. * WordPress dependencies
  235. */
  236. /**
  237. * Internal dependencies
  238. */
  239. /**
  240. * Higher-order reducer creator which provides the given initial state for the
  241. * original reducer.
  242. *
  243. * @param {*} initialState Initial state to provide to reducer.
  244. *
  245. * @return {Function} Higher-order reducer.
  246. */
  247. const createWithInitialState = initialState => reducer => {
  248. return (state = initialState, action) => reducer(state, action);
  249. };
  250. /**
  251. * Reducer tracking whether the inserter is open.
  252. *
  253. * @param {boolean|Object} state
  254. * @param {Object} action
  255. */
  256. function blockInserterPanel(state = false, action) {
  257. switch (action.type) {
  258. case 'SET_IS_INSERTER_OPENED':
  259. return action.value;
  260. }
  261. return state;
  262. }
  263. /**
  264. * Reducer returning the user preferences.
  265. *
  266. * @param {Object} state Current state.
  267. * @param {Object} action Dispatched action.
  268. *
  269. * @return {Object} Updated state.
  270. */
  271. const preferences = Object(external_lodash_["flow"])([external_wp_data_["combineReducers"], createWithInitialState(PREFERENCES_DEFAULTS)])({
  272. features(state, action) {
  273. if (action.type === 'TOGGLE_FEATURE') {
  274. return { ...state,
  275. [action.feature]: !state[action.feature]
  276. };
  277. }
  278. return state;
  279. }
  280. });
  281. /* harmony default export */ var reducer = (Object(external_wp_data_["combineReducers"])({
  282. blockInserterPanel,
  283. preferences
  284. }));
  285. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/selectors.js
  286. /**
  287. * External dependencies
  288. */
  289. /**
  290. * Returns whether the given feature is enabled or not.
  291. *
  292. * This function is unstable, as it is mostly copied from the edit-post
  293. * package. Editor features and preferences have a lot of scope for
  294. * being generalized and refactored.
  295. *
  296. * @param {Object} state Global application state.
  297. * @param {string} feature Feature slug.
  298. *
  299. * @return {boolean} Is active.
  300. */
  301. function __unstableIsFeatureActive(state, feature) {
  302. return Object(external_lodash_["get"])(state.preferences.features, [feature], false);
  303. }
  304. /**
  305. * Returns true if the inserter is opened.
  306. *
  307. * @param {Object} state Global application state.
  308. *
  309. * @return {boolean} Whether the inserter is opened.
  310. */
  311. function selectors_isInserterOpened(state) {
  312. return !!state.blockInserterPanel;
  313. }
  314. /**
  315. * Get the insertion point for the inserter.
  316. *
  317. * @param {Object} state Global application state.
  318. *
  319. * @return {Object} The root client ID and index to insert at.
  320. */
  321. function __experimentalGetInsertionPoint(state) {
  322. const {
  323. rootClientId,
  324. insertionIndex
  325. } = state.blockInserterPanel;
  326. return {
  327. rootClientId,
  328. insertionIndex
  329. };
  330. }
  331. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/actions.js
  332. /**
  333. * Returns an action object used to toggle a feature flag.
  334. *
  335. * This function is unstable, as it is mostly copied from the edit-post
  336. * package. Editor features and preferences have a lot of scope for
  337. * being generalized and refactored.
  338. *
  339. * @param {string} feature Feature name.
  340. *
  341. * @return {Object} Action object.
  342. */
  343. function __unstableToggleFeature(feature) {
  344. return {
  345. type: 'TOGGLE_FEATURE',
  346. feature
  347. };
  348. }
  349. /**
  350. * Returns an action object used to open/close the inserter.
  351. *
  352. * @param {boolean|Object} value Whether the inserter should be
  353. * opened (true) or closed (false).
  354. * To specify an insertion point,
  355. * use an object.
  356. * @param {string} value.rootClientId The root client ID to insert at.
  357. * @param {number} value.insertionIndex The index to insert at.
  358. *
  359. * @return {Object} Action object.
  360. */
  361. function actions_setIsInserterOpened(value) {
  362. return {
  363. type: 'SET_IS_INSERTER_OPENED',
  364. value
  365. };
  366. }
  367. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/constants.js
  368. /**
  369. * Module Constants
  370. */
  371. const STORE_NAME = 'core/customize-widgets';
  372. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/index.js
  373. /**
  374. * WordPress dependencies
  375. */
  376. /**
  377. * Internal dependencies
  378. */
  379. /**
  380. * Block editor data store configuration.
  381. *
  382. * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#registerStore
  383. *
  384. * @type {Object}
  385. */
  386. const storeConfig = {
  387. reducer: reducer,
  388. selectors: selectors_namespaceObject,
  389. actions: actions_namespaceObject,
  390. persist: ['preferences']
  391. };
  392. /**
  393. * Store definition for the edit widgets namespace.
  394. *
  395. * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
  396. *
  397. * @type {Object}
  398. */
  399. const store = Object(external_wp_data_["createReduxStore"])(STORE_NAME, storeConfig); // Once we build a more generic persistence plugin that works across types of stores
  400. // we'd be able to replace this with a register call.
  401. Object(external_wp_data_["registerStore"])(STORE_NAME, storeConfig);
  402. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/inserter/index.js
  403. /**
  404. * WordPress dependencies
  405. */
  406. /**
  407. * Internal dependencies
  408. */
  409. function Inserter({
  410. setIsOpened
  411. }) {
  412. const inserterTitleId = Object(external_wp_compose_["useInstanceId"])(Inserter, 'customize-widget-layout__inserter-panel-title');
  413. const insertionPoint = Object(external_wp_data_["useSelect"])(select => select(store).__experimentalGetInsertionPoint());
  414. return Object(external_wp_element_["createElement"])("div", {
  415. className: "customize-widgets-layout__inserter-panel",
  416. "aria-labelledby": inserterTitleId
  417. }, Object(external_wp_element_["createElement"])("div", {
  418. className: "customize-widgets-layout__inserter-panel-header"
  419. }, Object(external_wp_element_["createElement"])("h2", {
  420. id: inserterTitleId,
  421. className: "customize-widgets-layout__inserter-panel-header-title"
  422. }, Object(external_wp_i18n_["__"])('Add a block')), Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
  423. className: "customize-widgets-layout__inserter-panel-header-close-button",
  424. icon: close_small["a" /* default */],
  425. onClick: () => setIsOpened(false),
  426. "aria-label": Object(external_wp_i18n_["__"])('Close inserter')
  427. })), Object(external_wp_element_["createElement"])("div", {
  428. className: "customize-widgets-layout__inserter-panel-content"
  429. }, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalLibrary"], {
  430. rootClientId: insertionPoint.rootClientId,
  431. __experimentalInsertionIndex: insertionPoint.insertionIndex,
  432. showInserterHelpPanel: true,
  433. onSelect: () => setIsOpened(false)
  434. })));
  435. }
  436. /* harmony default export */ var components_inserter = (Inserter);
  437. // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/more-vertical.js
  438. var more_vertical = __webpack_require__("VKE3");
  439. // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/external.js
  440. var external = __webpack_require__("K+tz");
  441. // EXTERNAL MODULE: external ["wp","keyboardShortcuts"]
  442. var external_wp_keyboardShortcuts_ = __webpack_require__("hF7m");
  443. // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js
  444. var check = __webpack_require__("RMJe");
  445. // EXTERNAL MODULE: external ["wp","a11y"]
  446. var external_wp_a11y_ = __webpack_require__("gdqT");
  447. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/more-menu/feature-toggle.js
  448. /**
  449. * WordPress dependencies
  450. */
  451. /**
  452. * Internal dependencies
  453. */
  454. function FeatureToggle({
  455. label,
  456. info,
  457. messageActivated,
  458. messageDeactivated,
  459. shortcut,
  460. feature
  461. }) {
  462. const isActive = Object(external_wp_data_["useSelect"])(select => select(store).__unstableIsFeatureActive(feature), [feature]);
  463. const {
  464. __unstableToggleFeature: toggleFeature
  465. } = Object(external_wp_data_["useDispatch"])(store);
  466. const speakMessage = () => {
  467. if (isActive) {
  468. Object(external_wp_a11y_["speak"])(messageDeactivated || Object(external_wp_i18n_["__"])('Feature deactivated'));
  469. } else {
  470. Object(external_wp_a11y_["speak"])(messageActivated || Object(external_wp_i18n_["__"])('Feature activated'));
  471. }
  472. };
  473. return Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
  474. icon: isActive && check["a" /* default */],
  475. isSelected: isActive,
  476. onClick: () => {
  477. toggleFeature(feature);
  478. speakMessage();
  479. },
  480. role: "menuitemcheckbox",
  481. info: info,
  482. shortcut: shortcut
  483. }, label);
  484. }
  485. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/config.js
  486. /**
  487. * WordPress dependencies
  488. */
  489. const textFormattingShortcuts = [{
  490. keyCombination: {
  491. modifier: 'primary',
  492. character: 'b'
  493. },
  494. description: Object(external_wp_i18n_["__"])('Make the selected text bold.')
  495. }, {
  496. keyCombination: {
  497. modifier: 'primary',
  498. character: 'i'
  499. },
  500. description: Object(external_wp_i18n_["__"])('Make the selected text italic.')
  501. }, {
  502. keyCombination: {
  503. modifier: 'primary',
  504. character: 'k'
  505. },
  506. description: Object(external_wp_i18n_["__"])('Convert the selected text into a link.')
  507. }, {
  508. keyCombination: {
  509. modifier: 'primaryShift',
  510. character: 'k'
  511. },
  512. description: Object(external_wp_i18n_["__"])('Remove a link.')
  513. }, {
  514. keyCombination: {
  515. modifier: 'primary',
  516. character: 'u'
  517. },
  518. description: Object(external_wp_i18n_["__"])('Underline the selected text.')
  519. }];
  520. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/shortcut.js
  521. /**
  522. * External dependencies
  523. */
  524. /**
  525. * WordPress dependencies
  526. */
  527. function KeyCombination({
  528. keyCombination,
  529. forceAriaLabel
  530. }) {
  531. const shortcut = keyCombination.modifier ? external_wp_keycodes_["displayShortcutList"][keyCombination.modifier](keyCombination.character) : keyCombination.character;
  532. const ariaLabel = keyCombination.modifier ? external_wp_keycodes_["shortcutAriaLabel"][keyCombination.modifier](keyCombination.character) : keyCombination.character;
  533. return Object(external_wp_element_["createElement"])("kbd", {
  534. className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination",
  535. "aria-label": forceAriaLabel || ariaLabel
  536. }, Object(external_lodash_["castArray"])(shortcut).map((character, index) => {
  537. if (character === '+') {
  538. return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], {
  539. key: index
  540. }, character);
  541. }
  542. return Object(external_wp_element_["createElement"])("kbd", {
  543. key: index,
  544. className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key"
  545. }, character);
  546. }));
  547. }
  548. function Shortcut({
  549. description,
  550. keyCombination,
  551. aliases = [],
  552. ariaLabel
  553. }) {
  554. return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("div", {
  555. className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-description"
  556. }, description), Object(external_wp_element_["createElement"])("div", {
  557. className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-term"
  558. }, Object(external_wp_element_["createElement"])(KeyCombination, {
  559. keyCombination: keyCombination,
  560. forceAriaLabel: ariaLabel
  561. }), aliases.map((alias, index) => Object(external_wp_element_["createElement"])(KeyCombination, {
  562. keyCombination: alias,
  563. forceAriaLabel: ariaLabel,
  564. key: index
  565. }))));
  566. }
  567. /* harmony default export */ var keyboard_shortcut_help_modal_shortcut = (Shortcut);
  568. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js
  569. /**
  570. * WordPress dependencies
  571. */
  572. /**
  573. * Internal dependencies
  574. */
  575. function DynamicShortcut({
  576. name
  577. }) {
  578. const {
  579. keyCombination,
  580. description,
  581. aliases
  582. } = Object(external_wp_data_["useSelect"])(select => {
  583. const {
  584. getShortcutKeyCombination,
  585. getShortcutDescription,
  586. getShortcutAliases
  587. } = select(external_wp_keyboardShortcuts_["store"]);
  588. return {
  589. keyCombination: getShortcutKeyCombination(name),
  590. aliases: getShortcutAliases(name),
  591. description: getShortcutDescription(name)
  592. };
  593. });
  594. if (!keyCombination) {
  595. return null;
  596. }
  597. return Object(external_wp_element_["createElement"])(keyboard_shortcut_help_modal_shortcut, {
  598. keyCombination: keyCombination,
  599. description: description,
  600. aliases: aliases
  601. });
  602. }
  603. /* harmony default export */ var dynamic_shortcut = (DynamicShortcut);
  604. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/index.js
  605. /**
  606. * External dependencies
  607. */
  608. /**
  609. * WordPress dependencies
  610. */
  611. /**
  612. * Internal dependencies
  613. */
  614. const ShortcutList = ({
  615. shortcuts
  616. }) =>
  617. /*
  618. * Disable reason: The `list` ARIA role is redundant but
  619. * Safari+VoiceOver won't announce the list otherwise.
  620. */
  621. /* eslint-disable jsx-a11y/no-redundant-roles */
  622. Object(external_wp_element_["createElement"])("ul", {
  623. className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-list",
  624. role: "list"
  625. }, shortcuts.map((shortcut, index) => Object(external_wp_element_["createElement"])("li", {
  626. className: "customize-widgets-keyboard-shortcut-help-modal__shortcut",
  627. key: index
  628. }, Object(external_lodash_["isString"])(shortcut) ? Object(external_wp_element_["createElement"])(dynamic_shortcut, {
  629. name: shortcut
  630. }) : Object(external_wp_element_["createElement"])(keyboard_shortcut_help_modal_shortcut, shortcut))))
  631. /* eslint-enable jsx-a11y/no-redundant-roles */
  632. ;
  633. const ShortcutSection = ({
  634. title,
  635. shortcuts,
  636. className
  637. }) => Object(external_wp_element_["createElement"])("section", {
  638. className: classnames_default()('customize-widgets-keyboard-shortcut-help-modal__section', className)
  639. }, !!title && Object(external_wp_element_["createElement"])("h2", {
  640. className: "customize-widgets-keyboard-shortcut-help-modal__section-title"
  641. }, title), Object(external_wp_element_["createElement"])(ShortcutList, {
  642. shortcuts: shortcuts
  643. }));
  644. const ShortcutCategorySection = ({
  645. title,
  646. categoryName,
  647. additionalShortcuts = []
  648. }) => {
  649. const categoryShortcuts = Object(external_wp_data_["useSelect"])(select => {
  650. return select(external_wp_keyboardShortcuts_["store"]).getCategoryShortcuts(categoryName);
  651. }, [categoryName]);
  652. return Object(external_wp_element_["createElement"])(ShortcutSection, {
  653. title: title,
  654. shortcuts: categoryShortcuts.concat(additionalShortcuts)
  655. });
  656. };
  657. function KeyboardShortcutHelpModal({
  658. isModalActive,
  659. toggleModal
  660. }) {
  661. const {
  662. registerShortcut
  663. } = Object(external_wp_data_["useDispatch"])(external_wp_keyboardShortcuts_["store"]);
  664. registerShortcut({
  665. name: 'core/customize-widgets/keyboard-shortcuts',
  666. category: 'main',
  667. description: Object(external_wp_i18n_["__"])('Display these keyboard shortcuts.'),
  668. keyCombination: {
  669. modifier: 'access',
  670. character: 'h'
  671. }
  672. });
  673. Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/keyboard-shortcuts', toggleModal, {
  674. bindGlobal: true
  675. });
  676. if (!isModalActive) {
  677. return null;
  678. }
  679. return Object(external_wp_element_["createElement"])(external_wp_components_["Modal"], {
  680. className: "customize-widgets-keyboard-shortcut-help-modal",
  681. title: Object(external_wp_i18n_["__"])('Keyboard shortcuts'),
  682. closeLabel: Object(external_wp_i18n_["__"])('Close'),
  683. onRequestClose: toggleModal
  684. }, Object(external_wp_element_["createElement"])(ShortcutSection, {
  685. className: "customize-widgets-keyboard-shortcut-help-modal__main-shortcuts",
  686. shortcuts: ['core/customize-widgets/keyboard-shortcuts']
  687. }), Object(external_wp_element_["createElement"])(ShortcutCategorySection, {
  688. title: Object(external_wp_i18n_["__"])('Global shortcuts'),
  689. categoryName: "global"
  690. }), Object(external_wp_element_["createElement"])(ShortcutCategorySection, {
  691. title: Object(external_wp_i18n_["__"])('Selection shortcuts'),
  692. categoryName: "selection"
  693. }), Object(external_wp_element_["createElement"])(ShortcutCategorySection, {
  694. title: Object(external_wp_i18n_["__"])('Block shortcuts'),
  695. categoryName: "block",
  696. additionalShortcuts: [{
  697. keyCombination: {
  698. character: '/'
  699. },
  700. description: Object(external_wp_i18n_["__"])('Change the block type after adding a new paragraph.'),
  701. /* translators: The forward-slash character. e.g. '/'. */
  702. ariaLabel: Object(external_wp_i18n_["__"])('Forward-slash')
  703. }]
  704. }), Object(external_wp_element_["createElement"])(ShortcutSection, {
  705. title: Object(external_wp_i18n_["__"])('Text formatting'),
  706. shortcuts: textFormattingShortcuts
  707. }));
  708. }
  709. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/more-menu/index.js
  710. /**
  711. * WordPress dependencies
  712. */
  713. /**
  714. * Internal dependencies
  715. */
  716. const POPOVER_PROPS = {
  717. className: 'customize-widgets-more-menu__content',
  718. position: 'bottom left'
  719. };
  720. const TOGGLE_PROPS = {
  721. tooltipPosition: 'bottom'
  722. };
  723. function MoreMenu() {
  724. const [isKeyboardShortcutsModalActive, setIsKeyboardShortcutsModalVisible] = Object(external_wp_element_["useState"])(false);
  725. const toggleKeyboardShortcutsModal = () => setIsKeyboardShortcutsModalVisible(!isKeyboardShortcutsModalActive);
  726. Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/keyboard-shortcuts', toggleKeyboardShortcutsModal, {
  727. bindGlobal: true
  728. });
  729. return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarDropdownMenu"], {
  730. className: "customize-widgets-more-menu",
  731. icon: more_vertical["a" /* default */]
  732. /* translators: button label text should, if possible, be under 16 characters. */
  733. ,
  734. label: Object(external_wp_i18n_["__"])('Options'),
  735. popoverProps: POPOVER_PROPS,
  736. toggleProps: TOGGLE_PROPS
  737. }, () => Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
  738. label: Object(external_wp_i18n_["_x"])('View', 'noun')
  739. }, Object(external_wp_element_["createElement"])(FeatureToggle, {
  740. feature: "fixedToolbar",
  741. label: Object(external_wp_i18n_["__"])('Top toolbar'),
  742. info: Object(external_wp_i18n_["__"])('Access all block and document tools in a single place'),
  743. messageActivated: Object(external_wp_i18n_["__"])('Top toolbar activated'),
  744. messageDeactivated: Object(external_wp_i18n_["__"])('Top toolbar deactivated')
  745. })), Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
  746. label: Object(external_wp_i18n_["__"])('Tools')
  747. }, Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
  748. onClick: () => {
  749. setIsKeyboardShortcutsModalVisible(true);
  750. },
  751. shortcut: external_wp_keycodes_["displayShortcut"].access('h')
  752. }, Object(external_wp_i18n_["__"])('Keyboard shortcuts')), Object(external_wp_element_["createElement"])(FeatureToggle, {
  753. feature: "welcomeGuide",
  754. label: Object(external_wp_i18n_["__"])('Welcome Guide')
  755. }), Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
  756. role: "menuitem",
  757. icon: external["a" /* default */],
  758. href: Object(external_wp_i18n_["__"])('https://wordpress.org/support/article/block-based-widgets-editor/'),
  759. target: "_blank",
  760. rel: "noopener noreferrer"
  761. }, Object(external_wp_i18n_["__"])('Help'), Object(external_wp_element_["createElement"])(external_wp_components_["VisuallyHidden"], {
  762. as: "span"
  763. },
  764. /* translators: accessibility text */
  765. Object(external_wp_i18n_["__"])('(opens in a new tab)')))), Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
  766. label: Object(external_wp_i18n_["__"])('Preferences')
  767. }, Object(external_wp_element_["createElement"])(FeatureToggle, {
  768. feature: "keepCaretInsideBlock",
  769. label: Object(external_wp_i18n_["__"])('Contain text cursor inside block'),
  770. info: Object(external_wp_i18n_["__"])('Aids screen readers by stopping text caret from leaving blocks.'),
  771. messageActivated: Object(external_wp_i18n_["__"])('Contain text cursor inside block activated'),
  772. messageDeactivated: Object(external_wp_i18n_["__"])('Contain text cursor inside block deactivated')
  773. })))), Object(external_wp_element_["createElement"])(KeyboardShortcutHelpModal, {
  774. isModalActive: isKeyboardShortcutsModalActive,
  775. toggleModal: toggleKeyboardShortcutsModal
  776. }));
  777. }
  778. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/header/index.js
  779. /**
  780. * External dependencies
  781. */
  782. /**
  783. * WordPress dependencies
  784. */
  785. /**
  786. * Internal dependencies
  787. */
  788. function Header({
  789. sidebar,
  790. inserter,
  791. isInserterOpened,
  792. setIsInserterOpened,
  793. isFixedToolbarActive
  794. }) {
  795. const [[hasUndo, hasRedo], setUndoRedo] = Object(external_wp_element_["useState"])([sidebar.hasUndo(), sidebar.hasRedo()]);
  796. Object(external_wp_element_["useEffect"])(() => {
  797. return sidebar.subscribeHistory(() => {
  798. setUndoRedo([sidebar.hasUndo(), sidebar.hasRedo()]);
  799. });
  800. }, [sidebar]);
  801. return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("div", {
  802. className: classnames_default()('customize-widgets-header', {
  803. 'is-fixed-toolbar-active': isFixedToolbarActive
  804. })
  805. }, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["NavigableToolbar"], {
  806. className: "customize-widgets-header-toolbar",
  807. "aria-label": Object(external_wp_i18n_["__"])('Document tools')
  808. }, Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarButton"], {
  809. icon: !Object(external_wp_i18n_["isRTL"])() ? library_undo["a" /* default */] : library_redo["a" /* default */]
  810. /* translators: button label text should, if possible, be under 16 characters. */
  811. ,
  812. label: Object(external_wp_i18n_["__"])('Undo'),
  813. shortcut: external_wp_keycodes_["displayShortcut"].primary('z') // If there are no undo levels we don't want to actually disable this
  814. // button, because it will remove focus for keyboard users.
  815. // See: https://github.com/WordPress/gutenberg/issues/3486
  816. ,
  817. "aria-disabled": !hasUndo,
  818. onClick: sidebar.undo,
  819. className: "customize-widgets-editor-history-button undo-button"
  820. }), Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarButton"], {
  821. icon: !Object(external_wp_i18n_["isRTL"])() ? library_redo["a" /* default */] : library_undo["a" /* default */]
  822. /* translators: button label text should, if possible, be under 16 characters. */
  823. ,
  824. label: Object(external_wp_i18n_["__"])('Redo'),
  825. shortcut: external_wp_keycodes_["displayShortcut"].primaryShift('z') // If there are no undo levels we don't want to actually disable this
  826. // button, because it will remove focus for keyboard users.
  827. // See: https://github.com/WordPress/gutenberg/issues/3486
  828. ,
  829. "aria-disabled": !hasRedo,
  830. onClick: sidebar.redo,
  831. className: "customize-widgets-editor-history-button redo-button"
  832. }), Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarButton"], {
  833. className: "customize-widgets-header-toolbar__inserter-toggle",
  834. isPressed: isInserterOpened,
  835. isPrimary: true,
  836. icon: plus["a" /* default */],
  837. label: Object(external_wp_i18n_["_x"])('Add block', 'Generic label for block inserter button'),
  838. onClick: () => {
  839. setIsInserterOpened(isOpen => !isOpen);
  840. }
  841. }), Object(external_wp_element_["createElement"])(MoreMenu, null))), Object(external_wp_element_["createPortal"])(Object(external_wp_element_["createElement"])(components_inserter, {
  842. setIsOpened: setIsInserterOpened
  843. }), inserter.contentContainer[0]));
  844. }
  845. /* harmony default export */ var header = (Header);
  846. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/inserter/use-inserter.js
  847. /**
  848. * WordPress dependencies
  849. */
  850. /**
  851. * Internal dependencies
  852. */
  853. function useInserter(inserter) {
  854. const isInserterOpened = Object(external_wp_data_["useSelect"])(select => select(store).isInserterOpened());
  855. const {
  856. setIsInserterOpened
  857. } = Object(external_wp_data_["useDispatch"])(store);
  858. Object(external_wp_element_["useEffect"])(() => {
  859. if (isInserterOpened) {
  860. inserter.open();
  861. } else {
  862. inserter.close();
  863. }
  864. }, [inserter, isInserterOpened]);
  865. return [isInserterOpened, Object(external_wp_element_["useCallback"])(updater => {
  866. let isOpen = updater;
  867. if (typeof updater === 'function') {
  868. isOpen = updater(Object(external_wp_data_["select"])(store).isInserterOpened());
  869. }
  870. setIsInserterOpened(isOpen);
  871. }, [setIsInserterOpened])];
  872. }
  873. // EXTERNAL MODULE: external ["wp","isShallowEqual"]
  874. var external_wp_isShallowEqual_ = __webpack_require__("rl8x");
  875. var external_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_wp_isShallowEqual_);
  876. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/utils.js
  877. // @ts-check
  878. /**
  879. * WordPress dependencies
  880. */
  881. /**
  882. * External dependencies
  883. */
  884. /**
  885. * Convert settingId to widgetId.
  886. *
  887. * @param {string} settingId The setting id.
  888. * @return {string} The widget id.
  889. */
  890. function settingIdToWidgetId(settingId) {
  891. const matches = settingId.match(/^widget_(.+)(?:\[(\d+)\])$/);
  892. if (matches) {
  893. const idBase = matches[1];
  894. const number = parseInt(matches[2], 10);
  895. return `${idBase}-${number}`;
  896. }
  897. return settingId;
  898. }
  899. /**
  900. * Transform a block to a customizable widget.
  901. *
  902. * @param {WPBlock} block The block to be transformed from.
  903. * @param {Object} existingWidget The widget to be extended from.
  904. * @return {Object} The transformed widget.
  905. */
  906. function blockToWidget(block, existingWidget = null) {
  907. let widget;
  908. const isValidLegacyWidgetBlock = block.name === 'core/legacy-widget' && (block.attributes.id || block.attributes.instance);
  909. if (isValidLegacyWidgetBlock) {
  910. if (block.attributes.id) {
  911. // Widget that does not extend WP_Widget.
  912. widget = {
  913. id: block.attributes.id
  914. };
  915. } else {
  916. const {
  917. encoded,
  918. hash,
  919. raw,
  920. ...rest
  921. } = block.attributes.instance; // Widget that extends WP_Widget.
  922. widget = {
  923. idBase: block.attributes.idBase,
  924. instance: { ...(existingWidget === null || existingWidget === void 0 ? void 0 : existingWidget.instance),
  925. // Required only for the customizer.
  926. is_widget_customizer_js_value: true,
  927. encoded_serialized_instance: encoded,
  928. instance_hash_key: hash,
  929. raw_instance: raw,
  930. ...rest
  931. }
  932. };
  933. }
  934. } else {
  935. const instance = {
  936. content: Object(external_wp_blocks_["serialize"])(block)
  937. };
  938. widget = {
  939. idBase: 'block',
  940. widgetClass: 'WP_Widget_Block',
  941. instance: {
  942. raw_instance: instance
  943. }
  944. };
  945. }
  946. return { ...Object(external_lodash_["omit"])(existingWidget, ['form', 'rendered']),
  947. ...widget
  948. };
  949. }
  950. /**
  951. * Transform a widget to a block.
  952. *
  953. * @param {Object} widget The widget to be transformed from.
  954. * @param {string} widget.id The widget id.
  955. * @param {string} widget.idBase The id base of the widget.
  956. * @param {number} widget.number The number/index of the widget.
  957. * @param {Object} widget.instance The instance of the widget.
  958. * @return {WPBlock} The transformed block.
  959. */
  960. function widgetToBlock({
  961. id,
  962. idBase,
  963. number,
  964. instance
  965. }) {
  966. let block;
  967. const {
  968. encoded_serialized_instance: encoded,
  969. instance_hash_key: hash,
  970. raw_instance: raw,
  971. ...rest
  972. } = instance;
  973. if (idBase === 'block') {
  974. const parsedBlocks = Object(external_wp_blocks_["parse"])(raw.content);
  975. block = parsedBlocks.length ? parsedBlocks[0] : Object(external_wp_blocks_["createBlock"])('core/paragraph', {});
  976. } else if (number) {
  977. // Widget that extends WP_Widget.
  978. block = Object(external_wp_blocks_["createBlock"])('core/legacy-widget', {
  979. idBase,
  980. instance: {
  981. encoded,
  982. hash,
  983. raw,
  984. ...rest
  985. }
  986. });
  987. } else {
  988. // Widget that does not extend WP_Widget.
  989. block = Object(external_wp_blocks_["createBlock"])('core/legacy-widget', {
  990. id
  991. });
  992. }
  993. return Object(external_wp_widgets_["addWidgetIdToBlock"])(block, id);
  994. }
  995. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/use-sidebar-block-editor.js
  996. /**
  997. * External dependencies
  998. */
  999. /**
  1000. * WordPress dependencies
  1001. */
  1002. /**
  1003. * Internal dependencies
  1004. */
  1005. function widgetsToBlocks(widgets) {
  1006. return widgets.map(widget => widgetToBlock(widget));
  1007. }
  1008. function useSidebarBlockEditor(sidebar) {
  1009. const [blocks, setBlocks] = Object(external_wp_element_["useState"])(() => widgetsToBlocks(sidebar.getWidgets()));
  1010. Object(external_wp_element_["useEffect"])(() => {
  1011. return sidebar.subscribe((prevWidgets, nextWidgets) => {
  1012. setBlocks(prevBlocks => {
  1013. const prevWidgetsMap = new Map(prevWidgets.map(widget => [widget.id, widget]));
  1014. const prevBlocksMap = new Map(prevBlocks.map(block => [Object(external_wp_widgets_["getWidgetIdFromBlock"])(block), block]));
  1015. const nextBlocks = nextWidgets.map(nextWidget => {
  1016. const prevWidget = prevWidgetsMap.get(nextWidget.id); // Bail out updates.
  1017. if (prevWidget && prevWidget === nextWidget) {
  1018. return prevBlocksMap.get(nextWidget.id);
  1019. }
  1020. return widgetToBlock(nextWidget);
  1021. }); // Bail out updates.
  1022. if (external_wp_isShallowEqual_default()(prevBlocks, nextBlocks)) {
  1023. return prevBlocks;
  1024. }
  1025. return nextBlocks;
  1026. });
  1027. });
  1028. }, [sidebar]);
  1029. const onChangeBlocks = Object(external_wp_element_["useCallback"])(nextBlocks => {
  1030. setBlocks(prevBlocks => {
  1031. if (external_wp_isShallowEqual_default()(prevBlocks, nextBlocks)) {
  1032. return prevBlocks;
  1033. }
  1034. const prevBlocksMap = new Map(prevBlocks.map(block => [Object(external_wp_widgets_["getWidgetIdFromBlock"])(block), block]));
  1035. const nextWidgets = nextBlocks.map(nextBlock => {
  1036. const widgetId = Object(external_wp_widgets_["getWidgetIdFromBlock"])(nextBlock); // Update existing widgets.
  1037. if (widgetId && prevBlocksMap.has(widgetId)) {
  1038. const prevBlock = prevBlocksMap.get(widgetId);
  1039. const prevWidget = sidebar.getWidget(widgetId); // Bail out updates by returning the previous widgets.
  1040. // Deep equality is necessary until the block editor's internals changes.
  1041. if (Object(external_lodash_["isEqual"])(nextBlock, prevBlock) && prevWidget) {
  1042. return prevWidget;
  1043. }
  1044. return blockToWidget(nextBlock, prevWidget);
  1045. } // Add a new widget.
  1046. return blockToWidget(nextBlock);
  1047. }); // Bail out updates if the updated widgets are the same.
  1048. if (external_wp_isShallowEqual_default()(sidebar.getWidgets(), nextWidgets)) {
  1049. return prevBlocks;
  1050. }
  1051. const addedWidgetIds = sidebar.setWidgets(nextWidgets);
  1052. return nextBlocks.reduce((updatedNextBlocks, nextBlock, index) => {
  1053. const addedWidgetId = addedWidgetIds[index];
  1054. if (addedWidgetId !== null) {
  1055. // Only create a new instance if necessary to prevent
  1056. // the whole editor from re-rendering on every edit.
  1057. if (updatedNextBlocks === nextBlocks) {
  1058. updatedNextBlocks = nextBlocks.slice();
  1059. }
  1060. updatedNextBlocks[index] = Object(external_wp_widgets_["addWidgetIdToBlock"])(nextBlock, addedWidgetId);
  1061. }
  1062. return updatedNextBlocks;
  1063. }, nextBlocks);
  1064. });
  1065. }, [sidebar]);
  1066. return [blocks, onChangeBlocks, onChangeBlocks];
  1067. }
  1068. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/focus-control/index.js
  1069. /**
  1070. * WordPress dependencies
  1071. */
  1072. /**
  1073. * Internal dependencies
  1074. */
  1075. const FocusControlContext = Object(external_wp_element_["createContext"])();
  1076. function FocusControl({
  1077. api,
  1078. sidebarControls,
  1079. children
  1080. }) {
  1081. const [focusedWidgetIdRef, setFocusedWidgetIdRef] = Object(external_wp_element_["useState"])({
  1082. current: null
  1083. });
  1084. const focusWidget = Object(external_wp_element_["useCallback"])(widgetId => {
  1085. for (const sidebarControl of sidebarControls) {
  1086. const widgets = sidebarControl.setting.get();
  1087. if (widgets.includes(widgetId)) {
  1088. sidebarControl.sectionInstance.expand({
  1089. // Schedule it after the complete callback so that
  1090. // it won't be overridden by the "Back" button focus.
  1091. completeCallback() {
  1092. // Create a "ref-like" object every time to ensure
  1093. // the same widget id can also triggers the focus control.
  1094. setFocusedWidgetIdRef({
  1095. current: widgetId
  1096. });
  1097. }
  1098. });
  1099. break;
  1100. }
  1101. }
  1102. }, [sidebarControls]);
  1103. Object(external_wp_element_["useEffect"])(() => {
  1104. function handleFocus(settingId) {
  1105. const widgetId = settingIdToWidgetId(settingId);
  1106. focusWidget(widgetId);
  1107. }
  1108. function handleReady() {
  1109. api.previewer.preview.bind('focus-control-for-setting', handleFocus);
  1110. }
  1111. api.previewer.bind('ready', handleReady);
  1112. return () => {
  1113. api.previewer.unbind('ready', handleReady);
  1114. api.previewer.preview.unbind('focus-control-for-setting', handleFocus);
  1115. };
  1116. }, [api, focusWidget]);
  1117. const context = Object(external_wp_element_["useMemo"])(() => [focusedWidgetIdRef, focusWidget], [focusedWidgetIdRef, focusWidget]);
  1118. return Object(external_wp_element_["createElement"])(FocusControlContext.Provider, {
  1119. value: context
  1120. }, children);
  1121. }
  1122. const useFocusControl = () => Object(external_wp_element_["useContext"])(FocusControlContext);
  1123. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/focus-control/use-blocks-focus-control.js
  1124. /**
  1125. * WordPress dependencies
  1126. */
  1127. /**
  1128. * Internal dependencies
  1129. */
  1130. function useBlocksFocusControl(blocks) {
  1131. const {
  1132. selectBlock
  1133. } = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
  1134. const [focusedWidgetIdRef] = useFocusControl();
  1135. const blocksRef = Object(external_wp_element_["useRef"])(blocks);
  1136. Object(external_wp_element_["useEffect"])(() => {
  1137. blocksRef.current = blocks;
  1138. }, [blocks]);
  1139. Object(external_wp_element_["useEffect"])(() => {
  1140. if (focusedWidgetIdRef.current) {
  1141. const focusedBlock = blocksRef.current.find(block => Object(external_wp_widgets_["getWidgetIdFromBlock"])(block) === focusedWidgetIdRef.current);
  1142. if (focusedBlock) {
  1143. selectBlock(focusedBlock.clientId); // If the block is already being selected, the DOM node won't
  1144. // get focused again automatically.
  1145. // We select the DOM and focus it manually here.
  1146. const blockNode = document.querySelector(`[data-block="${focusedBlock.clientId}"]`);
  1147. blockNode === null || blockNode === void 0 ? void 0 : blockNode.focus();
  1148. }
  1149. }
  1150. }, [focusedWidgetIdRef, selectBlock]);
  1151. }
  1152. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/sidebar-editor-provider.js
  1153. /**
  1154. * WordPress dependencies
  1155. */
  1156. /**
  1157. * Internal dependencies
  1158. */
  1159. function SidebarEditorProvider({
  1160. sidebar,
  1161. settings,
  1162. children
  1163. }) {
  1164. const [blocks, onInput, onChange] = useSidebarBlockEditor(sidebar);
  1165. useBlocksFocusControl(blocks);
  1166. return Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockEditorProvider"], {
  1167. value: blocks,
  1168. onInput: onInput,
  1169. onChange: onChange,
  1170. settings: settings,
  1171. useSubRegistry: false
  1172. }, children);
  1173. }
  1174. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/welcome-guide/index.js
  1175. /**
  1176. * WordPress dependencies
  1177. */
  1178. /**
  1179. * Internal dependencies
  1180. */
  1181. function WelcomeGuide({
  1182. sidebar
  1183. }) {
  1184. const {
  1185. __unstableToggleFeature: toggleFeature
  1186. } = Object(external_wp_data_["useDispatch"])(store);
  1187. const isEntirelyBlockWidgets = sidebar.getWidgets().every(widget => widget.id.startsWith('block-'));
  1188. return Object(external_wp_element_["createElement"])("div", {
  1189. className: "customize-widgets-welcome-guide"
  1190. }, Object(external_wp_element_["createElement"])("div", {
  1191. className: "customize-widgets-welcome-guide__image__wrapper"
  1192. }, Object(external_wp_element_["createElement"])("picture", null, Object(external_wp_element_["createElement"])("source", {
  1193. srcSet: "https://s.w.org/images/block-editor/welcome-editor.svg",
  1194. media: "(prefers-reduced-motion: reduce)"
  1195. }), Object(external_wp_element_["createElement"])("img", {
  1196. className: "customize-widgets-welcome-guide__image",
  1197. src: "https://s.w.org/images/block-editor/welcome-editor.gif",
  1198. width: "312",
  1199. height: "240",
  1200. alt: ""
  1201. }))), Object(external_wp_element_["createElement"])("h1", {
  1202. className: "customize-widgets-welcome-guide__heading"
  1203. }, Object(external_wp_i18n_["__"])('Welcome to block Widgets')), Object(external_wp_element_["createElement"])("p", {
  1204. className: "customize-widgets-welcome-guide__text"
  1205. }, isEntirelyBlockWidgets ? Object(external_wp_i18n_["__"])('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.') : Object(external_wp_i18n_["__"])('You can now add any block to your site’s widget areas. Don’t worry, all of your favorite widgets still work flawlessly.')), Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
  1206. className: "customize-widgets-welcome-guide__button",
  1207. isPrimary: true,
  1208. onClick: () => toggleFeature('welcomeGuide')
  1209. }, Object(external_wp_i18n_["__"])('Got it')), Object(external_wp_element_["createElement"])("hr", {
  1210. className: "customize-widgets-welcome-guide__separator"
  1211. }), !isEntirelyBlockWidgets && Object(external_wp_element_["createElement"])("p", {
  1212. className: "customize-widgets-welcome-guide__more-info"
  1213. }, Object(external_wp_i18n_["__"])('Want to stick with the old widgets?'), Object(external_wp_element_["createElement"])("br", null), Object(external_wp_element_["createElement"])(external_wp_components_["ExternalLink"], {
  1214. href: Object(external_wp_i18n_["__"])('https://wordpress.org/plugins/classic-widgets/')
  1215. }, Object(external_wp_i18n_["__"])('Get the Classic Widgets plugin.'))), Object(external_wp_element_["createElement"])("p", {
  1216. className: "customize-widgets-welcome-guide__more-info"
  1217. }, Object(external_wp_i18n_["__"])('New to the block editor?'), Object(external_wp_element_["createElement"])("br", null), Object(external_wp_element_["createElement"])(external_wp_components_["ExternalLink"], {
  1218. href: Object(external_wp_i18n_["__"])('https://wordpress.org/support/article/wordpress-editor/')
  1219. }, Object(external_wp_i18n_["__"])("Here's a detailed guide."))));
  1220. }
  1221. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcuts/index.js
  1222. /**
  1223. * WordPress dependencies
  1224. */
  1225. function KeyboardShortcuts({
  1226. undo,
  1227. redo,
  1228. save
  1229. }) {
  1230. Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/undo', event => {
  1231. undo();
  1232. event.preventDefault();
  1233. }, {
  1234. bindGlobal: true
  1235. });
  1236. Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/redo', event => {
  1237. redo();
  1238. event.preventDefault();
  1239. }, {
  1240. bindGlobal: true
  1241. });
  1242. Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/save', event => {
  1243. event.preventDefault();
  1244. save();
  1245. }, {
  1246. bindGlobal: true
  1247. });
  1248. return null;
  1249. }
  1250. function KeyboardShortcutsRegister() {
  1251. const {
  1252. registerShortcut,
  1253. unregisterShortcut
  1254. } = Object(external_wp_data_["useDispatch"])(external_wp_keyboardShortcuts_["store"]);
  1255. Object(external_wp_element_["useEffect"])(() => {
  1256. registerShortcut({
  1257. name: 'core/customize-widgets/undo',
  1258. category: 'global',
  1259. description: Object(external_wp_i18n_["__"])('Undo your last changes.'),
  1260. keyCombination: {
  1261. modifier: 'primary',
  1262. character: 'z'
  1263. }
  1264. });
  1265. registerShortcut({
  1266. name: 'core/customize-widgets/redo',
  1267. category: 'global',
  1268. description: Object(external_wp_i18n_["__"])('Redo your last undo.'),
  1269. keyCombination: {
  1270. modifier: 'primaryShift',
  1271. character: 'z'
  1272. }
  1273. });
  1274. registerShortcut({
  1275. name: 'core/customize-widgets/save',
  1276. category: 'global',
  1277. description: Object(external_wp_i18n_["__"])('Save your changes.'),
  1278. keyCombination: {
  1279. modifier: 'primary',
  1280. character: 's'
  1281. }
  1282. });
  1283. return () => {
  1284. unregisterShortcut('core/customize-widgets/undo');
  1285. unregisterShortcut('core/customize-widgets/redo');
  1286. unregisterShortcut('core/customize-widgets/save');
  1287. };
  1288. }, [registerShortcut]);
  1289. return null;
  1290. }
  1291. KeyboardShortcuts.Register = KeyboardShortcutsRegister;
  1292. /* harmony default export */ var keyboard_shortcuts = (KeyboardShortcuts);
  1293. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/block-appender/index.js
  1294. /**
  1295. * WordPress dependencies
  1296. */
  1297. function BlockAppender(props) {
  1298. const ref = Object(external_wp_element_["useRef"])();
  1299. const isBlocksListEmpty = Object(external_wp_data_["useSelect"])(select => select(external_wp_blockEditor_["store"]).getBlockCount() === 0); // Move the focus to the block appender to prevent focus from
  1300. // being lost when emptying the widget area.
  1301. Object(external_wp_element_["useEffect"])(() => {
  1302. if (isBlocksListEmpty && ref.current) {
  1303. const {
  1304. ownerDocument
  1305. } = ref.current;
  1306. if (!ownerDocument.activeElement || ownerDocument.activeElement === ownerDocument.body) {
  1307. ref.current.focus();
  1308. }
  1309. }
  1310. }, [isBlocksListEmpty]);
  1311. return Object(external_wp_element_["createElement"])(external_wp_blockEditor_["ButtonBlockAppender"], Object(esm_extends["a" /* default */])({}, props, {
  1312. ref: ref
  1313. }));
  1314. }
  1315. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/index.js
  1316. /**
  1317. * External dependencies
  1318. */
  1319. /**
  1320. * WordPress dependencies
  1321. */
  1322. /**
  1323. * Internal dependencies
  1324. */
  1325. function SidebarBlockEditor({
  1326. blockEditorSettings,
  1327. sidebar,
  1328. inserter,
  1329. inspector
  1330. }) {
  1331. const [isInserterOpened, setIsInserterOpened] = useInserter(inserter);
  1332. const {
  1333. hasUploadPermissions,
  1334. isFixedToolbarActive,
  1335. keepCaretInsideBlock,
  1336. isWelcomeGuideActive
  1337. } = Object(external_wp_data_["useSelect"])(select => {
  1338. return {
  1339. hasUploadPermissions: Object(external_lodash_["defaultTo"])(select(external_wp_coreData_["store"]).canUser('create', 'media'), true),
  1340. isFixedToolbarActive: select(store).__unstableIsFeatureActive('fixedToolbar'),
  1341. keepCaretInsideBlock: select(store).__unstableIsFeatureActive('keepCaretInsideBlock'),
  1342. isWelcomeGuideActive: select(store).__unstableIsFeatureActive('welcomeGuide')
  1343. };
  1344. }, []);
  1345. const settings = Object(external_wp_element_["useMemo"])(() => {
  1346. let mediaUploadBlockEditor;
  1347. if (hasUploadPermissions) {
  1348. mediaUploadBlockEditor = ({
  1349. onError,
  1350. ...argumentsObject
  1351. }) => {
  1352. Object(external_wp_mediaUtils_["uploadMedia"])({
  1353. wpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,
  1354. onError: ({
  1355. message
  1356. }) => onError(message),
  1357. ...argumentsObject
  1358. });
  1359. };
  1360. }
  1361. return { ...blockEditorSettings,
  1362. __experimentalSetIsInserterOpened: setIsInserterOpened,
  1363. mediaUpload: mediaUploadBlockEditor,
  1364. hasFixedToolbar: isFixedToolbarActive,
  1365. keepCaretInsideBlock,
  1366. __unstableHasCustomAppender: true
  1367. };
  1368. }, [hasUploadPermissions, blockEditorSettings, isFixedToolbarActive, keepCaretInsideBlock, setIsInserterOpened]);
  1369. if (isWelcomeGuideActive) {
  1370. return Object(external_wp_element_["createElement"])(WelcomeGuide, {
  1371. sidebar: sidebar
  1372. });
  1373. }
  1374. return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockEditorKeyboardShortcuts"].Register, null), Object(external_wp_element_["createElement"])(keyboard_shortcuts.Register, null), Object(external_wp_element_["createElement"])(SidebarEditorProvider, {
  1375. sidebar: sidebar,
  1376. settings: settings
  1377. }, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockEditorKeyboardShortcuts"], null), Object(external_wp_element_["createElement"])(keyboard_shortcuts, {
  1378. undo: sidebar.undo,
  1379. redo: sidebar.redo,
  1380. save: sidebar.save
  1381. }), Object(external_wp_element_["createElement"])(header, {
  1382. sidebar: sidebar,
  1383. inserter: inserter,
  1384. isInserterOpened: isInserterOpened,
  1385. setIsInserterOpened: setIsInserterOpened,
  1386. isFixedToolbarActive: isFixedToolbarActive
  1387. }), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["CopyHandler"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockTools"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockSelectionClearer"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["WritingFlow"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["ObserveTyping"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockList"], {
  1388. renderAppender: BlockAppender
  1389. })))))), Object(external_wp_element_["createPortal"])( // This is a temporary hack to prevent button component inside <BlockInspector>
  1390. // from submitting form when type="button" is not specified.
  1391. Object(external_wp_element_["createElement"])("form", {
  1392. onSubmit: event => event.preventDefault()
  1393. }, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockInspector"], null)), inspector.contentContainer[0])), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__unstableBlockSettingsMenuFirstItem"], null, ({
  1394. onClose
  1395. }) => Object(external_wp_element_["createElement"])(block_inspector_button, {
  1396. inspector: inspector,
  1397. closeMenu: onClose
  1398. })));
  1399. }
  1400. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-controls/index.js
  1401. /**
  1402. * WordPress dependencies
  1403. */
  1404. const SidebarControlsContext = Object(external_wp_element_["createContext"])();
  1405. function SidebarControls({
  1406. sidebarControls,
  1407. activeSidebarControl,
  1408. children
  1409. }) {
  1410. const context = Object(external_wp_element_["useMemo"])(() => ({
  1411. sidebarControls,
  1412. activeSidebarControl
  1413. }), [sidebarControls, activeSidebarControl]);
  1414. return Object(external_wp_element_["createElement"])(SidebarControlsContext.Provider, {
  1415. value: context
  1416. }, children);
  1417. }
  1418. function useSidebarControls() {
  1419. const {
  1420. sidebarControls
  1421. } = Object(external_wp_element_["useContext"])(SidebarControlsContext);
  1422. return sidebarControls;
  1423. }
  1424. function useActiveSidebarControl() {
  1425. const {
  1426. activeSidebarControl
  1427. } = Object(external_wp_element_["useContext"])(SidebarControlsContext);
  1428. return activeSidebarControl;
  1429. }
  1430. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/customize-widgets/use-clear-selected-block.js
  1431. /**
  1432. * WordPress dependencies
  1433. */
  1434. /**
  1435. * We can't just use <BlockSelectionClearer> because the customizer has
  1436. * many root nodes rather than just one in the post editor.
  1437. * We need to listen to the focus events in all those roots, and also in
  1438. * the preview iframe.
  1439. * This hook will clear the selected block when focusing outside the editor,
  1440. * with a few exceptions:
  1441. * 1. Focusing on popovers.
  1442. * 2. Focusing on the inspector.
  1443. * 3. Focusing on any modals/dialogs.
  1444. * These cases are normally triggered by user interactions from the editor,
  1445. * not by explicitly focusing outside the editor, hence no need for clearing.
  1446. *
  1447. * @param {Object} sidebarControl The sidebar control instance.
  1448. * @param {Object} popoverRef The ref object of the popover node container.
  1449. */
  1450. function useClearSelectedBlock(sidebarControl, popoverRef) {
  1451. const {
  1452. hasSelectedBlock,
  1453. hasMultiSelection
  1454. } = Object(external_wp_data_["useSelect"])(external_wp_blockEditor_["store"]);
  1455. const {
  1456. clearSelectedBlock
  1457. } = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
  1458. Object(external_wp_element_["useEffect"])(() => {
  1459. if (popoverRef.current && sidebarControl) {
  1460. const inspector = sidebarControl.inspector;
  1461. const container = sidebarControl.container[0];
  1462. const ownerDocument = container.ownerDocument;
  1463. const ownerWindow = ownerDocument.defaultView;
  1464. function handleClearSelectedBlock(element) {
  1465. if ( // 1. Make sure there are blocks being selected.
  1466. (hasSelectedBlock() || hasMultiSelection()) && // 2. The element should exist in the DOM (not deleted).
  1467. element && ownerDocument.contains(element) && // 3. It should also not exist in the container, the popover, nor the dialog.
  1468. !container.contains(element) && !popoverRef.current.contains(element) && !element.closest('[role="dialog"]') && // 4. The inspector should not be opened.
  1469. !inspector.expanded()) {
  1470. clearSelectedBlock();
  1471. }
  1472. } // Handle mouse down in the same document.
  1473. function handleMouseDown(event) {
  1474. handleClearSelectedBlock(event.target);
  1475. } // Handle focusing outside the current document, like to iframes.
  1476. function handleBlur() {
  1477. handleClearSelectedBlock(ownerDocument.activeElement);
  1478. }
  1479. ownerDocument.addEventListener('mousedown', handleMouseDown);
  1480. ownerWindow.addEventListener('blur', handleBlur);
  1481. return () => {
  1482. ownerDocument.removeEventListener('mousedown', handleMouseDown);
  1483. ownerWindow.removeEventListener('blur', handleBlur);
  1484. };
  1485. }
  1486. }, [popoverRef, sidebarControl, hasSelectedBlock, hasMultiSelection, clearSelectedBlock]);
  1487. }
  1488. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/customize-widgets/index.js
  1489. /**
  1490. * WordPress dependencies
  1491. */
  1492. /**
  1493. * Internal dependencies
  1494. */
  1495. function CustomizeWidgets({
  1496. api,
  1497. sidebarControls,
  1498. blockEditorSettings
  1499. }) {
  1500. const [activeSidebarControl, setActiveSidebarControl] = Object(external_wp_element_["useState"])(null);
  1501. const parentContainer = document.getElementById('customize-theme-controls');
  1502. const popoverRef = Object(external_wp_element_["useRef"])();
  1503. useClearSelectedBlock(activeSidebarControl, popoverRef);
  1504. Object(external_wp_element_["useEffect"])(() => {
  1505. const unsubscribers = sidebarControls.map(sidebarControl => sidebarControl.subscribe(expanded => {
  1506. if (expanded) {
  1507. setActiveSidebarControl(sidebarControl);
  1508. }
  1509. }));
  1510. return () => {
  1511. unsubscribers.forEach(unsubscriber => unsubscriber());
  1512. };
  1513. }, [sidebarControls]);
  1514. const activeSidebar = activeSidebarControl && Object(external_wp_element_["createPortal"])(Object(external_wp_element_["createElement"])(error_boundary_ErrorBoundary, null, Object(external_wp_element_["createElement"])(SidebarBlockEditor, {
  1515. key: activeSidebarControl.id,
  1516. blockEditorSettings: blockEditorSettings,
  1517. sidebar: activeSidebarControl.sidebarAdapter,
  1518. inserter: activeSidebarControl.inserter,
  1519. inspector: activeSidebarControl.inspector
  1520. })), activeSidebarControl.container[0]); // We have to portal this to the parent of both the editor and the inspector,
  1521. // so that the popovers will appear above both of them.
  1522. const popover = parentContainer && Object(external_wp_element_["createPortal"])(Object(external_wp_element_["createElement"])("div", {
  1523. className: "customize-widgets-popover",
  1524. ref: popoverRef
  1525. }, Object(external_wp_element_["createElement"])(external_wp_components_["Popover"].Slot, null)), parentContainer);
  1526. return Object(external_wp_element_["createElement"])(external_wp_components_["SlotFillProvider"], null, Object(external_wp_element_["createElement"])(SidebarControls, {
  1527. sidebarControls: sidebarControls,
  1528. activeSidebarControl: activeSidebarControl
  1529. }, Object(external_wp_element_["createElement"])(FocusControl, {
  1530. api: api,
  1531. sidebarControls: sidebarControls
  1532. }, activeSidebar, popover)));
  1533. }
  1534. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/inspector-section.js
  1535. function getInspectorSection() {
  1536. const {
  1537. wp: {
  1538. customize
  1539. }
  1540. } = window;
  1541. return class InspectorSection extends customize.Section {
  1542. constructor(id, options) {
  1543. super(id, options);
  1544. this.parentSection = options.parentSection;
  1545. this.returnFocusWhenClose = null;
  1546. }
  1547. ready() {
  1548. this.contentContainer[0].classList.add('customize-widgets-layout__inspector');
  1549. }
  1550. onChangeExpanded(expanded, args) {
  1551. super.onChangeExpanded(expanded, args);
  1552. if (this.parentSection && !args.unchanged) {
  1553. if (expanded) {
  1554. this.parentSection.collapse({
  1555. manualTransition: true
  1556. });
  1557. } else {
  1558. this.parentSection.expand({
  1559. manualTransition: true,
  1560. completeCallback: () => {
  1561. // Return focus after finishing the transition.
  1562. if (this.returnFocusWhenClose && !this.contentContainer[0].contains(this.returnFocusWhenClose)) {
  1563. this.returnFocusWhenClose.focus();
  1564. }
  1565. }
  1566. });
  1567. }
  1568. }
  1569. }
  1570. open({
  1571. returnFocusWhenClose
  1572. } = {}) {
  1573. this.returnFocusWhenClose = returnFocusWhenClose;
  1574. this.expand({
  1575. allowMultiple: true
  1576. });
  1577. }
  1578. close() {
  1579. this.collapse({
  1580. allowMultiple: true
  1581. });
  1582. }
  1583. };
  1584. }
  1585. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/sidebar-section.js
  1586. /**
  1587. * WordPress dependencies
  1588. */
  1589. /**
  1590. * Internal dependencies
  1591. */
  1592. const getInspectorSectionId = sidebarId => `widgets-inspector-${sidebarId}`;
  1593. function getSidebarSection() {
  1594. const {
  1595. wp: {
  1596. customize
  1597. }
  1598. } = window;
  1599. return class SidebarSection extends customize.Section {
  1600. ready() {
  1601. const InspectorSection = getInspectorSection();
  1602. this.inspector = new InspectorSection(getInspectorSectionId(this.id), {
  1603. title: Object(external_wp_i18n_["__"])('Block Settings'),
  1604. parentSection: this,
  1605. customizeAction: [Object(external_wp_i18n_["__"])('Customizing'), Object(external_wp_i18n_["__"])('Widgets'), this.params.title].join(' ▸ ')
  1606. });
  1607. customize.section.add(this.inspector);
  1608. this.contentContainer[0].classList.add('customize-widgets__sidebar-section');
  1609. }
  1610. hasSubSectionOpened() {
  1611. return this.inspector.expanded();
  1612. }
  1613. onChangeExpanded(expanded, _args) {
  1614. const controls = this.controls();
  1615. const args = { ..._args,
  1616. completeCallback() {
  1617. var _args$completeCallbac;
  1618. controls.forEach(control => {
  1619. var _control$onChangeSect;
  1620. (_control$onChangeSect = control.onChangeSectionExpanded) === null || _control$onChangeSect === void 0 ? void 0 : _control$onChangeSect.call(control, expanded, args);
  1621. });
  1622. (_args$completeCallbac = _args.completeCallback) === null || _args$completeCallbac === void 0 ? void 0 : _args$completeCallbac.call(_args);
  1623. }
  1624. };
  1625. if (args.manualTransition) {
  1626. if (expanded) {
  1627. this.contentContainer.addClass(['busy', 'open']);
  1628. this.contentContainer.removeClass('is-sub-section-open');
  1629. this.contentContainer.closest('.wp-full-overlay').addClass('section-open');
  1630. this.contentContainer.one('transitionend', () => {
  1631. this.contentContainer.removeClass('busy');
  1632. args.completeCallback();
  1633. });
  1634. } else {
  1635. this.contentContainer.addClass(['busy', 'is-sub-section-open']);
  1636. this.contentContainer.closest('.wp-full-overlay').addClass('section-open');
  1637. this.contentContainer.removeClass('open');
  1638. this.contentContainer.one('transitionend', () => {
  1639. this.contentContainer.removeClass('busy');
  1640. args.completeCallback();
  1641. });
  1642. }
  1643. } else {
  1644. super.onChangeExpanded(expanded, args);
  1645. }
  1646. }
  1647. };
  1648. }
  1649. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/sidebar-adapter.js
  1650. /**
  1651. * Internal dependencies
  1652. */
  1653. const {
  1654. wp
  1655. } = window;
  1656. function parseWidgetId(widgetId) {
  1657. const matches = widgetId.match(/^(.+)-(\d+)$/);
  1658. if (matches) {
  1659. return {
  1660. idBase: matches[1],
  1661. number: parseInt(matches[2], 10)
  1662. };
  1663. } // Likely an old single widget.
  1664. return {
  1665. idBase: widgetId
  1666. };
  1667. }
  1668. function widgetIdToSettingId(widgetId) {
  1669. const {
  1670. idBase,
  1671. number
  1672. } = parseWidgetId(widgetId);
  1673. if (number) {
  1674. return `widget_${idBase}[${number}]`;
  1675. }
  1676. return `widget_${idBase}`;
  1677. }
  1678. /**
  1679. * This is a custom debounce function to call different callbacks depending on
  1680. * whether it's the _leading_ call or not.
  1681. *
  1682. * @param {Function} leading The callback that gets called first.
  1683. * @param {Function} callback The callback that gets called after the first time.
  1684. * @param {number} timeout The debounced time in milliseconds.
  1685. * @return {Function} The debounced function.
  1686. */
  1687. function debounce(leading, callback, timeout) {
  1688. let isLeading = false;
  1689. let timerID;
  1690. function debounced(...args) {
  1691. const result = (isLeading ? callback : leading).apply(this, args);
  1692. isLeading = true;
  1693. clearTimeout(timerID);
  1694. timerID = setTimeout(() => {
  1695. isLeading = false;
  1696. }, timeout);
  1697. return result;
  1698. }
  1699. debounced.cancel = () => {
  1700. isLeading = false;
  1701. clearTimeout(timerID);
  1702. };
  1703. return debounced;
  1704. }
  1705. class sidebar_adapter_SidebarAdapter {
  1706. constructor(setting, api) {
  1707. this.setting = setting;
  1708. this.api = api;
  1709. this.locked = false;
  1710. this.widgetsCache = new WeakMap();
  1711. this.subscribers = new Set();
  1712. this.history = [this._getWidgetIds().map(widgetId => this.getWidget(widgetId))];
  1713. this.historyIndex = 0;
  1714. this.historySubscribers = new Set(); // Debounce the input for 1 second.
  1715. this._debounceSetHistory = debounce(this._pushHistory, this._replaceHistory, 1000);
  1716. this.setting.bind(this._handleSettingChange.bind(this));
  1717. this.api.bind('change', this._handleAllSettingsChange.bind(this));
  1718. this.undo = this.undo.bind(this);
  1719. this.redo = this.redo.bind(this);
  1720. this.save = this.save.bind(this);
  1721. }
  1722. subscribe(callback) {
  1723. this.subscribers.add(callback);
  1724. return () => {
  1725. this.subscribers.delete(callback);
  1726. };
  1727. }
  1728. getWidgets() {
  1729. return this.history[this.historyIndex];
  1730. }
  1731. _emit(...args) {
  1732. for (const callback of this.subscribers) {
  1733. callback(...args);
  1734. }
  1735. }
  1736. _getWidgetIds() {
  1737. return this.setting.get();
  1738. }
  1739. _pushHistory() {
  1740. this.history = [...this.history.slice(0, this.historyIndex + 1), this._getWidgetIds().map(widgetId => this.getWidget(widgetId))];
  1741. this.historyIndex += 1;
  1742. this.historySubscribers.forEach(listener => listener());
  1743. }
  1744. _replaceHistory() {
  1745. this.history[this.historyIndex] = this._getWidgetIds().map(widgetId => this.getWidget(widgetId));
  1746. }
  1747. _handleSettingChange() {
  1748. if (this.locked) {
  1749. return;
  1750. }
  1751. const prevWidgets = this.getWidgets();
  1752. this._pushHistory();
  1753. this._emit(prevWidgets, this.getWidgets());
  1754. }
  1755. _handleAllSettingsChange(setting) {
  1756. if (this.locked) {
  1757. return;
  1758. }
  1759. if (!setting.id.startsWith('widget_')) {
  1760. return;
  1761. }
  1762. const widgetId = settingIdToWidgetId(setting.id);
  1763. if (!this.setting.get().includes(widgetId)) {
  1764. return;
  1765. }
  1766. const prevWidgets = this.getWidgets();
  1767. this._pushHistory();
  1768. this._emit(prevWidgets, this.getWidgets());
  1769. }
  1770. _createWidget(widget) {
  1771. const widgetModel = wp.customize.Widgets.availableWidgets.findWhere({
  1772. id_base: widget.idBase
  1773. });
  1774. let number = widget.number;
  1775. if (widgetModel.get('is_multi') && !number) {
  1776. widgetModel.set('multi_number', widgetModel.get('multi_number') + 1);
  1777. number = widgetModel.get('multi_number');
  1778. }
  1779. const settingId = number ? `widget_${widget.idBase}[${number}]` : `widget_${widget.idBase}`;
  1780. const settingArgs = {
  1781. transport: wp.customize.Widgets.data.selectiveRefreshableWidgets[widgetModel.get('id_base')] ? 'postMessage' : 'refresh',
  1782. previewer: this.setting.previewer
  1783. };
  1784. const setting = this.api.create(settingId, settingId, '', settingArgs);
  1785. setting.set(widget.instance);
  1786. const widgetId = settingIdToWidgetId(settingId);
  1787. return widgetId;
  1788. }
  1789. _removeWidget(widget) {
  1790. const settingId = widgetIdToSettingId(widget.id);
  1791. const setting = this.api(settingId);
  1792. if (setting) {
  1793. const instance = setting.get();
  1794. this.widgetsCache.delete(instance);
  1795. }
  1796. this.api.remove(settingId);
  1797. }
  1798. _updateWidget(widget) {
  1799. const prevWidget = this.getWidget(widget.id); // Bail out update if nothing changed.
  1800. if (prevWidget === widget) {
  1801. return widget.id;
  1802. } // Update existing setting if only the widget's instance changed.
  1803. if (prevWidget.idBase && widget.idBase && prevWidget.idBase === widget.idBase) {
  1804. const settingId = widgetIdToSettingId(widget.id);
  1805. this.api(settingId).set(widget.instance);
  1806. return widget.id;
  1807. } // Otherwise delete and re-create.
  1808. this._removeWidget(widget);
  1809. return this._createWidget(widget);
  1810. }
  1811. getWidget(widgetId) {
  1812. if (!widgetId) {
  1813. return null;
  1814. }
  1815. const {
  1816. idBase,
  1817. number
  1818. } = parseWidgetId(widgetId);
  1819. const settingId = widgetIdToSettingId(widgetId);
  1820. const setting = this.api(settingId);
  1821. if (!setting) {
  1822. return null;
  1823. }
  1824. const instance = setting.get();
  1825. if (this.widgetsCache.has(instance)) {
  1826. return this.widgetsCache.get(instance);
  1827. }
  1828. const widget = {
  1829. id: widgetId,
  1830. idBase,
  1831. number,
  1832. instance
  1833. };
  1834. this.widgetsCache.set(instance, widget);
  1835. return widget;
  1836. }
  1837. _updateWidgets(nextWidgets) {
  1838. this.locked = true;
  1839. const addedWidgetIds = [];
  1840. const nextWidgetIds = nextWidgets.map(nextWidget => {
  1841. if (nextWidget.id && this.getWidget(nextWidget.id)) {
  1842. addedWidgetIds.push(null);
  1843. return this._updateWidget(nextWidget);
  1844. }
  1845. const widgetId = this._createWidget(nextWidget);
  1846. addedWidgetIds.push(widgetId);
  1847. return widgetId;
  1848. });
  1849. const deletedWidgets = this.getWidgets().filter(widget => !nextWidgetIds.includes(widget.id));
  1850. deletedWidgets.forEach(widget => this._removeWidget(widget));
  1851. this.setting.set(nextWidgetIds);
  1852. this.locked = false;
  1853. return addedWidgetIds;
  1854. }
  1855. setWidgets(nextWidgets) {
  1856. const addedWidgetIds = this._updateWidgets(nextWidgets);
  1857. this._debounceSetHistory();
  1858. return addedWidgetIds;
  1859. }
  1860. /**
  1861. * Undo/Redo related features
  1862. */
  1863. hasUndo() {
  1864. return this.historyIndex > 0;
  1865. }
  1866. hasRedo() {
  1867. return this.historyIndex < this.history.length - 1;
  1868. }
  1869. _seek(historyIndex) {
  1870. const currentWidgets = this.getWidgets();
  1871. this.historyIndex = historyIndex;
  1872. const widgets = this.history[this.historyIndex];
  1873. this._updateWidgets(widgets);
  1874. this._emit(currentWidgets, this.getWidgets());
  1875. this.historySubscribers.forEach(listener => listener());
  1876. this._debounceSetHistory.cancel();
  1877. }
  1878. undo() {
  1879. if (!this.hasUndo()) {
  1880. return;
  1881. }
  1882. this._seek(this.historyIndex - 1);
  1883. }
  1884. redo() {
  1885. if (!this.hasRedo()) {
  1886. return;
  1887. }
  1888. this._seek(this.historyIndex + 1);
  1889. }
  1890. subscribeHistory(listener) {
  1891. this.historySubscribers.add(listener);
  1892. return () => {
  1893. this.historySubscribers.delete(listener);
  1894. };
  1895. }
  1896. save() {
  1897. this.api.previewer.save();
  1898. }
  1899. }
  1900. // EXTERNAL MODULE: external ["wp","dom"]
  1901. var external_wp_dom_ = __webpack_require__("1CF3");
  1902. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/inserter-outer-section.js
  1903. /**
  1904. * WordPress dependencies
  1905. */
  1906. /**
  1907. * Internal dependencies
  1908. */
  1909. function getInserterOuterSection() {
  1910. const {
  1911. wp: {
  1912. customize
  1913. }
  1914. } = window;
  1915. const OuterSection = customize.OuterSection; // Override the OuterSection class to handle multiple outer sections.
  1916. // It closes all the other outer sections whenever one is opened.
  1917. // The result is that at most one outer section can be opened at the same time.
  1918. customize.OuterSection = class extends OuterSection {
  1919. onChangeExpanded(expanded, args) {
  1920. if (expanded) {
  1921. customize.section.each(section => {
  1922. if (section.params.type === 'outer' && section.id !== this.id) {
  1923. if (section.expanded()) {
  1924. section.collapse();
  1925. }
  1926. }
  1927. });
  1928. }
  1929. return super.onChangeExpanded(expanded, args);
  1930. }
  1931. }; // Handle constructor so that "params.type" can be correctly pointed to "outer".
  1932. customize.sectionConstructor.outer = customize.OuterSection;
  1933. return class InserterOuterSection extends customize.OuterSection {
  1934. constructor(...args) {
  1935. super(...args); // This is necessary since we're creating a new class which is not identical to the original OuterSection.
  1936. // @See https://github.com/WordPress/wordpress-develop/blob/42b05c397c50d9dc244083eff52991413909d4bd/src/js/_enqueues/wp/customize/controls.js#L1427-L1436
  1937. this.params.type = 'outer';
  1938. this.activeElementBeforeExpanded = null;
  1939. const ownerWindow = this.contentContainer[0].ownerDocument.defaultView; // Handle closing the inserter when pressing the Escape key.
  1940. ownerWindow.addEventListener('keydown', event => {
  1941. if (this.expanded() && (event.keyCode === external_wp_keycodes_["ESCAPE"] || event.code === 'Escape')) {
  1942. event.stopPropagation();
  1943. Object(external_wp_data_["dispatch"])(store).setIsInserterOpened(false);
  1944. }
  1945. }, // Use capture mode to make this run before other event listeners.
  1946. true);
  1947. this.contentContainer.addClass('widgets-inserter'); // Set a flag if the state is being changed from open() or close().
  1948. // Don't propagate the event if it's an internal action to prevent infinite loop.
  1949. this.isFromInternalAction = false;
  1950. this.expanded.bind(() => {
  1951. if (!this.isFromInternalAction) {
  1952. // Propagate the event to React to sync the state.
  1953. Object(external_wp_data_["dispatch"])(store).setIsInserterOpened(this.expanded());
  1954. }
  1955. this.isFromInternalAction = false;
  1956. });
  1957. }
  1958. open() {
  1959. if (!this.expanded()) {
  1960. const contentContainer = this.contentContainer[0];
  1961. this.activeElementBeforeExpanded = contentContainer.ownerDocument.activeElement;
  1962. this.isFromInternalAction = true;
  1963. this.expand({
  1964. completeCallback() {
  1965. // We have to do this in a "completeCallback" or else the elements will not yet be visible/tabbable.
  1966. // The first one should be the close button,
  1967. // we want to skip it and choose the second one instead, which is the search box.
  1968. const searchBox = external_wp_dom_["focus"].tabbable.find(contentContainer)[1];
  1969. if (searchBox) {
  1970. searchBox.focus();
  1971. }
  1972. }
  1973. });
  1974. }
  1975. }
  1976. close() {
  1977. if (this.expanded()) {
  1978. const contentContainer = this.contentContainer[0];
  1979. const activeElement = contentContainer.ownerDocument.activeElement;
  1980. this.isFromInternalAction = true;
  1981. this.collapse({
  1982. completeCallback() {
  1983. // Return back the focus when closing the inserter.
  1984. // Only do this if the active element which triggers the action is inside the inserter,
  1985. // (the close button for instance). In that case the focus will be lost.
  1986. // Otherwise, we don't hijack the focus when the user is focusing on other elements
  1987. // (like the quick inserter).
  1988. if (contentContainer.contains(activeElement)) {
  1989. // Return back the focus when closing the inserter.
  1990. if (this.activeElementBeforeExpanded) {
  1991. this.activeElementBeforeExpanded.focus();
  1992. }
  1993. }
  1994. }
  1995. });
  1996. }
  1997. }
  1998. };
  1999. }
  2000. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/sidebar-control.js
  2001. /**
  2002. * WordPress dependencies
  2003. */
  2004. /**
  2005. * Internal dependencies
  2006. */
  2007. const getInserterId = controlId => `widgets-inserter-${controlId}`;
  2008. function getSidebarControl() {
  2009. const {
  2010. wp: {
  2011. customize
  2012. }
  2013. } = window;
  2014. return class SidebarControl extends customize.Control {
  2015. constructor(...args) {
  2016. super(...args);
  2017. this.subscribers = new Set();
  2018. }
  2019. ready() {
  2020. const InserterOuterSection = getInserterOuterSection();
  2021. this.inserter = new InserterOuterSection(getInserterId(this.id), {});
  2022. customize.section.add(this.inserter);
  2023. this.sectionInstance = customize.section(this.section());
  2024. this.inspector = this.sectionInstance.inspector;
  2025. this.sidebarAdapter = new sidebar_adapter_SidebarAdapter(this.setting, customize);
  2026. }
  2027. subscribe(callback) {
  2028. this.subscribers.add(callback);
  2029. return () => {
  2030. this.subscribers.delete(callback);
  2031. };
  2032. }
  2033. onChangeSectionExpanded(expanded, args) {
  2034. if (!args.unchanged) {
  2035. // Close the inserter when the section collapses.
  2036. if (!expanded) {
  2037. Object(external_wp_data_["dispatch"])(store).setIsInserterOpened(false);
  2038. }
  2039. this.subscribers.forEach(subscriber => subscriber(expanded, args));
  2040. }
  2041. }
  2042. };
  2043. }
  2044. // EXTERNAL MODULE: external ["wp","hooks"]
  2045. var external_wp_hooks_ = __webpack_require__("g56x");
  2046. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/move-to-sidebar.js
  2047. /**
  2048. * External dependencies
  2049. */
  2050. /**
  2051. * WordPress dependencies
  2052. */
  2053. /**
  2054. * Internal dependencies
  2055. */
  2056. const withMoveToSidebarToolbarItem = Object(external_wp_compose_["createHigherOrderComponent"])(BlockEdit => props => {
  2057. let widgetId = Object(external_wp_widgets_["getWidgetIdFromBlock"])(props);
  2058. const sidebarControls = useSidebarControls();
  2059. const activeSidebarControl = useActiveSidebarControl();
  2060. const hasMultipleSidebars = (sidebarControls === null || sidebarControls === void 0 ? void 0 : sidebarControls.length) > 1;
  2061. const blockName = props.name;
  2062. const clientId = props.clientId;
  2063. const canInsertBlockInSidebar = Object(external_wp_data_["useSelect"])(select => {
  2064. // Use an empty string to represent the root block list, which
  2065. // in the customizer editor represents a sidebar/widget area.
  2066. return select(external_wp_blockEditor_["store"]).canInsertBlockType(blockName, '');
  2067. }, [blockName]);
  2068. const block = Object(external_wp_data_["useSelect"])(select => select(external_wp_blockEditor_["store"]).getBlock(clientId), [clientId]);
  2069. const {
  2070. removeBlock
  2071. } = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
  2072. const [, focusWidget] = useFocusControl();
  2073. function moveToSidebar(sidebarControlId) {
  2074. const newSidebarControl = sidebarControls.find(sidebarControl => sidebarControl.id === sidebarControlId);
  2075. if (widgetId) {
  2076. /**
  2077. * If there's a widgetId, move it to the other sidebar.
  2078. */
  2079. const oldSetting = activeSidebarControl.setting;
  2080. const newSetting = newSidebarControl.setting;
  2081. oldSetting(Object(external_lodash_["without"])(oldSetting(), widgetId));
  2082. newSetting([...newSetting(), widgetId]);
  2083. } else {
  2084. /**
  2085. * If there isn't a widgetId, it's most likely a inner block.
  2086. * First, remove the block in the original sidebar,
  2087. * then, create a new widget in the new sidebar and get back its widgetId.
  2088. */
  2089. const sidebarAdapter = newSidebarControl.sidebarAdapter;
  2090. removeBlock(clientId);
  2091. const addedWidgetIds = sidebarAdapter.setWidgets([...sidebarAdapter.getWidgets(), blockToWidget(block)]); // The last non-null id is the added widget's id.
  2092. widgetId = addedWidgetIds.reverse().find(id => !!id);
  2093. } // Move focus to the moved widget and expand the sidebar.
  2094. focusWidget(widgetId);
  2095. }
  2096. return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(BlockEdit, props), hasMultipleSidebars && canInsertBlockInSidebar && Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockControls"], null, Object(external_wp_element_["createElement"])(external_wp_widgets_["MoveToWidgetArea"], {
  2097. widgetAreas: sidebarControls.map(sidebarControl => ({
  2098. id: sidebarControl.id,
  2099. name: sidebarControl.params.label,
  2100. description: sidebarControl.params.description
  2101. })),
  2102. currentWidgetAreaId: activeSidebarControl === null || activeSidebarControl === void 0 ? void 0 : activeSidebarControl.id,
  2103. onSelect: moveToSidebar
  2104. })));
  2105. }, 'withMoveToSidebarToolbarItem');
  2106. Object(external_wp_hooks_["addFilter"])('editor.BlockEdit', 'core/customize-widgets/block-edit', withMoveToSidebarToolbarItem);
  2107. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/replace-media-upload.js
  2108. /**
  2109. * WordPress dependencies
  2110. */
  2111. const replaceMediaUpload = () => external_wp_mediaUtils_["MediaUpload"];
  2112. Object(external_wp_hooks_["addFilter"])('editor.MediaUpload', 'core/edit-widgets/replace-media-upload', replaceMediaUpload);
  2113. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/wide-widget-display.js
  2114. /**
  2115. * WordPress dependencies
  2116. */
  2117. const {
  2118. wp: wide_widget_display_wp
  2119. } = window;
  2120. const withWideWidgetDisplay = Object(external_wp_compose_["createHigherOrderComponent"])(BlockEdit => props => {
  2121. var _wp$customize$Widgets, _wp$customize$Widgets2;
  2122. const {
  2123. idBase
  2124. } = props.attributes;
  2125. 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;
  2126. return Object(external_wp_element_["createElement"])(BlockEdit, Object(esm_extends["a" /* default */])({}, props, {
  2127. isWide: isWide
  2128. }));
  2129. }, 'withWideWidgetDisplay');
  2130. Object(external_wp_hooks_["addFilter"])('editor.BlockEdit', 'core/customize-widgets/wide-widget-display', withWideWidgetDisplay);
  2131. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/index.js
  2132. /**
  2133. * Internal dependencies
  2134. */
  2135. // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/index.js
  2136. /**
  2137. * WordPress dependencies
  2138. */
  2139. /**
  2140. * Internal dependencies
  2141. */
  2142. const {
  2143. wp: build_module_wp
  2144. } = window;
  2145. const DISABLED_BLOCKS = ['core/more', 'core/block', 'core/freeform'];
  2146. const ENABLE_EXPERIMENTAL_FSE_BLOCKS = false;
  2147. /**
  2148. * Initializes the widgets block editor in the customizer.
  2149. *
  2150. * @param {string} editorName The editor name.
  2151. * @param {Object} blockEditorSettings Block editor settings.
  2152. */
  2153. function initialize(editorName, blockEditorSettings) {
  2154. const coreBlocks = Object(external_wp_blockLibrary_["__experimentalGetCoreBlocks"])().filter(block => {
  2155. return !(DISABLED_BLOCKS.includes(block.name) || block.name.startsWith('core/post') || block.name.startsWith('core/query') || block.name.startsWith('core/site'));
  2156. });
  2157. Object(external_wp_blockLibrary_["registerCoreBlocks"])(coreBlocks);
  2158. Object(external_wp_widgets_["registerLegacyWidgetBlock"])();
  2159. if (false) {}
  2160. Object(external_wp_widgets_["registerLegacyWidgetVariations"])(blockEditorSettings); // As we are unregistering `core/freeform` to avoid the Classic block, we must
  2161. // replace it with something as the default freeform content handler. Failure to
  2162. // do this will result in errors in the default block parser.
  2163. // see: https://github.com/WordPress/gutenberg/issues/33097
  2164. Object(external_wp_blocks_["setFreeformContentHandlerName"])('core/html');
  2165. const SidebarControl = getSidebarControl(blockEditorSettings);
  2166. build_module_wp.customize.sectionConstructor.sidebar = getSidebarSection();
  2167. build_module_wp.customize.controlConstructor.sidebar_block_editor = SidebarControl;
  2168. const container = document.createElement('div');
  2169. document.body.appendChild(container);
  2170. build_module_wp.customize.bind('ready', () => {
  2171. const sidebarControls = [];
  2172. build_module_wp.customize.control.each(control => {
  2173. if (control instanceof SidebarControl) {
  2174. sidebarControls.push(control);
  2175. }
  2176. });
  2177. Object(external_wp_element_["render"])(Object(external_wp_element_["createElement"])(CustomizeWidgets, {
  2178. api: build_module_wp.customize,
  2179. sidebarControls: sidebarControls,
  2180. blockEditorSettings: blockEditorSettings
  2181. }), container);
  2182. });
  2183. }
  2184. /***/ }),
  2185. /***/ "GLVC":
  2186. /***/ (function(module, exports) {
  2187. (function() { module.exports = window["wp"]["widgets"]; }());
  2188. /***/ }),
  2189. /***/ "GRId":
  2190. /***/ (function(module, exports) {
  2191. (function() { module.exports = window["wp"]["element"]; }());
  2192. /***/ }),
  2193. /***/ "HSyU":
  2194. /***/ (function(module, exports) {
  2195. (function() { module.exports = window["wp"]["blocks"]; }());
  2196. /***/ }),
  2197. /***/ "K+tz":
  2198. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2199. "use strict";
  2200. /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
  2201. /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
  2202. /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
  2203. /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
  2204. /**
  2205. * WordPress dependencies
  2206. */
  2207. const external = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
  2208. xmlns: "http://www.w3.org/2000/svg",
  2209. viewBox: "0 0 24 24"
  2210. }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
  2211. 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"
  2212. }));
  2213. /* harmony default export */ __webpack_exports__["a"] = (external);
  2214. /***/ }),
  2215. /***/ "K2cm":
  2216. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2217. "use strict";
  2218. /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
  2219. /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
  2220. /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
  2221. /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
  2222. /**
  2223. * WordPress dependencies
  2224. */
  2225. const redo = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
  2226. xmlns: "http://www.w3.org/2000/svg",
  2227. viewBox: "0 0 24 24"
  2228. }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
  2229. 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"
  2230. }));
  2231. /* harmony default export */ __webpack_exports__["a"] = (redo);
  2232. /***/ }),
  2233. /***/ "K9lf":
  2234. /***/ (function(module, exports) {
  2235. (function() { module.exports = window["wp"]["compose"]; }());
  2236. /***/ }),
  2237. /***/ "Ntru":
  2238. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2239. "use strict";
  2240. /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
  2241. /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
  2242. /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
  2243. /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
  2244. /**
  2245. * WordPress dependencies
  2246. */
  2247. const undo = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
  2248. xmlns: "http://www.w3.org/2000/svg",
  2249. viewBox: "0 0 24 24"
  2250. }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
  2251. 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"
  2252. }));
  2253. /* harmony default export */ __webpack_exports__["a"] = (undo);
  2254. /***/ }),
  2255. /***/ "Q4Sy":
  2256. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2257. "use strict";
  2258. /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
  2259. /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
  2260. /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
  2261. /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
  2262. /**
  2263. * WordPress dependencies
  2264. */
  2265. const plus = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
  2266. xmlns: "http://www.w3.org/2000/svg",
  2267. viewBox: "0 0 24 24"
  2268. }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
  2269. d: "M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z"
  2270. }));
  2271. /* harmony default export */ __webpack_exports__["a"] = (plus);
  2272. /***/ }),
  2273. /***/ "QyPg":
  2274. /***/ (function(module, exports) {
  2275. (function() { module.exports = window["wp"]["blockLibrary"]; }());
  2276. /***/ }),
  2277. /***/ "RMJe":
  2278. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2279. "use strict";
  2280. /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
  2281. /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
  2282. /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
  2283. /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
  2284. /**
  2285. * WordPress dependencies
  2286. */
  2287. const check = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
  2288. xmlns: "http://www.w3.org/2000/svg",
  2289. viewBox: "0 0 24 24"
  2290. }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
  2291. d: "M18.3 5.6L9.9 16.9l-4.6-3.4-.9 1.2 5.8 4.3 9.3-12.6z"
  2292. }));
  2293. /* harmony default export */ __webpack_exports__["a"] = (check);
  2294. /***/ }),
  2295. /***/ "RxS6":
  2296. /***/ (function(module, exports) {
  2297. (function() { module.exports = window["wp"]["keycodes"]; }());
  2298. /***/ }),
  2299. /***/ "TSYQ":
  2300. /***/ (function(module, exports, __webpack_require__) {
  2301. var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
  2302. Copyright (c) 2018 Jed Watson.
  2303. Licensed under the MIT License (MIT), see
  2304. http://jedwatson.github.io/classnames
  2305. */
  2306. /* global define */
  2307. (function () {
  2308. 'use strict';
  2309. var hasOwn = {}.hasOwnProperty;
  2310. function classNames() {
  2311. var classes = [];
  2312. for (var i = 0; i < arguments.length; i++) {
  2313. var arg = arguments[i];
  2314. if (!arg) continue;
  2315. var argType = typeof arg;
  2316. if (argType === 'string' || argType === 'number') {
  2317. classes.push(arg);
  2318. } else if (Array.isArray(arg)) {
  2319. if (arg.length) {
  2320. var inner = classNames.apply(null, arg);
  2321. if (inner) {
  2322. classes.push(inner);
  2323. }
  2324. }
  2325. } else if (argType === 'object') {
  2326. if (arg.toString === Object.prototype.toString) {
  2327. for (var key in arg) {
  2328. if (hasOwn.call(arg, key) && arg[key]) {
  2329. classes.push(key);
  2330. }
  2331. }
  2332. } else {
  2333. classes.push(arg.toString());
  2334. }
  2335. }
  2336. }
  2337. return classes.join(' ');
  2338. }
  2339. if ( true && module.exports) {
  2340. classNames.default = classNames;
  2341. module.exports = classNames;
  2342. } else if (true) {
  2343. // register as 'classnames', consistent with npm package name
  2344. !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
  2345. return classNames;
  2346. }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
  2347. __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  2348. } else {}
  2349. }());
  2350. /***/ }),
  2351. /***/ "Tqx9":
  2352. /***/ (function(module, exports) {
  2353. (function() { module.exports = window["wp"]["primitives"]; }());
  2354. /***/ }),
  2355. /***/ "VKE3":
  2356. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2357. "use strict";
  2358. /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
  2359. /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
  2360. /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
  2361. /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
  2362. /**
  2363. * WordPress dependencies
  2364. */
  2365. const moreVertical = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
  2366. xmlns: "http://www.w3.org/2000/svg",
  2367. viewBox: "0 0 24 24"
  2368. }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
  2369. d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z"
  2370. }));
  2371. /* harmony default export */ __webpack_exports__["a"] = (moreVertical);
  2372. /***/ }),
  2373. /***/ "YLtl":
  2374. /***/ (function(module, exports) {
  2375. (function() { module.exports = window["lodash"]; }());
  2376. /***/ }),
  2377. /***/ "axFQ":
  2378. /***/ (function(module, exports) {
  2379. (function() { module.exports = window["wp"]["blockEditor"]; }());
  2380. /***/ }),
  2381. /***/ "bWcr":
  2382. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2383. "use strict";
  2384. /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
  2385. /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
  2386. /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
  2387. /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
  2388. /**
  2389. * WordPress dependencies
  2390. */
  2391. const closeSmall = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
  2392. xmlns: "http://www.w3.org/2000/svg",
  2393. viewBox: "0 0 24 24"
  2394. }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
  2395. 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"
  2396. }));
  2397. /* harmony default export */ __webpack_exports__["a"] = (closeSmall);
  2398. /***/ }),
  2399. /***/ "g56x":
  2400. /***/ (function(module, exports) {
  2401. (function() { module.exports = window["wp"]["hooks"]; }());
  2402. /***/ }),
  2403. /***/ "gdqT":
  2404. /***/ (function(module, exports) {
  2405. (function() { module.exports = window["wp"]["a11y"]; }());
  2406. /***/ }),
  2407. /***/ "hF7m":
  2408. /***/ (function(module, exports) {
  2409. (function() { module.exports = window["wp"]["keyboardShortcuts"]; }());
  2410. /***/ }),
  2411. /***/ "jZUy":
  2412. /***/ (function(module, exports) {
  2413. (function() { module.exports = window["wp"]["coreData"]; }());
  2414. /***/ }),
  2415. /***/ "l3Sj":
  2416. /***/ (function(module, exports) {
  2417. (function() { module.exports = window["wp"]["i18n"]; }());
  2418. /***/ }),
  2419. /***/ "rl8x":
  2420. /***/ (function(module, exports) {
  2421. (function() { module.exports = window["wp"]["isShallowEqual"]; }());
  2422. /***/ }),
  2423. /***/ "tI+e":
  2424. /***/ (function(module, exports) {
  2425. (function() { module.exports = window["wp"]["components"]; }());
  2426. /***/ }),
  2427. /***/ "wx14":
  2428. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2429. "use strict";
  2430. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _extends; });
  2431. function _extends() {
  2432. _extends = Object.assign || function (target) {
  2433. for (var i = 1; i < arguments.length; i++) {
  2434. var source = arguments[i];
  2435. for (var key in source) {
  2436. if (Object.prototype.hasOwnProperty.call(source, key)) {
  2437. target[key] = source[key];
  2438. }
  2439. }
  2440. }
  2441. return target;
  2442. };
  2443. return _extends.apply(this, arguments);
  2444. }
  2445. /***/ })
  2446. /******/ });