PluginProbe
Gutenberg / 8.5.1
Gutenberg v8.5.1
24.0.0 23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 All 403 releases
← All changes | build/edit-widgets/index.js +14 -4910 12.6.0 → 8.5.1 View file →
@@ -1,4910 +1,14 @@
1 -/******/ (function() { // webpackBootstrap
2 -/******/ var __webpack_modules__ = ({
3 -
4 -/***/ 4184:
5 -/***/ (function(module, exports) {
6 -
7 -var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
8 - Copyright (c) 2018 Jed Watson.
9 - Licensed under the MIT License (MIT), see
10 - http://jedwatson.github.io/classnames
11 -*/
12 -/* global define */
13 -
14 -(function () {
15 - 'use strict';
16 -
17 - var hasOwn = {}.hasOwnProperty;
18 -
19 - function classNames() {
20 - var classes = [];
21 -
22 - for (var i = 0; i < arguments.length; i++) {
23 - var arg = arguments[i];
24 - if (!arg) continue;
25 -
26 - var argType = typeof arg;
27 -
28 - if (argType === 'string' || argType === 'number') {
29 - classes.push(arg);
30 - } else if (Array.isArray(arg)) {
31 - if (arg.length) {
32 - var inner = classNames.apply(null, arg);
33 - if (inner) {
34 - classes.push(inner);
35 - }
36 - }
37 - } else if (argType === 'object') {
38 - if (arg.toString === Object.prototype.toString) {
39 - for (var key in arg) {
40 - if (hasOwn.call(arg, key) && arg[key]) {
41 - classes.push(key);
42 - }
43 - }
44 - } else {
45 - classes.push(arg.toString());
46 - }
47 - }
48 - }
49 -
50 - return classes.join(' ');
51 - }
52 -
53 - if ( true && module.exports) {
54 - classNames.default = classNames;
55 - module.exports = classNames;
56 - } else if (true) {
57 - // register as 'classnames', consistent with npm package name
58 - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
59 - return classNames;
60 - }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
61 - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
62 - } else {}
63 -}());
64 -
65 -
66 -/***/ })
67 -
68 -/******/ });
69 -/************************************************************************/
70 -/******/ // The module cache
71 -/******/ var __webpack_module_cache__ = {};
72 -/******/
73 -/******/ // The require function
74 -/******/ function __webpack_require__(moduleId) {
75 -/******/ // Check if module is in cache
76 -/******/ var cachedModule = __webpack_module_cache__[moduleId];
77 -/******/ if (cachedModule !== undefined) {
78 -/******/ return cachedModule.exports;
79 -/******/ }
80 -/******/ // Create a new module (and put it into the cache)
81 -/******/ var module = __webpack_module_cache__[moduleId] = {
82 -/******/ // no module.id needed
83 -/******/ // no module.loaded needed
84 -/******/ exports: {}
85 -/******/ };
86 -/******/
87 -/******/ // Execute the module function
88 -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
89 -/******/
90 -/******/ // Return the exports of the module
91 -/******/ return module.exports;
92 -/******/ }
93 -/******/
94 -/************************************************************************/
95 -/******/ /* webpack/runtime/compat get default export */
96 -/******/ !function() {
97 -/******/ // getDefaultExport function for compatibility with non-harmony modules
98 -/******/ __webpack_require__.n = function(module) {
99 -/******/ var getter = module && module.__esModule ?
100 -/******/ function() { return module['default']; } :
101 -/******/ function() { return module; };
102 -/******/ __webpack_require__.d(getter, { a: getter });
103 -/******/ return getter;
104 -/******/ };
105 -/******/ }();
106 -/******/
107 -/******/ /* webpack/runtime/define property getters */
108 -/******/ !function() {
109 -/******/ // define getter functions for harmony exports
110 -/******/ __webpack_require__.d = function(exports, definition) {
111 -/******/ for(var key in definition) {
112 -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
113 -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
114 -/******/ }
115 -/******/ }
116 -/******/ };
117 -/******/ }();
118 -/******/
119 -/******/ /* webpack/runtime/hasOwnProperty shorthand */
120 -/******/ !function() {
121 -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
122 -/******/ }();
123 -/******/
124 -/******/ /* webpack/runtime/make namespace object */
125 -/******/ !function() {
126 -/******/ // define __esModule on exports
127 -/******/ __webpack_require__.r = function(exports) {
128 -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
129 -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
130 -/******/ }
131 -/******/ Object.defineProperty(exports, '__esModule', { value: true });
132 -/******/ };
133 -/******/ }();
134 -/******/
135 -/************************************************************************/
136 -var __webpack_exports__ = {};
137 -// This entry need to be wrapped in an IIFE because it need to be in strict mode.
138 -!function() {
139 -"use strict";
140 -// ESM COMPAT FLAG
141 -__webpack_require__.r(__webpack_exports__);
142 -
143 -// EXPORTS
144 -__webpack_require__.d(__webpack_exports__, {
145 - "initialize": function() { return /* binding */ initialize; },
146 - "reinitializeEditor": function() { return /* binding */ reinitializeEditor; }
147 -});
148 -
149 -// NAMESPACE OBJECT: ./packages/interface/build-module/store/actions.js
150 -var actions_namespaceObject = {};
151 -__webpack_require__.r(actions_namespaceObject);
152 -__webpack_require__.d(actions_namespaceObject, {
153 - "disableComplementaryArea": function() { return disableComplementaryArea; },
154 - "enableComplementaryArea": function() { return enableComplementaryArea; },
155 - "pinItem": function() { return pinItem; },
156 - "setFeatureDefaults": function() { return setFeatureDefaults; },
157 - "setFeatureValue": function() { return setFeatureValue; },
158 - "toggleFeature": function() { return toggleFeature; },
159 - "unpinItem": function() { return unpinItem; }
160 -});
161 -
162 -// NAMESPACE OBJECT: ./packages/interface/build-module/store/selectors.js
163 -var selectors_namespaceObject = {};
164 -__webpack_require__.r(selectors_namespaceObject);
165 -__webpack_require__.d(selectors_namespaceObject, {
166 - "getActiveComplementaryArea": function() { return getActiveComplementaryArea; },
167 - "isFeatureActive": function() { return isFeatureActive; },
168 - "isItemPinned": function() { return isItemPinned; }
169 -});
170 -
171 -// NAMESPACE OBJECT: ./packages/edit-widgets/build-module/store/actions.js
172 -var store_actions_namespaceObject = {};
173 -__webpack_require__.r(store_actions_namespaceObject);
174 -__webpack_require__.d(store_actions_namespaceObject, {
175 - "closeGeneralSidebar": function() { return closeGeneralSidebar; },
176 - "moveBlockToWidgetArea": function() { return moveBlockToWidgetArea; },
177 - "persistStubPost": function() { return persistStubPost; },
178 - "saveEditedWidgetAreas": function() { return saveEditedWidgetAreas; },
179 - "saveWidgetArea": function() { return saveWidgetArea; },
180 - "saveWidgetAreas": function() { return saveWidgetAreas; },
181 - "setIsInserterOpened": function() { return setIsInserterOpened; },
182 - "setIsListViewOpened": function() { return setIsListViewOpened; },
183 - "setIsWidgetAreaOpen": function() { return setIsWidgetAreaOpen; },
184 - "setWidgetAreasOpenState": function() { return setWidgetAreasOpenState; },
185 - "setWidgetIdForClientId": function() { return setWidgetIdForClientId; }
186 -});
187 -
188 -// NAMESPACE OBJECT: ./packages/edit-widgets/build-module/store/resolvers.js
189 -var resolvers_namespaceObject = {};
190 -__webpack_require__.r(resolvers_namespaceObject);
191 -__webpack_require__.d(resolvers_namespaceObject, {
192 - "getWidgetAreas": function() { return getWidgetAreas; },
193 - "getWidgets": function() { return getWidgets; }
194 -});
195 -
196 -// NAMESPACE OBJECT: ./packages/edit-widgets/build-module/store/selectors.js
197 -var store_selectors_namespaceObject = {};
198 -__webpack_require__.r(store_selectors_namespaceObject);
199 -__webpack_require__.d(store_selectors_namespaceObject, {
200 - "__experimentalGetInsertionPoint": function() { return __experimentalGetInsertionPoint; },
201 - "canInsertBlockInWidgetArea": function() { return canInsertBlockInWidgetArea; },
202 - "getEditedWidgetAreas": function() { return getEditedWidgetAreas; },
203 - "getIsWidgetAreaOpen": function() { return getIsWidgetAreaOpen; },
204 - "getParentWidgetAreaBlock": function() { return getParentWidgetAreaBlock; },
205 - "getReferenceWidgetBlocks": function() { return getReferenceWidgetBlocks; },
206 - "getWidget": function() { return getWidget; },
207 - "getWidgetAreaForWidgetId": function() { return getWidgetAreaForWidgetId; },
208 - "getWidgetAreas": function() { return selectors_getWidgetAreas; },
209 - "getWidgets": function() { return selectors_getWidgets; },
210 - "isInserterOpened": function() { return isInserterOpened; },
211 - "isListViewOpened": function() { return isListViewOpened; },
212 - "isSavingWidgetAreas": function() { return isSavingWidgetAreas; }
213 -});
214 -
215 -// NAMESPACE OBJECT: ./packages/edit-widgets/build-module/blocks/widget-area/index.js
216 -var widget_area_namespaceObject = {};
217 -__webpack_require__.r(widget_area_namespaceObject);
218 -__webpack_require__.d(widget_area_namespaceObject, {
219 - "metadata": function() { return metadata; },
220 - "name": function() { return widget_area_name; },
221 - "settings": function() { return settings; }
222 -});
223 -
224 -;// CONCATENATED MODULE: external ["wp","element"]
225 -var external_wp_element_namespaceObject = window["wp"]["element"];
226 -;// CONCATENATED MODULE: external ["wp","blocks"]
227 -var external_wp_blocks_namespaceObject = window["wp"]["blocks"];
228 -;// CONCATENATED MODULE: external ["wp","data"]
229 -var external_wp_data_namespaceObject = window["wp"]["data"];
230 -;// CONCATENATED MODULE: external ["wp","blockLibrary"]
231 -var external_wp_blockLibrary_namespaceObject = window["wp"]["blockLibrary"];
232 -;// CONCATENATED MODULE: external ["wp","coreData"]
233 -var external_wp_coreData_namespaceObject = window["wp"]["coreData"];
234 -;// CONCATENATED MODULE: external ["wp","widgets"]
235 -var external_wp_widgets_namespaceObject = window["wp"]["widgets"];
236 -;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
237 -function _extends() {
238 - _extends = Object.assign || function (target) {
239 - for (var i = 1; i < arguments.length; i++) {
240 - var source = arguments[i];
241 -
242 - for (var key in source) {
243 - if (Object.prototype.hasOwnProperty.call(source, key)) {
244 - target[key] = source[key];
245 - }
246 - }
247 - }
248 -
249 - return target;
250 - };
251 -
252 - return _extends.apply(this, arguments);
253 -}
254 -// EXTERNAL MODULE: ./node_modules/classnames/index.js
255 -var classnames = __webpack_require__(4184);
256 -var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
257 -;// CONCATENATED MODULE: external ["wp","components"]
258 -var external_wp_components_namespaceObject = window["wp"]["components"];
259 -;// CONCATENATED MODULE: external ["wp","i18n"]
260 -var external_wp_i18n_namespaceObject = window["wp"]["i18n"];
261 -;// CONCATENATED MODULE: external ["wp","primitives"]
262 -var external_wp_primitives_namespaceObject = window["wp"]["primitives"];
263 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/check.js
264 -
265 -
266 -/**
267 - * WordPress dependencies
268 - */
269 -
270 -const check = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
271 - xmlns: "http://www.w3.org/2000/svg",
272 - viewBox: "0 0 24 24"
273 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
274 - d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
275 -}));
276 -/* harmony default export */ var library_check = (check);
277 -//# sourceMappingURL=check.js.map
278 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/star-filled.js
279 -
280 -
281 -/**
282 - * WordPress dependencies
283 - */
284 -
285 -const starFilled = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
286 - xmlns: "http://www.w3.org/2000/svg",
287 - viewBox: "0 0 24 24"
288 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
289 - d: "M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z"
290 -}));
291 -/* harmony default export */ var star_filled = (starFilled);
292 -//# sourceMappingURL=star-filled.js.map
293 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/star-empty.js
294 -
295 -
296 -/**
297 - * WordPress dependencies
298 - */
299 -
300 -const starEmpty = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
301 - xmlns: "http://www.w3.org/2000/svg",
302 - viewBox: "0 0 24 24"
303 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
304 - fillRule: "evenodd",
305 - d: "M9.706 8.646a.25.25 0 01-.188.137l-4.626.672a.25.25 0 00-.139.427l3.348 3.262a.25.25 0 01.072.222l-.79 4.607a.25.25 0 00.362.264l4.138-2.176a.25.25 0 01.233 0l4.137 2.175a.25.25 0 00.363-.263l-.79-4.607a.25.25 0 01.072-.222l3.347-3.262a.25.25 0 00-.139-.427l-4.626-.672a.25.25 0 01-.188-.137l-2.069-4.192a.25.25 0 00-.448 0L9.706 8.646zM12 7.39l-.948 1.921a1.75 1.75 0 01-1.317.957l-2.12.308 1.534 1.495c.412.402.6.982.503 1.55l-.362 2.11 1.896-.997a1.75 1.75 0 011.629 0l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39z",
306 - clipRule: "evenodd"
307 -}));
308 -/* harmony default export */ var star_empty = (starEmpty);
309 -//# sourceMappingURL=star-empty.js.map
310 -;// CONCATENATED MODULE: external ["wp","viewport"]
311 -var external_wp_viewport_namespaceObject = window["wp"]["viewport"];
312 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/close-small.js
313 -
314 -
315 -/**
316 - * WordPress dependencies
317 - */
318 -
319 -const closeSmall = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
320 - xmlns: "http://www.w3.org/2000/svg",
321 - viewBox: "0 0 24 24"
322 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
323 - 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"
324 -}));
325 -/* harmony default export */ var close_small = (closeSmall);
326 -//# sourceMappingURL=close-small.js.map
327 -;// CONCATENATED MODULE: external "lodash"
328 -var external_lodash_namespaceObject = window["lodash"];
329 -;// CONCATENATED MODULE: ./packages/interface/build-module/store/reducer.js
330 -/**
331 - * External dependencies
332 - */
333 -
334 -/**
335 - * WordPress dependencies
336 - */
337 -
338 -
339 -/**
340 - * Reducer to keep tract of the active area per scope.
341 - *
342 - * @param {boolean} state Previous state.
343 - * @param {Object} action Action object.
344 - * @param {string} action.type Action type.
345 - * @param {string} action.itemType Type of item.
346 - * @param {string} action.scope Item scope.
347 - * @param {string} action.item Item name.
348 - *
349 - * @return {Object} Updated state.
350 - */
351 -
352 -function singleEnableItems() {
353 - let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
354 - let {
355 - type,
356 - itemType,
357 - scope,
358 - item
359 - } = arguments.length > 1 ? arguments[1] : undefined;
360 -
361 - if (type !== 'SET_SINGLE_ENABLE_ITEM' || !itemType || !scope) {
362 - return state;
363 - }
364 -
365 - return { ...state,
366 - [itemType]: { ...state[itemType],
367 - [scope]: item || null
368 - }
369 - };
370 -}
371 -/**
372 - * Reducer keeping track of the "pinned" items per scope.
373 - *
374 - * @param {boolean} state Previous state.
375 - * @param {Object} action Action object.
376 - * @param {string} action.type Action type.
377 - * @param {string} action.itemType Type of item.
378 - * @param {string} action.scope Item scope.
379 - * @param {string} action.item Item name.
380 - * @param {boolean} action.isEnable Whether the item is pinned.
381 - *
382 - * @return {Object} Updated state.
383 - */
384 -
385 -function multipleEnableItems() {
386 - let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
387 - let {
388 - type,
389 - itemType,
390 - scope,
391 - item,
392 - isEnable
393 - } = arguments.length > 1 ? arguments[1] : undefined;
394 -
395 - if (type !== 'SET_MULTIPLE_ENABLE_ITEM' || !itemType || !scope || !item || (0,external_lodash_namespaceObject.get)(state, [itemType, scope, item]) === isEnable) {
396 - return state;
397 - }
398 -
399 - const currentTypeState = state[itemType] || {};
400 - const currentScopeState = currentTypeState[scope] || {};
401 - return { ...state,
402 - [itemType]: { ...currentTypeState,
403 - [scope]: { ...currentScopeState,
404 - [item]: isEnable || false
405 - }
406 - }
407 - };
408 -}
409 -/**
410 - * Reducer returning the defaults for user preferences.
411 - *
412 - * This is kept intentionally separate from the preferences
413 - * themselves so that defaults are not persisted.
414 - *
415 - * @param {Object} state Current state.
416 - * @param {Object} action Dispatched action.
417 - *
418 - * @return {Object} Updated state.
419 - */
420 -
421 -const preferenceDefaults = (0,external_wp_data_namespaceObject.combineReducers)({
422 - features() {
423 - let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
424 - let action = arguments.length > 1 ? arguments[1] : undefined;
425 -
426 - if (action.type === 'SET_FEATURE_DEFAULTS') {
427 - const {
428 - scope,
429 - defaults
430 - } = action;
431 - return { ...state,
432 - [scope]: { ...state[scope],
433 - ...defaults
434 - }
435 - };
436 - }
437 -
438 - return state;
439 - }
440 -
441 -});
442 -/**
443 - * Reducer returning the user preferences.
444 - *
445 - * @param {Object} state Current state.
446 - * @param {Object} action Dispatched action.
447 - *
448 - * @return {Object} Updated state.
449 - */
450 -
451 -const preferences = (0,external_wp_data_namespaceObject.combineReducers)({
452 - features() {
453 - let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
454 - let action = arguments.length > 1 ? arguments[1] : undefined;
455 -
456 - if (action.type === 'SET_FEATURE_VALUE') {
457 - const {
458 - scope,
459 - featureName,
460 - value
461 - } = action;
462 - return { ...state,
463 - [scope]: { ...state[scope],
464 - [featureName]: value
465 - }
466 - };
467 - }
468 -
469 - return state;
470 - }
471 -
472 -});
473 -const enableItems = (0,external_wp_data_namespaceObject.combineReducers)({
474 - singleEnableItems,
475 - multipleEnableItems
476 -});
477 -/* harmony default export */ var reducer = ((0,external_wp_data_namespaceObject.combineReducers)({
478 - enableItems,
479 - preferenceDefaults,
480 - preferences
481 -}));
482 -//# sourceMappingURL=reducer.js.map
483 -;// CONCATENATED MODULE: ./packages/interface/build-module/store/actions.js
484 -/**
485 - * Returns an action object used in signalling that an active area should be changed.
486 - *
487 - * @param {string} itemType Type of item.
488 - * @param {string} scope Item scope.
489 - * @param {string} item Item identifier.
490 - *
491 - * @return {Object} Action object.
492 - */
493 -function setSingleEnableItem(itemType, scope, item) {
494 - return {
495 - type: 'SET_SINGLE_ENABLE_ITEM',
496 - itemType,
497 - scope,
498 - item
499 - };
500 -}
501 -/**
502 - * Returns an action object used in signalling that a complementary item should be enabled.
503 - *
504 - * @param {string} scope Complementary area scope.
505 - * @param {string} area Area identifier.
506 - *
507 - * @return {Object} Action object.
508 - */
509 -
510 -
511 -function enableComplementaryArea(scope, area) {
512 - return setSingleEnableItem('complementaryArea', scope, area);
513 -}
514 -/**
515 - * Returns an action object used in signalling that the complementary area of a given scope should be disabled.
516 - *
517 - * @param {string} scope Complementary area scope.
518 - *
519 - * @return {Object} Action object.
520 - */
521 -
522 -function disableComplementaryArea(scope) {
523 - return setSingleEnableItem('complementaryArea', scope, undefined);
524 -}
525 -/**
526 - * Returns an action object to make an area enabled/disabled.
527 - *
528 - * @param {string} itemType Type of item.
529 - * @param {string} scope Item scope.
530 - * @param {string} item Item identifier.
531 - * @param {boolean} isEnable Boolean indicating if an area should be pinned or not.
532 - *
533 - * @return {Object} Action object.
534 - */
535 -
536 -function setMultipleEnableItem(itemType, scope, item, isEnable) {
537 - return {
538 - type: 'SET_MULTIPLE_ENABLE_ITEM',
539 - itemType,
540 - scope,
541 - item,
542 - isEnable
543 - };
544 -}
545 -/**
546 - * Returns an action object used in signalling that an item should be pinned.
547 - *
548 - * @param {string} scope Item scope.
549 - * @param {string} itemId Item identifier.
550 - *
551 - * @return {Object} Action object.
552 - */
553 -
554 -
555 -function pinItem(scope, itemId) {
556 - return setMultipleEnableItem('pinnedItems', scope, itemId, true);
557 -}
558 -/**
559 - * Returns an action object used in signalling that an item should be unpinned.
560 - *
561 - * @param {string} scope Item scope.
562 - * @param {string} itemId Item identifier.
563 - *
564 - * @return {Object} Action object.
565 - */
566 -
567 -function unpinItem(scope, itemId) {
568 - return setMultipleEnableItem('pinnedItems', scope, itemId, false);
569 -}
570 -/**
571 - * Returns an action object used in signalling that a feature should be toggled.
572 - *
573 - * @param {string} scope The feature scope (e.g. core/edit-post).
574 - * @param {string} featureName The feature name.
575 - */
576 -
577 -function toggleFeature(scope, featureName) {
578 - return function (_ref) {
579 - let {
580 - select,
581 - dispatch
582 - } = _ref;
583 - const currentValue = select.isFeatureActive(scope, featureName);
584 - dispatch.setFeatureValue(scope, featureName, !currentValue);
585 - };
586 -}
587 -/**
588 - * Returns an action object used in signalling that a feature should be set to
589 - * a true or false value
590 - *
591 - * @param {string} scope The feature scope (e.g. core/edit-post).
592 - * @param {string} featureName The feature name.
593 - * @param {boolean} value The value to set.
594 - *
595 - * @return {Object} Action object.
596 - */
597 -
598 -function setFeatureValue(scope, featureName, value) {
599 - return {
600 - type: 'SET_FEATURE_VALUE',
601 - scope,
602 - featureName,
603 - value: !!value
604 - };
605 -}
606 -/**
607 - * Returns an action object used in signalling that defaults should be set for features.
608 - *
609 - * @param {string} scope The feature scope (e.g. core/edit-post).
610 - * @param {Object<string, boolean>} defaults A key/value map of feature names to values.
611 - *
612 - * @return {Object} Action object.
613 - */
614 -
615 -function setFeatureDefaults(scope, defaults) {
616 - return {
617 - type: 'SET_FEATURE_DEFAULTS',
618 - scope,
619 - defaults
620 - };
621 -}
622 -//# sourceMappingURL=actions.js.map
623 -;// CONCATENATED MODULE: ./packages/interface/build-module/store/selectors.js
624 -/**
625 - * External dependencies
626 - */
627 -
628 -/**
629 - * Returns the item that is enabled in a given scope.
630 - *
631 - * @param {Object} state Global application state.
632 - * @param {string} itemType Type of item.
633 - * @param {string} scope Item scope.
634 - *
635 - * @return {?string|null} The item that is enabled in the passed scope and type.
636 - */
637 -
638 -function getSingleEnableItem(state, itemType, scope) {
639 - return (0,external_lodash_namespaceObject.get)(state.enableItems.singleEnableItems, [itemType, scope]);
640 -}
641 -/**
642 - * Returns the complementary area that is active in a given scope.
643 - *
644 - * @param {Object} state Global application state.
645 - * @param {string} scope Item scope.
646 - *
647 - * @return {string} The complementary area that is active in the given scope.
648 - */
649 -
650 -
651 -function getActiveComplementaryArea(state, scope) {
652 - return getSingleEnableItem(state, 'complementaryArea', scope);
653 -}
654 -/**
655 - * Returns a boolean indicating if an item is enabled or not in a given scope.
656 - *
657 - * @param {Object} state Global application state.
658 - * @param {string} itemType Type of item.
659 - * @param {string} scope Scope.
660 - * @param {string} item Item to check.
661 - *
662 - * @return {boolean|undefined} True if the item is enabled, false otherwise if the item is explicitly disabled, and undefined if there is no information for that item.
663 - */
664 -
665 -function isMultipleEnabledItemEnabled(state, itemType, scope, item) {
666 - return (0,external_lodash_namespaceObject.get)(state.enableItems.multipleEnableItems, [itemType, scope, item]);
667 -}
668 -/**
669 - * Returns a boolean indicating if an item is pinned or not.
670 - *
671 - * @param {Object} state Global application state.
672 - * @param {string} scope Scope.
673 - * @param {string} item Item to check.
674 - *
675 - * @return {boolean} True if the item is pinned and false otherwise.
676 - */
677 -
678 -
679 -function isItemPinned(state, scope, item) {
680 - return isMultipleEnabledItemEnabled(state, 'pinnedItems', scope, item) !== false;
681 -}
682 -/**
683 - * Returns a boolean indicating whether a feature is active for a particular
684 - * scope.
685 - *
686 - * @param {Object} state The store state.
687 - * @param {string} scope The scope of the feature (e.g. core/edit-post).
688 - * @param {string} featureName The name of the feature.
689 - *
690 - * @return {boolean} Is the feature enabled?
691 - */
692 -
693 -function isFeatureActive(state, scope, featureName) {
694 - var _state$preferences$fe, _state$preferenceDefa;
695 -
696 - const featureValue = (_state$preferences$fe = state.preferences.features[scope]) === null || _state$preferences$fe === void 0 ? void 0 : _state$preferences$fe[featureName];
697 - const defaultedFeatureValue = featureValue !== undefined ? featureValue : (_state$preferenceDefa = state.preferenceDefaults.features[scope]) === null || _state$preferenceDefa === void 0 ? void 0 : _state$preferenceDefa[featureName];
698 - return !!defaultedFeatureValue;
699 -}
700 -//# sourceMappingURL=selectors.js.map
701 -;// CONCATENATED MODULE: ./packages/interface/build-module/store/constants.js
702 -/**
703 - * The identifier for the data store.
704 - *
705 - * @type {string}
706 - */
707 -const STORE_NAME = 'core/interface';
708 -//# sourceMappingURL=constants.js.map
709 -;// CONCATENATED MODULE: ./packages/interface/build-module/store/index.js
710 -/**
711 - * WordPress dependencies
712 - */
713 -
714 -/**
715 - * Internal dependencies
716 - */
717 -
718 -
719 -
720 -
721 -
722 -/**
723 - * Store definition for the interface namespace.
724 - *
725 - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
726 - *
727 - * @type {Object}
728 - */
729 -
730 -const store = (0,external_wp_data_namespaceObject.createReduxStore)(STORE_NAME, {
731 - reducer: reducer,
732 - actions: actions_namespaceObject,
733 - selectors: selectors_namespaceObject,
734 - persist: ['enableItems', 'preferences'],
735 - __experimentalUseThunks: true
736 -}); // Once we build a more generic persistence plugin that works across types of stores
737 -// we'd be able to replace this with a register call.
738 -
739 -(0,external_wp_data_namespaceObject.registerStore)(STORE_NAME, {
740 - reducer: reducer,
741 - actions: actions_namespaceObject,
742 - selectors: selectors_namespaceObject,
743 - persist: ['enableItems', 'preferences'],
744 - __experimentalUseThunks: true
745 -});
746 -//# sourceMappingURL=index.js.map
747 -;// CONCATENATED MODULE: external ["wp","plugins"]
748 -var external_wp_plugins_namespaceObject = window["wp"]["plugins"];
749 -;// CONCATENATED MODULE: ./packages/interface/build-module/components/complementary-area-context/index.js
750 -/**
751 - * WordPress dependencies
752 - */
753 -
754 -/* harmony default export */ var complementary_area_context = ((0,external_wp_plugins_namespaceObject.withPluginContext)((context, ownProps) => {
755 - return {
756 - icon: ownProps.icon || context.icon,
757 - identifier: ownProps.identifier || `${context.name}/${ownProps.name}`
758 - };
759 -}));
760 -//# sourceMappingURL=index.js.map
761 -;// CONCATENATED MODULE: ./packages/interface/build-module/components/complementary-area-toggle/index.js
762 -
763 -
764 -
765 -/**
766 - * External dependencies
767 - */
768 -
769 -/**
770 - * WordPress dependencies
771 - */
772 -
773 -
774 -
775 -/**
776 - * Internal dependencies
777 - */
778 -
779 -
780 -
781 -
782 -function ComplementaryAreaToggle(_ref) {
783 - let {
784 - as = external_wp_components_namespaceObject.Button,
785 - scope,
786 - identifier,
787 - icon,
788 - selectedIcon,
789 - ...props
790 - } = _ref;
791 - const ComponentToUse = as;
792 - const isSelected = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getActiveComplementaryArea(scope) === identifier, [identifier]);
793 - const {
794 - enableComplementaryArea,
795 - disableComplementaryArea
796 - } = (0,external_wp_data_namespaceObject.useDispatch)(store);
797 - return (0,external_wp_element_namespaceObject.createElement)(ComponentToUse, _extends({
798 - icon: selectedIcon && isSelected ? selectedIcon : icon,
799 - onClick: () => {
800 - if (isSelected) {
801 - disableComplementaryArea(scope);
802 - } else {
803 - enableComplementaryArea(scope, identifier);
804 - }
805 - }
806 - }, (0,external_lodash_namespaceObject.omit)(props, ['name'])));
807 -}
808 -
809 -/* harmony default export */ var complementary_area_toggle = (complementary_area_context(ComplementaryAreaToggle));
810 -//# sourceMappingURL=index.js.map
811 -;// CONCATENATED MODULE: ./packages/interface/build-module/components/complementary-area-header/index.js
812 -
813 -
814 -
815 -/**
816 - * External dependencies
817 - */
818 -
819 -/**
820 - * WordPress dependencies
821 - */
822 -
823 -
824 -/**
825 - * Internal dependencies
826 - */
827 -
828 -
829 -
830 -const ComplementaryAreaHeader = _ref => {
831 - let {
832 - smallScreenTitle,
833 - children,
834 - className,
835 - toggleButtonProps
836 - } = _ref;
837 - const toggleButton = (0,external_wp_element_namespaceObject.createElement)(complementary_area_toggle, _extends({
838 - icon: close_small
839 - }, toggleButtonProps));
840 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", {
841 - className: "components-panel__header interface-complementary-area-header__small"
842 - }, smallScreenTitle && (0,external_wp_element_namespaceObject.createElement)("span", {
843 - className: "interface-complementary-area-header__small-title"
844 - }, smallScreenTitle), toggleButton), (0,external_wp_element_namespaceObject.createElement)("div", {
845 - className: classnames_default()('components-panel__header', 'interface-complementary-area-header', className),
846 - tabIndex: -1
847 - }, children, toggleButton));
848 -};
849 -
850 -/* harmony default export */ var complementary_area_header = (ComplementaryAreaHeader);
851 -//# sourceMappingURL=index.js.map
852 -;// CONCATENATED MODULE: ./packages/interface/build-module/components/action-item/index.js
853 -
854 -
855 -
856 -/**
857 - * External dependencies
858 - */
859 -
860 -/**
861 - * WordPress dependencies
862 - */
863 -
864 -
865 -
866 -
867 -function ActionItemSlot(_ref) {
868 - let {
869 - name,
870 - as: Component = external_wp_components_namespaceObject.ButtonGroup,
871 - fillProps = {},
872 - bubblesVirtually,
873 - ...props
874 - } = _ref;
875 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Slot, {
876 - name: name,
877 - bubblesVirtually: bubblesVirtually,
878 - fillProps: fillProps
879 - }, fills => {
880 - if ((0,external_lodash_namespaceObject.isEmpty)(external_wp_element_namespaceObject.Children.toArray(fills))) {
881 - return null;
882 - } // Special handling exists for backward compatibility.
883 - // It ensures that menu items created by plugin authors aren't
884 - // duplicated with automatically injected menu items coming
885 - // from pinnable plugin sidebars.
886 - // @see https://github.com/WordPress/gutenberg/issues/14457
887 -
888 -
889 - const initializedByPlugins = [];
890 - external_wp_element_namespaceObject.Children.forEach(fills, _ref2 => {
891 - let {
892 - props: {
893 - __unstableExplicitMenuItem,
894 - __unstableTarget
895 - }
896 - } = _ref2;
897 -
898 - if (__unstableTarget && __unstableExplicitMenuItem) {
899 - initializedByPlugins.push(__unstableTarget);
900 - }
901 - });
902 - const children = external_wp_element_namespaceObject.Children.map(fills, child => {
903 - if (!child.props.__unstableExplicitMenuItem && initializedByPlugins.includes(child.props.__unstableTarget)) {
904 - return null;
905 - }
906 -
907 - return child;
908 - });
909 - return (0,external_wp_element_namespaceObject.createElement)(Component, props, children);
910 - });
911 -}
912 -
913 -function ActionItem(_ref3) {
914 - let {
915 - name,
916 - as: Component = external_wp_components_namespaceObject.Button,
917 - onClick,
918 - ...props
919 - } = _ref3;
920 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Fill, {
921 - name: name
922 - }, _ref4 => {
923 - let {
924 - onClick: fpOnClick
925 - } = _ref4;
926 - return (0,external_wp_element_namespaceObject.createElement)(Component, _extends({
927 - onClick: onClick || fpOnClick ? function () {
928 - (onClick || external_lodash_namespaceObject.noop)(...arguments);
929 - (fpOnClick || external_lodash_namespaceObject.noop)(...arguments);
930 - } : undefined
931 - }, props));
932 - });
933 -}
934 -
935 -ActionItem.Slot = ActionItemSlot;
936 -/* harmony default export */ var action_item = (ActionItem);
937 -//# sourceMappingURL=index.js.map
938 -;// CONCATENATED MODULE: ./packages/interface/build-module/components/complementary-area-more-menu-item/index.js
939 -
940 -
941 -
942 -/**
943 - * External dependencies
944 - */
945 -
946 -/**
947 - * WordPress dependencies
948 - */
949 -
950 -
951 -
952 -/**
953 - * Internal dependencies
954 - */
955 -
956 -
957 -
958 -
959 -const PluginsMenuItem = props => // Menu item is marked with unstable prop for backward compatibility.
960 -// They are removed so they don't leak to DOM elements.
961 -// @see https://github.com/WordPress/gutenberg/issues/14457
962 -(0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, (0,external_lodash_namespaceObject.omit)(props, ['__unstableExplicitMenuItem', '__unstableTarget']));
963 -
964 -function ComplementaryAreaMoreMenuItem(_ref) {
965 - let {
966 - scope,
967 - target,
968 - __unstableExplicitMenuItem,
969 - ...props
970 - } = _ref;
971 - return (0,external_wp_element_namespaceObject.createElement)(complementary_area_toggle, _extends({
972 - as: toggleProps => {
973 - return (0,external_wp_element_namespaceObject.createElement)(action_item, _extends({
974 - __unstableExplicitMenuItem: __unstableExplicitMenuItem,
975 - __unstableTarget: `${scope}/${target}`,
976 - as: PluginsMenuItem,
977 - name: `${scope}/plugin-more-menu`
978 - }, toggleProps));
979 - },
980 - role: "menuitemcheckbox",
981 - selectedIcon: library_check,
982 - name: target,
983 - scope: scope
984 - }, props));
985 -}
986 -//# sourceMappingURL=index.js.map
987 -;// CONCATENATED MODULE: ./packages/interface/build-module/components/pinned-items/index.js
988 -
989 -
990 -
991 -/**
992 - * External dependencies
993 - */
994 -
995 -
996 -/**
997 - * WordPress dependencies
998 - */
999 -
1000 -
1001 -
1002 -function PinnedItems(_ref) {
1003 - let {
1004 - scope,
1005 - ...props
1006 - } = _ref;
1007 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Fill, _extends({
1008 - name: `PinnedItems/${scope}`
1009 - }, props));
1010 -}
1011 -
1012 -function PinnedItemsSlot(_ref2) {
1013 - let {
1014 - scope,
1015 - className,
1016 - ...props
1017 - } = _ref2;
1018 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Slot, _extends({
1019 - name: `PinnedItems/${scope}`
1020 - }, props), fills => !(0,external_lodash_namespaceObject.isEmpty)(fills) && (0,external_wp_element_namespaceObject.createElement)("div", {
1021 - className: classnames_default()(className, 'interface-pinned-items')
1022 - }, fills));
1023 -}
1024 -
1025 -PinnedItems.Slot = PinnedItemsSlot;
1026 -/* harmony default export */ var pinned_items = (PinnedItems);
1027 -//# sourceMappingURL=index.js.map
1028 -;// CONCATENATED MODULE: ./packages/interface/build-module/components/complementary-area/index.js
1029 -
1030 -
1031 -
1032 -/**
1033 - * External dependencies
1034 - */
1035 -
1036 -/**
1037 - * WordPress dependencies
1038 - */
1039 -
1040 -
1041 -
1042 -
1043 -
1044 -
1045 -
1046 -/**
1047 - * Internal dependencies
1048 - */
1049 -
1050 -
1051 -
1052 -
1053 -
1054 -
1055 -
1056 -
1057 -function ComplementaryAreaSlot(_ref) {
1058 - let {
1059 - scope,
1060 - ...props
1061 - } = _ref;
1062 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Slot, _extends({
1063 - name: `ComplementaryArea/${scope}`
1064 - }, props));
1065 -}
1066 -
1067 -function ComplementaryAreaFill(_ref2) {
1068 - let {
1069 - scope,
1070 - children,
1071 - className
1072 - } = _ref2;
1073 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Fill, {
1074 - name: `ComplementaryArea/${scope}`
1075 - }, (0,external_wp_element_namespaceObject.createElement)("div", {
1076 - className: className
1077 - }, children));
1078 -}
1079 -
1080 -function useAdjustComplementaryListener(scope, identifier, activeArea, isActive, isSmall) {
1081 - const previousIsSmall = (0,external_wp_element_namespaceObject.useRef)(false);
1082 - const shouldOpenWhenNotSmall = (0,external_wp_element_namespaceObject.useRef)(false);
1083 - const {
1084 - enableComplementaryArea,
1085 - disableComplementaryArea
1086 - } = (0,external_wp_data_namespaceObject.useDispatch)(store);
1087 - (0,external_wp_element_namespaceObject.useEffect)(() => {
1088 - // If the complementary area is active and the editor is switching from a big to a small window size.
1089 - if (isActive && isSmall && !previousIsSmall.current) {
1090 - // Disable the complementary area.
1091 - disableComplementaryArea(scope); // Flag the complementary area to be reopened when the window size goes from small to big.
1092 -
1093 - shouldOpenWhenNotSmall.current = true;
1094 - } else if ( // If there is a flag indicating the complementary area should be enabled when we go from small to big window size
1095 - // and we are going from a small to big window size.
1096 - shouldOpenWhenNotSmall.current && !isSmall && previousIsSmall.current) {
1097 - // Remove the flag indicating the complementary area should be enabled.
1098 - shouldOpenWhenNotSmall.current = false; // Enable the complementary area.
1099 -
1100 - enableComplementaryArea(scope, identifier);
1101 - } else if ( // If the flag is indicating the current complementary should be reopened but another complementary area becomes active,
1102 - // remove the flag.
1103 - shouldOpenWhenNotSmall.current && activeArea && activeArea !== identifier) {
1104 - shouldOpenWhenNotSmall.current = false;
1105 - }
1106 -
1107 - if (isSmall !== previousIsSmall.current) {
1108 - previousIsSmall.current = isSmall;
1109 - }
1110 - }, [isActive, isSmall, scope, identifier, activeArea]);
1111 -}
1112 -
1113 -function ComplementaryArea(_ref3) {
1114 - let {
1115 - children,
1116 - className,
1117 - closeLabel = (0,external_wp_i18n_namespaceObject.__)('Close plugin'),
1118 - identifier,
1119 - header,
1120 - headerClassName,
1121 - icon,
1122 - isPinnable = true,
1123 - panelClassName,
1124 - scope,
1125 - name,
1126 - smallScreenTitle,
1127 - title,
1128 - toggleShortcut,
1129 - isActiveByDefault,
1130 - showIconLabels = false
1131 - } = _ref3;
1132 - const {
1133 - isActive,
1134 - isPinned,
1135 - activeArea,
1136 - isSmall,
1137 - isLarge
1138 - } = (0,external_wp_data_namespaceObject.useSelect)(select => {
1139 - const {
1140 - getActiveComplementaryArea,
1141 - isItemPinned
1142 - } = select(store);
1143 -
1144 - const _activeArea = getActiveComplementaryArea(scope);
1145 -
1146 - return {
1147 - isActive: _activeArea === identifier,
1148 - isPinned: isItemPinned(scope, identifier),
1149 - activeArea: _activeArea,
1150 - isSmall: select(external_wp_viewport_namespaceObject.store).isViewportMatch('< medium'),
1151 - isLarge: select(external_wp_viewport_namespaceObject.store).isViewportMatch('large')
1152 - };
1153 - }, [identifier, scope]);
1154 - useAdjustComplementaryListener(scope, identifier, activeArea, isActive, isSmall);
1155 - const {
1156 - enableComplementaryArea,
1157 - disableComplementaryArea,
1158 - pinItem,
1159 - unpinItem
1160 - } = (0,external_wp_data_namespaceObject.useDispatch)(store);
1161 - (0,external_wp_element_namespaceObject.useEffect)(() => {
1162 - if (isActiveByDefault && activeArea === undefined && !isSmall) {
1163 - enableComplementaryArea(scope, identifier);
1164 - }
1165 - }, [activeArea, isActiveByDefault, scope, identifier, isSmall]);
1166 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, isPinnable && (0,external_wp_element_namespaceObject.createElement)(pinned_items, {
1167 - scope: scope
1168 - }, isPinned && (0,external_wp_element_namespaceObject.createElement)(complementary_area_toggle, {
1169 - scope: scope,
1170 - identifier: identifier,
1171 - isPressed: isActive && (!showIconLabels || isLarge),
1172 - "aria-expanded": isActive,
1173 - label: title,
1174 - icon: showIconLabels ? library_check : icon,
1175 - showTooltip: !showIconLabels,
1176 - variant: showIconLabels ? 'tertiary' : undefined
1177 - })), name && isPinnable && (0,external_wp_element_namespaceObject.createElement)(ComplementaryAreaMoreMenuItem, {
1178 - target: name,
1179 - scope: scope,
1180 - icon: icon
1181 - }, title), isActive && (0,external_wp_element_namespaceObject.createElement)(ComplementaryAreaFill, {
1182 - className: classnames_default()('interface-complementary-area', className),
1183 - scope: scope
1184 - }, (0,external_wp_element_namespaceObject.createElement)(complementary_area_header, {
1185 - className: headerClassName,
1186 - closeLabel: closeLabel,
1187 - onClose: () => disableComplementaryArea(scope),
1188 - smallScreenTitle: smallScreenTitle,
1189 - toggleButtonProps: {
1190 - label: closeLabel,
1191 - shortcut: toggleShortcut,
1192 - scope,
1193 - identifier
1194 - }
1195 - }, header || (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("strong", null, title), isPinnable && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
1196 - className: "interface-complementary-area__pin-unpin-item",
1197 - icon: isPinned ? star_filled : star_empty,
1198 - label: isPinned ? (0,external_wp_i18n_namespaceObject.__)('Unpin from toolbar') : (0,external_wp_i18n_namespaceObject.__)('Pin to toolbar'),
1199 - onClick: () => (isPinned ? unpinItem : pinItem)(scope, identifier),
1200 - isPressed: isPinned,
1201 - "aria-expanded": isPinned
1202 - }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Panel, {
1203 - className: panelClassName
1204 - }, children)));
1205 -}
1206 -
1207 -const ComplementaryAreaWrapped = complementary_area_context(ComplementaryArea);
1208 -ComplementaryAreaWrapped.Slot = ComplementaryAreaSlot;
1209 -/* harmony default export */ var complementary_area = (ComplementaryAreaWrapped);
1210 -//# sourceMappingURL=index.js.map
1211 -;// CONCATENATED MODULE: external ["wp","compose"]
1212 -var external_wp_compose_namespaceObject = window["wp"]["compose"];
1213 -;// CONCATENATED MODULE: ./packages/interface/build-module/components/interface-skeleton/index.js
1214 -
1215 -
1216 -
1217 -/**
1218 - * External dependencies
1219 - */
1220 -
1221 -/**
1222 - * WordPress dependencies
1223 - */
1224 -
1225 -/**
1226 - * WordPress dependencies
1227 - */
1228 -
1229 -
1230 -
1231 -
1232 -
1233 -
1234 -function useHTMLClass(className) {
1235 - (0,external_wp_element_namespaceObject.useEffect)(() => {
1236 - const element = document && document.querySelector(`html:not(.${className})`);
1237 -
1238 - if (!element) {
1239 - return;
1240 - }
1241 -
1242 - element.classList.toggle(className);
1243 - return () => {
1244 - element.classList.toggle(className);
1245 - };
1246 - }, [className]);
1247 -}
1248 -
1249 -function InterfaceSkeleton(_ref, ref) {
1250 - let {
1251 - footer,
1252 - header,
1253 - sidebar,
1254 - secondarySidebar,
1255 - notices,
1256 - content,
1257 - drawer,
1258 - actions,
1259 - labels,
1260 - className,
1261 - shortcuts
1262 - } = _ref;
1263 - const navigateRegionsProps = (0,external_wp_components_namespaceObject.__unstableUseNavigateRegions)(shortcuts);
1264 - useHTMLClass('interface-interface-skeleton__html-container');
1265 - const defaultLabels = {
1266 - /* translators: accessibility text for the nav bar landmark region. */
1267 - drawer: (0,external_wp_i18n_namespaceObject.__)('Drawer'),
1268 -
1269 - /* translators: accessibility text for the top bar landmark region. */
1270 - header: (0,external_wp_i18n_namespaceObject.__)('Header'),
1271 -
1272 - /* translators: accessibility text for the content landmark region. */
1273 - body: (0,external_wp_i18n_namespaceObject.__)('Content'),
1274 -
1275 - /* translators: accessibility text for the secondary sidebar landmark region. */
1276 - secondarySidebar: (0,external_wp_i18n_namespaceObject.__)('Block Library'),
1277 -
1278 - /* translators: accessibility text for the settings landmark region. */
1279 - sidebar: (0,external_wp_i18n_namespaceObject.__)('Settings'),
1280 -
1281 - /* translators: accessibility text for the publish landmark region. */
1282 - actions: (0,external_wp_i18n_namespaceObject.__)('Publish'),
1283 -
1284 - /* translators: accessibility text for the footer landmark region. */
1285 - footer: (0,external_wp_i18n_namespaceObject.__)('Footer')
1286 - };
1287 - const mergedLabels = { ...defaultLabels,
1288 - ...labels
1289 - };
1290 - return (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, navigateRegionsProps, {
1291 - ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, navigateRegionsProps.ref]),
1292 - className: classnames_default()(className, 'interface-interface-skeleton', navigateRegionsProps.className, !!footer && 'has-footer')
1293 - }), !!drawer && (0,external_wp_element_namespaceObject.createElement)("div", {
1294 - className: "interface-interface-skeleton__drawer",
1295 - role: "region",
1296 - "aria-label": mergedLabels.drawer,
1297 - tabIndex: "-1"
1298 - }, drawer), (0,external_wp_element_namespaceObject.createElement)("div", {
1299 - className: "interface-interface-skeleton__editor"
1300 - }, !!header && (0,external_wp_element_namespaceObject.createElement)("div", {
1301 - className: "interface-interface-skeleton__header",
1302 - role: "region",
1303 - "aria-label": mergedLabels.header,
1304 - tabIndex: "-1"
1305 - }, header), (0,external_wp_element_namespaceObject.createElement)("div", {
1306 - className: "interface-interface-skeleton__body"
1307 - }, !!secondarySidebar && (0,external_wp_element_namespaceObject.createElement)("div", {
1308 - className: "interface-interface-skeleton__secondary-sidebar",
1309 - role: "region",
1310 - "aria-label": mergedLabels.secondarySidebar,
1311 - tabIndex: "-1"
1312 - }, secondarySidebar), !!notices && (0,external_wp_element_namespaceObject.createElement)("div", {
1313 - className: "interface-interface-skeleton__notices"
1314 - }, notices), (0,external_wp_element_namespaceObject.createElement)("div", {
1315 - className: "interface-interface-skeleton__content",
1316 - role: "region",
1317 - "aria-label": mergedLabels.body,
1318 - tabIndex: "-1"
1319 - }, content), !!sidebar && (0,external_wp_element_namespaceObject.createElement)("div", {
1320 - className: "interface-interface-skeleton__sidebar",
1321 - role: "region",
1322 - "aria-label": mergedLabels.sidebar,
1323 - tabIndex: "-1"
1324 - }, sidebar), !!actions && (0,external_wp_element_namespaceObject.createElement)("div", {
1325 - className: "interface-interface-skeleton__actions",
1326 - role: "region",
1327 - "aria-label": mergedLabels.actions,
1328 - tabIndex: "-1"
1329 - }, actions))), !!footer && (0,external_wp_element_namespaceObject.createElement)("div", {
1330 - className: "interface-interface-skeleton__footer",
1331 - role: "region",
1332 - "aria-label": mergedLabels.footer,
1333 - tabIndex: "-1"
1334 - }, footer));
1335 -}
1336 -
1337 -/* harmony default export */ var interface_skeleton = ((0,external_wp_element_namespaceObject.forwardRef)(InterfaceSkeleton));
1338 -//# sourceMappingURL=index.js.map
1339 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/more-vertical.js
1340 -
1341 -
1342 -/**
1343 - * WordPress dependencies
1344 - */
1345 -
1346 -const moreVertical = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
1347 - xmlns: "http://www.w3.org/2000/svg",
1348 - viewBox: "0 0 24 24"
1349 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
1350 - d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z"
1351 -}));
1352 -/* harmony default export */ var more_vertical = (moreVertical);
1353 -//# sourceMappingURL=more-vertical.js.map
1354 -;// CONCATENATED MODULE: ./packages/interface/build-module/components/more-menu-dropdown/index.js
1355 -
1356 -
1357 -/**
1358 - * External dependencies
1359 - */
1360 -
1361 -/**
1362 - * WordPress dependencies
1363 - */
1364 -
1365 -
1366 -
1367 -
1368 -function MoreMenuDropdown(_ref) {
1369 - let {
1370 - as: DropdownComponent = external_wp_components_namespaceObject.DropdownMenu,
1371 - className,
1372 -
1373 - /* translators: button label text should, if possible, be under 16 characters. */
1374 - label = (0,external_wp_i18n_namespaceObject.__)('Options'),
1375 - popoverProps,
1376 - toggleProps,
1377 - children
1378 - } = _ref;
1379 - return (0,external_wp_element_namespaceObject.createElement)(DropdownComponent, {
1380 - className: classnames_default()('interface-more-menu-dropdown', className),
1381 - icon: more_vertical,
1382 - label: label,
1383 - popoverProps: {
1384 - position: 'bottom left',
1385 - ...popoverProps,
1386 - className: classnames_default()('interface-more-menu-dropdown__content', popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.className)
1387 - },
1388 - toggleProps: {
1389 - tooltipPosition: 'bottom',
1390 - ...toggleProps
1391 - }
1392 - }, onClose => children(onClose));
1393 -}
1394 -//# sourceMappingURL=index.js.map
1395 -;// CONCATENATED MODULE: external ["wp","a11y"]
1396 -var external_wp_a11y_namespaceObject = window["wp"]["a11y"];
1397 -;// CONCATENATED MODULE: ./packages/interface/build-module/components/more-menu-feature-toggle/index.js
1398 -
1399 -
1400 -/**
1401 - * WordPress dependencies
1402 - */
1403 -
1404 -
1405 -
1406 -
1407 -
1408 -/**
1409 - * Internal dependencies
1410 - */
1411 -
1412 -
1413 -function MoreMenuFeatureToggle(_ref) {
1414 - let {
1415 - scope,
1416 - label,
1417 - info,
1418 - messageActivated,
1419 - messageDeactivated,
1420 - shortcut,
1421 - feature
1422 - } = _ref;
1423 - const isActive = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).isFeatureActive(scope, feature), [feature]);
1424 - const {
1425 - toggleFeature
1426 - } = (0,external_wp_data_namespaceObject.useDispatch)(store);
1427 -
1428 - const speakMessage = () => {
1429 - if (isActive) {
1430 - (0,external_wp_a11y_namespaceObject.speak)(messageDeactivated || (0,external_wp_i18n_namespaceObject.__)('Feature deactivated'));
1431 - } else {
1432 - (0,external_wp_a11y_namespaceObject.speak)(messageActivated || (0,external_wp_i18n_namespaceObject.__)('Feature activated'));
1433 - }
1434 - };
1435 -
1436 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
1437 - icon: isActive && library_check,
1438 - isSelected: isActive,
1439 - onClick: () => {
1440 - toggleFeature(scope, feature);
1441 - speakMessage();
1442 - },
1443 - role: "menuitemcheckbox",
1444 - info: info,
1445 - shortcut: shortcut
1446 - }, label);
1447 -}
1448 -//# sourceMappingURL=index.js.map
1449 -;// CONCATENATED MODULE: ./packages/interface/build-module/components/index.js
1450 -
1451 -
1452 -
1453 -
1454 -
1455 -
1456 -
1457 -
1458 -//# sourceMappingURL=index.js.map
1459 -;// CONCATENATED MODULE: ./packages/interface/build-module/index.js
1460 -
1461 -
1462 -//# sourceMappingURL=index.js.map
1463 -;// CONCATENATED MODULE: external ["wp","apiFetch"]
1464 -var external_wp_apiFetch_namespaceObject = window["wp"]["apiFetch"];
1465 -var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_namespaceObject);
1466 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/store/reducer.js
1467 -/**
1468 - * WordPress dependencies
1469 - */
1470 -
1471 -/**
1472 - * Controls the open state of the widget areas.
1473 - *
1474 - * @param {Object} state Redux state.
1475 - * @param {Object} action Redux action.
1476 - *
1477 - * @return {Array} Updated state.
1478 - */
1479 -
1480 -function widgetAreasOpenState() {
1481 - let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1482 - let action = arguments.length > 1 ? arguments[1] : undefined;
1483 - const {
1484 - type
1485 - } = action;
1486 -
1487 - switch (type) {
1488 - case 'SET_WIDGET_AREAS_OPEN_STATE':
1489 - {
1490 - return action.widgetAreasOpenState;
1491 - }
1492 -
1493 - case 'SET_IS_WIDGET_AREA_OPEN':
1494 - {
1495 - const {
1496 - clientId,
1497 - isOpen
1498 - } = action;
1499 - return { ...state,
1500 - [clientId]: isOpen
1501 - };
1502 - }
1503 -
1504 - default:
1505 - {
1506 - return state;
1507 - }
1508 - }
1509 -}
1510 -/**
1511 - * Reducer to set the block inserter panel open or closed.
1512 - *
1513 - * Note: this reducer interacts with the list view panel reducer
1514 - * to make sure that only one of the two panels is open at the same time.
1515 - *
1516 - * @param {Object} state Current state.
1517 - * @param {Object} action Dispatched action.
1518 - */
1519 -
1520 -function blockInserterPanel() {
1521 - let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1522 - let action = arguments.length > 1 ? arguments[1] : undefined;
1523 -
1524 - switch (action.type) {
1525 - case 'SET_IS_LIST_VIEW_OPENED':
1526 - return action.isOpen ? false : state;
1527 -
1528 - case 'SET_IS_INSERTER_OPENED':
1529 - return action.value;
1530 - }
1531 -
1532 - return state;
1533 -}
1534 -/**
1535 - * Reducer to set the list view panel open or closed.
1536 - *
1537 - * Note: this reducer interacts with the inserter panel reducer
1538 - * to make sure that only one of the two panels is open at the same time.
1539 - *
1540 - * @param {Object} state Current state.
1541 - * @param {Object} action Dispatched action.
1542 - */
1543 -
1544 -function listViewPanel() {
1545 - let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1546 - let action = arguments.length > 1 ? arguments[1] : undefined;
1547 -
1548 - switch (action.type) {
1549 - case 'SET_IS_INSERTER_OPENED':
1550 - return action.value ? false : state;
1551 -
1552 - case 'SET_IS_LIST_VIEW_OPENED':
1553 - return action.isOpen;
1554 - }
1555 -
1556 - return state;
1557 -}
1558 -/* harmony default export */ var store_reducer = ((0,external_wp_data_namespaceObject.combineReducers)({
1559 - blockInserterPanel,
1560 - listViewPanel,
1561 - widgetAreasOpenState
1562 -}));
1563 -//# sourceMappingURL=reducer.js.map
1564 -;// CONCATENATED MODULE: external ["wp","notices"]
1565 -var external_wp_notices_namespaceObject = window["wp"]["notices"];
1566 -;// CONCATENATED MODULE: external ["wp","blockEditor"]
1567 -var external_wp_blockEditor_namespaceObject = window["wp"]["blockEditor"];
1568 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/store/transformers.js
1569 -/**
1570 - * WordPress dependencies
1571 - */
1572 -
1573 -
1574 -/**
1575 - * Converts a widget entity record into a block.
1576 - *
1577 - * @param {Object} widget The widget entity record.
1578 - * @return {Object} a block (converted from the entity record).
1579 - */
1580 -
1581 -function transformWidgetToBlock(widget) {
1582 - if (widget.id_base === 'block') {
1583 - const parsedBlocks = (0,external_wp_blocks_namespaceObject.parse)(widget.instance.raw.content);
1584 -
1585 - if (!parsedBlocks.length) {
1586 - return (0,external_wp_widgets_namespaceObject.addWidgetIdToBlock)((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {}, []), widget.id);
1587 - }
1588 -
1589 - return (0,external_wp_widgets_namespaceObject.addWidgetIdToBlock)(parsedBlocks[0], widget.id);
1590 - }
1591 -
1592 - let attributes;
1593 -
1594 - if (widget._embedded.about[0].is_multi) {
1595 - attributes = {
1596 - idBase: widget.id_base,
1597 - instance: widget.instance
1598 - };
1599 - } else {
1600 - attributes = {
1601 - id: widget.id
1602 - };
1603 - }
1604 -
1605 - return (0,external_wp_widgets_namespaceObject.addWidgetIdToBlock)((0,external_wp_blocks_namespaceObject.createBlock)('core/legacy-widget', attributes, []), widget.id);
1606 -}
1607 -/**
1608 - * Converts a block to a widget entity record.
1609 - *
1610 - * @param {Object} block The block.
1611 - * @param {Object?} relatedWidget A related widget entity record from the API (optional).
1612 - * @return {Object} the widget object (converted from block).
1613 - */
1614 -
1615 -function transformBlockToWidget(block) {
1616 - let relatedWidget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1617 - let widget;
1618 - const isValidLegacyWidgetBlock = block.name === 'core/legacy-widget' && (block.attributes.id || block.attributes.instance);
1619 -
1620 - if (isValidLegacyWidgetBlock) {
1621 - var _block$attributes$id, _block$attributes$idB, _block$attributes$ins;
1622 -
1623 - widget = { ...relatedWidget,
1624 - id: (_block$attributes$id = block.attributes.id) !== null && _block$attributes$id !== void 0 ? _block$attributes$id : relatedWidget.id,
1625 - id_base: (_block$attributes$idB = block.attributes.idBase) !== null && _block$attributes$idB !== void 0 ? _block$attributes$idB : relatedWidget.id_base,
1626 - instance: (_block$attributes$ins = block.attributes.instance) !== null && _block$attributes$ins !== void 0 ? _block$attributes$ins : relatedWidget.instance
1627 - };
1628 - } else {
1629 - widget = { ...relatedWidget,
1630 - id_base: 'block',
1631 - instance: {
1632 - raw: {
1633 - content: (0,external_wp_blocks_namespaceObject.serialize)(block)
1634 - }
1635 - }
1636 - };
1637 - } // Delete read-only properties.
1638 -
1639 -
1640 - delete widget.rendered;
1641 - delete widget.rendered_form;
1642 - return widget;
1643 -}
1644 -//# sourceMappingURL=transformers.js.map
1645 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/store/utils.js
1646 -/**
1647 - * "Kind" of the navigation post.
1648 - *
1649 - * @type {string}
1650 - */
1651 -const KIND = 'root';
1652 -/**
1653 - * "post type" of the navigation post.
1654 - *
1655 - * @type {string}
1656 - */
1657 -
1658 -const WIDGET_AREA_ENTITY_TYPE = 'sidebar';
1659 -/**
1660 - * "post type" of the widget area post.
1661 - *
1662 - * @type {string}
1663 - */
1664 -
1665 -const POST_TYPE = 'postType';
1666 -/**
1667 - * Builds an ID for a new widget area post.
1668 - *
1669 - * @param {number} widgetAreaId Widget area id.
1670 - * @return {string} An ID.
1671 - */
1672 -
1673 -const buildWidgetAreaPostId = widgetAreaId => `widget-area-${widgetAreaId}`;
1674 -/**
1675 - * Builds an ID for a global widget areas post.
1676 - *
1677 - * @return {string} An ID.
1678 - */
1679 -
1680 -const buildWidgetAreasPostId = () => `widget-areas`;
1681 -/**
1682 - * Builds a query to resolve sidebars.
1683 - *
1684 - * @return {Object} Query.
1685 - */
1686 -
1687 -function buildWidgetAreasQuery() {
1688 - return {
1689 - per_page: -1
1690 - };
1691 -}
1692 -/**
1693 - * Builds a query to resolve widgets.
1694 - *
1695 - * @return {Object} Query.
1696 - */
1697 -
1698 -function buildWidgetsQuery() {
1699 - return {
1700 - per_page: -1,
1701 - _embed: 'about'
1702 - };
1703 -}
1704 -/**
1705 - * Creates a stub post with given id and set of blocks. Used as a governing entity records
1706 - * for all widget areas.
1707 - *
1708 - * @param {string} id Post ID.
1709 - * @param {Array} blocks The list of blocks.
1710 - * @return {Object} A stub post object formatted in compliance with the data layer.
1711 - */
1712 -
1713 -const createStubPost = (id, blocks) => ({
1714 - id,
1715 - slug: id,
1716 - status: 'draft',
1717 - type: 'page',
1718 - blocks,
1719 - meta: {
1720 - widgetAreaId: id
1721 - }
1722 -});
1723 -//# sourceMappingURL=utils.js.map
1724 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/store/constants.js
1725 -/**
1726 - * Module Constants
1727 - */
1728 -const constants_STORE_NAME = 'core/edit-widgets';
1729 -//# sourceMappingURL=constants.js.map
1730 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/store/actions.js
1731 -/**
1732 - * WordPress dependencies
1733 - */
1734 -
1735 -
1736 -
1737 -
1738 -
1739 -
1740 -/**
1741 - * Internal dependencies
1742 - */
1743 -
1744 -
1745 -
1746 -
1747 -/**
1748 - * Persists a stub post with given ID to core data store. The post is meant to be in-memory only and
1749 - * shouldn't be saved via the API.
1750 - *
1751 - * @param {string} id Post ID.
1752 - * @param {Array} blocks Blocks the post should consist of.
1753 - * @return {Object} The post object.
1754 - */
1755 -
1756 -const persistStubPost = (id, blocks) => _ref => {
1757 - let {
1758 - registry
1759 - } = _ref;
1760 - const stubPost = createStubPost(id, blocks);
1761 - registry.dispatch(external_wp_coreData_namespaceObject.store).receiveEntityRecords(KIND, POST_TYPE, stubPost, {
1762 - id: stubPost.id
1763 - }, false);
1764 - return stubPost;
1765 -};
1766 -/**
1767 - * Converts all the blocks from edited widget areas into widgets,
1768 - * and submits a batch request to save everything at once.
1769 - *
1770 - * Creates a snackbar notice on either success or error.
1771 - *
1772 - * @return {Function} An action creator.
1773 - */
1774 -
1775 -const saveEditedWidgetAreas = () => async _ref2 => {
1776 - let {
1777 - select,
1778 - dispatch,
1779 - registry
1780 - } = _ref2;
1781 - const editedWidgetAreas = select.getEditedWidgetAreas();
1782 -
1783 - if (!(editedWidgetAreas !== null && editedWidgetAreas !== void 0 && editedWidgetAreas.length)) {
1784 - return;
1785 - }
1786 -
1787 - try {
1788 - await dispatch.saveWidgetAreas(editedWidgetAreas);
1789 - registry.dispatch(external_wp_notices_namespaceObject.store).createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Widgets saved.'), {
1790 - type: 'snackbar'
1791 - });
1792 - } catch (e) {
1793 - registry.dispatch(external_wp_notices_namespaceObject.store).createErrorNotice(
1794 - /* translators: %s: The error message. */
1795 - (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('There was an error. %s'), e.message), {
1796 - type: 'snackbar'
1797 - });
1798 - }
1799 -};
1800 -/**
1801 - * Converts all the blocks from specified widget areas into widgets,
1802 - * and submits a batch request to save everything at once.
1803 - *
1804 - * @param {Object[]} widgetAreas Widget areas to save.
1805 - * @return {Function} An action creator.
1806 - */
1807 -
1808 -const saveWidgetAreas = widgetAreas => async _ref3 => {
1809 - let {
1810 - dispatch,
1811 - registry
1812 - } = _ref3;
1813 -
1814 - try {
1815 - for (const widgetArea of widgetAreas) {
1816 - await dispatch.saveWidgetArea(widgetArea.id);
1817 - }
1818 - } finally {
1819 - // saveEditedEntityRecord resets the resolution status, let's fix it manually
1820 - await registry.dispatch(external_wp_coreData_namespaceObject.store).finishResolution('getEntityRecord', KIND, WIDGET_AREA_ENTITY_TYPE, buildWidgetAreasQuery());
1821 - }
1822 -};
1823 -/**
1824 - * Converts all the blocks from a widget area specified by ID into widgets,
1825 - * and submits a batch request to save everything at once.
1826 - *
1827 - * @param {string} widgetAreaId ID of the widget area to process.
1828 - * @return {Function} An action creator.
1829 - */
1830 -
1831 -const saveWidgetArea = widgetAreaId => async _ref4 => {
1832 - let {
1833 - dispatch,
1834 - select,
1835 - registry
1836 - } = _ref4;
1837 - const widgets = select.getWidgets();
1838 - const post = registry.select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord(KIND, POST_TYPE, buildWidgetAreaPostId(widgetAreaId)); // Get all widgets from this area
1839 -
1840 - const areaWidgets = Object.values(widgets).filter(_ref5 => {
1841 - let {
1842 - sidebar
1843 - } = _ref5;
1844 - return sidebar === widgetAreaId;
1845 - }); // Remove all duplicate reference widget instances for legacy widgets.
1846 - // Why? We filter out the widgets with duplicate IDs to prevent adding more than one instance of a widget
1847 - // implemented using a function. WordPress doesn't support having more than one instance of these, if you try to
1848 - // save multiple instances of these in different sidebars you will run into undefined behaviors.
1849 -
1850 - const usedReferenceWidgets = [];
1851 - const widgetsBlocks = post.blocks.filter(block => {
1852 - const {
1853 - id
1854 - } = block.attributes;
1855 -
1856 - if (block.name === 'core/legacy-widget' && id) {
1857 - if (usedReferenceWidgets.includes(id)) {
1858 - return false;
1859 - }
1860 -
1861 - usedReferenceWidgets.push(id);
1862 - }
1863 -
1864 - return true;
1865 - }); // Determine which widgets have been deleted. We can tell if a widget is
1866 - // deleted and not just moved to a different area by looking to see if
1867 - // getWidgetAreaForWidgetId() finds something.
1868 -
1869 - const deletedWidgets = [];
1870 -
1871 - for (const widget of areaWidgets) {
1872 - const widgetsNewArea = select.getWidgetAreaForWidgetId(widget.id);
1873 -
1874 - if (!widgetsNewArea) {
1875 - deletedWidgets.push(widget);
1876 - }
1877 - }
1878 -
1879 - const batchMeta = [];
1880 - const batchTasks = [];
1881 - const sidebarWidgetsIds = [];
1882 -
1883 - for (let i = 0; i < widgetsBlocks.length; i++) {
1884 - const block = widgetsBlocks[i];
1885 - const widgetId = (0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(block);
1886 - const oldWidget = widgets[widgetId];
1887 - const widget = transformBlockToWidget(block, oldWidget); // We'll replace the null widgetId after save, but we track it here
1888 - // since order is important.
1889 -
1890 - sidebarWidgetsIds.push(widgetId); // Check oldWidget as widgetId might refer to an ID which has been
1891 - // deleted, e.g. if a deleted block is restored via undo after saving.
1892 -
1893 - if (oldWidget) {
1894 - // Update an existing widget.
1895 - registry.dispatch(external_wp_coreData_namespaceObject.store).editEntityRecord('root', 'widget', widgetId, { ...widget,
1896 - sidebar: widgetAreaId
1897 - }, {
1898 - undoIgnore: true
1899 - });
1900 - const hasEdits = registry.select(external_wp_coreData_namespaceObject.store).hasEditsForEntityRecord('root', 'widget', widgetId);
1901 -
1902 - if (!hasEdits) {
1903 - continue;
1904 - }
1905 -
1906 - batchTasks.push(_ref6 => {
1907 - let {
1908 - saveEditedEntityRecord
1909 - } = _ref6;
1910 - return saveEditedEntityRecord('root', 'widget', widgetId);
1911 - });
1912 - } else {
1913 - // Create a new widget.
1914 - batchTasks.push(_ref7 => {
1915 - let {
1916 - saveEntityRecord
1917 - } = _ref7;
1918 - return saveEntityRecord('root', 'widget', { ...widget,
1919 - sidebar: widgetAreaId
1920 - });
1921 - });
1922 - }
1923 -
1924 - batchMeta.push({
1925 - block,
1926 - position: i,
1927 - clientId: block.clientId
1928 - });
1929 - }
1930 -
1931 - for (const widget of deletedWidgets) {
1932 - batchTasks.push(_ref8 => {
1933 - let {
1934 - deleteEntityRecord
1935 - } = _ref8;
1936 - return deleteEntityRecord('root', 'widget', widget.id, {
1937 - force: true
1938 - });
1939 - });
1940 - }
1941 -
1942 - const records = await registry.dispatch(external_wp_coreData_namespaceObject.store).__experimentalBatch(batchTasks);
1943 - const preservedRecords = records.filter(record => !record.hasOwnProperty('deleted'));
1944 - const failedWidgetNames = [];
1945 -
1946 - for (let i = 0; i < preservedRecords.length; i++) {
1947 - const widget = preservedRecords[i];
1948 - const {
1949 - block,
1950 - position
1951 - } = batchMeta[i]; // Set __internalWidgetId on the block. This will be persisted to the
1952 - // store when we dispatch receiveEntityRecords( post ) below.
1953 -
1954 - post.blocks[position].attributes.__internalWidgetId = widget.id;
1955 - const error = registry.select(external_wp_coreData_namespaceObject.store).getLastEntitySaveError('root', 'widget', widget.id);
1956 -
1957 - if (error) {
1958 - var _block$attributes;
1959 -
1960 - failedWidgetNames.push(((_block$attributes = block.attributes) === null || _block$attributes === void 0 ? void 0 : _block$attributes.name) || (block === null || block === void 0 ? void 0 : block.name));
1961 - }
1962 -
1963 - if (!sidebarWidgetsIds[position]) {
1964 - sidebarWidgetsIds[position] = widget.id;
1965 - }
1966 - }
1967 -
1968 - if (failedWidgetNames.length) {
1969 - throw new Error((0,external_wp_i18n_namespaceObject.sprintf)(
1970 - /* translators: %s: List of widget names */
1971 - (0,external_wp_i18n_namespaceObject.__)('Could not save the following widgets: %s.'), failedWidgetNames.join(', ')));
1972 - }
1973 -
1974 - registry.dispatch(external_wp_coreData_namespaceObject.store).editEntityRecord(KIND, WIDGET_AREA_ENTITY_TYPE, widgetAreaId, {
1975 - widgets: sidebarWidgetsIds
1976 - }, {
1977 - undoIgnore: true
1978 - });
1979 - dispatch(trySaveWidgetArea(widgetAreaId));
1980 - registry.dispatch(external_wp_coreData_namespaceObject.store).receiveEntityRecords(KIND, POST_TYPE, post, undefined);
1981 -};
1982 -
1983 -const trySaveWidgetArea = widgetAreaId => _ref9 => {
1984 - let {
1985 - registry
1986 - } = _ref9;
1987 - const saveErrorBefore = registry.select(external_wp_coreData_namespaceObject.store).getLastEntitySaveError(KIND, WIDGET_AREA_ENTITY_TYPE, widgetAreaId);
1988 - registry.dispatch(external_wp_coreData_namespaceObject.store).saveEditedEntityRecord(KIND, WIDGET_AREA_ENTITY_TYPE, widgetAreaId);
1989 - const saveErrorAfter = registry.select(external_wp_coreData_namespaceObject.store).getLastEntitySaveError(KIND, WIDGET_AREA_ENTITY_TYPE, widgetAreaId);
1990 -
1991 - if (saveErrorAfter && saveErrorBefore !== saveErrorAfter) {
1992 - throw new Error(saveErrorAfter);
1993 - }
1994 -};
1995 -/**
1996 - * Sets the clientId stored for a particular widgetId.
1997 - *
1998 - * @param {number} clientId Client id.
1999 - * @param {number} widgetId Widget id.
2000 - *
2001 - * @return {Object} Action.
2002 - */
2003 -
2004 -
2005 -function setWidgetIdForClientId(clientId, widgetId) {
2006 - return {
2007 - type: 'SET_WIDGET_ID_FOR_CLIENT_ID',
2008 - clientId,
2009 - widgetId
2010 - };
2011 -}
2012 -/**
2013 - * Sets the open state of all the widget areas.
2014 - *
2015 - * @param {Object} widgetAreasOpenState The open states of all the widget areas.
2016 - *
2017 - * @return {Object} Action.
2018 - */
2019 -
2020 -function setWidgetAreasOpenState(widgetAreasOpenState) {
2021 - return {
2022 - type: 'SET_WIDGET_AREAS_OPEN_STATE',
2023 - widgetAreasOpenState
2024 - };
2025 -}
2026 -/**
2027 - * Sets the open state of the widget area.
2028 - *
2029 - * @param {string} clientId The clientId of the widget area.
2030 - * @param {boolean} isOpen Whether the widget area should be opened.
2031 - *
2032 - * @return {Object} Action.
2033 - */
2034 -
2035 -function setIsWidgetAreaOpen(clientId, isOpen) {
2036 - return {
2037 - type: 'SET_IS_WIDGET_AREA_OPEN',
2038 - clientId,
2039 - isOpen
2040 - };
2041 -}
2042 -/**
2043 - * Returns an action object used to open/close the inserter.
2044 - *
2045 - * @param {boolean|Object} value Whether the inserter should be
2046 - * opened (true) or closed (false).
2047 - * To specify an insertion point,
2048 - * use an object.
2049 - * @param {string} value.rootClientId The root client ID to insert at.
2050 - * @param {number} value.insertionIndex The index to insert at.
2051 - *
2052 - * @return {Object} Action object.
2053 - */
2054 -
2055 -function setIsInserterOpened(value) {
2056 - return {
2057 - type: 'SET_IS_INSERTER_OPENED',
2058 - value
2059 - };
2060 -}
2061 -/**
2062 - * Returns an action object used to open/close the list view.
2063 - *
2064 - * @param {boolean} isOpen A boolean representing whether the list view should be opened or closed.
2065 - * @return {Object} Action object.
2066 - */
2067 -
2068 -function setIsListViewOpened(isOpen) {
2069 - return {
2070 - type: 'SET_IS_LIST_VIEW_OPENED',
2071 - isOpen
2072 - };
2073 -}
2074 -/**
2075 - * Returns an action object signalling that the user closed the sidebar.
2076 - *
2077 - * @return {Object} Action creator.
2078 - */
2079 -
2080 -const closeGeneralSidebar = () => _ref10 => {
2081 - let {
2082 - registry
2083 - } = _ref10;
2084 - registry.dispatch(store).disableComplementaryArea(constants_STORE_NAME);
2085 -};
2086 -/**
2087 - * Action that handles moving a block between widget areas
2088 - *
2089 - * @param {string} clientId The clientId of the block to move.
2090 - * @param {string} widgetAreaId The id of the widget area to move the block to.
2091 - */
2092 -
2093 -const moveBlockToWidgetArea = (clientId, widgetAreaId) => async _ref11 => {
2094 - let {
2095 - dispatch,
2096 - select,
2097 - registry
2098 - } = _ref11;
2099 - const sourceRootClientId = registry.select(external_wp_blockEditor_namespaceObject.store).getBlockRootClientId([clientId]); // Search the top level blocks (widget areas) for the one with the matching
2100 - // id attribute. Makes the assumption that all top-level blocks are widget
2101 - // areas.
2102 -
2103 - const widgetAreas = registry.select(external_wp_blockEditor_namespaceObject.store).getBlocks();
2104 - const destinationWidgetAreaBlock = widgetAreas.find(_ref12 => {
2105 - let {
2106 - attributes
2107 - } = _ref12;
2108 - return attributes.id === widgetAreaId;
2109 - });
2110 - const destinationRootClientId = destinationWidgetAreaBlock.clientId; // Get the index for moving to the end of the the destination widget area.
2111 -
2112 - const destinationInnerBlocksClientIds = registry.select(external_wp_blockEditor_namespaceObject.store).getBlockOrder(destinationRootClientId);
2113 - const destinationIndex = destinationInnerBlocksClientIds.length; // Reveal the widget area, if it's not open.
2114 -
2115 - const isDestinationWidgetAreaOpen = select.getIsWidgetAreaOpen(destinationRootClientId);
2116 -
2117 - if (!isDestinationWidgetAreaOpen) {
2118 - dispatch.setIsWidgetAreaOpen(destinationRootClientId, true);
2119 - } // Move the block.
2120 -
2121 -
2122 - registry.dispatch(external_wp_blockEditor_namespaceObject.store).moveBlocksToPosition([clientId], sourceRootClientId, destinationRootClientId, destinationIndex);
2123 -};
2124 -//# sourceMappingURL=actions.js.map
2125 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/store/resolvers.js
2126 -/**
2127 - * WordPress dependencies
2128 - */
2129 -
2130 -
2131 -/**
2132 - * Internal dependencies
2133 - */
2134 -
2135 -
2136 -
2137 -
2138 -/**
2139 - * Creates a "stub" widgets post reflecting all available widget areas. The
2140 - * post is meant as a convenient to only exists in runtime and should never be saved. It
2141 - * enables a convenient way of editing the widgets by using a regular post editor.
2142 - *
2143 - * Fetches all widgets from all widgets aras, converts them into blocks, and hydrates a new post with them.
2144 - *
2145 - * @return {Function} An action creator.
2146 - */
2147 -
2148 -const getWidgetAreas = () => async _ref => {
2149 - let {
2150 - dispatch,
2151 - registry
2152 - } = _ref;
2153 - const query = buildWidgetAreasQuery();
2154 - const widgetAreas = await registry.resolveSelect(external_wp_coreData_namespaceObject.store).getEntityRecords(KIND, WIDGET_AREA_ENTITY_TYPE, query);
2155 - const widgetAreaBlocks = [];
2156 - const sortedWidgetAreas = widgetAreas.sort((a, b) => {
2157 - if (a.id === 'wp_inactive_widgets') {
2158 - return 1;
2159 - }
2160 -
2161 - if (b.id === 'wp_inactive_widgets') {
2162 - return -1;
2163 - }
2164 -
2165 - return 0;
2166 - });
2167 -
2168 - for (const widgetArea of sortedWidgetAreas) {
2169 - widgetAreaBlocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/widget-area', {
2170 - id: widgetArea.id,
2171 - name: widgetArea.name
2172 - }));
2173 -
2174 - if (!widgetArea.widgets.length) {
2175 - // If this widget area has no widgets, it won't get a post setup by
2176 - // the getWidgets resolver.
2177 - dispatch(persistStubPost(buildWidgetAreaPostId(widgetArea.id), []));
2178 - }
2179 - }
2180 -
2181 - const widgetAreasOpenState = {};
2182 - widgetAreaBlocks.forEach((widgetAreaBlock, index) => {
2183 - // Defaults to open the first widget area.
2184 - widgetAreasOpenState[widgetAreaBlock.clientId] = index === 0;
2185 - });
2186 - dispatch(setWidgetAreasOpenState(widgetAreasOpenState));
2187 - dispatch(persistStubPost(buildWidgetAreasPostId(), widgetAreaBlocks));
2188 -};
2189 -/**
2190 - * Fetches all widgets from all widgets ares, and groups them by widget area Id.
2191 - *
2192 - * @return {Function} An action creator.
2193 - */
2194 -
2195 -const getWidgets = () => async _ref2 => {
2196 - let {
2197 - dispatch,
2198 - registry
2199 - } = _ref2;
2200 - const query = buildWidgetsQuery();
2201 - const widgets = await registry.resolveSelect(external_wp_coreData_namespaceObject.store).getEntityRecords('root', 'widget', query);
2202 - const groupedBySidebar = {};
2203 -
2204 - for (const widget of widgets) {
2205 - const block = transformWidgetToBlock(widget);
2206 - groupedBySidebar[widget.sidebar] = groupedBySidebar[widget.sidebar] || [];
2207 - groupedBySidebar[widget.sidebar].push(block);
2208 - }
2209 -
2210 - for (const sidebarId in groupedBySidebar) {
2211 - if (groupedBySidebar.hasOwnProperty(sidebarId)) {
2212 - // Persist the actual post containing the widget block
2213 - dispatch(persistStubPost(buildWidgetAreaPostId(sidebarId), groupedBySidebar[sidebarId]));
2214 - }
2215 - }
2216 -};
2217 -//# sourceMappingURL=resolvers.js.map
2218 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/store/selectors.js
2219 -/**
2220 - * External dependencies
2221 - */
2222 -
2223 -/**
2224 - * WordPress dependencies
2225 - */
2226 -
2227 -
2228 -
2229 -
2230 -
2231 -/**
2232 - * Internal dependencies
2233 - */
2234 -
2235 -
2236 -
2237 -/**
2238 - * Returns all API widgets.
2239 - *
2240 - * @return {Object[]} API List of widgets.
2241 - */
2242 -
2243 -const selectors_getWidgets = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => () => {
2244 - const widgets = select(external_wp_coreData_namespaceObject.store).getEntityRecords('root', 'widget', buildWidgetsQuery());
2245 - return (0,external_lodash_namespaceObject.keyBy)(widgets, 'id');
2246 -});
2247 -/**
2248 - * Returns API widget data for a particular widget ID.
2249 - *
2250 - * @param {number} id Widget ID.
2251 - *
2252 - * @return {Object} API widget data for a particular widget ID.
2253 - */
2254 -
2255 -const getWidget = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, id) => {
2256 - const widgets = select(constants_STORE_NAME).getWidgets();
2257 - return widgets[id];
2258 -});
2259 -/**
2260 - * Returns all API widget areas.
2261 - *
2262 - * @return {Object[]} API List of widget areas.
2263 - */
2264 -
2265 -const selectors_getWidgetAreas = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => () => {
2266 - const query = buildWidgetAreasQuery();
2267 - return select(external_wp_coreData_namespaceObject.store).getEntityRecords(KIND, WIDGET_AREA_ENTITY_TYPE, query);
2268 -});
2269 -/**
2270 - * Returns widgetArea containing a block identify by given widgetId
2271 - *
2272 - * @param {string} widgetId The ID of the widget.
2273 - * @return {Object} Containing widget area.
2274 - */
2275 -
2276 -const getWidgetAreaForWidgetId = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, widgetId) => {
2277 - const widgetAreas = select(constants_STORE_NAME).getWidgetAreas();
2278 - return widgetAreas.find(widgetArea => {
2279 - const post = select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord(KIND, POST_TYPE, buildWidgetAreaPostId(widgetArea.id));
2280 - const blockWidgetIds = post.blocks.map(block => (0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(block));
2281 - return blockWidgetIds.includes(widgetId);
2282 - });
2283 -});
2284 -/**
2285 - * Given a child client id, returns the parent widget area block.
2286 - *
2287 - * @param {string} clientId The client id of a block in a widget area.
2288 - *
2289 - * @return {WPBlock} The widget area block.
2290 - */
2291 -
2292 -const getParentWidgetAreaBlock = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, clientId) => {
2293 - const {
2294 - getBlock,
2295 - getBlockName,
2296 - getBlockParents
2297 - } = select(external_wp_blockEditor_namespaceObject.store);
2298 - const blockParents = getBlockParents(clientId);
2299 - const widgetAreaClientId = blockParents.find(parentClientId => getBlockName(parentClientId) === 'core/widget-area');
2300 - return getBlock(widgetAreaClientId);
2301 -});
2302 -/**
2303 - * Returns all edited widget area entity records.
2304 - *
2305 - * @return {Object[]} List of edited widget area entity records.
2306 - */
2307 -
2308 -const getEditedWidgetAreas = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, ids) => {
2309 - let widgetAreas = select(constants_STORE_NAME).getWidgetAreas();
2310 -
2311 - if (!widgetAreas) {
2312 - return [];
2313 - }
2314 -
2315 - if (ids) {
2316 - widgetAreas = widgetAreas.filter(_ref => {
2317 - let {
2318 - id
2319 - } = _ref;
2320 - return ids.includes(id);
2321 - });
2322 - }
2323 -
2324 - return widgetAreas.filter(_ref2 => {
2325 - let {
2326 - id
2327 - } = _ref2;
2328 - return select(external_wp_coreData_namespaceObject.store).hasEditsForEntityRecord(KIND, POST_TYPE, buildWidgetAreaPostId(id));
2329 - }).map(_ref3 => {
2330 - let {
2331 - id
2332 - } = _ref3;
2333 - return select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord(KIND, WIDGET_AREA_ENTITY_TYPE, id);
2334 - });
2335 -});
2336 -/**
2337 - * Returns all blocks representing reference widgets.
2338 - *
2339 - * @param {string} referenceWidgetName Optional. If given, only reference widgets with this name will be returned.
2340 - * @return {Array} List of all blocks representing reference widgets
2341 - */
2342 -
2343 -const getReferenceWidgetBlocks = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => function (state) {
2344 - let referenceWidgetName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2345 - const results = [];
2346 - const widgetAreas = select(constants_STORE_NAME).getWidgetAreas();
2347 -
2348 - for (const _widgetArea of widgetAreas) {
2349 - const post = select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord(KIND, POST_TYPE, buildWidgetAreaPostId(_widgetArea.id));
2350 -
2351 - for (const block of post.blocks) {
2352 - var _block$attributes;
2353 -
2354 - if (block.name === 'core/legacy-widget' && (!referenceWidgetName || ((_block$attributes = block.attributes) === null || _block$attributes === void 0 ? void 0 : _block$attributes.referenceWidgetName) === referenceWidgetName)) {
2355 - results.push(block);
2356 - }
2357 - }
2358 - }
2359 -
2360 - return results;
2361 -});
2362 -/**
2363 - * Returns true if any widget area is currently being saved.
2364 - *
2365 - * @return {boolean} True if any widget area is currently being saved. False otherwise.
2366 - */
2367 -
2368 -const isSavingWidgetAreas = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => () => {
2369 - var _select$getWidgetArea;
2370 -
2371 - const widgetAreasIds = (_select$getWidgetArea = select(constants_STORE_NAME).getWidgetAreas()) === null || _select$getWidgetArea === void 0 ? void 0 : _select$getWidgetArea.map(_ref4 => {
2372 - let {
2373 - id
2374 - } = _ref4;
2375 - return id;
2376 - });
2377 -
2378 - if (!widgetAreasIds) {
2379 - return false;
2380 - }
2381 -
2382 - for (const id of widgetAreasIds) {
2383 - const isSaving = select(external_wp_coreData_namespaceObject.store).isSavingEntityRecord(KIND, WIDGET_AREA_ENTITY_TYPE, id);
2384 -
2385 - if (isSaving) {
2386 - return true;
2387 - }
2388 - }
2389 -
2390 - const widgetIds = [...Object.keys(select(constants_STORE_NAME).getWidgets()), undefined // account for new widgets without an ID
2391 - ];
2392 -
2393 - for (const id of widgetIds) {
2394 - const isSaving = select(external_wp_coreData_namespaceObject.store).isSavingEntityRecord('root', 'widget', id);
2395 -
2396 - if (isSaving) {
2397 - return true;
2398 - }
2399 - }
2400 -
2401 - return false;
2402 -});
2403 -/**
2404 - * Gets whether the widget area is opened.
2405 - *
2406 - * @param {Array} state The open state of the widget areas.
2407 - * @param {string} clientId The clientId of the widget area.
2408 - *
2409 - * @return {boolean} True if the widget area is open.
2410 - */
2411 -
2412 -const getIsWidgetAreaOpen = (state, clientId) => {
2413 - const {
2414 - widgetAreasOpenState
2415 - } = state;
2416 - return !!widgetAreasOpenState[clientId];
2417 -};
2418 -/**
2419 - * Returns true if the inserter is opened.
2420 - *
2421 - * @param {Object} state Global application state.
2422 - *
2423 - * @return {boolean} Whether the inserter is opened.
2424 - */
2425 -
2426 -function isInserterOpened(state) {
2427 - return !!state.blockInserterPanel;
2428 -}
2429 -/**
2430 - * Get the insertion point for the inserter.
2431 - *
2432 - * @param {Object} state Global application state.
2433 - *
2434 - * @return {Object} The root client ID and index to insert at.
2435 - */
2436 -
2437 -function __experimentalGetInsertionPoint(state) {
2438 - const {
2439 - rootClientId,
2440 - insertionIndex
2441 - } = state.blockInserterPanel;
2442 - return {
2443 - rootClientId,
2444 - insertionIndex
2445 - };
2446 -}
2447 -/**
2448 - * Returns true if a block can be inserted into a widget area.
2449 - *
2450 - * @param {Array} state The open state of the widget areas.
2451 - * @param {string} blockName The name of the block being inserted.
2452 - *
2453 - * @return {boolean} True if the block can be inserted in a widget area.
2454 - */
2455 -
2456 -const canInsertBlockInWidgetArea = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, blockName) => {
2457 - // Widget areas are always top-level blocks, which getBlocks will return.
2458 - const widgetAreas = select(external_wp_blockEditor_namespaceObject.store).getBlocks(); // Makes an assumption that a block that can be inserted into one
2459 - // widget area can be inserted into any widget area. Uses the first
2460 - // widget area for testing whether the block can be inserted.
2461 -
2462 - const [firstWidgetArea] = widgetAreas;
2463 - return select(external_wp_blockEditor_namespaceObject.store).canInsertBlockType(blockName, firstWidgetArea.clientId);
2464 -});
2465 -/**
2466 - * Returns true if the list view is opened.
2467 - *
2468 - * @param {Object} state Global application state.
2469 - *
2470 - * @return {boolean} Whether the list view is opened.
2471 - */
2472 -
2473 -function isListViewOpened(state) {
2474 - return state.listViewPanel;
2475 -}
2476 -//# sourceMappingURL=selectors.js.map
2477 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/store/index.js
2478 -/**
2479 - * WordPress dependencies
2480 - */
2481 -
2482 -
2483 -/**
2484 - * Internal dependencies
2485 - */
2486 -
2487 -
2488 -
2489 -
2490 -
2491 -
2492 -/**
2493 - * Block editor data store configuration.
2494 - *
2495 - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#registerStore
2496 - *
2497 - * @type {Object}
2498 - */
2499 -
2500 -const storeConfig = {
2501 - reducer: store_reducer,
2502 - selectors: store_selectors_namespaceObject,
2503 - resolvers: resolvers_namespaceObject,
2504 - actions: store_actions_namespaceObject,
2505 - __experimentalUseThunks: true
2506 -};
2507 -/**
2508 - * Store definition for the edit widgets namespace.
2509 - *
2510 - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
2511 - *
2512 - * @type {Object}
2513 - */
2514 -
2515 -const store_store = (0,external_wp_data_namespaceObject.createReduxStore)(constants_STORE_NAME, storeConfig); // Once we build a more generic persistence plugin that works across types of stores
2516 -// we'd be able to replace this with a register call.
2517 -
2518 -(0,external_wp_data_namespaceObject.registerStore)(constants_STORE_NAME, storeConfig); // This package uses a few in-memory post types as wrappers for convenience.
2519 -// This middleware prevents any network requests related to these types as they are
2520 -// bound to fail anyway.
2521 -
2522 -external_wp_apiFetch_default().use(function (options, next) {
2523 - var _options$path;
2524 -
2525 - if (((_options$path = options.path) === null || _options$path === void 0 ? void 0 : _options$path.indexOf('/wp/v2/types/widget-area')) === 0) {
2526 - return Promise.resolve({});
2527 - }
2528 -
2529 - return next(options);
2530 -});
2531 -//# sourceMappingURL=index.js.map
2532 -;// CONCATENATED MODULE: external ["wp","hooks"]
2533 -var external_wp_hooks_namespaceObject = window["wp"]["hooks"];
2534 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/filters/move-to-widget-area.js
2535 -
2536 -
2537 -/**
2538 - * WordPress dependencies
2539 - */
2540 -
2541 -
2542 -
2543 -
2544 -
2545 -/**
2546 - * Internal dependencies
2547 - */
2548 -
2549 -
2550 -const withMoveToWidgetAreaToolbarItem = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => {
2551 - const {
2552 - clientId,
2553 - name: blockName
2554 - } = props;
2555 - const {
2556 - widgetAreas,
2557 - currentWidgetAreaId,
2558 - canInsertBlockInWidgetArea
2559 - } = (0,external_wp_data_namespaceObject.useSelect)(select => {
2560 - var _widgetAreaBlock$attr;
2561 -
2562 - // Component won't display for a widget area, so don't run selectors.
2563 - if (blockName === 'core/widget-area') {
2564 - return {};
2565 - }
2566 -
2567 - const selectors = select(store_store);
2568 - const widgetAreaBlock = selectors.getParentWidgetAreaBlock(clientId);
2569 - return {
2570 - widgetAreas: selectors.getWidgetAreas(),
2571 - currentWidgetAreaId: widgetAreaBlock === null || widgetAreaBlock === void 0 ? void 0 : (_widgetAreaBlock$attr = widgetAreaBlock.attributes) === null || _widgetAreaBlock$attr === void 0 ? void 0 : _widgetAreaBlock$attr.id,
2572 - canInsertBlockInWidgetArea: selectors.canInsertBlockInWidgetArea(blockName)
2573 - };
2574 - }, [clientId, blockName]);
2575 - const {
2576 - moveBlockToWidgetArea
2577 - } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
2578 - const hasMultipleWidgetAreas = (widgetAreas === null || widgetAreas === void 0 ? void 0 : widgetAreas.length) > 1;
2579 - const isMoveToWidgetAreaVisible = blockName !== 'core/widget-area' && hasMultipleWidgetAreas && canInsertBlockInWidgetArea;
2580 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(BlockEdit, props), isMoveToWidgetAreaVisible && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_widgets_namespaceObject.MoveToWidgetArea, {
2581 - widgetAreas: widgetAreas,
2582 - currentWidgetAreaId: currentWidgetAreaId,
2583 - onSelect: widgetAreaId => {
2584 - moveBlockToWidgetArea(props.clientId, widgetAreaId);
2585 - }
2586 - })));
2587 -}, 'withMoveToWidgetAreaToolbarItem');
2588 -(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/edit-widgets/block-edit', withMoveToWidgetAreaToolbarItem);
2589 -//# sourceMappingURL=move-to-widget-area.js.map
2590 -;// CONCATENATED MODULE: external ["wp","mediaUtils"]
2591 -var external_wp_mediaUtils_namespaceObject = window["wp"]["mediaUtils"];
2592 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/filters/replace-media-upload.js
2593 -/**
2594 - * WordPress dependencies
2595 - */
2596 -
2597 -
2598 -
2599 -const replaceMediaUpload = () => external_wp_mediaUtils_namespaceObject.MediaUpload;
2600 -
2601 -(0,external_wp_hooks_namespaceObject.addFilter)('editor.MediaUpload', 'core/edit-widgets/replace-media-upload', replaceMediaUpload);
2602 -//# sourceMappingURL=replace-media-upload.js.map
2603 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/filters/index.js
2604 -/**
2605 - * Internal dependencies
2606 - */
2607 -
2608 -
2609 -//# sourceMappingURL=index.js.map
2610 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/blocks/widget-area/edit/use-is-dragging-within.js
2611 -/**
2612 - * WordPress dependencies
2613 - */
2614 -
2615 -/** @typedef {import('@wordpress/element').RefObject} RefObject */
2616 -
2617 -/**
2618 - * A React hook to determine if it's dragging within the target element.
2619 - *
2620 - * @param {RefObject<HTMLElement>} elementRef The target elementRef object.
2621 - *
2622 - * @return {boolean} Is dragging within the target element.
2623 - */
2624 -
2625 -const useIsDraggingWithin = elementRef => {
2626 - const [isDraggingWithin, setIsDraggingWithin] = (0,external_wp_element_namespaceObject.useState)(false);
2627 - (0,external_wp_element_namespaceObject.useEffect)(() => {
2628 - const {
2629 - ownerDocument
2630 - } = elementRef.current;
2631 -
2632 - function handleDragStart(event) {
2633 - // Check the first time when the dragging starts.
2634 - handleDragEnter(event);
2635 - } // Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.
2636 -
2637 -
2638 - function handleDragEnd() {
2639 - setIsDraggingWithin(false);
2640 - }
2641 -
2642 - function handleDragEnter(event) {
2643 - // Check if the current target is inside the item element.
2644 - if (elementRef.current.contains(event.target)) {
2645 - setIsDraggingWithin(true);
2646 - } else {
2647 - setIsDraggingWithin(false);
2648 - }
2649 - } // Bind these events to the document to catch all drag events.
2650 - // Ideally, we can also use `event.relatedTarget`, but sadly that doesn't work in Safari.
2651 -
2652 -
2653 - ownerDocument.addEventListener('dragstart', handleDragStart);
2654 - ownerDocument.addEventListener('dragend', handleDragEnd);
2655 - ownerDocument.addEventListener('dragenter', handleDragEnter);
2656 - return () => {
2657 - ownerDocument.removeEventListener('dragstart', handleDragStart);
2658 - ownerDocument.removeEventListener('dragend', handleDragEnd);
2659 - ownerDocument.removeEventListener('dragenter', handleDragEnter);
2660 - };
2661 - }, []);
2662 - return isDraggingWithin;
2663 -};
2664 -
2665 -/* harmony default export */ var use_is_dragging_within = (useIsDraggingWithin);
2666 -//# sourceMappingURL=use-is-dragging-within.js.map
2667 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/blocks/widget-area/edit/inner-blocks.js
2668 -
2669 -
2670 -/**
2671 - * External dependencies
2672 - */
2673 -
2674 -/**
2675 - * WordPress dependencies
2676 - */
2677 -
2678 -
2679 -
2680 -
2681 -/**
2682 - * Internal dependencies
2683 - */
2684 -
2685 -
2686 -function WidgetAreaInnerBlocks(_ref) {
2687 - let {
2688 - id
2689 - } = _ref;
2690 - const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('root', 'postType');
2691 - const innerBlocksRef = (0,external_wp_element_namespaceObject.useRef)();
2692 - const isDraggingWithinInnerBlocks = use_is_dragging_within(innerBlocksRef);
2693 - const shouldHighlightDropZone = isDraggingWithinInnerBlocks; // Using the experimental hook so that we can control the className of the element.
2694 -
2695 - const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
2696 - ref: innerBlocksRef
2697 - }, {
2698 - value: blocks,
2699 - onInput,
2700 - onChange,
2701 - templateLock: false,
2702 - renderAppender: external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
2703 - });
2704 - return (0,external_wp_element_namespaceObject.createElement)("div", {
2705 - "data-widget-area-id": id,
2706 - className: classnames_default()('wp-block-widget-area__inner-blocks block-editor-inner-blocks editor-styles-wrapper', {
2707 - 'wp-block-widget-area__highlight-drop-zone': shouldHighlightDropZone
2708 - })
2709 - }, (0,external_wp_element_namespaceObject.createElement)("div", innerBlocksProps));
2710 -}
2711 -//# sourceMappingURL=inner-blocks.js.map
2712 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/blocks/widget-area/edit/index.js
2713 -
2714 -
2715 -/**
2716 - * WordPress dependencies
2717 - */
2718 -
2719 -
2720 -
2721 -
2722 -/**
2723 - * Internal dependencies
2724 - */
2725 -
2726 -
2727 -
2728 -
2729 -/** @typedef {import('@wordpress/element').RefObject} RefObject */
2730 -
2731 -function WidgetAreaEdit(_ref) {
2732 - let {
2733 - clientId,
2734 - className,
2735 - attributes: {
2736 - id,
2737 - name
2738 - }
2739 - } = _ref;
2740 - const isOpen = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getIsWidgetAreaOpen(clientId), [clientId]);
2741 - const {
2742 - setIsWidgetAreaOpen
2743 - } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
2744 - const wrapper = (0,external_wp_element_namespaceObject.useRef)();
2745 - const setOpen = (0,external_wp_element_namespaceObject.useCallback)(openState => setIsWidgetAreaOpen(clientId, openState), [clientId]);
2746 - const isDragging = useIsDragging(wrapper);
2747 - const isDraggingWithin = use_is_dragging_within(wrapper);
2748 - const [openedWhileDragging, setOpenedWhileDragging] = (0,external_wp_element_namespaceObject.useState)(false);
2749 - (0,external_wp_element_namespaceObject.useEffect)(() => {
2750 - if (!isDragging) {
2751 - setOpenedWhileDragging(false);
2752 - return;
2753 - }
2754 -
2755 - if (isDraggingWithin && !isOpen) {
2756 - setOpen(true);
2757 - setOpenedWhileDragging(true);
2758 - } else if (!isDraggingWithin && isOpen && openedWhileDragging) {
2759 - setOpen(false);
2760 - }
2761 - }, [isOpen, isDragging, isDraggingWithin, openedWhileDragging]);
2762 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Panel, {
2763 - className: className,
2764 - ref: wrapper
2765 - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, {
2766 - title: name,
2767 - opened: isOpen,
2768 - onToggle: () => {
2769 - setIsWidgetAreaOpen(clientId, !isOpen);
2770 - },
2771 - scrollAfterOpen: !isDragging
2772 - }, _ref2 => {
2773 - let {
2774 - opened
2775 - } = _ref2;
2776 - return (// This is required to ensure LegacyWidget blocks are not
2777 - // unmounted when the panel is collapsed. Unmounting legacy
2778 - // widgets may have unintended consequences (e.g. TinyMCE
2779 - // not being properly reinitialized)
2780 - (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableDisclosureContent, {
2781 - className: "wp-block-widget-area__panel-body-content",
2782 - visible: opened
2783 - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_coreData_namespaceObject.EntityProvider, {
2784 - kind: "root",
2785 - type: "postType",
2786 - id: `widget-area-${id}`
2787 - }, (0,external_wp_element_namespaceObject.createElement)(WidgetAreaInnerBlocks, {
2788 - id: id
2789 - })))
2790 - );
2791 - }));
2792 -}
2793 -/**
2794 - * A React hook to determine if dragging is active.
2795 - *
2796 - * @param {RefObject<HTMLElement>} elementRef The target elementRef object.
2797 - *
2798 - * @return {boolean} Is dragging within the entire document.
2799 - */
2800 -
2801 -const useIsDragging = elementRef => {
2802 - const [isDragging, setIsDragging] = (0,external_wp_element_namespaceObject.useState)(false);
2803 - (0,external_wp_element_namespaceObject.useEffect)(() => {
2804 - const {
2805 - ownerDocument
2806 - } = elementRef.current;
2807 -
2808 - function handleDragStart() {
2809 - setIsDragging(true);
2810 - }
2811 -
2812 - function handleDragEnd() {
2813 - setIsDragging(false);
2814 - }
2815 -
2816 - ownerDocument.addEventListener('dragstart', handleDragStart);
2817 - ownerDocument.addEventListener('dragend', handleDragEnd);
2818 - return () => {
2819 - ownerDocument.removeEventListener('dragstart', handleDragStart);
2820 - ownerDocument.removeEventListener('dragend', handleDragEnd);
2821 - };
2822 - }, []);
2823 - return isDragging;
2824 -};
2825 -//# sourceMappingURL=index.js.map
2826 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/blocks/widget-area/index.js
2827 -/**
2828 - * WordPress dependencies
2829 - */
2830 -
2831 -/**
2832 - * Internal dependencies
2833 - */
2834 -
2835 -const metadata = {
2836 - name: "core/widget-area",
2837 - category: "widgets",
2838 - attributes: {
2839 - id: {
2840 - type: "string"
2841 - },
2842 - name: {
2843 - type: "string"
2844 - }
2845 - },
2846 - supports: {
2847 - html: false,
2848 - inserter: false,
2849 - customClassName: false,
2850 - reusable: false,
2851 - __experimentalToolbar: false,
2852 - __experimentalParentSelector: false
2853 - },
2854 - editorStyle: "wp-block-widget-area-editor",
2855 - style: "wp-block-widget-area"
2856 -};
2857 -
2858 -const {
2859 - name: widget_area_name
2860 -} = metadata;
2861 -
2862 -const settings = {
2863 - title: (0,external_wp_i18n_namespaceObject.__)('Widget Area'),
2864 - description: (0,external_wp_i18n_namespaceObject.__)('A widget area container.'),
2865 - __experimentalLabel: _ref => {
2866 - let {
2867 - name: label
2868 - } = _ref;
2869 - return label;
2870 - },
2871 - edit: WidgetAreaEdit
2872 -};
2873 -//# sourceMappingURL=index.js.map
2874 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/error-boundary/index.js
2875 -
2876 -
2877 -/**
2878 - * WordPress dependencies
2879 - */
2880 -
2881 -
2882 -
2883 -
2884 -
2885 -
2886 -function CopyButton(_ref) {
2887 - let {
2888 - text,
2889 - children
2890 - } = _ref;
2891 - const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(text);
2892 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
2893 - variant: "secondary",
2894 - ref: ref
2895 - }, children);
2896 -}
2897 -
2898 -class ErrorBoundary extends external_wp_element_namespaceObject.Component {
2899 - constructor() {
2900 - super(...arguments);
2901 - this.reboot = this.reboot.bind(this);
2902 - this.state = {
2903 - error: null
2904 - };
2905 - }
2906 -
2907 - componentDidCatch(error) {
2908 - this.setState({
2909 - error
2910 - });
2911 - }
2912 -
2913 - reboot() {
2914 - this.props.onError();
2915 - }
2916 -
2917 - render() {
2918 - const {
2919 - error
2920 - } = this.state;
2921 -
2922 - if (!error) {
2923 - return this.props.children;
2924 - }
2925 -
2926 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, {
2927 - className: "edit-widgets-error-boundary",
2928 - actions: [(0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
2929 - key: "recovery",
2930 - onClick: this.reboot,
2931 - variant: "secondary"
2932 - }, (0,external_wp_i18n_namespaceObject.__)('Attempt Recovery')), (0,external_wp_element_namespaceObject.createElement)(CopyButton, {
2933 - key: "copy-error",
2934 - text: error.stack
2935 - }, (0,external_wp_i18n_namespaceObject.__)('Copy Error'))]
2936 - }, (0,external_wp_i18n_namespaceObject.__)('The editor has encountered an unexpected error.'));
2937 - }
2938 -
2939 -}
2940 -//# sourceMappingURL=index.js.map
2941 -;// CONCATENATED MODULE: external ["wp","reusableBlocks"]
2942 -var external_wp_reusableBlocks_namespaceObject = window["wp"]["reusableBlocks"];
2943 -;// CONCATENATED MODULE: external ["wp","keyboardShortcuts"]
2944 -var external_wp_keyboardShortcuts_namespaceObject = window["wp"]["keyboardShortcuts"];
2945 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/keyboard-shortcuts/index.js
2946 -/**
2947 - * WordPress dependencies
2948 - */
2949 -
2950 -
2951 -
2952 -
2953 -
2954 -/**
2955 - * Internal dependencies
2956 - */
2957 -
2958 -
2959 -
2960 -function KeyboardShortcuts() {
2961 - const {
2962 - redo,
2963 - undo
2964 - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
2965 - const {
2966 - saveEditedWidgetAreas
2967 - } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
2968 - (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/edit-widgets/undo', event => {
2969 - undo();
2970 - event.preventDefault();
2971 - });
2972 - (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/edit-widgets/redo', event => {
2973 - redo();
2974 - event.preventDefault();
2975 - });
2976 - (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/edit-widgets/save', event => {
2977 - event.preventDefault();
2978 - saveEditedWidgetAreas();
2979 - });
2980 - return null;
2981 -}
2982 -
2983 -function KeyboardShortcutsRegister() {
2984 - // Registering the shortcuts
2985 - const {
2986 - registerShortcut
2987 - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_keyboardShortcuts_namespaceObject.store);
2988 - (0,external_wp_element_namespaceObject.useEffect)(() => {
2989 - registerShortcut({
2990 - name: 'core/edit-widgets/undo',
2991 - category: 'global',
2992 - description: (0,external_wp_i18n_namespaceObject.__)('Undo your last changes.'),
2993 - keyCombination: {
2994 - modifier: 'primary',
2995 - character: 'z'
2996 - }
2997 - });
2998 - registerShortcut({
2999 - name: 'core/edit-widgets/redo',
3000 - category: 'global',
3001 - description: (0,external_wp_i18n_namespaceObject.__)('Redo your last undo.'),
3002 - keyCombination: {
3003 - modifier: 'primaryShift',
3004 - character: 'z'
3005 - }
3006 - });
3007 - registerShortcut({
3008 - name: 'core/edit-widgets/save',
3009 - category: 'global',
3010 - description: (0,external_wp_i18n_namespaceObject.__)('Save your changes.'),
3011 - keyCombination: {
3012 - modifier: 'primary',
3013 - character: 's'
3014 - }
3015 - });
3016 - registerShortcut({
3017 - name: 'core/edit-widgets/keyboard-shortcuts',
3018 - category: 'main',
3019 - description: (0,external_wp_i18n_namespaceObject.__)('Display these keyboard shortcuts.'),
3020 - keyCombination: {
3021 - modifier: 'access',
3022 - character: 'h'
3023 - }
3024 - });
3025 - registerShortcut({
3026 - name: 'core/edit-widgets/next-region',
3027 - category: 'global',
3028 - description: (0,external_wp_i18n_namespaceObject.__)('Navigate to the next part of the editor.'),
3029 - keyCombination: {
3030 - modifier: 'ctrl',
3031 - character: '`'
3032 - },
3033 - aliases: [{
3034 - modifier: 'access',
3035 - character: 'n'
3036 - }]
3037 - });
3038 - registerShortcut({
3039 - name: 'core/edit-widgets/previous-region',
3040 - category: 'global',
3041 - description: (0,external_wp_i18n_namespaceObject.__)('Navigate to the previous part of the editor.'),
3042 - keyCombination: {
3043 - modifier: 'ctrlShift',
3044 - character: '`'
3045 - },
3046 - aliases: [{
3047 - modifier: 'access',
3048 - character: 'p'
3049 - }]
3050 - });
3051 - }, [registerShortcut]);
3052 - return null;
3053 -}
3054 -
3055 -KeyboardShortcuts.Register = KeyboardShortcutsRegister;
3056 -/* harmony default export */ var keyboard_shortcuts = (KeyboardShortcuts);
3057 -//# sourceMappingURL=index.js.map
3058 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/hooks/use-last-selected-widget-area.js
3059 -/**
3060 - * WordPress dependencies
3061 - */
3062 -
3063 -
3064 -
3065 -/**
3066 - * Internal dependencies
3067 - */
3068 -
3069 -
3070 -
3071 -/**
3072 - * A react hook that returns the client id of the last widget area to have
3073 - * been selected, or to have a selected block within it.
3074 - *
3075 - * @return {string} clientId of the widget area last selected.
3076 - */
3077 -
3078 -const useLastSelectedWidgetArea = () => (0,external_wp_data_namespaceObject.useSelect)(select => {
3079 - var _widgetAreasPost$bloc;
3080 -
3081 - const {
3082 - getBlockSelectionEnd,
3083 - getBlockName
3084 - } = select(external_wp_blockEditor_namespaceObject.store);
3085 - const selectionEndClientId = getBlockSelectionEnd(); // If the selected block is a widget area, return its clientId.
3086 -
3087 - if (getBlockName(selectionEndClientId) === 'core/widget-area') {
3088 - return selectionEndClientId;
3089 - }
3090 -
3091 - const {
3092 - getParentWidgetAreaBlock
3093 - } = select(store_store);
3094 - const widgetAreaBlock = getParentWidgetAreaBlock(selectionEndClientId);
3095 - const widgetAreaBlockClientId = widgetAreaBlock === null || widgetAreaBlock === void 0 ? void 0 : widgetAreaBlock.clientId;
3096 -
3097 - if (widgetAreaBlockClientId) {
3098 - return widgetAreaBlockClientId;
3099 - } // If no widget area has been selected, return the clientId of the first
3100 - // area.
3101 -
3102 -
3103 - const {
3104 - getEntityRecord
3105 - } = select(external_wp_coreData_namespaceObject.store);
3106 - const widgetAreasPost = getEntityRecord(KIND, POST_TYPE, buildWidgetAreasPostId());
3107 - return widgetAreasPost === null || widgetAreasPost === void 0 ? void 0 : (_widgetAreasPost$bloc = widgetAreasPost.blocks[0]) === null || _widgetAreasPost$bloc === void 0 ? void 0 : _widgetAreasPost$bloc.clientId;
3108 -}, []);
3109 -
3110 -/* harmony default export */ var use_last_selected_widget_area = (useLastSelectedWidgetArea);
3111 -//# sourceMappingURL=use-last-selected-widget-area.js.map
3112 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/constants.js
3113 -const ALLOW_REUSABLE_BLOCKS = false;
3114 -const ENABLE_EXPERIMENTAL_FSE_BLOCKS = false;
3115 -//# sourceMappingURL=constants.js.map
3116 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/widget-areas-block-editor-provider/index.js
3117 -
3118 -
3119 -
3120 -/**
3121 - * External dependencies
3122 - */
3123 -
3124 -/**
3125 - * WordPress dependencies
3126 - */
3127 -
3128 -
3129 -
3130 -
3131 -
3132 -
3133 -
3134 -
3135 -
3136 -/**
3137 - * Internal dependencies
3138 - */
3139 -
3140 -
3141 -
3142 -
3143 -
3144 -
3145 -
3146 -function WidgetAreasBlockEditorProvider(_ref) {
3147 - let {
3148 - blockEditorSettings,
3149 - children,
3150 - ...props
3151 - } = _ref;
3152 - const {
3153 - hasUploadPermissions,
3154 - reusableBlocks,
3155 - isFixedToolbarActive,
3156 - keepCaretInsideBlock
3157 - } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
3158 - hasUploadPermissions: (0,external_lodash_namespaceObject.defaultTo)(select(external_wp_coreData_namespaceObject.store).canUser('create', 'media'), true),
3159 - widgetAreas: select(store_store).getWidgetAreas(),
3160 - widgets: select(store_store).getWidgets(),
3161 - reusableBlocks: ALLOW_REUSABLE_BLOCKS ? select(external_wp_coreData_namespaceObject.store).getEntityRecords('postType', 'wp_block') : [],
3162 - isFixedToolbarActive: select(store).isFeatureActive('core/edit-widgets', 'fixedToolbar'),
3163 - keepCaretInsideBlock: select(store).isFeatureActive('core/edit-widgets', 'keepCaretInsideBlock')
3164 - }), []);
3165 - const {
3166 - setIsInserterOpened
3167 - } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
3168 - const settings = (0,external_wp_element_namespaceObject.useMemo)(() => {
3169 - let mediaUploadBlockEditor;
3170 -
3171 - if (hasUploadPermissions) {
3172 - mediaUploadBlockEditor = _ref2 => {
3173 - let {
3174 - onError,
3175 - ...argumentsObject
3176 - } = _ref2;
3177 - (0,external_wp_mediaUtils_namespaceObject.uploadMedia)({
3178 - wpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,
3179 - onError: _ref3 => {
3180 - let {
3181 - message
3182 - } = _ref3;
3183 - return onError(message);
3184 - },
3185 - ...argumentsObject
3186 - });
3187 - };
3188 - }
3189 -
3190 - return { ...blockEditorSettings,
3191 - __experimentalReusableBlocks: reusableBlocks,
3192 - hasFixedToolbar: isFixedToolbarActive,
3193 - keepCaretInsideBlock,
3194 - mediaUpload: mediaUploadBlockEditor,
3195 - templateLock: 'all',
3196 - __experimentalSetIsInserterOpened: setIsInserterOpened
3197 - };
3198 - }, [blockEditorSettings, isFixedToolbarActive, keepCaretInsideBlock, hasUploadPermissions, reusableBlocks, setIsInserterOpened]);
3199 - const widgetAreaId = use_last_selected_widget_area();
3200 - const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)(KIND, POST_TYPE, {
3201 - id: buildWidgetAreasPostId()
3202 - });
3203 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_keyboardShortcuts_namespaceObject.ShortcutProvider, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockEditorKeyboardShortcuts.Register, null), (0,external_wp_element_namespaceObject.createElement)(keyboard_shortcuts.Register, null), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SlotFillProvider, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockEditorProvider, _extends({
3204 - value: blocks,
3205 - onInput: onInput,
3206 - onChange: onChange,
3207 - settings: settings,
3208 - useSubRegistry: false
3209 - }, props), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.CopyHandler, null, children), (0,external_wp_element_namespaceObject.createElement)(external_wp_reusableBlocks_namespaceObject.ReusableBlocksMenuItems, {
3210 - rootClientId: widgetAreaId
3211 - }))));
3212 -}
3213 -//# sourceMappingURL=index.js.map
3214 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/cog.js
3215 -
3216 -
3217 -/**
3218 - * WordPress dependencies
3219 - */
3220 -
3221 -const cog = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
3222 - xmlns: "http://www.w3.org/2000/svg",
3223 - viewBox: "0 0 24 24"
3224 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
3225 - fillRule: "evenodd",
3226 - d: "M10.289 4.836A1 1 0 0111.275 4h1.306a1 1 0 01.987.836l.244 1.466c.787.26 1.503.679 2.108 1.218l1.393-.522a1 1 0 011.216.437l.653 1.13a1 1 0 01-.23 1.273l-1.148.944a6.025 6.025 0 010 2.435l1.149.946a1 1 0 01.23 1.272l-.653 1.13a1 1 0 01-1.216.437l-1.394-.522c-.605.54-1.32.958-2.108 1.218l-.244 1.466a1 1 0 01-.987.836h-1.306a1 1 0 01-.986-.836l-.244-1.466a5.995 5.995 0 01-2.108-1.218l-1.394.522a1 1 0 01-1.217-.436l-.653-1.131a1 1 0 01.23-1.272l1.149-.946a6.026 6.026 0 010-2.435l-1.148-.944a1 1 0 01-.23-1.272l.653-1.131a1 1 0 011.217-.437l1.393.522a5.994 5.994 0 012.108-1.218l.244-1.466zM14.929 12a3 3 0 11-6 0 3 3 0 016 0z",
3227 - clipRule: "evenodd"
3228 -}));
3229 -/* harmony default export */ var library_cog = (cog);
3230 -//# sourceMappingURL=cog.js.map
3231 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/block-default.js
3232 -
3233 -
3234 -/**
3235 - * WordPress dependencies
3236 - */
3237 -
3238 -const blockDefault = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
3239 - xmlns: "http://www.w3.org/2000/svg",
3240 - viewBox: "0 0 24 24"
3241 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
3242 - d: "M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z"
3243 -}));
3244 -/* harmony default export */ var block_default = (blockDefault);
3245 -//# sourceMappingURL=block-default.js.map
3246 -;// CONCATENATED MODULE: external ["wp","url"]
3247 -var external_wp_url_namespaceObject = window["wp"]["url"];
3248 -;// CONCATENATED MODULE: external ["wp","dom"]
3249 -var external_wp_dom_namespaceObject = window["wp"]["dom"];
3250 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/sidebar/widget-areas.js
3251 -
3252 -
3253 -/**
3254 - * WordPress dependencies
3255 - */
3256 -
3257 -
3258 -
3259 -
3260 -
3261 -
3262 -
3263 -
3264 -/**
3265 - * Internal dependencies
3266 - */
3267 -
3268 -
3269 -function WidgetAreas(_ref) {
3270 - let {
3271 - selectedWidgetAreaId
3272 - } = _ref;
3273 - const widgetAreas = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getWidgetAreas(), []);
3274 - const selectedWidgetArea = (0,external_wp_element_namespaceObject.useMemo)(() => selectedWidgetAreaId && (widgetAreas === null || widgetAreas === void 0 ? void 0 : widgetAreas.find(widgetArea => widgetArea.id === selectedWidgetAreaId)), [selectedWidgetAreaId, widgetAreas]);
3275 - let description;
3276 -
3277 - if (!selectedWidgetArea) {
3278 - description = (0,external_wp_i18n_namespaceObject.__)('Widget Areas are global parts in your site’s layout that can accept blocks. These vary by theme, but are typically parts like your Sidebar or Footer.');
3279 - } else if (selectedWidgetAreaId === 'wp_inactive_widgets') {
3280 - description = (0,external_wp_i18n_namespaceObject.__)('Blocks in this Widget Area will not be displayed in your site.');
3281 - } else {
3282 - description = selectedWidgetArea.description;
3283 - }
3284 -
3285 - return (0,external_wp_element_namespaceObject.createElement)("div", {
3286 - className: "edit-widgets-widget-areas"
3287 - }, (0,external_wp_element_namespaceObject.createElement)("div", {
3288 - className: "edit-widgets-widget-areas__top-container"
3289 - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, {
3290 - icon: block_default
3291 - }), (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)("p", {
3292 - // Use `dangerouslySetInnerHTML` to keep backwards
3293 - // compatibility. Basic markup in the description is an
3294 - // established feature of WordPress.
3295 - // @see https://github.com/WordPress/gutenberg/issues/33106
3296 - dangerouslySetInnerHTML: {
3297 - __html: (0,external_wp_dom_namespaceObject.safeHTML)(description)
3298 - }
3299 - }), (widgetAreas === null || widgetAreas === void 0 ? void 0 : widgetAreas.length) === 0 && (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('Your theme does not contain any Widget Areas.')), !selectedWidgetArea && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
3300 - href: (0,external_wp_url_namespaceObject.addQueryArgs)('customize.php', {
3301 - 'autofocus[panel]': 'widgets',
3302 - return: window.location.pathname
3303 - }),
3304 - variant: "tertiary"
3305 - }, (0,external_wp_i18n_namespaceObject.__)('Manage with live preview')))));
3306 -}
3307 -//# sourceMappingURL=widget-areas.js.map
3308 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/sidebar/index.js
3309 -
3310 -
3311 -/**
3312 - * External dependencies
3313 - */
3314 -
3315 -/**
3316 - * WordPress dependencies
3317 - */
3318 -
3319 -
3320 -
3321 -
3322 -
3323 -
3324 -
3325 -
3326 -const SIDEBAR_ACTIVE_BY_DEFAULT = external_wp_element_namespaceObject.Platform.select({
3327 - web: true,
3328 - native: false
3329 -});
3330 -const BLOCK_INSPECTOR_IDENTIFIER = 'edit-widgets/block-inspector'; // Widget areas were one called block areas, so use 'edit-widgets/block-areas'
3331 -// for backwards compatibility.
3332 -
3333 -const WIDGET_AREAS_IDENTIFIER = 'edit-widgets/block-areas';
3334 -/**
3335 - * Internal dependencies
3336 - */
3337 -
3338 -
3339 -
3340 -
3341 -function ComplementaryAreaTab(_ref) {
3342 - let {
3343 - identifier,
3344 - label,
3345 - isActive
3346 - } = _ref;
3347 - const {
3348 - enableComplementaryArea
3349 - } = (0,external_wp_data_namespaceObject.useDispatch)(store);
3350 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
3351 - onClick: () => enableComplementaryArea(store_store.name, identifier),
3352 - className: classnames_default()('edit-widgets-sidebar__panel-tab', {
3353 - 'is-active': isActive
3354 - }),
3355 - "aria-label": isActive ? // translators: %s: sidebar label e.g: "Widget Areas".
3356 - (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s (selected)'), label) : label,
3357 - "data-label": label
3358 - }, label);
3359 -}
3360 -
3361 -function Sidebar() {
3362 - const {
3363 - enableComplementaryArea
3364 - } = (0,external_wp_data_namespaceObject.useDispatch)(store);
3365 - const {
3366 - currentArea,
3367 - hasSelectedNonAreaBlock,
3368 - isGeneralSidebarOpen,
3369 - selectedWidgetAreaBlock
3370 - } = (0,external_wp_data_namespaceObject.useSelect)(select => {
3371 - const {
3372 - getSelectedBlock,
3373 - getBlock,
3374 - getBlockParentsByBlockName
3375 - } = select(external_wp_blockEditor_namespaceObject.store);
3376 - const {
3377 - getActiveComplementaryArea
3378 - } = select(store);
3379 - const selectedBlock = getSelectedBlock();
3380 - const activeArea = getActiveComplementaryArea(store_store.name);
3381 - let currentSelection = activeArea;
3382 -
3383 - if (!currentSelection) {
3384 - if (selectedBlock) {
3385 - currentSelection = BLOCK_INSPECTOR_IDENTIFIER;
3386 - } else {
3387 - currentSelection = WIDGET_AREAS_IDENTIFIER;
3388 - }
3389 - }
3390 -
3391 - let widgetAreaBlock;
3392 -
3393 - if (selectedBlock) {
3394 - if (selectedBlock.name === 'core/widget-area') {
3395 - widgetAreaBlock = selectedBlock;
3396 - } else {
3397 - widgetAreaBlock = getBlock(getBlockParentsByBlockName(selectedBlock.clientId, 'core/widget-area')[0]);
3398 - }
3399 - }
3400 -
3401 - return {
3402 - currentArea: currentSelection,
3403 - hasSelectedNonAreaBlock: !!(selectedBlock && selectedBlock.name !== 'core/widget-area'),
3404 - isGeneralSidebarOpen: !!activeArea,
3405 - selectedWidgetAreaBlock: widgetAreaBlock
3406 - };
3407 - }, []); // currentArea, and isGeneralSidebarOpen are intentionally left out from the dependencies,
3408 - // because we want to run the effect when a block is selected/unselected and not when the sidebar state changes.
3409 -
3410 - (0,external_wp_element_namespaceObject.useEffect)(() => {
3411 - if (hasSelectedNonAreaBlock && currentArea === WIDGET_AREAS_IDENTIFIER && isGeneralSidebarOpen) {
3412 - enableComplementaryArea('core/edit-widgets', BLOCK_INSPECTOR_IDENTIFIER);
3413 - }
3414 -
3415 - if (!hasSelectedNonAreaBlock && currentArea === BLOCK_INSPECTOR_IDENTIFIER && isGeneralSidebarOpen) {
3416 - enableComplementaryArea('core/edit-widgets', WIDGET_AREAS_IDENTIFIER);
3417 - }
3418 - }, [hasSelectedNonAreaBlock, enableComplementaryArea]);
3419 - return (0,external_wp_element_namespaceObject.createElement)(complementary_area, {
3420 - className: "edit-widgets-sidebar",
3421 - header: (0,external_wp_element_namespaceObject.createElement)("ul", null, (0,external_wp_element_namespaceObject.createElement)("li", null, (0,external_wp_element_namespaceObject.createElement)(ComplementaryAreaTab, {
3422 - identifier: WIDGET_AREAS_IDENTIFIER,
3423 - label: selectedWidgetAreaBlock ? selectedWidgetAreaBlock.attributes.name : (0,external_wp_i18n_namespaceObject.__)('Widget Areas'),
3424 - isActive: currentArea === WIDGET_AREAS_IDENTIFIER
3425 - })), (0,external_wp_element_namespaceObject.createElement)("li", null, (0,external_wp_element_namespaceObject.createElement)(ComplementaryAreaTab, {
3426 - identifier: BLOCK_INSPECTOR_IDENTIFIER,
3427 - label: (0,external_wp_i18n_namespaceObject.__)('Block'),
3428 - isActive: currentArea === BLOCK_INSPECTOR_IDENTIFIER
3429 - }))),
3430 - headerClassName: "edit-widgets-sidebar__panel-tabs"
3431 - /* translators: button label text should, if possible, be under 16 characters. */
3432 - ,
3433 - title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
3434 - closeLabel: (0,external_wp_i18n_namespaceObject.__)('Close settings'),
3435 - scope: "core/edit-widgets",
3436 - identifier: currentArea,
3437 - icon: library_cog,
3438 - isActiveByDefault: SIDEBAR_ACTIVE_BY_DEFAULT
3439 - }, currentArea === WIDGET_AREAS_IDENTIFIER && (0,external_wp_element_namespaceObject.createElement)(WidgetAreas, {
3440 - selectedWidgetAreaId: selectedWidgetAreaBlock === null || selectedWidgetAreaBlock === void 0 ? void 0 : selectedWidgetAreaBlock.attributes.id
3441 - }), currentArea === BLOCK_INSPECTOR_IDENTIFIER && (hasSelectedNonAreaBlock ? (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockInspector, null) : // Pretend that Widget Areas are part of the UI by not
3442 - // showing the Block Inspector when one is selected.
3443 - (0,external_wp_element_namespaceObject.createElement)("span", {
3444 - className: "block-editor-block-inspector__no-blocks"
3445 - }, (0,external_wp_i18n_namespaceObject.__)('No block selected.'))));
3446 -}
3447 -//# sourceMappingURL=index.js.map
3448 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/plus.js
3449 -
3450 -
3451 -/**
3452 - * WordPress dependencies
3453 - */
3454 -
3455 -const plus = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
3456 - xmlns: "http://www.w3.org/2000/svg",
3457 - viewBox: "0 0 24 24"
3458 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
3459 - d: "M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z"
3460 -}));
3461 -/* harmony default export */ var library_plus = (plus);
3462 -//# sourceMappingURL=plus.js.map
3463 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/list-view.js
3464 -
3465 -
3466 -/**
3467 - * WordPress dependencies
3468 - */
3469 -
3470 -const listView = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
3471 - viewBox: "0 0 24 24",
3472 - xmlns: "http://www.w3.org/2000/svg"
3473 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
3474 - d: "M13.8 5.2H3v1.5h10.8V5.2zm-3.6 12v1.5H21v-1.5H10.2zm7.2-6H6.6v1.5h10.8v-1.5z"
3475 -}));
3476 -/* harmony default export */ var list_view = (listView);
3477 -//# sourceMappingURL=list-view.js.map
3478 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/save-button/index.js
3479 -
3480 -
3481 -/**
3482 - * WordPress dependencies
3483 - */
3484 -
3485 -
3486 -
3487 -/**
3488 - * Internal dependencies
3489 - */
3490 -
3491 -
3492 -
3493 -function SaveButton() {
3494 - const {
3495 - hasEditedWidgetAreaIds,
3496 - isSaving
3497 - } = (0,external_wp_data_namespaceObject.useSelect)(select => {
3498 - var _getEditedWidgetAreas;
3499 -
3500 - const {
3501 - getEditedWidgetAreas,
3502 - isSavingWidgetAreas
3503 - } = select(store_store);
3504 - return {
3505 - hasEditedWidgetAreaIds: ((_getEditedWidgetAreas = getEditedWidgetAreas()) === null || _getEditedWidgetAreas === void 0 ? void 0 : _getEditedWidgetAreas.length) > 0,
3506 - isSaving: isSavingWidgetAreas()
3507 - };
3508 - }, []);
3509 - const {
3510 - saveEditedWidgetAreas
3511 - } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
3512 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
3513 - variant: "primary",
3514 - isBusy: isSaving,
3515 - "aria-disabled": isSaving,
3516 - onClick: isSaving ? undefined : saveEditedWidgetAreas,
3517 - disabled: !hasEditedWidgetAreaIds
3518 - }, isSaving ? (0,external_wp_i18n_namespaceObject.__)('Saving…') : (0,external_wp_i18n_namespaceObject.__)('Update'));
3519 -}
3520 -
3521 -/* harmony default export */ var save_button = (SaveButton);
3522 -//# sourceMappingURL=index.js.map
3523 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/undo.js
3524 -
3525 -
3526 -/**
3527 - * WordPress dependencies
3528 - */
3529 -
3530 -const undo = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
3531 - xmlns: "http://www.w3.org/2000/svg",
3532 - viewBox: "0 0 24 24"
3533 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
3534 - 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"
3535 -}));
3536 -/* harmony default export */ var library_undo = (undo);
3537 -//# sourceMappingURL=undo.js.map
3538 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/redo.js
3539 -
3540 -
3541 -/**
3542 - * WordPress dependencies
3543 - */
3544 -
3545 -const redo = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
3546 - xmlns: "http://www.w3.org/2000/svg",
3547 - viewBox: "0 0 24 24"
3548 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
3549 - 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"
3550 -}));
3551 -/* harmony default export */ var library_redo = (redo);
3552 -//# sourceMappingURL=redo.js.map
3553 -;// CONCATENATED MODULE: external ["wp","keycodes"]
3554 -var external_wp_keycodes_namespaceObject = window["wp"]["keycodes"];
3555 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/header/undo-redo/undo.js
3556 -
3557 -
3558 -/**
3559 - * WordPress dependencies
3560 - */
3561 -
3562 -
3563 -
3564 -
3565 -
3566 -
3567 -function UndoButton() {
3568 - const hasUndo = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).hasUndo(), []);
3569 - const {
3570 - undo
3571 - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
3572 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
3573 - icon: !(0,external_wp_i18n_namespaceObject.isRTL)() ? library_undo : library_redo,
3574 - label: (0,external_wp_i18n_namespaceObject.__)('Undo'),
3575 - shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('z') // If there are no undo levels we don't want to actually disable this
3576 - // button, because it will remove focus for keyboard users.
3577 - // See: https://github.com/WordPress/gutenberg/issues/3486
3578 - ,
3579 - "aria-disabled": !hasUndo,
3580 - onClick: hasUndo ? undo : undefined
3581 - });
3582 -}
3583 -//# sourceMappingURL=undo.js.map
3584 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/header/undo-redo/redo.js
3585 -
3586 -
3587 -/**
3588 - * WordPress dependencies
3589 - */
3590 -
3591 -
3592 -
3593 -
3594 -
3595 -
3596 -function RedoButton() {
3597 - const hasRedo = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).hasRedo(), []);
3598 - const {
3599 - redo
3600 - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
3601 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
3602 - icon: !(0,external_wp_i18n_namespaceObject.isRTL)() ? library_redo : library_undo,
3603 - label: (0,external_wp_i18n_namespaceObject.__)('Redo'),
3604 - shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primaryShift('z') // If there are no undo levels we don't want to actually disable this
3605 - // button, because it will remove focus for keyboard users.
3606 - // See: https://github.com/WordPress/gutenberg/issues/3486
3607 - ,
3608 - "aria-disabled": !hasRedo,
3609 - onClick: hasRedo ? redo : undefined
3610 - });
3611 -}
3612 -//# sourceMappingURL=redo.js.map
3613 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/external.js
3614 -
3615 -
3616 -/**
3617 - * WordPress dependencies
3618 - */
3619 -
3620 -const external = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
3621 - xmlns: "http://www.w3.org/2000/svg",
3622 - viewBox: "0 0 24 24"
3623 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
3624 - 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"
3625 -}));
3626 -/* harmony default export */ var library_external = (external);
3627 -//# sourceMappingURL=external.js.map
3628 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/keyboard-shortcut-help-modal/config.js
3629 -/**
3630 - * WordPress dependencies
3631 - */
3632 -
3633 -const textFormattingShortcuts = [{
3634 - keyCombination: {
3635 - modifier: 'primary',
3636 - character: 'b'
3637 - },
3638 - description: (0,external_wp_i18n_namespaceObject.__)('Make the selected text bold.')
3639 -}, {
3640 - keyCombination: {
3641 - modifier: 'primary',
3642 - character: 'i'
3643 - },
3644 - description: (0,external_wp_i18n_namespaceObject.__)('Make the selected text italic.')
3645 -}, {
3646 - keyCombination: {
3647 - modifier: 'primary',
3648 - character: 'k'
3649 - },
3650 - description: (0,external_wp_i18n_namespaceObject.__)('Convert the selected text into a link.')
3651 -}, {
3652 - keyCombination: {
3653 - modifier: 'primaryShift',
3654 - character: 'k'
3655 - },
3656 - description: (0,external_wp_i18n_namespaceObject.__)('Remove a link.')
3657 -}, {
3658 - keyCombination: {
3659 - modifier: 'primary',
3660 - character: 'u'
3661 - },
3662 - description: (0,external_wp_i18n_namespaceObject.__)('Underline the selected text.')
3663 -}];
3664 -//# sourceMappingURL=config.js.map
3665 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/keyboard-shortcut-help-modal/shortcut.js
3666 -
3667 -
3668 -/**
3669 - * External dependencies
3670 - */
3671 -
3672 -/**
3673 - * WordPress dependencies
3674 - */
3675 -
3676 -
3677 -
3678 -
3679 -function KeyCombination(_ref) {
3680 - let {
3681 - keyCombination,
3682 - forceAriaLabel
3683 - } = _ref;
3684 - const shortcut = keyCombination.modifier ? external_wp_keycodes_namespaceObject.displayShortcutList[keyCombination.modifier](keyCombination.character) : keyCombination.character;
3685 - const ariaLabel = keyCombination.modifier ? external_wp_keycodes_namespaceObject.shortcutAriaLabel[keyCombination.modifier](keyCombination.character) : keyCombination.character;
3686 - return (0,external_wp_element_namespaceObject.createElement)("kbd", {
3687 - className: "edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination",
3688 - "aria-label": forceAriaLabel || ariaLabel
3689 - }, (0,external_lodash_namespaceObject.castArray)(shortcut).map((character, index) => {
3690 - if (character === '+') {
3691 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, {
3692 - key: index
3693 - }, character);
3694 - }
3695 -
3696 - return (0,external_wp_element_namespaceObject.createElement)("kbd", {
3697 - key: index,
3698 - className: "edit-widgets-keyboard-shortcut-help-modal__shortcut-key"
3699 - }, character);
3700 - }));
3701 -}
3702 -
3703 -function Shortcut(_ref2) {
3704 - let {
3705 - description,
3706 - keyCombination,
3707 - aliases = [],
3708 - ariaLabel
3709 - } = _ref2;
3710 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", {
3711 - className: "edit-widgets-keyboard-shortcut-help-modal__shortcut-description"
3712 - }, description), (0,external_wp_element_namespaceObject.createElement)("div", {
3713 - className: "edit-widgets-keyboard-shortcut-help-modal__shortcut-term"
3714 - }, (0,external_wp_element_namespaceObject.createElement)(KeyCombination, {
3715 - keyCombination: keyCombination,
3716 - forceAriaLabel: ariaLabel
3717 - }), aliases.map((alias, index) => (0,external_wp_element_namespaceObject.createElement)(KeyCombination, {
3718 - keyCombination: alias,
3719 - forceAriaLabel: ariaLabel,
3720 - key: index
3721 - }))));
3722 -}
3723 -
3724 -/* harmony default export */ var keyboard_shortcut_help_modal_shortcut = (Shortcut);
3725 -//# sourceMappingURL=shortcut.js.map
3726 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js
3727 -
3728 -
3729 -/**
3730 - * WordPress dependencies
3731 - */
3732 -
3733 -
3734 -/**
3735 - * Internal dependencies
3736 - */
3737 -
3738 -
3739 -
3740 -function DynamicShortcut(_ref) {
3741 - let {
3742 - name
3743 - } = _ref;
3744 - const {
3745 - keyCombination,
3746 - description,
3747 - aliases
3748 - } = (0,external_wp_data_namespaceObject.useSelect)(select => {
3749 - const {
3750 - getShortcutKeyCombination,
3751 - getShortcutDescription,
3752 - getShortcutAliases
3753 - } = select(external_wp_keyboardShortcuts_namespaceObject.store);
3754 - return {
3755 - keyCombination: getShortcutKeyCombination(name),
3756 - aliases: getShortcutAliases(name),
3757 - description: getShortcutDescription(name)
3758 - };
3759 - }, [name]);
3760 -
3761 - if (!keyCombination) {
3762 - return null;
3763 - }
3764 -
3765 - return (0,external_wp_element_namespaceObject.createElement)(keyboard_shortcut_help_modal_shortcut, {
3766 - keyCombination: keyCombination,
3767 - description: description,
3768 - aliases: aliases
3769 - });
3770 -}
3771 -
3772 -/* harmony default export */ var dynamic_shortcut = (DynamicShortcut);
3773 -//# sourceMappingURL=dynamic-shortcut.js.map
3774 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/keyboard-shortcut-help-modal/index.js
3775 -
3776 -
3777 -/**
3778 - * External dependencies
3779 - */
3780 -
3781 -
3782 -/**
3783 - * WordPress dependencies
3784 - */
3785 -
3786 -
3787 -
3788 -
3789 -
3790 -/**
3791 - * Internal dependencies
3792 - */
3793 -
3794 -
3795 -
3796 -
3797 -
3798 -const ShortcutList = _ref => {
3799 - let {
3800 - shortcuts
3801 - } = _ref;
3802 - return (
3803 - /*
3804 - * Disable reason: The `list` ARIA role is redundant but
3805 - * Safari+VoiceOver won't announce the list otherwise.
3806 - */
3807 -
3808 - /* eslint-disable jsx-a11y/no-redundant-roles */
3809 - (0,external_wp_element_namespaceObject.createElement)("ul", {
3810 - className: "edit-widgets-keyboard-shortcut-help-modal__shortcut-list",
3811 - role: "list"
3812 - }, shortcuts.map((shortcut, index) => (0,external_wp_element_namespaceObject.createElement)("li", {
3813 - className: "edit-widgets-keyboard-shortcut-help-modal__shortcut",
3814 - key: index
3815 - }, (0,external_lodash_namespaceObject.isString)(shortcut) ? (0,external_wp_element_namespaceObject.createElement)(dynamic_shortcut, {
3816 - name: shortcut
3817 - }) : (0,external_wp_element_namespaceObject.createElement)(keyboard_shortcut_help_modal_shortcut, shortcut))))
3818 - /* eslint-enable jsx-a11y/no-redundant-roles */
3819 -
3820 - );
3821 -};
3822 -
3823 -const ShortcutSection = _ref2 => {
3824 - let {
3825 - title,
3826 - shortcuts,
3827 - className
3828 - } = _ref2;
3829 - return (0,external_wp_element_namespaceObject.createElement)("section", {
3830 - className: classnames_default()('edit-widgets-keyboard-shortcut-help-modal__section', className)
3831 - }, !!title && (0,external_wp_element_namespaceObject.createElement)("h2", {
3832 - className: "edit-widgets-keyboard-shortcut-help-modal__section-title"
3833 - }, title), (0,external_wp_element_namespaceObject.createElement)(ShortcutList, {
3834 - shortcuts: shortcuts
3835 - }));
3836 -};
3837 -
3838 -const ShortcutCategorySection = _ref3 => {
3839 - let {
3840 - title,
3841 - categoryName,
3842 - additionalShortcuts = []
3843 - } = _ref3;
3844 - const categoryShortcuts = (0,external_wp_data_namespaceObject.useSelect)(select => {
3845 - return select(external_wp_keyboardShortcuts_namespaceObject.store).getCategoryShortcuts(categoryName);
3846 - }, [categoryName]);
3847 - return (0,external_wp_element_namespaceObject.createElement)(ShortcutSection, {
3848 - title: title,
3849 - shortcuts: categoryShortcuts.concat(additionalShortcuts)
3850 - });
3851 -};
3852 -
3853 -function KeyboardShortcutHelpModal(_ref4) {
3854 - let {
3855 - isModalActive,
3856 - toggleModal
3857 - } = _ref4;
3858 - (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/edit-widgets/keyboard-shortcuts', toggleModal, {
3859 - bindGlobal: true
3860 - });
3861 -
3862 - if (!isModalActive) {
3863 - return null;
3864 - }
3865 -
3866 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, {
3867 - className: "edit-widgets-keyboard-shortcut-help-modal",
3868 - title: (0,external_wp_i18n_namespaceObject.__)('Keyboard shortcuts'),
3869 - closeLabel: (0,external_wp_i18n_namespaceObject.__)('Close'),
3870 - onRequestClose: toggleModal
3871 - }, (0,external_wp_element_namespaceObject.createElement)(ShortcutSection, {
3872 - className: "edit-widgets-keyboard-shortcut-help-modal__main-shortcuts",
3873 - shortcuts: ['core/edit-widgets/keyboard-shortcuts']
3874 - }), (0,external_wp_element_namespaceObject.createElement)(ShortcutCategorySection, {
3875 - title: (0,external_wp_i18n_namespaceObject.__)('Global shortcuts'),
3876 - categoryName: "global"
3877 - }), (0,external_wp_element_namespaceObject.createElement)(ShortcutCategorySection, {
3878 - title: (0,external_wp_i18n_namespaceObject.__)('Selection shortcuts'),
3879 - categoryName: "selection"
3880 - }), (0,external_wp_element_namespaceObject.createElement)(ShortcutCategorySection, {
3881 - title: (0,external_wp_i18n_namespaceObject.__)('Block shortcuts'),
3882 - categoryName: "block",
3883 - additionalShortcuts: [{
3884 - keyCombination: {
3885 - character: '/'
3886 - },
3887 - description: (0,external_wp_i18n_namespaceObject.__)('Change the block type after adding a new paragraph.'),
3888 -
3889 - /* translators: The forward-slash character. e.g. '/'. */
3890 - ariaLabel: (0,external_wp_i18n_namespaceObject.__)('Forward-slash')
3891 - }]
3892 - }), (0,external_wp_element_namespaceObject.createElement)(ShortcutSection, {
3893 - title: (0,external_wp_i18n_namespaceObject.__)('Text formatting'),
3894 - shortcuts: textFormattingShortcuts
3895 - }));
3896 -}
3897 -//# sourceMappingURL=index.js.map
3898 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/more-menu/tools-more-menu-group.js
3899 -
3900 -
3901 -/**
3902 - * External dependencies
3903 - */
3904 -
3905 -/**
3906 - * WordPress dependencies
3907 - */
3908 -
3909 -
3910 -const {
3911 - Fill: ToolsMoreMenuGroup,
3912 - Slot
3913 -} = (0,external_wp_components_namespaceObject.createSlotFill)('EditWidgetsToolsMoreMenuGroup');
3914 -
3915 -ToolsMoreMenuGroup.Slot = _ref => {
3916 - let {
3917 - fillProps
3918 - } = _ref;
3919 - return (0,external_wp_element_namespaceObject.createElement)(Slot, {
3920 - fillProps: fillProps
3921 - }, fills => !(0,external_lodash_namespaceObject.isEmpty)(fills) && fills);
3922 -};
3923 -
3924 -/* harmony default export */ var tools_more_menu_group = (ToolsMoreMenuGroup);
3925 -//# sourceMappingURL=tools-more-menu-group.js.map
3926 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/more-menu/index.js
3927 -
3928 -
3929 -/**
3930 - * WordPress dependencies
3931 - */
3932 -
3933 -
3934 -
3935 -
3936 -
3937 -
3938 -
3939 -
3940 -/**
3941 - * Internal dependencies
3942 - */
3943 -
3944 -
3945 -
3946 -function MoreMenu() {
3947 - const [isKeyboardShortcutsModalActive, setIsKeyboardShortcutsModalVisible] = (0,external_wp_element_namespaceObject.useState)(false);
3948 -
3949 - const toggleKeyboardShortcutsModal = () => setIsKeyboardShortcutsModalVisible(!isKeyboardShortcutsModalActive);
3950 -
3951 - (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/edit-widgets/keyboard-shortcuts', toggleKeyboardShortcutsModal);
3952 - const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
3953 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(MoreMenuDropdown, null, onClose => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, isLargeViewport && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
3954 - label: (0,external_wp_i18n_namespaceObject._x)('View', 'noun')
3955 - }, (0,external_wp_element_namespaceObject.createElement)(MoreMenuFeatureToggle, {
3956 - scope: "core/edit-widgets",
3957 - feature: "fixedToolbar",
3958 - label: (0,external_wp_i18n_namespaceObject.__)('Top toolbar'),
3959 - info: (0,external_wp_i18n_namespaceObject.__)('Access all block and document tools in a single place'),
3960 - messageActivated: (0,external_wp_i18n_namespaceObject.__)('Top toolbar activated'),
3961 - messageDeactivated: (0,external_wp_i18n_namespaceObject.__)('Top toolbar deactivated')
3962 - })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
3963 - label: (0,external_wp_i18n_namespaceObject.__)('Tools')
3964 - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
3965 - onClick: () => {
3966 - setIsKeyboardShortcutsModalVisible(true);
3967 - },
3968 - shortcut: external_wp_keycodes_namespaceObject.displayShortcut.access('h')
3969 - }, (0,external_wp_i18n_namespaceObject.__)('Keyboard shortcuts')), (0,external_wp_element_namespaceObject.createElement)(MoreMenuFeatureToggle, {
3970 - scope: "core/edit-widgets",
3971 - feature: "welcomeGuide",
3972 - label: (0,external_wp_i18n_namespaceObject.__)('Welcome Guide')
3973 - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
3974 - role: "menuitem",
3975 - icon: library_external,
3976 - href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/support/article/block-based-widgets-editor/'),
3977 - target: "_blank",
3978 - rel: "noopener noreferrer"
3979 - }, (0,external_wp_i18n_namespaceObject.__)('Help'), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, {
3980 - as: "span"
3981 - },
3982 - /* translators: accessibility text */
3983 - (0,external_wp_i18n_namespaceObject.__)('(opens in a new tab)'))), (0,external_wp_element_namespaceObject.createElement)(tools_more_menu_group.Slot, {
3984 - fillProps: {
3985 - onClose
3986 - }
3987 - })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
3988 - label: (0,external_wp_i18n_namespaceObject.__)('Preferences')
3989 - }, (0,external_wp_element_namespaceObject.createElement)(MoreMenuFeatureToggle, {
3990 - scope: "core/edit-widgets",
3991 - feature: "keepCaretInsideBlock",
3992 - label: (0,external_wp_i18n_namespaceObject.__)('Contain text cursor inside block'),
3993 - info: (0,external_wp_i18n_namespaceObject.__)('Aids screen readers by stopping text caret from leaving blocks.'),
3994 - messageActivated: (0,external_wp_i18n_namespaceObject.__)('Contain text cursor inside block activated'),
3995 - messageDeactivated: (0,external_wp_i18n_namespaceObject.__)('Contain text cursor inside block deactivated')
3996 - }), (0,external_wp_element_namespaceObject.createElement)(MoreMenuFeatureToggle, {
3997 - scope: "core/edit-widgets",
3998 - feature: "themeStyles",
3999 - info: (0,external_wp_i18n_namespaceObject.__)('Make the editor look like your theme.'),
4000 - label: (0,external_wp_i18n_namespaceObject.__)('Use theme styles')
4001 - }), isLargeViewport && (0,external_wp_element_namespaceObject.createElement)(MoreMenuFeatureToggle, {
4002 - scope: "core/edit-widgets",
4003 - feature: "showBlockBreadcrumbs",
4004 - label: (0,external_wp_i18n_namespaceObject.__)('Display block breadcrumbs'),
4005 - info: (0,external_wp_i18n_namespaceObject.__)('Shows block breadcrumbs at the bottom of the editor.'),
4006 - messageActivated: (0,external_wp_i18n_namespaceObject.__)('Display block breadcrumbs activated'),
4007 - messageDeactivated: (0,external_wp_i18n_namespaceObject.__)('Display block breadcrumbs deactivated')
4008 - })))), (0,external_wp_element_namespaceObject.createElement)(KeyboardShortcutHelpModal, {
4009 - isModalActive: isKeyboardShortcutsModalActive,
4010 - toggleModal: toggleKeyboardShortcutsModal
4011 - }));
4012 -}
4013 -//# sourceMappingURL=index.js.map
4014 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/header/index.js
4015 -
4016 -
4017 -/**
4018 - * WordPress dependencies
4019 - */
4020 -
4021 -
4022 -
4023 -
4024 -
4025 -
4026 -
4027 -
4028 -/**
4029 - * Internal dependencies
4030 - */
4031 -
4032 -
4033 -
4034 -
4035 -
4036 -
4037 -
4038 -
4039 -function Header() {
4040 - const isMediumViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
4041 - const inserterButton = (0,external_wp_element_namespaceObject.useRef)();
4042 - const widgetAreaClientId = use_last_selected_widget_area();
4043 - const isLastSelectedWidgetAreaOpen = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getIsWidgetAreaOpen(widgetAreaClientId), [widgetAreaClientId]);
4044 - const {
4045 - isInserterOpen,
4046 - isListViewOpen
4047 - } = (0,external_wp_data_namespaceObject.useSelect)(select => {
4048 - const {
4049 - isInserterOpened,
4050 - isListViewOpened
4051 - } = select(store_store);
4052 - return {
4053 - isInserterOpen: isInserterOpened(),
4054 - isListViewOpen: isListViewOpened()
4055 - };
4056 - }, []);
4057 - const {
4058 - setIsWidgetAreaOpen,
4059 - setIsInserterOpened,
4060 - setIsListViewOpened
4061 - } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
4062 - const {
4063 - selectBlock
4064 - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
4065 -
4066 - const handleClick = () => {
4067 - if (isInserterOpen) {
4068 - // Focusing the inserter button closes the inserter popover
4069 - setIsInserterOpened(false);
4070 - } else {
4071 - if (!isLastSelectedWidgetAreaOpen) {
4072 - // Select the last selected block if hasn't already.
4073 - selectBlock(widgetAreaClientId); // Open the last selected widget area when opening the inserter.
4074 -
4075 - setIsWidgetAreaOpen(widgetAreaClientId, true);
4076 - } // The DOM updates resulting from selectBlock() and setIsInserterOpened() calls are applied the
4077 - // same tick and pretty much in a random order. The inserter is closed if any other part of the
4078 - // app receives focus. If selectBlock() happens to take effect after setIsInserterOpened() then
4079 - // the inserter is visible for a brief moment and then gets auto-closed due to focus moving to
4080 - // the selected block.
4081 -
4082 -
4083 - window.requestAnimationFrame(() => setIsInserterOpened(true));
4084 - }
4085 - };
4086 -
4087 - const toggleListView = (0,external_wp_element_namespaceObject.useCallback)(() => setIsListViewOpened(!isListViewOpen), [setIsListViewOpened, isListViewOpen]);
4088 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", {
4089 - className: "edit-widgets-header"
4090 - }, (0,external_wp_element_namespaceObject.createElement)("div", {
4091 - className: "edit-widgets-header__navigable-toolbar-wrapper"
4092 - }, isMediumViewport && (0,external_wp_element_namespaceObject.createElement)("h1", {
4093 - className: "edit-widgets-header__title"
4094 - }, (0,external_wp_i18n_namespaceObject.__)('Widgets')), !isMediumViewport && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, {
4095 - as: "h1",
4096 - className: "edit-widgets-header__title"
4097 - }, (0,external_wp_i18n_namespaceObject.__)('Widgets')), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.NavigableToolbar, {
4098 - className: "edit-widgets-header-toolbar",
4099 - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Document tools')
4100 - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarItem, {
4101 - ref: inserterButton,
4102 - as: external_wp_components_namespaceObject.Button,
4103 - className: "edit-widgets-header-toolbar__inserter-toggle",
4104 - variant: "primary",
4105 - isPressed: isInserterOpen,
4106 - onMouseDown: event => {
4107 - event.preventDefault();
4108 - },
4109 - onClick: handleClick,
4110 - icon: library_plus
4111 - /* translators: button label text should, if possible, be under 16
4112 - characters. */
4113 - ,
4114 - label: (0,external_wp_i18n_namespaceObject._x)('Toggle block inserter', 'Generic label for block inserter button')
4115 - }), isMediumViewport && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(UndoButton, null), (0,external_wp_element_namespaceObject.createElement)(RedoButton, null), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarItem, {
4116 - as: external_wp_components_namespaceObject.Button,
4117 - className: "edit-widgets-header-toolbar__list-view-toggle",
4118 - icon: list_view,
4119 - isPressed: isListViewOpen
4120 - /* translators: button label text should, if possible, be under 16 characters. */
4121 - ,
4122 - label: (0,external_wp_i18n_namespaceObject.__)('List View'),
4123 - onClick: toggleListView
4124 - })))), (0,external_wp_element_namespaceObject.createElement)("div", {
4125 - className: "edit-widgets-header__actions"
4126 - }, (0,external_wp_element_namespaceObject.createElement)(save_button, null), (0,external_wp_element_namespaceObject.createElement)(pinned_items.Slot, {
4127 - scope: "core/edit-widgets"
4128 - }), (0,external_wp_element_namespaceObject.createElement)(MoreMenu, null))));
4129 -}
4130 -
4131 -/* harmony default export */ var header = (Header);
4132 -//# sourceMappingURL=index.js.map
4133 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/notices/index.js
4134 -
4135 -
4136 -/**
4137 - * External dependencies
4138 - */
4139 -
4140 -/**
4141 - * WordPress dependencies
4142 - */
4143 -
4144 -
4145 -
4146 -
4147 -
4148 -function Notices() {
4149 - const {
4150 - removeNotice
4151 - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
4152 - const {
4153 - notices
4154 - } = (0,external_wp_data_namespaceObject.useSelect)(select => {
4155 - return {
4156 - notices: select(external_wp_notices_namespaceObject.store).getNotices()
4157 - };
4158 - }, []);
4159 - const dismissibleNotices = (0,external_lodash_namespaceObject.filter)(notices, {
4160 - isDismissible: true,
4161 - type: 'default'
4162 - });
4163 - const nonDismissibleNotices = (0,external_lodash_namespaceObject.filter)(notices, {
4164 - isDismissible: false,
4165 - type: 'default'
4166 - });
4167 - const snackbarNotices = (0,external_lodash_namespaceObject.filter)(notices, {
4168 - type: 'snackbar'
4169 - });
4170 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.NoticeList, {
4171 - notices: nonDismissibleNotices,
4172 - className: "edit-widgets-notices__pinned"
4173 - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.NoticeList, {
4174 - notices: dismissibleNotices,
4175 - className: "edit-widgets-notices__dismissible",
4176 - onRemove: removeNotice
4177 - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SnackbarList, {
4178 - notices: snackbarNotices,
4179 - className: "edit-widgets-notices__snackbar",
4180 - onRemove: removeNotice
4181 - }));
4182 -}
4183 -
4184 -/* harmony default export */ var notices = (Notices);
4185 -//# sourceMappingURL=index.js.map
4186 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/widget-areas-block-editor-content/index.js
4187 -
4188 -
4189 -/**
4190 - * WordPress dependencies
4191 - */
4192 -
4193 -
4194 -
4195 -
4196 -/**
4197 - * Internal dependencies
4198 - */
4199 -
4200 -
4201 -
4202 -function WidgetAreasBlockEditorContent(_ref) {
4203 - let {
4204 - blockEditorSettings
4205 - } = _ref;
4206 - const hasThemeStyles = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).isFeatureActive('core/edit-widgets', 'themeStyles'), []);
4207 - const styles = (0,external_wp_element_namespaceObject.useMemo)(() => {
4208 - return hasThemeStyles ? blockEditorSettings.styles : [];
4209 - }, [blockEditorSettings, hasThemeStyles]);
4210 - return (0,external_wp_element_namespaceObject.createElement)("div", {
4211 - className: "edit-widgets-block-editor"
4212 - }, (0,external_wp_element_namespaceObject.createElement)(notices, null), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockTools, null, (0,external_wp_element_namespaceObject.createElement)(keyboard_shortcuts, null), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__unstableEditorStyles, {
4213 - styles: styles
4214 - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockSelectionClearer, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.WritingFlow, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ObserveTyping, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockList, {
4215 - className: "edit-widgets-main-block-list"
4216 - }))))));
4217 -}
4218 -//# sourceMappingURL=index.js.map
4219 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/close.js
4220 -
4221 -
4222 -/**
4223 - * WordPress dependencies
4224 - */
4225 -
4226 -const close_close = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
4227 - xmlns: "http://www.w3.org/2000/svg",
4228 - viewBox: "0 0 24 24"
4229 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
4230 - d: "M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"
4231 -}));
4232 -/* harmony default export */ var library_close = (close_close);
4233 -//# sourceMappingURL=close.js.map
4234 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/hooks/use-widget-library-insertion-point.js
4235 -/**
4236 - * WordPress dependencies
4237 - */
4238 -
4239 -
4240 -
4241 -/**
4242 - * Internal dependencies
4243 - */
4244 -
4245 -
4246 -
4247 -
4248 -const useWidgetLibraryInsertionPoint = () => {
4249 - const firstRootId = (0,external_wp_data_namespaceObject.useSelect)(select => {
4250 - var _widgetAreasPost$bloc;
4251 -
4252 - // Default to the first widget area
4253 - const {
4254 - getEntityRecord
4255 - } = select(external_wp_coreData_namespaceObject.store);
4256 - const widgetAreasPost = getEntityRecord(KIND, POST_TYPE, buildWidgetAreasPostId());
4257 - return widgetAreasPost === null || widgetAreasPost === void 0 ? void 0 : (_widgetAreasPost$bloc = widgetAreasPost.blocks[0]) === null || _widgetAreasPost$bloc === void 0 ? void 0 : _widgetAreasPost$bloc.clientId;
4258 - }, []);
4259 - return (0,external_wp_data_namespaceObject.useSelect)(select => {
4260 - const {
4261 - getBlockRootClientId,
4262 - getBlockSelectionEnd,
4263 - getBlockOrder,
4264 - getBlockIndex
4265 - } = select(external_wp_blockEditor_namespaceObject.store);
4266 -
4267 - const insertionPoint = select(store_store).__experimentalGetInsertionPoint(); // "Browse all" in the quick inserter will set the rootClientId to the current block.
4268 - // Otherwise, it will just be undefined, and we'll have to handle it differently below.
4269 -
4270 -
4271 - if (insertionPoint.rootClientId) {
4272 - return insertionPoint;
4273 - }
4274 -
4275 - const clientId = getBlockSelectionEnd() || firstRootId;
4276 - const rootClientId = getBlockRootClientId(clientId); // If the selected block is at the root level, it's a widget area and
4277 - // blocks can't be inserted here. Return this block as the root and the
4278 - // last child clientId indicating insertion at the end.
4279 -
4280 - if (clientId && rootClientId === '') {
4281 - return {
4282 - rootClientId: clientId,
4283 - insertionIndex: getBlockOrder(clientId).length
4284 - };
4285 - }
4286 -
4287 - return {
4288 - rootClientId,
4289 - insertionIndex: getBlockIndex(clientId) + 1
4290 - };
4291 - }, [firstRootId]);
4292 -};
4293 -
4294 -/* harmony default export */ var use_widget_library_insertion_point = (useWidgetLibraryInsertionPoint);
4295 -//# sourceMappingURL=use-widget-library-insertion-point.js.map
4296 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/secondary-sidebar/inserter-sidebar.js
4297 -
4298 -
4299 -
4300 -/**
4301 - * WordPress dependencies
4302 - */
4303 -
4304 -
4305 -
4306 -
4307 -
4308 -
4309 -
4310 -/**
4311 - * Internal dependencies
4312 - */
4313 -
4314 -
4315 -
4316 -function InserterSidebar() {
4317 - const isMobileViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<');
4318 - const {
4319 - rootClientId,
4320 - insertionIndex
4321 - } = use_widget_library_insertion_point();
4322 - const {
4323 - setIsInserterOpened
4324 - } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
4325 - const closeInserter = (0,external_wp_element_namespaceObject.useCallback)(() => {
4326 - return setIsInserterOpened(false);
4327 - }, [setIsInserterOpened]);
4328 - const TagName = !isMobileViewport ? external_wp_components_namespaceObject.VisuallyHidden : 'div';
4329 - const [inserterDialogRef, inserterDialogProps] = (0,external_wp_compose_namespaceObject.__experimentalUseDialog)({
4330 - onClose: closeInserter,
4331 - focusOnMount: null
4332 - });
4333 - const libraryRef = (0,external_wp_element_namespaceObject.useRef)();
4334 - (0,external_wp_element_namespaceObject.useEffect)(() => {
4335 - libraryRef.current.focusSearch();
4336 - }, []);
4337 - return (0,external_wp_element_namespaceObject.createElement)("div", _extends({
4338 - ref: inserterDialogRef
4339 - }, inserterDialogProps, {
4340 - className: "edit-widgets-layout__inserter-panel"
4341 - }), (0,external_wp_element_namespaceObject.createElement)(TagName, {
4342 - className: "edit-widgets-layout__inserter-panel-header"
4343 - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
4344 - icon: library_close,
4345 - onClick: closeInserter,
4346 - label: (0,external_wp_i18n_namespaceObject.__)('Close block inserter')
4347 - })), (0,external_wp_element_namespaceObject.createElement)("div", {
4348 - className: "edit-widgets-layout__inserter-panel-content"
4349 - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalLibrary, {
4350 - showInserterHelpPanel: true,
4351 - shouldFocusBlock: isMobileViewport,
4352 - rootClientId: rootClientId,
4353 - __experimentalInsertionIndex: insertionIndex,
4354 - ref: libraryRef
4355 - })));
4356 -}
4357 -//# sourceMappingURL=inserter-sidebar.js.map
4358 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/secondary-sidebar/list-view-sidebar.js
4359 -
4360 -
4361 -/**
4362 - * WordPress dependencies
4363 - */
4364 -
4365 -
4366 -
4367 -
4368 -
4369 -
4370 -
4371 -/**
4372 - * Internal dependencies
4373 - */
4374 -
4375 -
4376 -function ListViewSidebar() {
4377 - const {
4378 - setIsListViewOpened
4379 - } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
4380 - const {
4381 - clearSelectedBlock,
4382 - selectBlock
4383 - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
4384 -
4385 - async function selectEditorBlock(clientId) {
4386 - await clearSelectedBlock();
4387 - selectBlock(clientId, -1);
4388 - }
4389 -
4390 - const focusOnMountRef = (0,external_wp_compose_namespaceObject.useFocusOnMount)('firstElement');
4391 - const headerFocusReturnRef = (0,external_wp_compose_namespaceObject.useFocusReturn)();
4392 - const contentFocusReturnRef = (0,external_wp_compose_namespaceObject.useFocusReturn)();
4393 -
4394 - function closeOnEscape(event) {
4395 - if (event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE && !event.defaultPrevented) {
4396 - event.preventDefault();
4397 - setIsListViewOpened(false);
4398 - }
4399 - }
4400 -
4401 - const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ListViewSidebar);
4402 - const labelId = `edit-widgets-editor__list-view-panel-label-${instanceId}`;
4403 - return (// eslint-disable-next-line jsx-a11y/no-static-element-interactions
4404 - (0,external_wp_element_namespaceObject.createElement)("div", {
4405 - "aria-labelledby": labelId,
4406 - className: "edit-widgets-editor__list-view-panel",
4407 - onKeyDown: closeOnEscape
4408 - }, (0,external_wp_element_namespaceObject.createElement)("div", {
4409 - className: "edit-widgets-editor__list-view-panel-header",
4410 - ref: headerFocusReturnRef
4411 - }, (0,external_wp_element_namespaceObject.createElement)("strong", {
4412 - id: labelId
4413 - }, (0,external_wp_i18n_namespaceObject.__)('List View')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
4414 - icon: close_small,
4415 - label: (0,external_wp_i18n_namespaceObject.__)('Close List View Sidebar'),
4416 - onClick: () => setIsListViewOpened(false)
4417 - })), (0,external_wp_element_namespaceObject.createElement)("div", {
4418 - className: "edit-widgets-editor__list-view-panel-content",
4419 - ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([contentFocusReturnRef, focusOnMountRef])
4420 - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalListView, {
4421 - onSelect: selectEditorBlock,
4422 - showNestedBlocks: true,
4423 - __experimentalHideContainerBlockActions: true,
4424 - __experimentalFeatures: true,
4425 - __experimentalPersistentListViewFeatures: true
4426 - })))
4427 - );
4428 -}
4429 -//# sourceMappingURL=list-view-sidebar.js.map
4430 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/secondary-sidebar/index.js
4431 -
4432 -
4433 -/**
4434 - * WordPress dependencies
4435 - */
4436 -
4437 -/**
4438 - * Internal dependencies
4439 - */
4440 -
4441 -
4442 -/**
4443 - * Internal dependencies
4444 - */
4445 -
4446 -
4447 -
4448 -function SecondarySidebar() {
4449 - const {
4450 - isInserterOpen,
4451 - isListViewOpen
4452 - } = (0,external_wp_data_namespaceObject.useSelect)(select => {
4453 - const {
4454 - isInserterOpened,
4455 - isListViewOpened
4456 - } = select(store_store);
4457 - return {
4458 - isInserterOpen: isInserterOpened(),
4459 - isListViewOpen: isListViewOpened()
4460 - };
4461 - }, []);
4462 -
4463 - if (isInserterOpen) {
4464 - return (0,external_wp_element_namespaceObject.createElement)(InserterSidebar, null);
4465 - }
4466 -
4467 - if (isListViewOpen) {
4468 - return (0,external_wp_element_namespaceObject.createElement)(ListViewSidebar, null);
4469 - }
4470 -
4471 - return null;
4472 -}
4473 -//# sourceMappingURL=index.js.map
4474 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/layout/interface.js
4475 -
4476 -
4477 -/**
4478 - * WordPress dependencies
4479 - */
4480 -
4481 -
4482 -
4483 -
4484 -
4485 -
4486 -
4487 -/**
4488 - * Internal dependencies
4489 - */
4490 -
4491 -
4492 -
4493 -
4494 -
4495 -const interfaceLabels = {
4496 - /* translators: accessibility text for the widgets screen top bar landmark region. */
4497 - header: (0,external_wp_i18n_namespaceObject.__)('Widgets top bar'),
4498 -
4499 - /* translators: accessibility text for the widgets screen content landmark region. */
4500 - body: (0,external_wp_i18n_namespaceObject.__)('Widgets and blocks'),
4501 -
4502 - /* translators: accessibility text for the widgets screen settings landmark region. */
4503 - sidebar: (0,external_wp_i18n_namespaceObject.__)('Widgets settings'),
4504 -
4505 - /* translators: accessibility text for the widgets screen footer landmark region. */
4506 - footer: (0,external_wp_i18n_namespaceObject.__)('Widgets footer')
4507 -};
4508 -
4509 -function Interface(_ref) {
4510 - let {
4511 - blockEditorSettings
4512 - } = _ref;
4513 - const isMobileViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<');
4514 - const isHugeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('huge', '>=');
4515 - const {
4516 - setIsInserterOpened,
4517 - setIsListViewOpened,
4518 - closeGeneralSidebar
4519 - } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
4520 - const {
4521 - hasBlockBreadCrumbsEnabled,
4522 - hasSidebarEnabled,
4523 - isInserterOpened,
4524 - isListViewOpened,
4525 - previousShortcut,
4526 - nextShortcut
4527 - } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
4528 - hasSidebarEnabled: !!select(store).getActiveComplementaryArea(store_store.name),
4529 - isInserterOpened: !!select(store_store).isInserterOpened(),
4530 - isListViewOpened: !!select(store_store).isListViewOpened(),
4531 - hasBlockBreadCrumbsEnabled: select(store).isFeatureActive('core/edit-widgets', 'showBlockBreadcrumbs'),
4532 - previousShortcut: select(external_wp_keyboardShortcuts_namespaceObject.store).getAllShortcutKeyCombinations('core/edit-widgets/previous-region'),
4533 - nextShortcut: select(external_wp_keyboardShortcuts_namespaceObject.store).getAllShortcutKeyCombinations('core/edit-widgets/next-region')
4534 - }), []); // Inserter and Sidebars are mutually exclusive
4535 -
4536 - (0,external_wp_element_namespaceObject.useEffect)(() => {
4537 - if (hasSidebarEnabled && !isHugeViewport) {
4538 - setIsInserterOpened(false);
4539 - setIsListViewOpened(false);
4540 - }
4541 - }, [hasSidebarEnabled, isHugeViewport]);
4542 - (0,external_wp_element_namespaceObject.useEffect)(() => {
4543 - if ((isInserterOpened || isListViewOpened) && !isHugeViewport) {
4544 - closeGeneralSidebar();
4545 - }
4546 - }, [isInserterOpened, isListViewOpened, isHugeViewport]);
4547 - const hasSecondarySidebar = isListViewOpened || isInserterOpened;
4548 - return (0,external_wp_element_namespaceObject.createElement)(interface_skeleton, {
4549 - labels: interfaceLabels,
4550 - header: (0,external_wp_element_namespaceObject.createElement)(header, null),
4551 - secondarySidebar: hasSecondarySidebar && (0,external_wp_element_namespaceObject.createElement)(SecondarySidebar, null),
4552 - sidebar: hasSidebarEnabled && (0,external_wp_element_namespaceObject.createElement)(complementary_area.Slot, {
4553 - scope: "core/edit-widgets"
4554 - }),
4555 - content: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(WidgetAreasBlockEditorContent, {
4556 - blockEditorSettings: blockEditorSettings
4557 - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockStyles.Slot, {
4558 - scope: "core/block-inspector"
4559 - })),
4560 - footer: hasBlockBreadCrumbsEnabled && !isMobileViewport && (0,external_wp_element_namespaceObject.createElement)("div", {
4561 - className: "edit-widgets-layout__footer"
4562 - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockBreadcrumb, {
4563 - rootLabelText: (0,external_wp_i18n_namespaceObject.__)('Widgets')
4564 - })),
4565 - shortcuts: {
4566 - previous: previousShortcut,
4567 - next: nextShortcut
4568 - }
4569 - });
4570 -}
4571 -
4572 -/* harmony default export */ var layout_interface = (Interface);
4573 -//# sourceMappingURL=interface.js.map
4574 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/layout/unsaved-changes-warning.js
4575 -/**
4576 - * WordPress dependencies
4577 - */
4578 -
4579 -
4580 -
4581 -/**
4582 - * Internal dependencies
4583 - */
4584 -
4585 -
4586 -/**
4587 - * Warns the user if there are unsaved changes before leaving the editor.
4588 - *
4589 - * This is a duplicate of the component implemented in the editor package.
4590 - * Duplicated here as edit-widgets doesn't depend on editor.
4591 - *
4592 - * @return {WPComponent} The component.
4593 - */
4594 -
4595 -function UnsavedChangesWarning() {
4596 - const isDirty = (0,external_wp_data_namespaceObject.useSelect)(select => {
4597 - const {
4598 - getEditedWidgetAreas
4599 - } = select(store_store);
4600 - const editedWidgetAreas = getEditedWidgetAreas();
4601 - return (editedWidgetAreas === null || editedWidgetAreas === void 0 ? void 0 : editedWidgetAreas.length) > 0;
4602 - }, []);
4603 - (0,external_wp_element_namespaceObject.useEffect)(() => {
4604 - /**
4605 - * Warns the user if there are unsaved changes before leaving the editor.
4606 - *
4607 - * @param {Event} event `beforeunload` event.
4608 - *
4609 - * @return {?string} Warning prompt message, if unsaved changes exist.
4610 - */
4611 - const warnIfUnsavedChanges = event => {
4612 - if (isDirty) {
4613 - event.returnValue = (0,external_wp_i18n_namespaceObject.__)('You have unsaved changes. If you proceed, they will be lost.');
4614 - return event.returnValue;
4615 - }
4616 - };
4617 -
4618 - window.addEventListener('beforeunload', warnIfUnsavedChanges);
4619 - return () => {
4620 - window.removeEventListener('beforeunload', warnIfUnsavedChanges);
4621 - };
4622 - }, [isDirty]);
4623 - return null;
4624 -}
4625 -//# sourceMappingURL=unsaved-changes-warning.js.map
4626 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/welcome-guide/index.js
4627 -
4628 -
4629 -/**
4630 - * WordPress dependencies
4631 - */
4632 -
4633 -
4634 -
4635 -
4636 -
4637 -/**
4638 - * Internal dependencies
4639 - */
4640 -
4641 -
4642 -function WelcomeGuide() {
4643 - var _widgetAreas$filter$l;
4644 -
4645 - const isActive = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).isFeatureActive('core/edit-widgets', 'welcomeGuide'), []);
4646 - const {
4647 - toggleFeature
4648 - } = (0,external_wp_data_namespaceObject.useDispatch)(store);
4649 - const widgetAreas = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getWidgetAreas({
4650 - per_page: -1
4651 - }), []);
4652 -
4653 - if (!isActive) {
4654 - return null;
4655 - }
4656 -
4657 - const isEntirelyBlockWidgets = widgetAreas === null || widgetAreas === void 0 ? void 0 : widgetAreas.every(widgetArea => widgetArea.id === 'wp_inactive_widgets' || widgetArea.widgets.every(widgetId => widgetId.startsWith('block-')));
4658 - const numWidgetAreas = (_widgetAreas$filter$l = widgetAreas === null || widgetAreas === void 0 ? void 0 : widgetAreas.filter(widgetArea => widgetArea.id !== 'wp_inactive_widgets').length) !== null && _widgetAreas$filter$l !== void 0 ? _widgetAreas$filter$l : 0;
4659 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Guide, {
4660 - className: "edit-widgets-welcome-guide",
4661 - contentLabel: (0,external_wp_i18n_namespaceObject.__)('Welcome to block Widgets'),
4662 - finishButtonText: (0,external_wp_i18n_namespaceObject.__)('Get started'),
4663 - onFinish: () => toggleFeature('core/edit-widgets', 'welcomeGuide'),
4664 - pages: [{
4665 - image: (0,external_wp_element_namespaceObject.createElement)(WelcomeGuideImage, {
4666 - nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-canvas.svg",
4667 - animatedSrc: "https://s.w.org/images/block-editor/welcome-canvas.gif"
4668 - }),
4669 - content: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("h1", {
4670 - className: "edit-widgets-welcome-guide__heading"
4671 - }, (0,external_wp_i18n_namespaceObject.__)('Welcome to block Widgets')), isEntirelyBlockWidgets ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("p", {
4672 - className: "edit-widgets-welcome-guide__text"
4673 - }, (0,external_wp_i18n_namespaceObject.sprintf)( // Translators: %s: Number of block areas in the current theme.
4674 - (0,external_wp_i18n_namespaceObject._n)('Your theme provides %s “block” area for you to add and edit content. Try adding a search bar, social icons, or other types of blocks here and see how they’ll look on your site.', 'Your theme provides %s different “block” areas for you to add and edit content. Try adding a search bar, social icons, or other types of blocks here and see how they’ll look on your site.', numWidgetAreas), numWidgetAreas))) : (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("p", {
4675 - className: "edit-widgets-welcome-guide__text"
4676 - }, (0,external_wp_i18n_namespaceObject.__)('You can now add any block to your site’s widget areas. Don’t worry, all of your favorite widgets still work flawlessly.')), (0,external_wp_element_namespaceObject.createElement)("p", {
4677 - className: "edit-widgets-welcome-guide__text"
4678 - }, (0,external_wp_element_namespaceObject.createElement)("strong", null, (0,external_wp_i18n_namespaceObject.__)('Want to stick with the old widgets?')), ' ', (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
4679 - href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/plugins/classic-widgets/')
4680 - }, (0,external_wp_i18n_namespaceObject.__)('Get the Classic Widgets plugin.')))))
4681 - }, {
4682 - image: (0,external_wp_element_namespaceObject.createElement)(WelcomeGuideImage, {
4683 - nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-editor.svg",
4684 - animatedSrc: "https://s.w.org/images/block-editor/welcome-editor.gif"
4685 - }),
4686 - content: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("h1", {
4687 - className: "edit-widgets-welcome-guide__heading"
4688 - }, (0,external_wp_i18n_namespaceObject.__)('Make each block your own')), (0,external_wp_element_namespaceObject.createElement)("p", {
4689 - className: "edit-widgets-welcome-guide__text"
4690 - }, (0,external_wp_i18n_namespaceObject.__)('Each block comes with its own set of controls for changing things like color, width, and alignment. These will show and hide automatically when you have a block selected.')))
4691 - }, {
4692 - image: (0,external_wp_element_namespaceObject.createElement)(WelcomeGuideImage, {
4693 - nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-library.svg",
4694 - animatedSrc: "https://s.w.org/images/block-editor/welcome-library.gif"
4695 - }),
4696 - content: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("h1", {
4697 - className: "edit-widgets-welcome-guide__heading"
4698 - }, (0,external_wp_i18n_namespaceObject.__)('Get to know the block library')), (0,external_wp_element_namespaceObject.createElement)("p", {
4699 - className: "edit-widgets-welcome-guide__text"
4700 - }, (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('All of the blocks available to you live in the block library. You’ll find it wherever you see the <InserterIconImage /> icon.'), {
4701 - InserterIconImage: (0,external_wp_element_namespaceObject.createElement)("img", {
4702 - className: "edit-widgets-welcome-guide__inserter-icon",
4703 - alt: (0,external_wp_i18n_namespaceObject.__)('inserter'),
4704 - src: "data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='18' height='18' rx='2' fill='%231E1E1E'/%3E%3Cpath d='M9.22727 4V14M4 8.77273H14' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E%0A"
4705 - })
4706 - })))
4707 - }, {
4708 - image: (0,external_wp_element_namespaceObject.createElement)(WelcomeGuideImage, {
4709 - nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-documentation.svg",
4710 - animatedSrc: "https://s.w.org/images/block-editor/welcome-documentation.gif"
4711 - }),
4712 - content: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("h1", {
4713 - className: "edit-widgets-welcome-guide__heading"
4714 - }, (0,external_wp_i18n_namespaceObject.__)('Learn how to use the block editor')), (0,external_wp_element_namespaceObject.createElement)("p", {
4715 - className: "edit-widgets-welcome-guide__text"
4716 - }, (0,external_wp_i18n_namespaceObject.__)('New to the block editor? Want to learn more about using it? '), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
4717 - href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/support/article/wordpress-editor/')
4718 - }, (0,external_wp_i18n_namespaceObject.__)("Here's a detailed guide."))))
4719 - }]
4720 - });
4721 -}
4722 -
4723 -function WelcomeGuideImage(_ref) {
4724 - let {
4725 - nonAnimatedSrc,
4726 - animatedSrc
4727 - } = _ref;
4728 - return (0,external_wp_element_namespaceObject.createElement)("picture", {
4729 - className: "edit-widgets-welcome-guide__image"
4730 - }, (0,external_wp_element_namespaceObject.createElement)("source", {
4731 - srcSet: nonAnimatedSrc,
4732 - media: "(prefers-reduced-motion: reduce)"
4733 - }), (0,external_wp_element_namespaceObject.createElement)("img", {
4734 - src: animatedSrc,
4735 - width: "312",
4736 - height: "240",
4737 - alt: ""
4738 - }));
4739 -}
4740 -//# sourceMappingURL=index.js.map
4741 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/components/layout/index.js
4742 -
4743 -
4744 -/**
4745 - * WordPress dependencies
4746 - */
4747 -
4748 -
4749 -
4750 -
4751 -
4752 -/**
4753 - * Internal dependencies
4754 - */
4755 -
4756 -
4757 -
4758 -
4759 -
4760 -
4761 -
4762 -
4763 -function Layout(_ref) {
4764 - let {
4765 - blockEditorSettings,
4766 - onError
4767 - } = _ref;
4768 - const {
4769 - createErrorNotice
4770 - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
4771 -
4772 - function onPluginAreaError(name) {
4773 - createErrorNotice((0,external_wp_i18n_namespaceObject.sprintf)(
4774 - /* translators: %s: plugin name */
4775 - (0,external_wp_i18n_namespaceObject.__)('The "%s" plugin has encountered an error and cannot be rendered.'), name));
4776 - }
4777 -
4778 - return (0,external_wp_element_namespaceObject.createElement)(ErrorBoundary, {
4779 - onError: onError
4780 - }, (0,external_wp_element_namespaceObject.createElement)(WidgetAreasBlockEditorProvider, {
4781 - blockEditorSettings: blockEditorSettings
4782 - }, (0,external_wp_element_namespaceObject.createElement)(layout_interface, {
4783 - blockEditorSettings: blockEditorSettings
4784 - }), (0,external_wp_element_namespaceObject.createElement)(Sidebar, null), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover.Slot, null), (0,external_wp_element_namespaceObject.createElement)(external_wp_plugins_namespaceObject.PluginArea, {
4785 - onError: onPluginAreaError
4786 - }), (0,external_wp_element_namespaceObject.createElement)(UnsavedChangesWarning, null), (0,external_wp_element_namespaceObject.createElement)(WelcomeGuide, null)));
4787 -}
4788 -
4789 -/* harmony default export */ var layout = (Layout);
4790 -//# sourceMappingURL=index.js.map
4791 -;// CONCATENATED MODULE: ./packages/edit-widgets/build-module/index.js
4792 -
4793 -
4794 -/**
4795 - * WordPress dependencies
4796 - */
4797 -
4798 -
4799 -
4800 -
4801 -
4802 -
4803 -
4804 -/**
4805 - * Internal dependencies
4806 - */
4807 -
4808 -
4809 -
4810 -
4811 -
4812 -
4813 -const disabledBlocks = ['core/more', 'core/freeform', 'core/template-part', ...(ALLOW_REUSABLE_BLOCKS ? [] : ['core/block'])];
4814 -/**
4815 - * Reinitializes the editor after the user chooses to reboot the editor after
4816 - * an unhandled error occurs, replacing previously mounted editor element using
4817 - * an initial state from prior to the crash.
4818 - *
4819 - * @param {Element} target DOM node in which editor is rendered.
4820 - * @param {?Object} settings Editor settings object.
4821 - */
4822 -
4823 -function reinitializeEditor(target, settings) {
4824 - (0,external_wp_element_namespaceObject.unmountComponentAtNode)(target);
4825 - const reboot = reinitializeEditor.bind(null, target, settings);
4826 - (0,external_wp_element_namespaceObject.render)((0,external_wp_element_namespaceObject.createElement)(layout, {
4827 - blockEditorSettings: settings,
4828 - onError: reboot
4829 - }), target);
4830 -}
4831 -/**
4832 - * Initializes the block editor in the widgets screen.
4833 - *
4834 - * @param {string} id ID of the root element to render the screen in.
4835 - * @param {Object} settings Block editor settings.
4836 - */
4837 -
4838 -function initialize(id, settings) {
4839 - const target = document.getElementById(id);
4840 - const reboot = reinitializeEditor.bind(null, target, settings);
4841 -
4842 - const coreBlocks = (0,external_wp_blockLibrary_namespaceObject.__experimentalGetCoreBlocks)().filter(block => {
4843 - return !(disabledBlocks.includes(block.name) || block.name.startsWith('core/post') || block.name.startsWith('core/query') || block.name.startsWith('core/site') || block.name.startsWith('core/navigation'));
4844 - });
4845 -
4846 - (0,external_wp_data_namespaceObject.dispatch)(store).setFeatureDefaults('core/edit-widgets', {
4847 - fixedToolbar: false,
4848 - welcomeGuide: true,
4849 - showBlockBreadcrumbs: true,
4850 - themeStyles: true
4851 - });
4852 -
4853 - (0,external_wp_data_namespaceObject.dispatch)(external_wp_blocks_namespaceObject.store).__experimentalReapplyBlockTypeFilters();
4854 -
4855 - (0,external_wp_blockLibrary_namespaceObject.registerCoreBlocks)(coreBlocks);
4856 - (0,external_wp_widgets_namespaceObject.registerLegacyWidgetBlock)();
4857 -
4858 - if (true) {
4859 - (0,external_wp_blockLibrary_namespaceObject.__experimentalRegisterExperimentalCoreBlocks)({
4860 - enableFSEBlocks: ENABLE_EXPERIMENTAL_FSE_BLOCKS
4861 - });
4862 - }
4863 -
4864 - (0,external_wp_widgets_namespaceObject.registerLegacyWidgetVariations)(settings);
4865 - registerBlock(widget_area_namespaceObject);
4866 - (0,external_wp_widgets_namespaceObject.registerWidgetGroupBlock)();
4867 -
4868 - settings.__experimentalFetchLinkSuggestions = (search, searchOptions) => (0,external_wp_coreData_namespaceObject.__experimentalFetchLinkSuggestions)(search, searchOptions, settings); // As we are unregistering `core/freeform` to avoid the Classic block, we must
4869 - // replace it with something as the default freeform content handler. Failure to
4870 - // do this will result in errors in the default block parser.
4871 - // see: https://github.com/WordPress/gutenberg/issues/33097
4872 -
4873 -
4874 - (0,external_wp_blocks_namespaceObject.setFreeformContentHandlerName)('core/html');
4875 - (0,external_wp_element_namespaceObject.render)((0,external_wp_element_namespaceObject.createElement)(layout, {
4876 - blockEditorSettings: settings,
4877 - onError: reboot
4878 - }), target);
4879 -}
4880 -/**
4881 - * Function to register an individual block.
4882 - *
4883 - * @param {Object} block The block to be registered.
4884 - *
4885 - */
4886 -
4887 -const registerBlock = block => {
4888 - if (!block) {
4889 - return;
4890 - }
4891 -
4892 - const {
4893 - metadata,
4894 - settings,
4895 - name
4896 - } = block;
4897 -
4898 - if (metadata) {
4899 - (0,external_wp_blocks_namespaceObject.unstable__bootstrapServerSideBlockDefinitions)({
4900 - [name]: metadata
4901 - });
4902 - }
4903 -
4904 - (0,external_wp_blocks_namespaceObject.registerBlockType)(name, settings);
4905 -};
4906 -//# sourceMappingURL=index.js.map
4907 -}();
4908 -(window.wp = window.wp || {}).editWidgets = __webpack_exports__;
4909 -/******/ })()
4910 -;
1 +this.wp=this.wp||{},this.wp.editWidgets=function(e){var t={};function n(r){if(t[r])return t[r].exports;var c=t[r]={i:r,l:!1,exports:{}};return e[r].call(c.exports,c,c.exports,n),c.l=!0,c.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var c in e)n.d(r,c,function(t){return e[t]}.bind(null,c));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=391)}({0:function(e,t){!function(){e.exports=this.wp.element}()},1:function(e,t){!function(){e.exports=this.wp.i18n}()},10:function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function c(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r))e.push(c.apply(null,r));else if("object"===o)for(var i in r)n.call(r,i)&&r[i]&&e.push(i)}}return e.join(" ")}e.exports?e.exports=c:void 0===(r=function(){return c}.apply(t,[]))||(e.exports=r)}()},11:function(e,t){!function(){e.exports=this.wp.blocks}()},12:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(36);var c=n(29),o=n(37);function i(e,t){return Object(r.a)(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,c=!1,o=void 0;try{for(var i,a=e[Symbol.iterator]();!(r=(i=a.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){c=!0,o=e}finally{try{r||null==a.return||a.return()}finally{if(c)throw o}}return n}}(e,t)||Object(c.a)(e,t)||Object(o.a)()}},121:function(e,t,n){"use strict";var r=n(0),c=n(7),o=Object(r.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.createElement)(c.Path,{d:"M9 18.6L3.5 13l1-1L9 16.4l9.5-9.9 1 1z"}));t.a=o},13:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,"a",(function(){return r}))},132:function(e,t,n){"use strict";var r=n(0),c=n(7),o=Object(r.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.createElement)(c.Path,{d:"M13 11.9l3.3-3.4-1.1-1-3.2 3.3-3.2-3.3-1.1 1 3.3 3.4-3.5 3.6 1 1L12 13l3.5 3.5 1-1z"}));t.a=o},14:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r=n(41);function c(e,t){if(null==e)return{};var n,c,o=Object(r.a)(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(c=0;c<i.length;c++)n=i[c],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}},147:function(e,t,n){"use strict";var r=n(0),c=n(7),o=Object(r.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.createElement)(c.Path,{d:"M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z"}));t.a=o},15:function(e,t,n){"use strict";function r(e){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}n.d(t,"a",(function(){return r}))},166:function(e,t,n){"use strict";var r=n(0),c=n(7),o=Object(r.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.createElement)(c.Path,{d:"M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z"}));t.a=o},167:function(e,t,n){"use strict";var r=n(0),c=n(7),o=Object(r.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.createElement)(c.Path,{fillRule:"evenodd",d:"M9.706 8.646a.25.25 0 01-.188.137l-4.626.672a.25.25 0 00-.139.427l3.348 3.262a.25.25 0 01.072.222l-.79 4.607a.25.25 0 00.362.264l4.138-2.176a.25.25 0 01.233 0l4.137 2.175a.25.25 0 00.363-.263l-.79-4.607a.25.25 0 01.072-.222l3.347-3.262a.25.25 0 00-.139-.427l-4.626-.672a.25.25 0 01-.188-.137l-2.069-4.192a.25.25 0 00-.448 0L9.706 8.646zM12 7.39l-.948 1.921a1.75 1.75 0 01-1.317.957l-2.12.308 1.534 1.495c.412.402.6.982.503 1.55l-.362 2.11 1.896-.997a1.75 1.75 0 011.629 0l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39z",clipRule:"evenodd"}));t.a=o},18:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}n.d(t,"a",(function(){return c}))},19:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,"a",(function(){return r}))},2:function(e,t){!function(){e.exports=this.lodash}()},20:function(e,t){!function(){e.exports=this.wp.keycodes}()},21:function(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}n.d(t,"a",(function(){return c}))},23:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(40),c=n(13);function o(e,t){return!t||"object"!==Object(r.a)(t)&&"function"!=typeof t?Object(c.a)(e):t}},232:function(e,t,n){"use strict";var r=n(0),c=n(7),o=Object(r.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.createElement)(c.Path,{fillRule:"evenodd",d:"M10.289 4.836A1 1 0 0111.275 4h1.306a1 1 0 01.987.836l.244 1.466c.787.26 1.503.679 2.108 1.218l1.393-.522a1 1 0 011.216.437l.653 1.13a1 1 0 01-.23 1.273l-1.148.944a6.025 6.025 0 010 2.435l1.149.946a1 1 0 01.23 1.272l-.653 1.13a1 1 0 01-1.216.437l-1.394-.522c-.605.54-1.32.958-2.108 1.218l-.244 1.466a1 1 0 01-.987.836h-1.306a1 1 0 01-.986-.836l-.244-1.466a5.995 5.995 0 01-2.108-1.218l-1.394.522a1 1 0 01-1.217-.436l-.653-1.131a1 1 0 01.23-1.272l1.149-.946a6.026 6.026 0 010-2.435l-1.148-.944a1 1 0 01-.23-1.272l.653-1.131a1 1 0 011.217-.437l1.393.522a5.994 5.994 0 012.108-1.218l.244-1.466zM14.929 12a3 3 0 11-6 0 3 3 0 016 0z",clipRule:"evenodd"}));t.a=o},233:function(e,t,n){"use strict";var r=n(0),c=n(7),o=Object(r.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.createElement)(c.Path,{d:"M18.3 11.7c-.6-.6-1.4-.9-2.3-.9H6.7l2.9-3.3-1.1-1-4.5 5L8.5 16l1-1-2.7-2.7H16c.5 0 .9.2 1.3.5 1 1 1 3.4 1 4.5v.3h1.5v-.2c0-1.5 0-4.3-1.5-5.7z"}));t.a=o},234:function(e,t,n){"use strict";var r=n(0),c=n(7),o=Object(r.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.createElement)(c.Path,{d:"M15.6 6.5l-1.1 1 2.9 3.3H8c-.9 0-1.7.3-2.3.9-1.4 1.5-1.4 4.2-1.4 5.6v.2h1.5v-.3c0-1.1 0-3.5 1-4.5.3-.3.7-.5 1.3-.5h9.2L14.5 15l1.1 1.1 4.6-4.6-4.6-5z"}));t.a=o},27:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,"a",(function(){return r}))},29:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r=n(27);function c(e,t){if(e){if("string"==typeof e)return Object(r.a)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Object(r.a)(e,t):void 0}}},3:function(e,t){!function(){e.exports=this.wp.components}()},32:function(e,t){!function(){e.exports=this.wp.hooks}()},36:function(e,t,n){"use strict";function r(e){if(Array.isArray(e))return e}n.d(t,"a",(function(){return r}))},37:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,"a",(function(){return r}))},391:function(e,t,n){"use strict";n.r(t),n.d(t,"initialize",(function(){return Z})),n.d(t,"customizerInitialize",(function(){return $}));var r=n(0),c=(n(69),n(66)),o=n(32),i=n(73);Object(o.addFilter)("editor.MediaUpload","core/edit-widgets/replace-media-upload",(function(){return i.MediaUpload}));var a=n(3),l=n(49),s=n(4),u=n(1),b=n(6),f=n(9),d=n(2);var m=function(){var e=Object(s.useSelect)((function(e){var t=e("core"),n=t.hasEditsForEntityRecord,r=t.isSavingEntityRecord,c=(0,t.getEntityRecords)("root","widgetArea"),o=Object(d.map)(c,(function(e){return e.id}));return{editedWidgetAreaIds:Object(d.filter)(o,(function(e){return n("root","widgetArea",e)})),isSaving:Object(d.some)(o,(function(e){return r("root","widgetArea",e)}))}}),[]),t=e.editedWidgetAreaIds,n=e.isSaving,c=Object(s.useDispatch)("core").saveEditedEntityRecord,o=Object(r.useCallback)((function(){Object(d.forEach)(t,(function(e){c("root","widgetArea",e)}))}),[t]);return Object(r.createElement)(a.Button,{isPrimary:!0,isBusy:n,"aria-disabled":n,onClick:n?void 0:o,disabled:0===t.length},Object(u.__)("Update"))},p=n(233),O=n(20);function j(){var e=Object(s.useSelect)((function(e){return e("core").hasUndo()})),t=Object(s.useDispatch)("core").undo;return Object(r.createElement)(a.Button,{icon:p.a,label:Object(u.__)("Undo"),shortcut:O.displayShortcut.primary("z"),"aria-disabled":!e,onClick:e?t:void 0})}var v=n(234);function y(){var e=Object(s.useSelect)((function(e){return e("core").hasRedo()})),t=Object(s.useDispatch)("core").redo;return Object(r.createElement)(a.Button,{icon:v.a,label:Object(u.__)("Redo"),shortcut:O.displayShortcut.primaryShift("z"),"aria-disabled":!e,onClick:e?t:void 0})}var g={isPrimary:!0};var E=function(e){var t=e.isCustomizer,n=Object(f.useViewportMatch)("medium");return Object(r.createElement)(r.Fragment,null,Object(r.createElement)("div",{className:"edit-widgets-header"},Object(r.createElement)(a.NavigableMenu,null,Object(r.createElement)(b.Inserter,{position:"bottom right",showInserterHelpPanel:!0,toggleProps:g}),Object(r.createElement)(j,null),Object(r.createElement)(y,null),Object(r.createElement)(b.BlockNavigationDropdown,null)),!t&&Object(r.createElement)("h1",{className:"edit-widgets-header__title"},Object(u.__)("Block Areas")," ",Object(u.__)("(experimental)")),Object(r.createElement)("div",{className:"edit-widgets-header__actions"},!t&&Object(r.createElement)(m,null),Object(r.createElement)(l.f.Slot,{scope:t?"core/edit-widgets-customizer":"core/edit-widgets"}))),(!n||t)&&Object(r.createElement)("div",{className:"edit-widgets-header__block-toolbar"},Object(r.createElement)(b.BlockToolbar,{hideDragHandle:!0})))},h=n(10),w=n.n(h),_=n(232),S=n(147);function k(e){var t=e.clientId,n=Object(s.useSelect)((function(e){var n=e("core/block-editor"),r=n.getBlockAttributes,c=n.getBlockSelectionStart;return{name:r(t).name,selectedBlock:c()}}),[t]),c=n.name,o=n.selectedBlock,i=Object(s.useDispatch)("core/block-editor").selectBlock,l=o===t;return Object(r.createElement)("li",null,Object(r.createElement)(a.Button,{"aria-expanded":l,onClick:l?void 0:function(){i(t)}},c,Object(r.createElement)("span",{className:"edit-widgets-block-areas__edit"},Object(u.__)("Edit"))))}function P(){var e=Object(s.useSelect)((function(e){return e("core/block-editor").getBlockOrder()})),t=e.length>0;return Object(r.createElement)(r.Fragment,null,Object(r.createElement)("div",{className:"edit-widgets-block-areas"},Object(r.createElement)("div",{className:"edit-widgets-block-areas__top-container"},Object(r.createElement)(b.BlockIcon,{icon:S.a}),Object(r.createElement)("div",null,Object(r.createElement)("p",null,Object(u.__)('Block Areas (also known as "Widget Areas") are global parts in your site\'s layout that can accept blocks. These vary by theme, but are typically parts like your Sidebar or Footer.')),!t&&Object(r.createElement)("p",null,Object(u.__)("Your theme does not contain block areas.")))),t&&Object(r.createElement)("ul",null,e.map((function(e){return Object(r.createElement)(k,{key:e,clientId:e})})))))}var x=r.Platform.select({web:!0,native:!1}),A={"edit-widgets/block-areas":Object(u.__)("Block areas"),"edit-widgets/block-inspector":Object(u.__)("Block")};function B(e){var t=e.activeComplementaryArea,n=Object(s.useDispatch)("core/interface").enableComplementaryArea;return Object(r.createElement)("ul",null,Object(d.map)(A,(function(e,c){var o=c===t;return Object(r.createElement)("li",{key:c},Object(r.createElement)(a.Button,{onClick:function(){return n("core/edit-widgets",c)},className:w()("edit-widgets-sidebar__panel-tab",{"is-active":o}),"aria-label":o?// translators: %s: sidebar label e.g: "Block areas".
2 +Object(u.sprintf)(Object(u.__)("%s (selected)"),e):e,"data-label":e},e))})))}function I(){var e=Object(s.useDispatch)("core/interface").enableComplementaryArea,t=Object(s.useSelect)((function(e){var t=e("core/interface").getActiveComplementaryArea("core/edit-widgets"),n=!!t,r=e("core/block-editor"),c=r.getBlockSelectionStart,o=r.getBlockRootClientId,i=c();return A[t]||(t=i?"edit-widgets/block-inspector":"edit-widgets/block-areas"),{currentArea:t,hasSelectedNonAreaBlock:!(!i||!o(i)),isGeneralSidebarOpen:n}}),[]),n=t.currentArea,c=t.hasSelectedNonAreaBlock,o=t.isGeneralSidebarOpen;return Object(r.useEffect)((function(){c&&"edit-widgets/block-areas"===n&&o&&e("core/edit-widgets","edit-widgets/block-inspector"),!c&&"edit-widgets/block-inspector"===n&&o&&e("core/edit-widgets","edit-widgets/block-areas")}),[c,e]),Object(r.createElement)(l.b,{className:"edit-widgets-sidebar",header:Object(r.createElement)(B,{activeComplementaryArea:n}),headerClassName:"edit-widgets-sidebar__panel-tabs",scope:"core/edit-widgets",identifier:n,icon:_.a,isActiveByDefault:x},"edit-widgets/block-areas"===n&&Object(r.createElement)(P,null),"edit-widgets/block-inspector"===n&&Object(r.createElement)(b.BlockInspector,null))}var N=n(8),C=n(5),D=n(12),M=n(14),L=n(11),R=n(48);function T(){var e=Object(s.useDispatch)("core"),t=e.redo,n=e.undo;return Object(R.useShortcut)("core/edit-widgets/undo",(function(e){n(),e.preventDefault()}),{bindGlobal:!0}),Object(R.useShortcut)("core/edit-widgets/redo",(function(e){t(),e.preventDefault()}),{bindGlobal:!0}),null}T.Register=function(){var e=Object(s.useDispatch)("core/keyboard-shortcuts").registerShortcut;return Object(r.useEffect)((function(){e({name:"core/edit-widgets/undo",category:"global",description:Object(u.__)("Undo your last changes."),keyCombination:{modifier:"primary",character:"z"}}),e({name:"core/edit-widgets/redo",category:"global",description:Object(u.__)("Redo your last undo."),keyCombination:{modifier:"primaryShift",character:"z"}})}),[e]),null};var z=T;function F(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function U(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?F(Object(n),!0).forEach((function(t){Object(C.a)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):F(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var V=[];function G(e){var t=e.blockEditorSettings,n=Object(M.a)(e,["blockEditorSettings"]),c=Object(s.useSelect)((function(e){var t=e("core"),n=t.canUser;return{areas:(0,t.getEntityRecords)("root","widgetArea")||V,hasUploadPermissions:Object(d.defaultTo)(n("create","media"),!0)}})),o=c.areas,l=c.hasUploadPermissions,u=Object(r.useState)([]),f=Object(D.a)(u,2),m=f[0],p=f[1];Object(r.useEffect)((function(){!o||!o.length||m.length>0||p(o.map((function(e){var t=e.id,n=e.name;return Object(L.createBlock)("core/widget-area",{id:t,name:n})})))}),[o,m]);var O=Object(r.useMemo)((function(){var e;return l&&(e=function(e){var n=e.onError,r=Object(M.a)(e,["onError"]);Object(i.uploadMedia)(U({wpAllowedMimeTypes:t.allowedMimeTypes,onError:function(e){var t=e.message;return n(t)}},r))}),U({},t,{mediaUpload:e,templateLock:"all"})}),[t,l]);return Object(r.createElement)(r.Fragment,null,Object(r.createElement)(b.BlockEditorKeyboardShortcuts.Register,null),Object(r.createElement)(z.Register,null),Object(r.createElement)(a.SlotFillProvider,null,Object(r.createElement)(a.DropZoneProvider,null,Object(r.createElement)(a.FocusReturnProvider,null,Object(r.createElement)(b.BlockEditorProvider,Object(N.a)({value:m,onInput:function(e){return p(e)},onChange:function(e){return p(e)},settings:O},n))))))}var H=function(){var e=Object(s.useSelect)((function(e){return{notices:e("core/notices").getNotices()}}),[]).notices,t=Object(d.filter)(e,{type:"snackbar"}),n=Object(s.useDispatch)("core/notices").removeNotice;return Object(r.createElement)(a.SnackbarList,{notices:t,className:"edit-widgets-notices__snackbar",onRemove:n})};function W(){var e=Object(s.useDispatch)("core/block-editor").clearSelectedBlock;return Object(r.createElement)(r.Fragment,null,Object(r.createElement)(z,null),Object(r.createElement)(b.BlockEditorKeyboardShortcuts,null),Object(r.createElement)(H,null),Object(r.createElement)(a.Popover.Slot,{name:"block-toolbar"}),Object(r.createElement)("div",{tabIndex:"-1",onFocus:e},Object(r.createElement)("div",{className:"editor-styles-wrapper",onFocus:function(e){e.stopPropagation(),e.preventDefault()}},Object(r.createElement)(b.WritingFlow,null,Object(r.createElement)(b.ObserveTyping,null,Object(r.createElement)(b.BlockList,{className:"edit-widgets-main-block-list"}))))))}var K=function(e){var t=e.blockEditorSettings,n=Object(s.useSelect)((function(e){return!!e("core/interface").getActiveComplementaryArea("core/edit-widgets")}));return Object(r.createElement)(G,{blockEditorSettings:t},Object(r.createElement)(l.e,{header:Object(r.createElement)(E,null),sidebar:n&&Object(r.createElement)(l.b.Slot,{scope:"core/edit-widgets"}),content:Object(r.createElement)(W,null)}),Object(r.createElement)(I,null),Object(r.createElement)(a.Popover.Slot,null))};var q=function(e){var t=e.settings;return Object(r.createElement)(K,{blockEditorSettings:t})};function Q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Y=Object(a.navigateRegions)((function(e){var t=e.settings;Object(b.useSimulatedMediaQuery)("resizable-editor-section",360);var n=Object(r.useMemo)((function(){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Q(Object(n),!0).forEach((function(t){Object(C.a)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Q(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},t,{hasFixedToolbar:!0})}),[t]);return Object(r.createElement)(G,{blockEditorSettings:n},Object(r.createElement)("div",{className:"edit-widgets-customizer-edit-widgets-initializer__content",role:"region","aria-label":Object(u.__)("Widgets screen content"),tabIndex:"-1"},Object(r.createElement)(E,{isCustomizer:!0}),Object(r.createElement)(W,null),Object(r.createElement)(l.b.Slot,{scope:"core/edit-widgets-customizer"}),Object(r.createElement)(l.b,{className:"edit-widgets-sidebar",scope:"core/edit-widgets-customizer",identifier:"edit-widgets-customizer/block-inspector",icon:_.a,title:Object(u.__)("Block Inspector")},Object(r.createElement)(b.BlockInspector,null))))}));function Z(e,t){Object(c.registerCoreBlocks)(),Object(c.__experimentalRegisterExperimentalCoreBlocks)(t),Object(r.render)(Object(r.createElement)(q,{settings:t}),document.getElementById(e))}function $(e,t){Object(c.registerCoreBlocks)(),Object(c.__experimentalRegisterExperimentalCoreBlocks)(t),Object(r.render)(Object(r.createElement)(Y,{settings:t}),document.getElementById(e))}},4:function(e,t){!function(){e.exports=this.wp.data}()},40:function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}n.d(t,"a",(function(){return r}))},41:function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,c={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(c[n]=e[n]);return c}n.d(t,"a",(function(){return r}))},48:function(e,t){!function(){e.exports=this.wp.keyboardShortcuts}()},49:function(e,t,n){"use strict";n.d(t,"b",(function(){return T})),n.d(t,"c",(function(){return W})),n.d(t,"d",(function(){return J})),n.d(t,"e",(function(){return ee})),n.d(t,"f",(function(){return M})),n.d(t,"g",(function(){return ie})),n.d(t,"a",(function(){return H}));var r={};n.r(r),n.d(r,"enableComplementaryArea",(function(){return d})),n.d(r,"disableComplementaryArea",(function(){return m})),n.d(r,"pinItem",(function(){return O})),n.d(r,"unpinItem",(function(){return j}));var c={};n.r(c),n.d(c,"getActiveComplementaryArea",(function(){return v})),n.d(c,"isItemPinned",(function(){return y}));var o=n(4),i=n(5),a=n(2);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){Object(i.a)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var u=Object(o.combineReducers)({singleEnableItems:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=t.type,r=t.itemType,c=t.scope,o=t.item;return"SET_SINGLE_ENABLE_ITEM"===n&&r&&c?s({},e,Object(i.a)({},r,s({},e[r],Object(i.a)({},c,o||null)))):e},multipleEnableItems:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=t.type,r=t.itemType,c=t.scope,o=t.item,l=t.isEnable;if("SET_MULTIPLE_ENABLE_ITEM"!==n||!r||!c||!o||Object(a.get)(e,[r,c,o])===l)return e;var u=e[r]||{},b=u[c]||{};return s({},e,Object(i.a)({},r,s({},u,Object(i.a)({},c,s({},b,Object(i.a)({},o,l||!1))))))}}),b=Object(o.combineReducers)({enableItems:u});function f(e,t,n){return{type:"SET_SINGLE_ENABLE_ITEM",itemType:e,scope:t,item:n}}function d(e,t){return f("complementaryArea",e,t)}function m(e){return f("complementaryArea",e,void 0)}function p(e,t,n,r){return{type:"SET_MULTIPLE_ENABLE_ITEM",itemType:e,scope:t,item:n,isEnable:r}}function O(e,t){return p("pinnedItems",e,t,!0)}function j(e,t){return p("pinnedItems",e,t,!1)}function v(e,t){return function(e,t,n){return Object(a.get)(e.enableItems.singleEnableItems,[t,n])}(e,"complementaryArea",t)}function y(e,t,n){return!1!==function(e,t,n,r){return Object(a.get)(e.enableItems.multipleEnableItems,[t,n,r])}(e,"pinnedItems",t,n)}Object(o.registerStore)("core/interface",{reducer:b,actions:r,selectors:c,persist:["enableItems"]});var g=n(8),E=n(14),h=n(0),w=n(10),_=n.n(w),S=n(3),k=n(1),P=n(166),x=n(167),A=n(132),B=n(51),I=Object(B.withPluginContext)((function(e,t){return{icon:t.icon||e.icon,identifier:t.identifier||"".concat(e.name,"/").concat(t.name)}}));var N=I((function(e){var t=e.as,n=void 0===t?S.Button:t,r=e.scope,c=e.identifier,i=e.icon,l=e.selectedIcon,s=Object(E.a)(e,["as","scope","identifier","icon","selectedIcon"]),u=n,b=Object(o.useSelect)((function(e){return e("core/interface").getActiveComplementaryArea(r)===c}),[c]),f=Object(o.useDispatch)("core/interface"),d=f.enableComplementaryArea,m=f.disableComplementaryArea;return Object(h.createElement)(u,Object(g.a)({icon:l&&b?l:i,onClick:function(){b?m(r):d(r,c)}},Object(a.omit)(s,["name"])))})),C=function(e){var t=e.smallScreenTitle,n=e.children,r=e.className,c=e.toggleButtonProps,o=Object(h.createElement)(N,Object(g.a)({icon:A.a},c));return Object(h.createElement)(h.Fragment,null,Object(h.createElement)("div",{className:"components-panel__header interface-complementary-area-header__small"},t&&Object(h.createElement)("span",{className:"interface-complementary-area-header__small-title"},t),o),Object(h.createElement)("div",{className:_()("components-panel__header","interface-complementary-area-header",r),tabIndex:-1},n,o))};function D(e){var t=e.scope,n=Object(E.a)(e,["scope"]);return Object(h.createElement)(S.Fill,Object(g.a)({name:"PinnedItems/".concat(t)},n))}D.Slot=function(e){var t=e.scope,n=e.className,r=Object(E.a)(e,["scope","className"]);return Object(h.createElement)(S.Slot,Object(g.a)({name:"PinnedItems/".concat(t)},r),(function(e){return!Object(a.isEmpty)(e)&&Object(h.createElement)("div",{className:_()(n,"interface-pinned-items")},e)}))};var M=D;function L(e){var t=e.scope,n=e.children,r=e.className;return Object(h.createElement)(S.Fill,{name:"ComplementaryArea/".concat(t)},Object(h.createElement)(S.Animate,{type:"slide-in",options:{origin:"left"}},(function(){return Object(h.createElement)("div",{className:r},n)})))}var R=I((function(e){var t=e.children,n=e.className,r=e.closeLabel,c=void 0===r?Object(k.__)("Close plugin"):r,i=e.identifier,a=e.header,l=e.headerClassName,s=e.icon,u=e.isPinnable,b=void 0===u||u,f=e.panelClassName,d=e.scope,m=e.smallScreenTitle,p=e.title,O=e.toggleShortcut,j=e.isActiveByDefault,v=Object(o.useSelect)((function(e){var t=e("core/interface"),n=t.getActiveComplementaryArea,r=t.isItemPinned,c=n(d);return{isActive:c===i,isPinned:r(d,i),activeArea:c,isSmall:e("core/viewport").isViewportMatch("< medium")}}),[i,d]),y=v.isActive,g=v.isPinned,E=v.activeArea,w=v.isSmall;!function(e,t,n,r,c){var i=Object(h.useRef)(!1),a=Object(h.useRef)(!1),l=Object(o.useDispatch)("core/interface"),s=l.enableComplementaryArea,u=l.disableComplementaryArea;Object(h.useEffect)((function(){r&&c&&!i.current?(u(e),a.current=!0):a.current&&!c&&i.current?(a.current=!1,s(e,t)):a.current&&n&&n!==t&&(a.current=!1),c!==i.current&&(i.current=c)}),[r,c,e,t,n])}(d,i,E,y,w);var A=Object(o.useDispatch)("core/interface"),B=A.enableComplementaryArea,I=A.disableComplementaryArea,D=A.pinItem,R=A.unpinItem;return Object(h.useEffect)((function(){j&&void 0===E&&!w&&B(d,i)}),[E,j,d,i,w]),Object(h.createElement)(h.Fragment,null,g&&b&&Object(h.createElement)(M,{scope:d},Object(h.createElement)(N,{scope:d,identifier:i,isPressed:y,"aria-expanded":y,label:p,icon:s})),y&&Object(h.createElement)(L,{className:_()("interface-complementary-area",n),scope:d},Object(h.createElement)(C,{className:l,closeLabel:c,onClose:function(){return I(d)},smallScreenTitle:m,toggleButtonProps:{label:c,shortcut:O,scope:d,identifier:i}},a||Object(h.createElement)(h.Fragment,null,Object(h.createElement)("strong",null,p),b&&Object(h.createElement)(S.Button,{className:"interface-complementary-area__pin-unpin-item",icon:g?P.a:x.a,label:g?Object(k.__)("Unpin from toolbar"):Object(k.__)("Pin to toolbar"),onClick:function(){return(g?R:D)(d,i)},isPressed:g,"aria-expanded":g}))),Object(h.createElement)(S.Panel,{className:f},t)))}));R.Slot=function(e){var t=e.scope,n=Object(E.a)(e,["scope"]);return Object(h.createElement)(S.Slot,Object(g.a)({name:"ComplementaryArea/".concat(t)},n))};var T=R,z=n(121),F=n(12);function U(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function V(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?U(Object(n),!0).forEach((function(t){Object(i.a)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):U(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function G(e){var t=e.name,n=e.as,r=e.onClick,c=Object(E.a)(e,["name","as","onClick"]);return Object(h.createElement)(S.Fill,{name:t},(function(e){var t=e.onClick,o=e.as,i=n||o||S.Button;return Object(h.createElement)(i,Object(g.a)({onClick:r||t?function(){(r||a.noop).apply(void 0,arguments),(t||a.noop).apply(void 0,arguments)}:void 0},c))}))}G.Slot=function(e){var t=e.name,n=e.as,r=void 0===n?[S.ButtonGroup,S.Button]:n,c=e.fillProps,o=void 0===c?{}:c,i=e.bubblesVirtually,l=Object(E.a)(e,["name","as","fillProps","bubblesVirtually"]),s=Object(F.a)(r,2),u=s[0],b=s[1];return Object(h.createElement)(S.Slot,{name:t,bubblesVirtually:i,fillProps:V({as:b},o)},(function(e){return!Object(a.isEmpty)(e)&&Object(h.createElement)(u,l,e)}))};var H=G;function W(e){var t=e.scope,n=e.target,r=Object(E.a)(e,["scope","target"]);return Object(h.createElement)(N,Object(g.a)({as:function(e){return Object(h.createElement)(H,Object(g.a)({name:"".concat(t,"/plugin-more-menu")},e))},role:"menuitemcheckbox",selectedIcon:z.a,name:n,scope:t},r))}var K=n(19),q=n(18),Q=n(23),Y=n(15),Z=n(21);function $(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}var J=function(e){Object(Z.a)(r,e);var t,n=(t=r,function(){var e,n=Object(Y.a)(t);if($()){var r=Object(Y.a)(this).constructor;e=Reflect.construct(n,arguments,r)}else e=n.apply(this,arguments);return Object(Q.a)(this,e)});function r(){return Object(K.a)(this,r),n.apply(this,arguments)}return Object(q.a)(r,[{key:"componentDidMount",value:function(){this.isSticky=!1,this.sync(),document.body.classList.contains("sticky-menu")&&(this.isSticky=!0,document.body.classList.remove("sticky-menu"))}},{key:"componentWillUnmount",value:function(){this.isSticky&&document.body.classList.add("sticky-menu")}},{key:"componentDidUpdate",value:function(e){this.props.isActive!==e.isActive&&this.sync()}},{key:"sync",value:function(){this.props.isActive?document.body.classList.add("is-fullscreen-mode"):document.body.classList.remove("is-fullscreen-mode")}},{key:"render",value:function(){return null}}]),r}(h.Component);function X(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var ee=Object(S.navigateRegions)((function(e){var t=e.footer,n=e.header,r=e.sidebar,c=e.leftSidebar,o=e.content,a=e.actions,l=e.labels,s=e.className;!function(e){Object(h.useEffect)((function(){var t=document&&document.querySelector("html:not(.".concat(e,")"));if(t)return t.classList.toggle(e),function(){t.classList.toggle(e)}}),[e])}("interface-interface-skeleton__html-container");var u=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?X(Object(n),!0).forEach((function(t){Object(i.a)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):X(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},{
3 +/* translators: accessibility text for the top bar landmark region. */
4 +header:Object(k.__)("Header"),
5 +/* translators: accessibility text for the content landmark region. */
6 +body:Object(k.__)("Content"),
7 +/* translators: accessibility text for the left sidebar landmark region. */
8 +leftSidebar:Object(k.__)("Left sidebar"),
9 +/* translators: accessibility text for the settings landmark region. */
10 +sidebar:Object(k.__)("Settings"),
11 +/* translators: accessibility text for the publish landmark region. */
12 +actions:Object(k.__)("Publish"),
13 +/* translators: accessibility text for the footer landmark region. */
14 +footer:Object(k.__)("Footer")},{},l);return Object(h.createElement)("div",{className:_()(s,"interface-interface-skeleton")},!!n&&Object(h.createElement)("div",{className:"interface-interface-skeleton__header",role:"region","aria-label":u.header,tabIndex:"-1"},n),Object(h.createElement)("div",{className:"interface-interface-skeleton__body"},!!c&&Object(h.createElement)("div",{className:"interface-interface-skeleton__left-sidebar",role:"region","aria-label":u.leftSidebar,tabIndex:"-1"},c),Object(h.createElement)("div",{className:"interface-interface-skeleton__content",role:"region","aria-label":u.body,tabIndex:"-1"},o),!!r&&Object(h.createElement)("div",{className:"interface-interface-skeleton__sidebar",role:"region","aria-label":u.sidebar,tabIndex:"-1"},r),!!a&&Object(h.createElement)("div",{className:"interface-interface-skeleton__actions",role:"region","aria-label":u.actions,tabIndex:"-1"},a)),!!t&&Object(h.createElement)("div",{className:"interface-interface-skeleton__footer",role:"region","aria-label":u.footer,tabIndex:"-1"},t))})),te="__experimentalMainDashboardButton",ne=Object(S.createSlotFill)(te),re=ne.Fill,ce=ne.Slot,oe=re;oe.Slot=function(e){var t=e.children,n=Object(S.__experimentalUseSlot)(te);return Boolean(n.fills&&n.fills.length)?Object(h.createElement)(ce,{bubblesVirtually:!0}):t};var ie=oe},5:function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",(function(){return r}))},51:function(e,t){!function(){e.exports=this.wp.plugins}()},6:function(e,t){!function(){e.exports=this.wp.blockEditor}()},66:function(e,t){!function(){e.exports=this.wp.blockLibrary}()},69:function(e,t){!function(){e.exports=this.wp.notices}()},7:function(e,t){!function(){e.exports=this.wp.primitives}()},73:function(e,t){!function(){e.exports=this.wp.mediaUtils}()},8:function(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}n.d(t,"a",(function(){return r}))},9:function(e,t){!function(){e.exports=this.wp.compose}()}});