WordPress/wp-includes/js/dist/edit-site.js

10996 lines
370 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

this["wp"] = this["wp"] || {}; this["wp"]["editSite"] =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "IqXm");
/******/ })
/************************************************************************/
/******/ ({
/***/ "0Ene":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const plugins = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M10.5 4v4h3V4H15v4h1.5a1 1 0 011 1v4l-3 4v2a1 1 0 01-1 1h-3a1 1 0 01-1-1v-2l-3-4V9a1 1 0 011-1H9V4h1.5zm.5 12.5v2h2v-2l3-4v-3H8v3l3 4z"
}));
/* harmony default export */ __webpack_exports__["a"] = (plugins);
/***/ }),
/***/ "1ZqX":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["data"]; }());
/***/ }),
/***/ "1iEr":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const chevronRight = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"
}));
/* harmony default export */ __webpack_exports__["a"] = (chevronRight);
/***/ }),
/***/ "2gm7":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const chevronLeft = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z"
}));
/* harmony default export */ __webpack_exports__["a"] = (chevronLeft);
/***/ }),
/***/ "51Zz":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["dataControls"]; }());
/***/ }),
/***/ "6aBm":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["mediaUtils"]; }());
/***/ }),
/***/ "B9Az":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXTERNAL MODULE: external ["wp","element"]
var external_wp_element_ = __webpack_require__("GRId");
// EXTERNAL MODULE: external ["wp","primitives"]
var external_wp_primitives_ = __webpack_require__("Tqx9");
// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pencil.js
/**
* WordPress dependencies
*/
const pencil = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
d: "M20.1 5.1L16.9 2 6.2 12.7l-1.3 4.4 4.5-1.3L20.1 5.1zM4 20.8h8v-1.5H4v1.5z"
}));
/* harmony default export */ var library_pencil = (pencil);
// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/edit.js
/**
* Internal dependencies
*/
/* harmony default export */ var edit = __webpack_exports__["a"] = (library_pencil);
/***/ }),
/***/ "Cg8A":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const cog = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
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"
}));
/* harmony default export */ __webpack_exports__["a"] = (cog);
/***/ }),
/***/ "Civd":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const layout = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z"
}));
/* harmony default export */ __webpack_exports__["a"] = (layout);
/***/ }),
/***/ "GRId":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["element"]; }());
/***/ }),
/***/ "HSyU":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["blocks"]; }());
/***/ }),
/***/ "IqXm":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, "reinitializeEditor", function() { return /* binding */ reinitializeEditor; });
__webpack_require__.d(__webpack_exports__, "initializeEditor", function() { return /* binding */ initializeEditor; });
__webpack_require__.d(__webpack_exports__, "__experimentalMainDashboardButton", function() { return /* reexport */ main_dashboard_button; });
__webpack_require__.d(__webpack_exports__, "__experimentalNavigationToggle", function() { return /* reexport */ navigation_toggle; });
__webpack_require__.d(__webpack_exports__, "PluginSidebar", function() { return /* reexport */ PluginSidebarEditSite; });
__webpack_require__.d(__webpack_exports__, "PluginSidebarMoreMenuItem", function() { return /* reexport */ PluginSidebarMoreMenuItem; });
__webpack_require__.d(__webpack_exports__, "PluginMoreMenuItem", function() { return /* reexport */ plugin_more_menu_item; });
// NAMESPACE OBJECT: ./node_modules/@wordpress/edit-site/build-module/store/actions.js
var actions_namespaceObject = {};
__webpack_require__.r(actions_namespaceObject);
__webpack_require__.d(actions_namespaceObject, "toggleFeature", function() { return actions_toggleFeature; });
__webpack_require__.d(actions_namespaceObject, "__experimentalSetPreviewDeviceType", function() { return __experimentalSetPreviewDeviceType; });
__webpack_require__.d(actions_namespaceObject, "setTemplate", function() { return actions_setTemplate; });
__webpack_require__.d(actions_namespaceObject, "addTemplate", function() { return addTemplate; });
__webpack_require__.d(actions_namespaceObject, "removeTemplate", function() { return actions_removeTemplate; });
__webpack_require__.d(actions_namespaceObject, "setTemplatePart", function() { return actions_setTemplatePart; });
__webpack_require__.d(actions_namespaceObject, "setHomeTemplateId", function() { return setHomeTemplateId; });
__webpack_require__.d(actions_namespaceObject, "setPage", function() { return actions_setPage; });
__webpack_require__.d(actions_namespaceObject, "showHomepage", function() { return actions_showHomepage; });
__webpack_require__.d(actions_namespaceObject, "setNavigationPanelActiveMenu", function() { return setNavigationPanelActiveMenu; });
__webpack_require__.d(actions_namespaceObject, "openNavigationPanelToMenu", function() { return openNavigationPanelToMenu; });
__webpack_require__.d(actions_namespaceObject, "setIsNavigationPanelOpened", function() { return actions_setIsNavigationPanelOpened; });
__webpack_require__.d(actions_namespaceObject, "setIsInserterOpened", function() { return actions_setIsInserterOpened; });
__webpack_require__.d(actions_namespaceObject, "updateSettings", function() { return actions_updateSettings; });
__webpack_require__.d(actions_namespaceObject, "setIsListViewOpened", function() { return actions_setIsListViewOpened; });
__webpack_require__.d(actions_namespaceObject, "revertTemplate", function() { return actions_revertTemplate; });
__webpack_require__.d(actions_namespaceObject, "openGeneralSidebar", function() { return openGeneralSidebar; });
__webpack_require__.d(actions_namespaceObject, "closeGeneralSidebar", function() { return closeGeneralSidebar; });
// NAMESPACE OBJECT: ./node_modules/@wordpress/edit-site/build-module/store/selectors.js
var selectors_namespaceObject = {};
__webpack_require__.r(selectors_namespaceObject);
__webpack_require__.d(selectors_namespaceObject, "isFeatureActive", function() { return isFeatureActive; });
__webpack_require__.d(selectors_namespaceObject, "__experimentalGetPreviewDeviceType", function() { return selectors_experimentalGetPreviewDeviceType; });
__webpack_require__.d(selectors_namespaceObject, "getCanUserCreateMedia", function() { return getCanUserCreateMedia; });
__webpack_require__.d(selectors_namespaceObject, "getReusableBlocks", function() { return getReusableBlocks; });
__webpack_require__.d(selectors_namespaceObject, "getSettings", function() { return selectors_getSettings; });
__webpack_require__.d(selectors_namespaceObject, "getHomeTemplateId", function() { return getHomeTemplateId; });
__webpack_require__.d(selectors_namespaceObject, "getEditedPostType", function() { return selectors_getEditedPostType; });
__webpack_require__.d(selectors_namespaceObject, "getEditedPostId", function() { return selectors_getEditedPostId; });
__webpack_require__.d(selectors_namespaceObject, "getPage", function() { return selectors_getPage; });
__webpack_require__.d(selectors_namespaceObject, "getNavigationPanelActiveMenu", function() { return getNavigationPanelActiveMenu; });
__webpack_require__.d(selectors_namespaceObject, "getCurrentTemplateNavigationPanelSubMenu", function() { return getCurrentTemplateNavigationPanelSubMenu; });
__webpack_require__.d(selectors_namespaceObject, "isNavigationOpened", function() { return selectors_isNavigationOpened; });
__webpack_require__.d(selectors_namespaceObject, "isInserterOpened", function() { return selectors_isInserterOpened; });
__webpack_require__.d(selectors_namespaceObject, "__experimentalGetInsertionPoint", function() { return __experimentalGetInsertionPoint; });
__webpack_require__.d(selectors_namespaceObject, "isListViewOpened", function() { return selectors_isListViewOpened; });
__webpack_require__.d(selectors_namespaceObject, "getCurrentTemplateTemplateParts", function() { return getCurrentTemplateTemplateParts; });
// EXTERNAL MODULE: external ["wp","element"]
var external_wp_element_ = __webpack_require__("GRId");
// EXTERNAL MODULE: external ["wp","blocks"]
var external_wp_blocks_ = __webpack_require__("HSyU");
// EXTERNAL MODULE: external ["wp","blockLibrary"]
var external_wp_blockLibrary_ = __webpack_require__("QyPg");
// EXTERNAL MODULE: external ["wp","data"]
var external_wp_data_ = __webpack_require__("1ZqX");
// EXTERNAL MODULE: external ["wp","coreData"]
var external_wp_coreData_ = __webpack_require__("jZUy");
// EXTERNAL MODULE: external ["wp","editor"]
var external_wp_editor_ = __webpack_require__("jSdM");
// EXTERNAL MODULE: external ["wp","viewport"]
var external_wp_viewport_ = __webpack_require__("KEfo");
// EXTERNAL MODULE: external ["wp","url"]
var external_wp_url_ = __webpack_require__("Mmq9");
// EXTERNAL MODULE: external ["wp","plugins"]
var external_wp_plugins_ = __webpack_require__("TvNi");
// EXTERNAL MODULE: external "lodash"
var external_lodash_ = __webpack_require__("YLtl");
// EXTERNAL MODULE: external ["wp","components"]
var external_wp_components_ = __webpack_require__("tI+e");
// EXTERNAL MODULE: external ["wp","i18n"]
var external_wp_i18n_ = __webpack_require__("l3Sj");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/header/tools-more-menu-group/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
const {
Fill: ToolsMoreMenuGroup,
Slot
} = Object(external_wp_components_["createSlotFill"])('EditSiteToolsMoreMenuGroup');
ToolsMoreMenuGroup.Slot = _ref => {
let {
fillProps
} = _ref;
return Object(external_wp_element_["createElement"])(Slot, {
fillProps: fillProps
}, fills => !Object(external_lodash_["isEmpty"])(fills) && Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
label: Object(external_wp_i18n_["__"])('Tools')
}, fills));
};
/* harmony default export */ var tools_more_menu_group = (ToolsMoreMenuGroup);
// EXTERNAL MODULE: ./node_modules/downloadjs/download.js
var download = __webpack_require__("rrFr");
var download_default = /*#__PURE__*/__webpack_require__.n(download);
// EXTERNAL MODULE: external ["wp","apiFetch"]
var external_wp_apiFetch_ = __webpack_require__("ywyh");
var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_);
// EXTERNAL MODULE: external ["wp","primitives"]
var external_wp_primitives_ = __webpack_require__("Tqx9");
// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/download.js
/**
* WordPress dependencies
*/
const download_download = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
d: "M18 11.3l-1-1.1-4 4V3h-1.5v11.3L7 10.2l-1 1.1 6.2 5.8 5.8-5.8zm.5 3.7v3.5h-13V15H4v5h16v-5h-1.5z"
}));
/* harmony default export */ var library_download = (download_download);
// EXTERNAL MODULE: external ["wp","notices"]
var external_wp_notices_ = __webpack_require__("onLe");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/plugins/site-export.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
function SiteExport() {
const {
createErrorNotice
} = Object(external_wp_data_["useDispatch"])(external_wp_notices_["store"]);
async function handleExport() {
try {
const response = await external_wp_apiFetch_default()({
path: '/wp-block-editor/v1/export',
parse: false
});
const blob = await response.blob();
download_default()(blob, 'edit-site-export.zip', 'application/zip');
} catch (error) {
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : Object(external_wp_i18n_["__"])('An error occurred while creating the site export.');
createErrorNotice(errorMessage, {
type: 'snackbar'
});
}
}
return Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
role: "menuitem",
icon: library_download,
onClick: handleExport,
info: Object(external_wp_i18n_["__"])('Download your templates and template parts.')
}, Object(external_wp_i18n_["__"])('Export'));
}
// EXTERNAL MODULE: external ["wp","dataControls"]
var external_wp_dataControls_ = __webpack_require__("51Zz");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/store/defaults.js
const PREFERENCES_DEFAULTS = {
features: {
welcomeGuide: true,
welcomeGuideStyles: true
}
};
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/store/constants.js
/**
* The identifier for the data store.
*
* @type {string}
*/
const STORE_NAME = 'core/edit-site';
const TEMPLATE_PART_AREA_HEADER = 'header';
const TEMPLATE_PART_AREA_FOOTER = 'footer';
const TEMPLATE_PART_AREA_SIDEBAR = 'sidebar';
const TEMPLATE_PART_AREA_GENERAL = 'uncategorized';
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/navigation-sidebar/navigation-panel/constants.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const TEMPLATES_PRIMARY = ['index', 'singular', 'archive', 'single', 'page', 'home', '404', 'search'];
const TEMPLATES_SECONDARY = ['author', 'category', 'taxonomy', 'date', 'tag', 'attachment', 'single-post', 'front-page'];
const TEMPLATES_TOP_LEVEL = [...TEMPLATES_PRIMARY, ...TEMPLATES_SECONDARY];
const TEMPLATES_GENERAL = ['page-home'];
const TEMPLATES_POSTS_PREFIXES = ['post-', 'author-', 'single-post-', 'tag-'];
const TEMPLATES_PAGES_PREFIXES = ['page-'];
const TEMPLATES_NEW_OPTIONS = ['front-page', 'single-post', 'page', 'archive', 'search', '404', 'index'];
const TEMPLATE_OVERRIDES = {
singular: ['single', 'page'],
index: ['archive', '404', 'search', 'singular', 'home'],
home: ['front-page']
};
const MENU_ROOT = 'root';
const MENU_CONTENT_CATEGORIES = 'content-categories';
const MENU_CONTENT_PAGES = 'content-pages';
const MENU_CONTENT_POSTS = 'content-posts';
const MENU_TEMPLATE_PARTS = 'template-parts';
const MENU_TEMPLATES = 'templates';
const MENU_TEMPLATES_GENERAL = 'templates-general';
const MENU_TEMPLATES_PAGES = 'templates-pages';
const MENU_TEMPLATES_POSTS = 'templates-posts';
const MENU_TEMPLATES_UNUSED = 'templates-unused';
const SEARCH_DEBOUNCE_IN_MS = 75;
const MENU_TEMPLATE_PARTS_HEADERS = 'template-parts-headers';
const MENU_TEMPLATE_PARTS_FOOTERS = 'template-parts-footers';
const MENU_TEMPLATE_PARTS_SIDEBARS = 'template-parts-sidebars';
const MENU_TEMPLATE_PARTS_GENERAL = 'template-parts-general';
const TEMPLATE_PARTS_SUB_MENUS = [{
area: TEMPLATE_PART_AREA_HEADER,
menu: MENU_TEMPLATE_PARTS_HEADERS,
title: Object(external_wp_i18n_["__"])('headers')
}, {
area: TEMPLATE_PART_AREA_FOOTER,
menu: MENU_TEMPLATE_PARTS_FOOTERS,
title: Object(external_wp_i18n_["__"])('footers')
}, {
area: TEMPLATE_PART_AREA_SIDEBAR,
menu: MENU_TEMPLATE_PARTS_SIDEBARS,
title: Object(external_wp_i18n_["__"])('sidebars')
}, {
area: TEMPLATE_PART_AREA_GENERAL,
menu: MENU_TEMPLATE_PARTS_GENERAL,
title: Object(external_wp_i18n_["__"])('general')
}];
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/store/reducer.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* Reducer returning the user preferences.
*
* @param {Object} state Current state.
* @param {Object} action Dispatched action.
* @return {Object} Updated state.
*/
const preferences = Object(external_wp_data_["combineReducers"])({
features() {
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : PREFERENCES_DEFAULTS.features;
let action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case 'TOGGLE_FEATURE':
{
return { ...state,
[action.feature]: !state[action.feature]
};
}
default:
return state;
}
}
});
/**
* Reducer returning the editing canvas device type.
*
* @param {Object} state Current state.
* @param {Object} action Dispatched action.
*
* @return {Object} Updated state.
*/
function reducer_deviceType() {
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'Desktop';
let action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case 'SET_PREVIEW_DEVICE_TYPE':
return action.deviceType;
}
return state;
}
/**
* Reducer returning the settings.
*
* @param {Object} state Current state.
* @param {Object} action Dispatched action.
*
* @return {Object} Updated state.
*/
function reducer_settings() {
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
let action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case 'UPDATE_SETTINGS':
return { ...state,
...action.settings
};
}
return state;
}
/**
* Reducer keeping track of the currently edited Post Type,
* Post Id and the context provided to fill the content of the block editor.
*
* @param {Object} state Current edited post.
* @param {Object} action Dispatched action.
*
* @return {Object} Updated state.
*/
function editedPost() {
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
let action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case 'SET_TEMPLATE':
case 'SET_PAGE':
return {
type: 'wp_template',
id: action.templateId,
page: action.page
};
case 'SET_TEMPLATE_PART':
return {
type: 'wp_template_part',
id: action.templatePartId
};
}
return state;
}
/**
* Reducer for information about the site's homepage.
*
* @param {Object} state Current state.
* @param {Object} action Dispatched action.
*
* @return {Object} Updated state.
*/
function homeTemplateId(state, action) {
switch (action.type) {
case 'SET_HOME_TEMPLATE':
return action.homeTemplateId;
}
return state;
}
/**
* Reducer for information about the navigation panel, such as its active menu
* and whether it should be opened or closed.
*
* Note: this reducer interacts with the inserter and list view panels reducers
* to make sure that only one of the three panels is open at the same time.
*
* @param {Object} state Current state.
* @param {Object} action Dispatched action.
*/
function navigationPanel() {
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
menu: MENU_ROOT,
isOpen: false
};
let action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case 'SET_NAVIGATION_PANEL_ACTIVE_MENU':
return { ...state,
menu: action.menu
};
case 'OPEN_NAVIGATION_PANEL_TO_MENU':
return { ...state,
isOpen: true,
menu: action.menu
};
case 'SET_IS_NAVIGATION_PANEL_OPENED':
return { ...state,
menu: !action.isOpen ? MENU_ROOT : state.menu,
// Set menu to root when closing panel.
isOpen: action.isOpen
};
case 'SET_IS_LIST_VIEW_OPENED':
return { ...state,
menu: state.isOpen && action.isOpen ? MENU_ROOT : state.menu,
// Set menu to root when closing panel.
isOpen: action.isOpen ? false : state.isOpen
};
case 'SET_IS_INSERTER_OPENED':
return { ...state,
menu: state.isOpen && action.value ? MENU_ROOT : state.menu,
// Set menu to root when closing panel.
isOpen: action.value ? false : state.isOpen
};
}
return state;
}
/**
* Reducer to set the block inserter panel open or closed.
*
* Note: this reducer interacts with the navigation and list view panels reducers
* to make sure that only one of the three panels is open at the same time.
*
* @param {boolean|Object} state Current state.
* @param {Object} action Dispatched action.
*/
function blockInserterPanel() {
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
let action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case 'OPEN_NAVIGATION_PANEL_TO_MENU':
return false;
case 'SET_IS_NAVIGATION_PANEL_OPENED':
case 'SET_IS_LIST_VIEW_OPENED':
return action.isOpen ? false : state;
case 'SET_IS_INSERTER_OPENED':
return action.value;
}
return state;
}
/**
* Reducer to set the list view panel open or closed.
*
* Note: this reducer interacts with the navigation and inserter panels reducers
* to make sure that only one of the three panels is open at the same time.
*
* @param {Object} state Current state.
* @param {Object} action Dispatched action.
*/
function listViewPanel() {
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
let action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case 'OPEN_NAVIGATION_PANEL_TO_MENU':
return false;
case 'SET_IS_NAVIGATION_PANEL_OPENED':
return action.isOpen ? false : state;
case 'SET_IS_INSERTER_OPENED':
return action.value ? false : state;
case 'SET_IS_LIST_VIEW_OPENED':
return action.isOpen;
}
return state;
}
/* harmony default export */ var reducer = (Object(external_wp_data_["combineReducers"])({
preferences,
deviceType: reducer_deviceType,
settings: reducer_settings,
editedPost,
homeTemplateId,
navigationPanel,
blockInserterPanel,
listViewPanel
}));
// EXTERNAL MODULE: ./node_modules/@wordpress/interface/build-module/index.js + 17 modules
var build_module = __webpack_require__("U60i");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/utils/is-template-revertable.js
/**
* Check if a template is revertable to its original theme-provided template file.
*
* @param {Object} template The template entity to check.
* @return {boolean} Whether the template is revertable.
*/
function isTemplateRevertable(template) {
if (!template) {
return false;
}
/* eslint-disable camelcase */
return (template === null || template === void 0 ? void 0 : template.source) === 'custom' && (template === null || template === void 0 ? void 0 : template.has_theme_file);
/* eslint-enable camelcase */
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/store/actions.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* Returns an action object used to toggle a feature flag.
*
* @param {string} feature Feature name.
*
* @return {Object} Action object.
*/
function actions_toggleFeature(feature) {
return {
type: 'TOGGLE_FEATURE',
feature
};
}
/**
* Returns an action object used to toggle the width of the editing canvas.
*
* @param {string} deviceType
*
* @return {Object} Action object.
*/
function __experimentalSetPreviewDeviceType(deviceType) {
return {
type: 'SET_PREVIEW_DEVICE_TYPE',
deviceType
};
}
/**
* Returns an action object used to set a template.
*
* @param {number} templateId The template ID.
* @param {string} templateSlug The template slug.
* @return {Object} Action object.
*/
function* actions_setTemplate(templateId, templateSlug) {
const pageContext = {
templateSlug
};
if (!templateSlug) {
const template = yield external_wp_data_["controls"].resolveSelect(external_wp_coreData_["store"], 'getEntityRecord', 'postType', 'wp_template', templateId);
pageContext.templateSlug = template === null || template === void 0 ? void 0 : template.slug;
}
return {
type: 'SET_TEMPLATE',
templateId,
page: {
context: pageContext
}
};
}
/**
* Adds a new template, and sets it as the current template.
*
* @param {Object} template The template.
*
* @return {Object} Action object used to set the current template.
*/
function* addTemplate(template) {
const newTemplate = yield external_wp_data_["controls"].dispatch(external_wp_coreData_["store"], 'saveEntityRecord', 'postType', 'wp_template', template);
if (template.content) {
yield external_wp_data_["controls"].dispatch(external_wp_coreData_["store"], 'editEntityRecord', 'postType', 'wp_template', newTemplate.id, {
blocks: Object(external_wp_blocks_["parse"])(template.content)
}, {
undoIgnore: true
});
}
return {
type: 'SET_TEMPLATE',
templateId: newTemplate.id,
page: {
context: {
templateSlug: newTemplate.slug
}
}
};
}
/**
* Removes a template.
*
* @param {Object} template The template object.
*/
function* actions_removeTemplate(template) {
try {
yield external_wp_data_["controls"].dispatch(external_wp_coreData_["store"], 'deleteEntityRecord', 'postType', template.type, template.id, {
force: true
});
const lastError = yield external_wp_data_["controls"].select(external_wp_coreData_["store"], 'getLastEntityDeleteError', 'postType', template.type, template.id);
if (lastError) {
throw lastError;
}
yield external_wp_data_["controls"].dispatch(external_wp_notices_["store"], 'createSuccessNotice', Object(external_wp_i18n_["sprintf"])(
/* translators: The template/part's name. */
Object(external_wp_i18n_["__"])('"%s" removed.'), template.title.rendered), {
type: 'snackbar'
});
} catch (error) {
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : Object(external_wp_i18n_["__"])('An error occurred while deleting the template.');
yield external_wp_data_["controls"].dispatch(external_wp_notices_["store"], 'createErrorNotice', errorMessage, {
type: 'snackbar'
});
}
}
/**
* Returns an action object used to set a template part.
*
* @param {string} templatePartId The template part ID.
*
* @return {Object} Action object.
*/
function actions_setTemplatePart(templatePartId) {
return {
type: 'SET_TEMPLATE_PART',
templatePartId
};
}
/**
* Updates the homeTemplateId state with the templateId of the page resolved
* from the given path.
*
* @param {number} homeTemplateId The template ID for the homepage.
*/
function setHomeTemplateId(homeTemplateId) {
return {
type: 'SET_HOME_TEMPLATE',
homeTemplateId
};
}
/**
* Resolves the template for a page and displays both. If no path is given, attempts
* to use the postId to generate a path like `?p=${ postId }`.
*
* @param {Object} page The page object.
* @param {string} page.type The page type.
* @param {string} page.slug The page slug.
* @param {string} page.path The page path.
* @param {Object} page.context The page context.
*
* @return {number} The resolved template ID for the page route.
*/
function* actions_setPage(page) {
var _page$context;
if (!page.path && (_page$context = page.context) !== null && _page$context !== void 0 && _page$context.postId) {
const entity = yield external_wp_data_["controls"].resolveSelect(external_wp_coreData_["store"], 'getEntityRecord', 'postType', page.context.postType || 'post', page.context.postId);
page.path = Object(external_wp_url_["getPathAndQueryString"])(entity.link);
}
const {
id: templateId,
slug: templateSlug
} = yield external_wp_data_["controls"].resolveSelect(external_wp_coreData_["store"], '__experimentalGetTemplateForLink', page.path);
yield {
type: 'SET_PAGE',
page: !templateSlug ? page : { ...page,
context: { ...page.context,
templateSlug
}
},
templateId
};
return templateId;
}
/**
* Displays the site homepage for editing in the editor.
*/
function* actions_showHomepage() {
const {
show_on_front: showOnFront,
page_on_front: frontpageId
} = yield external_wp_data_["controls"].resolveSelect(external_wp_coreData_["store"], 'getEntityRecord', 'root', 'site');
const {
siteUrl
} = yield external_wp_data_["controls"].select(STORE_NAME, 'getSettings');
const page = {
path: siteUrl,
context: showOnFront === 'page' ? {
postType: 'page',
postId: frontpageId
} : {}
};
const homeTemplate = yield* actions_setPage(page);
yield setHomeTemplateId(homeTemplate);
}
/**
* Returns an action object used to set the active navigation panel menu.
*
* @param {string} menu Menu prop of active menu.
*
* @return {Object} Action object.
*/
function setNavigationPanelActiveMenu(menu) {
return {
type: 'SET_NAVIGATION_PANEL_ACTIVE_MENU',
menu
};
}
/**
* Opens the navigation panel and sets its active menu at the same time.
*
* @param {string} menu Identifies the menu to open.
*/
function openNavigationPanelToMenu(menu) {
return {
type: 'OPEN_NAVIGATION_PANEL_TO_MENU',
menu
};
}
/**
* Sets whether the navigation panel should be open.
*
* @param {boolean} isOpen If true, opens the nav panel. If false, closes it. It
* does not toggle the state, but sets it directly.
*/
function actions_setIsNavigationPanelOpened(isOpen) {
return {
type: 'SET_IS_NAVIGATION_PANEL_OPENED',
isOpen
};
}
/**
* Returns an action object used to open/close the inserter.
*
* @param {boolean|Object} value Whether the inserter should be
* opened (true) or closed (false).
* To specify an insertion point,
* use an object.
* @param {string} value.rootClientId The root client ID to insert at.
* @param {number} value.insertionIndex The index to insert at.
*
* @return {Object} Action object.
*/
function actions_setIsInserterOpened(value) {
return {
type: 'SET_IS_INSERTER_OPENED',
value
};
}
/**
* Returns an action object used to update the settings.
*
* @param {Object} settings New settings.
*
* @return {Object} Action object.
*/
function actions_updateSettings(settings) {
return {
type: 'UPDATE_SETTINGS',
settings
};
}
/**
* Sets whether the list view panel should be open.
*
* @param {boolean} isOpen If true, opens the list view. If false, closes it.
* It does not toggle the state, but sets it directly.
*/
function actions_setIsListViewOpened(isOpen) {
return {
type: 'SET_IS_LIST_VIEW_OPENED',
isOpen
};
}
/**
* Reverts a template to its original theme-provided file.
*
* @param {Object} template The template to revert.
* @param {Object} [options]
* @param {boolean} [options.allowUndo] Whether to allow the user to undo
* reverting the template. Default true.
*/
function* actions_revertTemplate(template) {
let {
allowUndo = true
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (!isTemplateRevertable(template)) {
yield external_wp_data_["controls"].dispatch(external_wp_notices_["store"], 'createErrorNotice', Object(external_wp_i18n_["__"])('This template is not revertable.'), {
type: 'snackbar'
});
return;
}
try {
var _fileTemplate$content;
const templateEntity = yield external_wp_data_["controls"].select(external_wp_coreData_["store"], 'getEntity', 'postType', template.type);
if (!templateEntity) {
yield external_wp_data_["controls"].dispatch(external_wp_notices_["store"], 'createErrorNotice', Object(external_wp_i18n_["__"])('The editor has encountered an unexpected error. Please reload.'), {
type: 'snackbar'
});
return;
}
const fileTemplatePath = Object(external_wp_url_["addQueryArgs"])(`${templateEntity.baseURL}/${template.id}`, {
context: 'edit',
source: 'theme'
});
const fileTemplate = yield Object(external_wp_dataControls_["apiFetch"])({
path: fileTemplatePath
});
if (!fileTemplate) {
yield external_wp_data_["controls"].dispatch(external_wp_notices_["store"], 'createErrorNotice', Object(external_wp_i18n_["__"])('The editor has encountered an unexpected error. Please reload.'), {
type: 'snackbar'
});
return;
}
const serializeBlocks = _ref => {
let {
blocks: blocksForSerialization = []
} = _ref;
return Object(external_wp_blocks_["__unstableSerializeAndClean"])(blocksForSerialization);
};
const edited = yield external_wp_data_["controls"].select(external_wp_coreData_["store"], 'getEditedEntityRecord', 'postType', template.type, template.id); // We are fixing up the undo level here to make sure we can undo
// the revert in the header toolbar correctly.
yield external_wp_data_["controls"].dispatch(external_wp_coreData_["store"], 'editEntityRecord', 'postType', template.type, template.id, {
content: serializeBlocks,
// required to make the `undo` behave correctly
blocks: edited.blocks,
// required to revert the blocks in the editor
source: 'custom' // required to avoid turning the editor into a dirty state
}, {
undoIgnore: true // required to merge this edit with the last undo level
});
const blocks = Object(external_wp_blocks_["parse"])(fileTemplate === null || fileTemplate === void 0 ? void 0 : (_fileTemplate$content = fileTemplate.content) === null || _fileTemplate$content === void 0 ? void 0 : _fileTemplate$content.raw);
yield external_wp_data_["controls"].dispatch(external_wp_coreData_["store"], 'editEntityRecord', 'postType', template.type, fileTemplate.id, {
content: serializeBlocks,
blocks,
source: 'theme'
});
if (allowUndo) {
const undoRevert = async () => {
await Object(external_wp_data_["dispatch"])(external_wp_coreData_["store"]).editEntityRecord('postType', template.type, edited.id, {
content: serializeBlocks,
blocks: edited.blocks,
source: 'custom'
});
};
yield external_wp_data_["controls"].dispatch(external_wp_notices_["store"], 'createSuccessNotice', Object(external_wp_i18n_["__"])('Template reverted.'), {
type: 'snackbar',
actions: [{
label: Object(external_wp_i18n_["__"])('Undo'),
onClick: undoRevert
}]
});
} else {
yield external_wp_data_["controls"].dispatch(external_wp_notices_["store"], 'createSuccessNotice', Object(external_wp_i18n_["__"])('Template reverted.'));
}
} catch (error) {
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : Object(external_wp_i18n_["__"])('Template revert failed. Please reload.');
yield external_wp_data_["controls"].dispatch(external_wp_notices_["store"], 'createErrorNotice', errorMessage, {
type: 'snackbar'
});
}
}
/**
* Returns an action object used in signalling that the user opened an editor sidebar.
*
* @param {?string} name Sidebar name to be opened.
*
* @yield {Object} Action object.
*/
function* openGeneralSidebar(name) {
yield external_wp_data_["controls"].dispatch(build_module["i" /* store */], 'enableComplementaryArea', STORE_NAME, name);
}
/**
* Returns an action object signalling that the user closed the sidebar.
*
* @yield {Object} Action object.
*/
function* closeGeneralSidebar() {
yield external_wp_data_["controls"].dispatch(build_module["i" /* store */], 'disableComplementaryArea', STORE_NAME);
}
// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js
var rememo = __webpack_require__("pPDe");
// EXTERNAL MODULE: external ["wp","mediaUtils"]
var external_wp_mediaUtils_ = __webpack_require__("6aBm");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/navigation-sidebar/navigation-panel/template-hierarchy.js
/**
* External dependencies
*/
/**
* Internal dependencies
*/
function isTemplateSuperseded(slug, existingSlugs, showOnFront) {
if (!TEMPLATE_OVERRIDES[slug]) {
return false;
} // `home` template is unused if it is superseded by `front-page`
// or "show on front" is set to show a page rather than blog posts.
if (slug === 'home' && showOnFront !== 'posts') {
return true;
}
return TEMPLATE_OVERRIDES[slug].every(overrideSlug => existingSlugs.includes(overrideSlug) || isTemplateSuperseded(overrideSlug, existingSlugs, showOnFront));
}
function getTemplateLocation(slug) {
const isTopLevelTemplate = TEMPLATES_TOP_LEVEL.includes(slug);
if (isTopLevelTemplate) {
return MENU_TEMPLATES;
}
const isGeneralTemplate = TEMPLATES_GENERAL.includes(slug);
if (isGeneralTemplate) {
return MENU_TEMPLATES_GENERAL;
}
const isPostsTemplate = TEMPLATES_POSTS_PREFIXES.some(prefix => slug.startsWith(prefix));
if (isPostsTemplate) {
return MENU_TEMPLATES_POSTS;
}
const isPagesTemplate = TEMPLATES_PAGES_PREFIXES.some(prefix => slug.startsWith(prefix));
if (isPagesTemplate) {
return MENU_TEMPLATES_PAGES;
}
return MENU_TEMPLATES_GENERAL;
}
function getUnusedTemplates(templates, showOnFront) {
const templateSlugs = Object(external_lodash_["map"])(templates, 'slug');
const supersededTemplates = templates.filter(_ref => {
let {
slug
} = _ref;
return isTemplateSuperseded(slug, templateSlugs, showOnFront);
});
return supersededTemplates;
}
function getTemplatesLocationMap(templates) {
return templates.reduce((obj, template) => {
obj[template.slug] = getTemplateLocation(template.slug);
return obj;
}, {});
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/store/selectors.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* @typedef {'template'|'template_type'} TemplateType Template type.
*/
/**
* Returns whether the given feature is enabled or not.
*
* @param {Object} state Global application state.
* @param {string} feature Feature slug.
*
* @return {boolean} Is active.
*/
function isFeatureActive(state, feature) {
return Object(external_lodash_["get"])(state.preferences.features, [feature], false);
}
/**
* Returns the current editing canvas device type.
*
* @param {Object} state Global application state.
*
* @return {string} Device type.
*/
function selectors_experimentalGetPreviewDeviceType(state) {
return state.deviceType;
}
/**
* Returns whether the current user can create media or not.
*
* @param {Object} state Global application state.
*
* @return {Object} Whether the current user can create media or not.
*/
const getCanUserCreateMedia = Object(external_wp_data_["createRegistrySelector"])(select => () => select(external_wp_coreData_["store"]).canUser('create', 'media'));
/**
* Returns any available Reusable blocks.
*
* @param {Object} state Global application state.
*
* @return {Array} The available reusable blocks.
*/
const getReusableBlocks = Object(external_wp_data_["createRegistrySelector"])(select => () => {
const isWeb = external_wp_element_["Platform"].OS === 'web';
return isWeb ? select(external_wp_coreData_["store"]).getEntityRecords('postType', 'wp_block', {
per_page: -1
}) : [];
});
/**
* Returns the settings, taking into account active features and permissions.
*
* @param {Object} state Global application state.
* @param {Function} setIsInserterOpen Setter for the open state of the global inserter.
*
* @return {Object} Settings.
*/
const selectors_getSettings = Object(rememo["a" /* default */])((state, setIsInserterOpen) => {
const settings = { ...state.settings,
outlineMode: true,
focusMode: isFeatureActive(state, 'focusMode'),
hasFixedToolbar: isFeatureActive(state, 'fixedToolbar'),
__experimentalSetIsInserterOpened: setIsInserterOpen,
__experimentalReusableBlocks: getReusableBlocks(state)
};
const canUserCreateMedia = getCanUserCreateMedia(state);
if (!canUserCreateMedia) {
return settings;
}
settings.mediaUpload = _ref => {
let {
onError,
...rest
} = _ref;
Object(external_wp_mediaUtils_["uploadMedia"])({
wpAllowedMimeTypes: state.settings.allowedMimeTypes,
onError: _ref2 => {
let {
message
} = _ref2;
return onError(message);
},
...rest
});
};
return settings;
}, state => [getCanUserCreateMedia(state), state.settings, isFeatureActive(state, 'focusMode'), isFeatureActive(state, 'fixedToolbar'), getReusableBlocks(state)]);
/**
* Returns the current home template ID.
*
* @param {Object} state Global application state.
*
* @return {number?} Home template ID.
*/
function getHomeTemplateId(state) {
return state.homeTemplateId;
}
function getCurrentEditedPost(state) {
return state.editedPost;
}
/**
* Returns the current edited post type (wp_template or wp_template_part).
*
* @param {Object} state Global application state.
*
* @return {TemplateType?} Template type.
*/
function selectors_getEditedPostType(state) {
return getCurrentEditedPost(state).type;
}
/**
* Returns the ID of the currently edited template or template part.
*
* @param {Object} state Global application state.
*
* @return {string?} Post ID.
*/
function selectors_getEditedPostId(state) {
return getCurrentEditedPost(state).id;
}
/**
* Returns the current page object.
*
* @param {Object} state Global application state.
*
* @return {Object} Page.
*/
function selectors_getPage(state) {
return getCurrentEditedPost(state).page;
}
/**
* Returns the active menu in the navigation panel.
*
* @param {Object} state Global application state.
*
* @return {string} Active menu.
*/
function getNavigationPanelActiveMenu(state) {
return state.navigationPanel.menu;
}
/**
* Returns the current template or template part's corresponding
* navigation panel's sub menu, to be used with `openNavigationPanelToMenu`.
*
* @param {Object} state Global application state.
*
* @return {string} The current template or template part's sub menu.
*/
const getCurrentTemplateNavigationPanelSubMenu = Object(external_wp_data_["createRegistrySelector"])(select => state => {
const templateType = selectors_getEditedPostType(state);
const templateId = selectors_getEditedPostId(state);
const template = templateId ? select(external_wp_coreData_["store"]).getEntityRecord('postType', templateType, templateId) : null;
if (!template) {
return MENU_ROOT;
}
if ('wp_template_part' === templateType) {
var _TEMPLATE_PARTS_SUB_M;
return ((_TEMPLATE_PARTS_SUB_M = TEMPLATE_PARTS_SUB_MENUS.find(submenu => submenu.area === (template === null || template === void 0 ? void 0 : template.area))) === null || _TEMPLATE_PARTS_SUB_M === void 0 ? void 0 : _TEMPLATE_PARTS_SUB_M.menu) || MENU_TEMPLATE_PARTS;
}
const templates = select(external_wp_coreData_["store"]).getEntityRecords('postType', 'wp_template');
const showOnFront = select(external_wp_coreData_["store"]).getEditedEntityRecord('root', 'site').show_on_front;
if (isTemplateSuperseded(template.slug, Object(external_lodash_["map"])(templates, 'slug'), showOnFront)) {
return MENU_TEMPLATES_UNUSED;
}
return getTemplateLocation(template.slug);
});
/**
* Returns the current opened/closed state of the navigation panel.
*
* @param {Object} state Global application state.
*
* @return {boolean} True if the navigation panel should be open; false if closed.
*/
function selectors_isNavigationOpened(state) {
return state.navigationPanel.isOpen;
}
/**
* Returns the current opened/closed state of the inserter panel.
*
* @param {Object} state Global application state.
*
* @return {boolean} True if the inserter panel should be open; false if closed.
*/
function selectors_isInserterOpened(state) {
return !!state.blockInserterPanel;
}
/**
* Get the insertion point for the inserter.
*
* @param {Object} state Global application state.
*
* @return {Object} The root client ID, index to insert at and starting filter value.
*/
function __experimentalGetInsertionPoint(state) {
const {
rootClientId,
insertionIndex,
filterValue
} = state.blockInserterPanel;
return {
rootClientId,
insertionIndex,
filterValue
};
}
/**
* Returns the current opened/closed state of the list view panel.
*
* @param {Object} state Global application state.
*
* @return {boolean} True if the list view panel should be open; false if closed.
*/
function selectors_isListViewOpened(state) {
return state.listViewPanel;
}
/**
* Returns the template parts and their blocks for the current edited template.
*
* @param {Object} state Global application state.
* @return {Array} Template parts and their blocks in an array.
*/
const getCurrentTemplateTemplateParts = Object(external_wp_data_["createRegistrySelector"])(select => state => {
var _template$blocks;
const templateType = selectors_getEditedPostType(state);
const templateId = selectors_getEditedPostId(state);
const template = select(external_wp_coreData_["store"]).getEditedEntityRecord('postType', templateType, templateId);
const templateParts = select(external_wp_coreData_["store"]).getEntityRecords('postType', 'wp_template_part', {
per_page: -1
});
const templatePartsById = Object(external_lodash_["keyBy"])(templateParts, templatePart => templatePart.id);
return ((_template$blocks = template.blocks) !== null && _template$blocks !== void 0 ? _template$blocks : []).filter(block => Object(external_wp_blocks_["isTemplatePart"])(block)).map(block => {
const {
attributes: {
theme,
slug
}
} = block;
const templatePartId = `${theme}//${slug}`;
const templatePart = templatePartsById[templatePartId];
return {
templatePart,
block
};
}).filter(_ref3 => {
let {
templatePart
} = _ref3;
return !!templatePart;
});
});
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/store/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const storeConfig = {
reducer: reducer,
actions: actions_namespaceObject,
selectors: selectors_namespaceObject,
controls: external_wp_dataControls_["controls"],
persist: ['preferences']
};
const store = Object(external_wp_data_["createReduxStore"])(STORE_NAME, storeConfig); // Once we build a more generic persistence plugin that works across types of stores
// we'd be able to replace this with a register call.
Object(external_wp_data_["registerStore"])(STORE_NAME, storeConfig);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/plugins/welcome-guide-menu-item.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function WelcomeGuideMenuItem() {
const {
toggleFeature
} = Object(external_wp_data_["useDispatch"])(store);
return Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
onClick: () => toggleFeature('welcomeGuide')
}, Object(external_wp_i18n_["__"])('Welcome Guide'));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/plugins/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
Object(external_wp_plugins_["registerPlugin"])('edit-site', {
render() {
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(tools_more_menu_group, null, Object(external_wp_element_["createElement"])(SiteExport, null), Object(external_wp_element_["createElement"])(WelcomeGuideMenuItem, null)));
}
});
// EXTERNAL MODULE: external ["wp","hooks"]
var external_wp_hooks_ = __webpack_require__("g56x");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/hooks/components.js
/**
* WordPress dependencies
*/
Object(external_wp_hooks_["addFilter"])('editor.MediaUpload', 'core/edit-site/components/media-upload', () => external_wp_mediaUtils_["MediaUpload"]);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/hooks/index.js
/**
* Internal dependencies
*/
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
var esm_extends = __webpack_require__("wx14");
// CONCATENATED MODULE: ./node_modules/history/index.js
var r,B=r||(r={});B.Pop="POP";B.Push="PUSH";B.Replace="REPLACE";var C= false?undefined:function(b){return b};function D(b,h){if(!b){"undefined"!==typeof console&&console.warn(h);try{throw Error(h);}catch(k){}}}function E(b){b.preventDefault();b.returnValue=""}
function F(){var b=[];return{get length(){return b.length},push:function(h){b.push(h);return function(){b=b.filter(function(k){return k!==h})}},call:function(h){b.forEach(function(k){return k&&k(h)})}}}function H(){return Math.random().toString(36).substr(2,8)}function I(b){var h=b.pathname,k=b.search;b=b.hash;return(void 0===h?"/":h)+(void 0===k?"":k)+(void 0===b?"":b)}
function J(b){var h={};if(b){var k=b.indexOf("#");0<=k&&(h.hash=b.substr(k),b=b.substr(0,k));k=b.indexOf("?");0<=k&&(h.search=b.substr(k),b=b.substr(0,k));b&&(h.pathname=b)}return h}
function createBrowserHistory(b){function h(){var c=p.location,a=m.state||{};return[a.idx,C({pathname:c.pathname,search:c.search,hash:c.hash,state:a.usr||null,key:a.key||"default"})]}function k(c){return"string"===typeof c?c:I(c)}function x(c,a){void 0===a&&(a=null);return C(Object(esm_extends["a" /* default */])({pathname:q.pathname,hash:"",search:""},"string"===typeof c?J(c):c,{state:a,key:H()}))}function z(c){t=c;c=h();v=c[0];q=c[1];d.call({action:t,location:q})}function A(c,a){function e(){A(c,a)}var l=r.Push,g=x(c,
a);if(!f.length||(f.call({action:l,location:g,retry:e}),!1)){var n=[{usr:g.state,key:g.key,idx:v+1},k(g)];g=n[0];n=n[1];try{m.pushState(g,"",n)}catch(G){p.location.assign(n)}z(l)}}function y(c,a){function e(){y(c,a)}var l=r.Replace,g=x(c,a);f.length&&(f.call({action:l,location:g,retry:e}),1)||(g=[{usr:g.state,key:g.key,idx:v},k(g)],m.replaceState(g[0],"",g[1]),z(l))}function w(c){m.go(c)}void 0===b&&(b={});b=b.window;var p=void 0===b?document.defaultView:b,m=p.history,u=null;p.addEventListener("popstate",
function(){if(u)f.call(u),u=null;else{var c=r.Pop,a=h(),e=a[0];a=a[1];if(f.length)if(null!=e){var l=v-e;l&&(u={action:c,location:a,retry:function(){w(-1*l)}},w(l))}else false?undefined:
void 0;else z(c)}});var t=r.Pop;b=h();var v=b[0],q=b[1],d=F(),f=F();null==v&&(v=0,m.replaceState(Object(esm_extends["a" /* default */])({},m.state,{idx:v}),""));return{get action(){return t},get location(){return q},createHref:k,push:A,replace:y,go:w,back:function(){w(-1)},forward:function(){w(1)},listen:function(c){return d.push(c)},block:function(c){var a=f.push(c);1===f.length&&p.addEventListener("beforeunload",E);return function(){a();f.length||p.removeEventListener("beforeunload",E)}}}};
function createHashHistory(b){function h(){var a=J(m.location.hash.substr(1)),e=a.pathname,l=a.search;a=a.hash;var g=u.state||{};return[g.idx,C({pathname:void 0===e?"/":e,search:void 0===l?"":l,hash:void 0===a?"":a,state:g.usr||null,key:g.key||"default"})]}function k(){if(t)c.call(t),t=null;else{var a=r.Pop,e=h(),l=e[0];e=e[1];if(c.length)if(null!=l){var g=q-l;g&&(t={action:a,location:e,retry:function(){p(-1*g)}},p(g))}else false?undefined:
void 0;else A(a)}}function x(a){var e=document.querySelector("base"),l="";e&&e.getAttribute("href")&&(e=m.location.href,l=e.indexOf("#"),l=-1===l?e:e.slice(0,l));return l+"#"+("string"===typeof a?a:I(a))}function z(a,e){void 0===e&&(e=null);return C(Object(esm_extends["a" /* default */])({pathname:d.pathname,hash:"",search:""},"string"===typeof a?J(a):a,{state:e,key:H()}))}function A(a){v=a;a=h();q=a[0];d=a[1];f.call({action:v,location:d})}function y(a,e){function l(){y(a,e)}var g=r.Push,n=z(a,e); false?
undefined:void 0;if(!c.length||(c.call({action:g,location:n,retry:l}),!1)){var G=[{usr:n.state,key:n.key,idx:q+1},x(n)];n=G[0];G=G[1];try{u.pushState(n,"",G)}catch(K){m.location.assign(G)}A(g)}}function w(a,e){function l(){w(a,e)}var g=r.Replace,n=z(a,e); false?undefined:void 0;c.length&&(c.call({action:g,location:n,retry:l}),1)||(n=[{usr:n.state,key:n.key,idx:q},x(n)],u.replaceState(n[0],"",n[1]),A(g))}function p(a){u.go(a)}void 0===b&&(b={});b=b.window;var m=void 0===b?document.defaultView:b,u=m.history,t=null;m.addEventListener("popstate",k);m.addEventListener("hashchange",function(){var a=h()[1];I(a)!==I(d)&&k()});var v=r.Pop;b=h();var q=b[0],d=b[1],f=F(),c=F();null==q&&(q=0,u.replaceState(Object(esm_extends["a" /* default */])({},u.state,{idx:q}),""));return{get action(){return v},get location(){return d},
createHref:x,push:y,replace:w,go:p,back:function(){p(-1)},forward:function(){p(1)},listen:function(a){return f.push(a)},block:function(a){var e=c.push(a);1===c.length&&m.addEventListener("beforeunload",E);return function(){e();c.length||m.removeEventListener("beforeunload",E)}}}};
function createMemoryHistory(b){function h(d,f){void 0===f&&(f=null);return C(Object(esm_extends["a" /* default */])({pathname:t.pathname,search:"",hash:""},"string"===typeof d?J(d):d,{state:f,key:H()}))}function k(d,f,c){return!q.length||(q.call({action:d,location:f,retry:c}),!1)}function x(d,f){u=d;t=f;v.call({action:u,location:t})}function z(d,f){var c=r.Push,a=h(d,f); false?undefined:
void 0;k(c,a,function(){z(d,f)})&&(m+=1,p.splice(m,p.length,a),x(c,a))}function A(d,f){var c=r.Replace,a=h(d,f); false?undefined:void 0;k(c,a,function(){A(d,f)})&&(p[m]=a,x(c,a))}function y(d){var f=Math.min(Math.max(m+d,0),p.length-1),c=r.Pop,a=p[f];k(c,a,function(){y(d)})&&(m=f,x(c,a))}void 0===b&&(b={});var w=b;b=w.initialEntries;w=w.initialIndex;var p=(void 0===
b?["/"]:b).map(function(d){var f=C(Object(esm_extends["a" /* default */])({pathname:"/",search:"",hash:"",state:null,key:H()},"string"===typeof d?J(d):d)); false?undefined:void 0;return f}),m=Math.min(Math.max(null==w?p.length-1:w,0),p.length-1),u=r.Pop,t=p[m],v=F(),q=F();return{get index(){return m},get action(){return u},get location(){return t},createHref:function(d){return"string"===
typeof d?d:I(d)},push:z,replace:A,go:y,back:function(){y(-1)},forward:function(){y(1)},listen:function(d){return v.push(d)},block:function(d){return q.push(d)}}};
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/utils/history.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
const history_history = createBrowserHistory();
const originalHistoryPush = history_history.push;
const originalHistoryReplace = history_history.replace;
function push(params, state) {
return originalHistoryPush.call(history_history, Object(external_wp_url_["addQueryArgs"])(window.location.href, params), state);
}
function history_replace(params, state) {
return originalHistoryReplace.call(history_history, Object(external_wp_url_["addQueryArgs"])(window.location.href, params), state);
}
history_history.push = push;
history_history.replace = history_replace;
/* harmony default export */ var utils_history = (history_history);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/routes/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const RoutesContext = Object(external_wp_element_["createContext"])();
const HistoryContext = Object(external_wp_element_["createContext"])();
function useLocation() {
return Object(external_wp_element_["useContext"])(RoutesContext);
}
function useHistory() {
return Object(external_wp_element_["useContext"])(HistoryContext);
}
function getLocationWithParams(location) {
const searchParams = new URLSearchParams(location.search);
return { ...location,
params: Object.fromEntries(searchParams.entries())
};
}
function Routes(_ref) {
let {
children
} = _ref;
const [location, setLocation] = Object(external_wp_element_["useState"])(() => getLocationWithParams(utils_history.location));
Object(external_wp_element_["useEffect"])(() => {
return utils_history.listen(_ref2 => {
let {
location: updatedLocation
} = _ref2;
setLocation(getLocationWithParams(updatedLocation));
});
}, []);
return Object(external_wp_element_["createElement"])(HistoryContext.Provider, {
value: utils_history
}, Object(external_wp_element_["createElement"])(RoutesContext.Provider, {
value: location
}, children(location)));
}
// EXTERNAL MODULE: external ["wp","blockEditor"]
var external_wp_blockEditor_ = __webpack_require__("axFQ");
// EXTERNAL MODULE: external ["wp","keyboardShortcuts"]
var external_wp_keyboardShortcuts_ = __webpack_require__("hF7m");
// EXTERNAL MODULE: external ["wp","compose"]
var external_wp_compose_ = __webpack_require__("K9lf");
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js
var plus = __webpack_require__("Q4Sy");
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/list-view.js
var list_view = __webpack_require__("OzlF");
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/more-vertical.js
var more_vertical = __webpack_require__("VKE3");
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js
var check = __webpack_require__("RMJe");
// EXTERNAL MODULE: external ["wp","a11y"]
var external_wp_a11y_ = __webpack_require__("gdqT");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/header/feature-toggle/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function FeatureToggle(_ref) {
let {
feature,
label,
info,
messageActivated,
messageDeactivated
} = _ref;
const speakMessage = () => {
if (isActive) {
Object(external_wp_a11y_["speak"])(messageDeactivated || Object(external_wp_i18n_["__"])('Feature deactivated'));
} else {
Object(external_wp_a11y_["speak"])(messageActivated || Object(external_wp_i18n_["__"])('Feature activated'));
}
};
const isActive = Object(external_wp_data_["useSelect"])(select => {
return select(store).isFeatureActive(feature);
}, []);
const {
toggleFeature
} = Object(external_wp_data_["useDispatch"])(store);
return Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
icon: isActive && check["a" /* default */],
isSelected: isActive,
onClick: Object(external_lodash_["flow"])(toggleFeature.bind(null, feature), speakMessage),
role: "menuitemcheckbox",
info: info
}, label);
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/header/more-menu/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const POPOVER_PROPS = {
className: 'edit-site-more-menu__content',
position: 'bottom left'
};
const TOGGLE_PROPS = {
tooltipPosition: 'bottom'
};
const MoreMenu = () => Object(external_wp_element_["createElement"])(external_wp_components_["DropdownMenu"], {
className: "edit-site-more-menu",
icon: more_vertical["a" /* default */],
label: Object(external_wp_i18n_["__"])('More tools & options'),
popoverProps: POPOVER_PROPS,
toggleProps: TOGGLE_PROPS
}, _ref => {
let {
onClose
} = _ref;
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
label: Object(external_wp_i18n_["_x"])('View', 'noun')
}, Object(external_wp_element_["createElement"])(FeatureToggle, {
feature: "fixedToolbar",
label: Object(external_wp_i18n_["__"])('Top toolbar'),
info: Object(external_wp_i18n_["__"])('Access all block and document tools in a single place'),
messageActivated: Object(external_wp_i18n_["__"])('Top toolbar activated'),
messageDeactivated: Object(external_wp_i18n_["__"])('Top toolbar deactivated')
}), Object(external_wp_element_["createElement"])(FeatureToggle, {
feature: "focusMode",
label: Object(external_wp_i18n_["__"])('Spotlight mode'),
info: Object(external_wp_i18n_["__"])('Focus on one block at a time'),
messageActivated: Object(external_wp_i18n_["__"])('Spotlight mode activated'),
messageDeactivated: Object(external_wp_i18n_["__"])('Spotlight mode deactivated')
}), Object(external_wp_element_["createElement"])(build_module["a" /* ActionItem */].Slot, {
name: "core/edit-site/plugin-more-menu",
label: Object(external_wp_i18n_["__"])('Plugins'),
as: external_wp_components_["MenuGroup"],
fillProps: {
onClick: onClose
}
})), Object(external_wp_element_["createElement"])(tools_more_menu_group.Slot, {
fillProps: {
onClose
}
}));
});
/* harmony default export */ var more_menu = (MoreMenu);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/save-button/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
function SaveButton(_ref) {
let {
openEntitiesSavedStates,
isEntitiesSavedStatesOpen
} = _ref;
const {
isDirty,
isSaving
} = Object(external_wp_data_["useSelect"])(select => {
const {
__experimentalGetDirtyEntityRecords,
isSavingEntityRecord
} = select(external_wp_coreData_["store"]);
const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
return {
isDirty: dirtyEntityRecords.length > 0,
isSaving: Object(external_lodash_["some"])(dirtyEntityRecords, record => isSavingEntityRecord(record.kind, record.name, record.key))
};
}, []);
const disabled = !isDirty || isSaving;
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
variant: "primary",
className: "edit-site-save-button__button",
"aria-disabled": disabled,
"aria-expanded": isEntitiesSavedStatesOpen,
disabled: disabled,
isBusy: isSaving,
onClick: disabled ? undefined : openEntitiesSavedStates
}, Object(external_wp_i18n_["__"])('Save')));
}
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/undo.js
var library_undo = __webpack_require__("Ntru");
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/redo.js
var library_redo = __webpack_require__("K2cm");
// EXTERNAL MODULE: external ["wp","keycodes"]
var external_wp_keycodes_ = __webpack_require__("RxS6");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/header/undo-redo/undo.js
/**
* WordPress dependencies
*/
function UndoButton() {
const hasUndo = Object(external_wp_data_["useSelect"])(select => select(external_wp_coreData_["store"]).hasUndo(), []);
const {
undo
} = Object(external_wp_data_["useDispatch"])(external_wp_coreData_["store"]);
return Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
icon: !Object(external_wp_i18n_["isRTL"])() ? library_undo["a" /* default */] : library_redo["a" /* default */],
label: Object(external_wp_i18n_["__"])('Undo'),
shortcut: external_wp_keycodes_["displayShortcut"].primary('z') // If there are no undo levels we don't want to actually disable this
// button, because it will remove focus for keyboard users.
// See: https://github.com/WordPress/gutenberg/issues/3486
,
"aria-disabled": !hasUndo,
onClick: hasUndo ? undo : undefined
});
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/header/undo-redo/redo.js
/**
* WordPress dependencies
*/
function RedoButton() {
const hasRedo = Object(external_wp_data_["useSelect"])(select => select(external_wp_coreData_["store"]).hasRedo(), []);
const {
redo
} = Object(external_wp_data_["useDispatch"])(external_wp_coreData_["store"]);
return Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
icon: !Object(external_wp_i18n_["isRTL"])() ? library_redo["a" /* default */] : library_undo["a" /* default */],
label: Object(external_wp_i18n_["__"])('Redo'),
shortcut: external_wp_keycodes_["displayShortcut"].primaryShift('z') // If there are no undo levels we don't want to actually disable this
// button, because it will remove focus for keyboard users.
// See: https://github.com/WordPress/gutenberg/issues/3486
,
"aria-disabled": !hasRedo,
onClick: hasRedo ? redo : undefined
});
}
// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-down.js
var chevron_down = __webpack_require__("NWDH");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/header/document-actions/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
function getBlockDisplayText(block) {
if (block) {
const blockType = Object(external_wp_blocks_["getBlockType"])(block.name);
return blockType ? Object(external_wp_blocks_["__experimentalGetBlockLabel"])(blockType, block.attributes) : null;
}
return null;
}
function useSecondaryText() {
const {
getBlock
} = Object(external_wp_data_["useSelect"])(external_wp_blockEditor_["store"]);
const activeEntityBlockId = Object(external_wp_data_["useSelect"])(select => select(external_wp_blockEditor_["store"]).__experimentalGetActiveBlockIdByBlockNames(['core/template-part']), []);
if (activeEntityBlockId) {
return {
label: getBlockDisplayText(getBlock(activeEntityBlockId)),
isActive: true
};
}
return {};
}
/**
* @param {Object} props Props for the DocumentActions component.
* @param {string} props.entityTitle The title to display.
* @param {string} props.entityLabel A label to use for entity-related options.
* E.g. "template" would be used for "edit
* template" and "show template details".
* @param {boolean} props.isLoaded Whether the data is available.
* @param {Function} props.children React component to use for the
* information dropdown area. Should be a
* function which accepts dropdown props.
*/
function DocumentActions(_ref) {
let {
entityTitle,
entityLabel,
isLoaded,
children: dropdownContent
} = _ref;
const {
label
} = useSecondaryText(); // The title ref is passed to the popover as the anchorRef so that the
// dropdown is centered over the whole title area rather than just one
// part of it.
const titleRef = Object(external_wp_element_["useRef"])(); // Return a simple loading indicator until we have information to show.
if (!isLoaded) {
return Object(external_wp_element_["createElement"])("div", {
className: "edit-site-document-actions"
}, Object(external_wp_i18n_["__"])('Loading…'));
} // Return feedback that the template does not seem to exist.
if (!entityTitle) {
return Object(external_wp_element_["createElement"])("div", {
className: "edit-site-document-actions"
}, Object(external_wp_i18n_["__"])('Template not found'));
}
return Object(external_wp_element_["createElement"])("div", {
className: classnames_default()('edit-site-document-actions', {
'has-secondary-label': !!label
})
}, Object(external_wp_element_["createElement"])("div", {
ref: titleRef,
className: "edit-site-document-actions__title-wrapper"
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalText"], {
size: "body",
className: "edit-site-document-actions__title",
as: "h1"
}, Object(external_wp_element_["createElement"])(external_wp_components_["VisuallyHidden"], {
as: "span"
}, Object(external_wp_i18n_["sprintf"])(
/* translators: %s: the entity being edited, like "template"*/
Object(external_wp_i18n_["__"])('Editing %s: '), entityLabel)), entityTitle), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalText"], {
size: "body",
className: "edit-site-document-actions__secondary-item"
}, label !== null && label !== void 0 ? label : ''), dropdownContent && Object(external_wp_element_["createElement"])(external_wp_components_["Dropdown"], {
popoverProps: {
anchorRef: titleRef.current
},
position: "bottom center",
renderToggle: _ref2 => {
let {
isOpen,
onToggle
} = _ref2;
return Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
className: "edit-site-document-actions__get-info",
icon: chevron_down["a" /* default */],
"aria-expanded": isOpen,
"aria-haspopup": "true",
onClick: onToggle,
label: Object(external_wp_i18n_["sprintf"])(
/* translators: %s: the entity to see details about, like "template"*/
Object(external_wp_i18n_["__"])('Show %s details'), entityLabel)
});
},
contentClassName: "edit-site-document-actions__info-dropdown",
renderContent: dropdownContent
})));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/routes/link.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function useLink() {
let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
let state = arguments.length > 1 ? arguments[1] : undefined;
let shouldReplace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
const history = useHistory();
function onClick(event) {
event.preventDefault();
if (shouldReplace) {
history.replace(params, state);
} else {
history.push(params, state);
}
}
return {
href: Object(external_wp_url_["addQueryArgs"])(window.location.href, params),
onClick
};
}
function Link(_ref) {
let {
params = {},
state,
replace: shouldReplace = false,
children,
...props
} = _ref;
const {
href,
onClick
} = useLink(params, state, shouldReplace);
return Object(external_wp_element_["createElement"])("a", Object(esm_extends["a" /* default */])({
href: href,
onClick: onClick
}, props), children);
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/template-details/template-areas.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function TemplatePartItemMore(_ref) {
var _templatePart$title;
let {
onClose,
templatePart,
closeTemplateDetailsDropdown
} = _ref;
const {
revertTemplate
} = Object(external_wp_data_["useDispatch"])(store);
const {
params
} = useLocation();
const editLinkProps = useLink({
postId: templatePart.id,
postType: templatePart.type
}, {
fromTemplateId: params.postId
});
function editTemplatePart(event) {
editLinkProps.onClick(event);
onClose();
closeTemplateDetailsDropdown();
}
function clearCustomizations() {
revertTemplate(templatePart);
onClose();
closeTemplateDetailsDropdown();
}
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], null, Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], Object(esm_extends["a" /* default */])({}, editLinkProps, {
onClick: editTemplatePart
}), Object(external_wp_i18n_["sprintf"])(
/* translators: %s: template part title */
Object(external_wp_i18n_["__"])('Edit %s'), (_templatePart$title = templatePart.title) === null || _templatePart$title === void 0 ? void 0 : _templatePart$title.rendered))), isTemplateRevertable(templatePart) && Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], null, Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
info: Object(external_wp_i18n_["__"])('Restore template to default state'),
onClick: clearCustomizations
}, Object(external_wp_i18n_["__"])('Clear customizations'))));
}
function TemplatePartItem(_ref2) {
let {
templatePart,
clientId,
closeTemplateDetailsDropdown
} = _ref2;
const {
selectBlock,
toggleBlockHighlight
} = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
const templatePartArea = Object(external_wp_data_["useSelect"])(select => {
const defaultAreas = select(external_wp_editor_["store"]).__experimentalGetDefaultTemplatePartAreas();
return defaultAreas.find(defaultArea => defaultArea.area === templatePart.area);
}, [templatePart.area]);
const highlightBlock = () => toggleBlockHighlight(clientId, true);
const cancelHighlightBlock = () => toggleBlockHighlight(clientId, false);
return Object(external_wp_element_["createElement"])("div", {
role: "menuitem",
className: "edit-site-template-details__template-areas-item"
}, Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
role: "button",
icon: templatePartArea === null || templatePartArea === void 0 ? void 0 : templatePartArea.icon,
iconPosition: "left",
onClick: () => {
selectBlock(clientId);
},
onMouseOver: highlightBlock,
onMouseLeave: cancelHighlightBlock,
onFocus: highlightBlock,
onBlur: cancelHighlightBlock
}, templatePartArea === null || templatePartArea === void 0 ? void 0 : templatePartArea.label), Object(external_wp_element_["createElement"])(external_wp_components_["DropdownMenu"], {
icon: more_vertical["a" /* default */],
label: Object(external_wp_i18n_["__"])('More options'),
className: "edit-site-template-details__template-areas-item-more"
}, _ref3 => {
let {
onClose
} = _ref3;
return Object(external_wp_element_["createElement"])(TemplatePartItemMore, {
onClose: onClose,
templatePart: templatePart,
closeTemplateDetailsDropdown: closeTemplateDetailsDropdown
});
}));
}
function TemplateAreas(_ref4) {
let {
closeTemplateDetailsDropdown
} = _ref4;
const templateParts = Object(external_wp_data_["useSelect"])(select => select(store).getCurrentTemplateTemplateParts(), []);
if (!templateParts.length) {
return null;
}
return Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
label: Object(external_wp_i18n_["__"])('Areas'),
className: "edit-site-template-details__group edit-site-template-details__template-areas"
}, templateParts.map(_ref5 => {
let {
templatePart,
block
} = _ref5;
return Object(external_wp_element_["createElement"])(TemplatePartItem, {
key: templatePart.slug,
clientId: block.clientId,
templatePart: templatePart,
closeTemplateDetailsDropdown: closeTemplateDetailsDropdown
});
}));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/template-details/edit-template-title.js
/**
* WordPress dependencies
*/
function EditTemplateTitle(_ref) {
let {
template
} = _ref;
const [title, setTitle] = Object(external_wp_coreData_["useEntityProp"])('postType', template.type, 'title', template.id);
return Object(external_wp_element_["createElement"])(external_wp_components_["TextControl"], {
label: Object(external_wp_i18n_["__"])('Title'),
value: title,
help: Object(external_wp_i18n_["__"])('Give the template a title that indicates its purpose, e.g. "Full Width".'),
onChange: newTitle => {
setTitle(newTitle || template.slug);
}
});
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/template-details/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function TemplateDetails(_ref) {
let {
template,
onClose
} = _ref;
const {
title,
description
} = Object(external_wp_data_["useSelect"])(select => select(external_wp_editor_["store"]).__experimentalGetTemplateInfo(template), []);
const {
revertTemplate
} = Object(external_wp_data_["useDispatch"])(store);
const templateSubMenu = Object(external_wp_element_["useMemo"])(() => {
if ((template === null || template === void 0 ? void 0 : template.type) === 'wp_template') {
return {
title: Object(external_wp_i18n_["__"])('templates'),
menu: MENU_TEMPLATES
};
}
return TEMPLATE_PARTS_SUB_MENUS.find(_ref2 => {
let {
area
} = _ref2;
return area === (template === null || template === void 0 ? void 0 : template.area);
});
}, [template]);
const browseAllLinkProps = useLink({
// TODO: We should update this to filter by template part's areas as well.
postType: template.type,
postId: undefined
});
if (!template) {
return null;
}
const revert = () => {
revertTemplate(template);
onClose();
};
return Object(external_wp_element_["createElement"])("div", {
className: "edit-site-template-details"
}, Object(external_wp_element_["createElement"])("div", {
className: "edit-site-template-details__group"
}, template.is_custom ? Object(external_wp_element_["createElement"])(EditTemplateTitle, {
template: template
}) : Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHeading"], {
level: 4,
weight: 600,
className: "edit-site-template-details__title"
}, title), description && Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalText"], {
size: "body",
className: "edit-site-template-details__description",
as: "p"
}, description)), Object(external_wp_element_["createElement"])(TemplateAreas, {
closeTemplateDetailsDropdown: onClose
}), isTemplateRevertable(template) && Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
className: "edit-site-template-details__group edit-site-template-details__revert"
}, Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
className: "edit-site-template-details__revert-button",
info: Object(external_wp_i18n_["__"])('Restore template to default state'),
onClick: revert
}, Object(external_wp_i18n_["__"])('Clear customizations'))), Object(external_wp_element_["createElement"])(external_wp_components_["Button"], Object(esm_extends["a" /* default */])({
className: "edit-site-template-details__show-all-button"
}, browseAllLinkProps), Object(external_wp_i18n_["sprintf"])(
/* translators: the template part's area name ("Headers", "Sidebars") or "templates". */
Object(external_wp_i18n_["__"])('Browse all %s'), templateSubMenu.title)));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/header/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const preventDefault = event => {
event.preventDefault();
};
function Header(_ref) {
let {
openEntitiesSavedStates,
isEntitiesSavedStatesOpen
} = _ref;
const inserterButton = Object(external_wp_element_["useRef"])();
const {
deviceType,
entityTitle,
template,
templateType,
isInserterOpen,
isListViewOpen,
listViewShortcut,
isLoaded
} = Object(external_wp_data_["useSelect"])(select => {
const {
__experimentalGetPreviewDeviceType,
getEditedPostType,
getEditedPostId,
isInserterOpened,
isListViewOpened
} = select(store);
const {
getEditedEntityRecord
} = select(external_wp_coreData_["store"]);
const {
__experimentalGetTemplateInfo: getTemplateInfo
} = select(external_wp_editor_["store"]);
const {
getShortcutRepresentation
} = select(external_wp_keyboardShortcuts_["store"]);
const postType = getEditedPostType();
const postId = getEditedPostId();
const record = getEditedEntityRecord('postType', postType, postId);
const _isLoaded = !!postId;
return {
deviceType: __experimentalGetPreviewDeviceType(),
entityTitle: getTemplateInfo(record).title,
isLoaded: _isLoaded,
template: record,
templateType: postType,
isInserterOpen: isInserterOpened(),
isListViewOpen: isListViewOpened(),
listViewShortcut: getShortcutRepresentation('core/edit-site/toggle-list-view')
};
}, []);
const {
__experimentalSetPreviewDeviceType: setPreviewDeviceType,
setIsInserterOpened,
setIsListViewOpened
} = Object(external_wp_data_["useDispatch"])(store);
const isLargeViewport = Object(external_wp_compose_["useViewportMatch"])('medium');
const openInserter = Object(external_wp_element_["useCallback"])(() => {
if (isInserterOpen) {
// Focusing the inserter button closes the inserter popover
inserterButton.current.focus();
} else {
setIsInserterOpened(true);
}
}, [isInserterOpen, setIsInserterOpened]);
const toggleListView = Object(external_wp_element_["useCallback"])(() => setIsListViewOpened(!isListViewOpen), [setIsListViewOpened, isListViewOpen]);
const isFocusMode = templateType === 'wp_template_part';
return Object(external_wp_element_["createElement"])("div", {
className: "edit-site-header"
}, Object(external_wp_element_["createElement"])("div", {
className: "edit-site-header_start"
}, Object(external_wp_element_["createElement"])("div", {
className: "edit-site-header__toolbar"
}, Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
ref: inserterButton,
variant: "primary",
isPressed: isInserterOpen,
className: "edit-site-header-toolbar__inserter-toggle",
onMouseDown: preventDefault,
onClick: openInserter,
icon: plus["a" /* default */],
label: Object(external_wp_i18n_["_x"])('Toggle block inserter', 'Generic label for block inserter button')
}), isLargeViewport && Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["ToolSelector"], null), Object(external_wp_element_["createElement"])(UndoButton, null), Object(external_wp_element_["createElement"])(RedoButton, null), Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
className: "edit-site-header-toolbar__list-view-toggle",
icon: list_view["a" /* default */],
isPressed: isListViewOpen
/* translators: button label text should, if possible, be under 16 characters. */
,
label: Object(external_wp_i18n_["__"])('List View'),
onClick: toggleListView,
shortcut: listViewShortcut
})))), Object(external_wp_element_["createElement"])("div", {
className: "edit-site-header_center"
}, Object(external_wp_element_["createElement"])(DocumentActions, {
entityTitle: entityTitle,
entityLabel: templateType === 'wp_template_part' ? 'template part' : 'template',
isLoaded: isLoaded
}, _ref2 => {
let {
onClose
} = _ref2;
return Object(external_wp_element_["createElement"])(TemplateDetails, {
template: template,
onClose: onClose
});
})), Object(external_wp_element_["createElement"])("div", {
className: "edit-site-header_end"
}, Object(external_wp_element_["createElement"])("div", {
className: "edit-site-header__actions"
}, !isFocusMode && Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalPreviewOptions"], {
deviceType: deviceType,
setDeviceType: setPreviewDeviceType
}), Object(external_wp_element_["createElement"])(SaveButton, {
openEntitiesSavedStates: openEntitiesSavedStates,
isEntitiesSavedStatesOpen: isEntitiesSavedStatesOpen
}), Object(external_wp_element_["createElement"])(build_module["h" /* PinnedItems */].Slot, {
scope: "core/edit-site"
}), Object(external_wp_element_["createElement"])(more_menu, null))));
}
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/cog.js
var cog = __webpack_require__("Cg8A");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar/default-sidebar.js
/**
* WordPress dependencies
*/
function DefaultSidebar(_ref) {
let {
className,
identifier,
title,
icon,
children,
closeLabel,
header,
headerClassName
} = _ref;
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(build_module["b" /* ComplementaryArea */], {
className: className,
scope: "core/edit-site",
identifier: identifier,
title: title,
icon: icon,
closeLabel: closeLabel,
header: header,
headerClassName: headerClassName
}, children), Object(external_wp_element_["createElement"])(build_module["c" /* ComplementaryAreaMoreMenuItem */], {
scope: "core/edit-site",
identifier: identifier,
icon: icon
}, title));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/styles.js
/**
* WordPress dependencies
*/
const styles_styles = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
viewBox: "0 0 24 24",
xmlns: "http://www.w3.org/2000/svg"
}, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
d: "M12 4c-4.4 0-8 3.6-8 8v.1c0 4.1 3.2 7.5 7.2 7.9h.8c4.4 0 8-3.6 8-8s-3.6-8-8-8zm0 15V5c3.9 0 7 3.1 7 7s-3.1 7-7 7z"
}));
/* harmony default export */ var library_styles = (styles_styles);
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js
var build_module_icon = __webpack_require__("iClF");
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-left.js
var chevron_left = __webpack_require__("2gm7");
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-right.js
var chevron_right = __webpack_require__("1iEr");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/utils.js
/**
* External dependencies
*/
/* Supporting data */
const ROOT_BLOCK_NAME = 'root';
const ROOT_BLOCK_SELECTOR = 'body';
const ROOT_BLOCK_SUPPORTS = ['background', 'backgroundColor', 'color', 'linkColor', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'lineHeight', 'textDecoration', 'textTransform', 'padding'];
const PRESET_METADATA = [{
path: ['color', 'palette'],
valueKey: 'color',
cssVarInfix: 'color',
classes: [{
classSuffix: 'color',
propertyName: 'color'
}, {
classSuffix: 'background-color',
propertyName: 'background-color'
}, {
classSuffix: 'border-color',
propertyName: 'border-color'
}]
}, {
path: ['color', 'gradients'],
valueKey: 'gradient',
cssVarInfix: 'gradient',
classes: [{
classSuffix: 'gradient-background',
propertyName: 'background'
}]
}, {
path: ['typography', 'fontSizes'],
valueKey: 'size',
cssVarInfix: 'font-size',
classes: [{
classSuffix: 'font-size',
propertyName: 'font-size'
}]
}, {
path: ['typography', 'fontFamilies'],
valueKey: 'fontFamily',
cssVarInfix: 'font-family',
classes: [{
classSuffix: 'font-family',
propertyName: 'font-family'
}]
}];
const STYLE_PATH_TO_CSS_VAR_INFIX = {
'color.background': 'color',
'color.text': 'color',
'elements.link.color.text': 'color',
'color.gradient': 'gradient',
'typography.fontSize': 'font-size',
'typography.fontFamily': 'font-family'
};
function findInPresetsBy(features, blockName, presetPath, presetProperty, presetValueValue) {
// Block presets take priority above root level presets.
const orderedPresetsByOrigin = [Object(external_lodash_["get"])(features, ['blocks', blockName, ...presetPath]), Object(external_lodash_["get"])(features, presetPath)];
for (const presetByOrigin of orderedPresetsByOrigin) {
if (presetByOrigin) {
// Preset origins ordered by priority.
const origins = ['custom', 'theme', 'default'];
for (const origin of origins) {
const presets = presetByOrigin[origin];
if (presets) {
const presetObject = Object(external_lodash_["find"])(presets, preset => preset[presetProperty] === presetValueValue);
if (presetObject) {
if (presetProperty === 'slug') {
return presetObject;
} // if there is a highest priority preset with the same slug but different value the preset we found was overwritten and should be ignored.
const highestPresetObjectWithSameSlug = findInPresetsBy(features, blockName, presetPath, 'slug', presetObject.slug);
if (highestPresetObjectWithSameSlug[presetProperty] === presetObject[presetProperty]) {
return presetObject;
}
return undefined;
}
}
}
}
}
}
function getPresetVariableFromValue(features, blockName, variableStylePath, presetPropertyValue) {
if (!presetPropertyValue) {
return presetPropertyValue;
}
const cssVarInfix = STYLE_PATH_TO_CSS_VAR_INFIX[variableStylePath];
const metadata = Object(external_lodash_["find"])(PRESET_METADATA, ['cssVarInfix', cssVarInfix]);
if (!metadata) {
// The property doesn't have preset data
// so the value should be returned as it is.
return presetPropertyValue;
}
const {
valueKey,
path
} = metadata;
const presetObject = findInPresetsBy(features, blockName, path, valueKey, presetPropertyValue);
if (!presetObject) {
// Value wasn't found in the presets,
// so it must be a custom value.
return presetPropertyValue;
}
return `var:preset|${cssVarInfix}|${presetObject.slug}`;
}
function getValueFromPresetVariable(features, blockName, variable, _ref) {
let [presetType, slug] = _ref;
const metadata = Object(external_lodash_["find"])(PRESET_METADATA, ['cssVarInfix', presetType]);
if (!metadata) {
return variable;
}
const presetObject = findInPresetsBy(features, blockName, metadata.path, 'slug', slug);
if (presetObject) {
const {
valueKey
} = metadata;
const result = presetObject[valueKey];
return getValueFromVariable(features, blockName, result);
}
return variable;
}
function getValueFromCustomVariable(features, blockName, variable, path) {
var _get;
const result = (_get = Object(external_lodash_["get"])(features, ['blocks', blockName, 'custom', ...path])) !== null && _get !== void 0 ? _get : Object(external_lodash_["get"])(features, ['custom', ...path]);
if (!result) {
return variable;
} // A variable may reference another variable so we need recursion until we find the value.
return getValueFromVariable(features, blockName, result);
}
function getValueFromVariable(features, blockName, variable) {
if (!variable || !Object(external_lodash_["isString"])(variable)) {
return variable;
}
const USER_VALUE_PREFIX = 'var:';
const THEME_VALUE_PREFIX = 'var(--wp--';
const THEME_VALUE_SUFFIX = ')';
let parsedVar;
if (variable.startsWith(USER_VALUE_PREFIX)) {
parsedVar = variable.slice(USER_VALUE_PREFIX.length).split('|');
} else if (variable.startsWith(THEME_VALUE_PREFIX) && variable.endsWith(THEME_VALUE_SUFFIX)) {
parsedVar = variable.slice(THEME_VALUE_PREFIX.length, -THEME_VALUE_SUFFIX.length).split('--');
} else {
// We don't know how to parse the value: either is raw of uses complex CSS such as `calc(1px * var(--wp--variable) )`
return variable;
}
const [type, ...path] = parsedVar;
if (type === 'preset') {
return getValueFromPresetVariable(features, blockName, variable, path);
}
if (type === 'custom') {
return getValueFromCustomVariable(features, blockName, variable, path);
}
return variable;
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/context.js
/**
* WordPress dependencies
*/
const DEFAULT_GLOBAL_STYLES_CONTEXT = {
user: {},
base: {},
merged: {},
setUserConfig: () => {}
};
const GlobalStylesContext = Object(external_wp_element_["createContext"])(DEFAULT_GLOBAL_STYLES_CONTEXT);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/hooks.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const EMPTY_CONFIG = {
isGlobalStylesUserThemeJSON: true,
version: 1
};
const useGlobalStylesReset = () => {
const {
user: config,
setUserConfig
} = Object(external_wp_element_["useContext"])(GlobalStylesContext);
const canReset = !!config && !Object(external_lodash_["isEqual"])(config, EMPTY_CONFIG);
return [canReset, Object(external_wp_element_["useCallback"])(() => setUserConfig(() => EMPTY_CONFIG), [setUserConfig])];
};
function useSetting(path, blockName) {
var _getSettingValueForCo;
let source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'all';
const {
merged: mergedConfig,
base: baseConfig,
user: userConfig,
setUserConfig
} = Object(external_wp_element_["useContext"])(GlobalStylesContext);
const fullPath = !blockName ? `settings.${path}` : `settings.blocks.${blockName}.${path}`;
const setSetting = newValue => {
setUserConfig(currentConfig => {
const newUserConfig = Object(external_lodash_["cloneDeep"])(currentConfig);
const pathToSet = external_wp_blocks_["__EXPERIMENTAL_PATHS_WITH_MERGE"][path] ? fullPath + '.custom' : fullPath;
Object(external_lodash_["set"])(newUserConfig, pathToSet, newValue);
return newUserConfig;
});
};
const getSettingValueForContext = name => {
const currentPath = !name ? `settings.${path}` : `settings.blocks.${name}.${path}`;
const getSettingValue = configToUse => {
const result = Object(external_lodash_["get"])(configToUse, currentPath);
if (external_wp_blocks_["__EXPERIMENTAL_PATHS_WITH_MERGE"][path]) {
var _ref, _result$custom;
return (_ref = (_result$custom = result === null || result === void 0 ? void 0 : result.custom) !== null && _result$custom !== void 0 ? _result$custom : result === null || result === void 0 ? void 0 : result.theme) !== null && _ref !== void 0 ? _ref : result === null || result === void 0 ? void 0 : result.default;
}
return result;
};
let result;
switch (source) {
case 'all':
result = getSettingValue(mergedConfig);
break;
case 'user':
result = getSettingValue(userConfig);
break;
case 'base':
result = getSettingValue(baseConfig);
break;
default:
throw 'Unsupported source';
}
return result;
}; // Unlike styles settings get inherited from top level settings.
const resultWithFallback = (_getSettingValueForCo = getSettingValueForContext(blockName)) !== null && _getSettingValueForCo !== void 0 ? _getSettingValueForCo : getSettingValueForContext();
return [resultWithFallback, setSetting];
}
function useStyle(path, blockName) {
var _get;
let source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'all';
const {
merged: mergedConfig,
base: baseConfig,
user: userConfig,
setUserConfig
} = Object(external_wp_element_["useContext"])(GlobalStylesContext);
const finalPath = !blockName ? `styles.${path}` : `styles.blocks.${blockName}.${path}`;
const setStyle = newValue => {
setUserConfig(currentConfig => {
const newUserConfig = Object(external_lodash_["cloneDeep"])(currentConfig);
Object(external_lodash_["set"])(newUserConfig, finalPath, getPresetVariableFromValue(mergedConfig.settings, blockName, path, newValue));
return newUserConfig;
});
};
let result;
switch (source) {
case 'all':
result = getValueFromVariable(mergedConfig.settings, blockName, (_get = Object(external_lodash_["get"])(userConfig, finalPath)) !== null && _get !== void 0 ? _get : Object(external_lodash_["get"])(baseConfig, finalPath));
break;
case 'user':
result = getValueFromVariable(mergedConfig.settings, blockName, Object(external_lodash_["get"])(userConfig, finalPath));
break;
case 'base':
result = getValueFromVariable(baseConfig.settings, blockName, Object(external_lodash_["get"])(baseConfig, finalPath));
break;
default:
throw 'Unsupported source';
}
return [result, setStyle];
}
const hooks_ROOT_BLOCK_SUPPORTS = ['background', 'backgroundColor', 'color', 'linkColor', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'lineHeight', 'textDecoration', 'textTransform', 'padding'];
function getSupportedGlobalStylesPanels(name) {
if (!name) {
return hooks_ROOT_BLOCK_SUPPORTS;
}
const blockType = Object(external_wp_blocks_["getBlockType"])(name);
if (!blockType) {
return [];
}
const supportKeys = [];
Object.keys(external_wp_blocks_["__EXPERIMENTAL_STYLE_PROPERTY"]).forEach(styleName => {
if (!external_wp_blocks_["__EXPERIMENTAL_STYLE_PROPERTY"][styleName].support) {
return;
} // Opting out means that, for certain support keys like background color,
// blocks have to explicitly set the support value false. If the key is
// unset, we still enable it.
if (external_wp_blocks_["__EXPERIMENTAL_STYLE_PROPERTY"][styleName].requiresOptOut) {
if (Object(external_lodash_["has"])(blockType.supports, external_wp_blocks_["__EXPERIMENTAL_STYLE_PROPERTY"][styleName].support[0]) && Object(external_lodash_["get"])(blockType.supports, external_wp_blocks_["__EXPERIMENTAL_STYLE_PROPERTY"][styleName].support) !== false) {
return supportKeys.push(styleName);
}
}
if (Object(external_lodash_["get"])(blockType.supports, external_wp_blocks_["__EXPERIMENTAL_STYLE_PROPERTY"][styleName].support, false)) {
return supportKeys.push(styleName);
}
});
return supportKeys;
}
function useColorsPerOrigin(name) {
const [customColors] = useSetting('color.palette.custom', name);
const [themeColors] = useSetting('color.palette.theme', name);
const [defaultColors] = useSetting('color.palette.default', name);
const [shouldDisplayDefaultColors] = useSetting('color.defaultPalette');
return Object(external_wp_element_["useMemo"])(() => {
const result = [];
if (themeColors && themeColors.length) {
result.push({
name: Object(external_wp_i18n_["_x"])('Theme', 'Indicates this palette comes from the theme.'),
colors: themeColors
});
}
if (shouldDisplayDefaultColors && defaultColors && defaultColors.length) {
result.push({
name: Object(external_wp_i18n_["_x"])('Default', 'Indicates this palette comes from WordPress.'),
colors: defaultColors
});
}
if (customColors && customColors.length) {
result.push({
name: Object(external_wp_i18n_["_x"])('Custom', 'Indicates this palette is created by the user.'),
colors: customColors
});
}
return result;
}, [customColors, themeColors, defaultColors]);
}
function useGradientsPerOrigin(name) {
const [customGradients] = useSetting('color.gradients.custom', name);
const [themeGradients] = useSetting('color.gradients.theme', name);
const [defaultGradients] = useSetting('color.gradients.default', name);
const [shouldDisplayDefaultGradients] = useSetting('color.defaultGradients');
return Object(external_wp_element_["useMemo"])(() => {
const result = [];
if (themeGradients && themeGradients.length) {
result.push({
name: Object(external_wp_i18n_["_x"])('Theme', 'Indicates this palette comes from the theme.'),
gradients: themeGradients
});
}
if (shouldDisplayDefaultGradients && defaultGradients && defaultGradients.length) {
result.push({
name: Object(external_wp_i18n_["_x"])('Default', 'Indicates this palette comes from WordPress.'),
gradients: defaultGradients
});
}
if (customGradients && customGradients.length) {
result.push({
name: Object(external_wp_i18n_["_x"])('Custom', 'Indicates this palette is created by the user.'),
gradients: customGradients
});
}
return result;
}, [customGradients, themeGradients, defaultGradients]);
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/preview.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const StylesPreview = () => {
const [fontFamily = 'serif'] = useStyle('typography.fontFamily');
const [textColor = 'black'] = useStyle('color.text');
const [linkColor = 'blue'] = useStyle('elements.link.color.text');
const [backgroundColor = 'white'] = useStyle('color.background');
const [gradientValue] = useStyle('color.gradient');
return Object(external_wp_element_["createElement"])(external_wp_components_["Card"], {
className: "edit-site-global-styles-preview",
style: {
background: gradientValue !== null && gradientValue !== void 0 ? gradientValue : backgroundColor
}
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHStack"], {
spacing: 5
}, Object(external_wp_element_["createElement"])("div", {
style: {
fontFamily,
fontSize: '80px',
color: textColor
}
}, "Aa"), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalVStack"], {
spacing: 2
}, Object(external_wp_element_["createElement"])(external_wp_components_["ColorIndicator"], {
colorValue: textColor
}), Object(external_wp_element_["createElement"])(external_wp_components_["ColorIndicator"], {
colorValue: linkColor
}))));
};
/* harmony default export */ var preview = (StylesPreview);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/navigation-button.js
/**
* WordPress dependencies
*/
function NavigationButton(_ref) {
let {
path,
icon,
children,
isBack = false,
...props
} = _ref;
const navigator = Object(external_wp_components_["__experimentalUseNavigator"])();
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalItem"], Object(esm_extends["a" /* default */])({
onClick: () => navigator.push(path, {
isBack
})
}, props), icon && Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHStack"], {
justify: "flex-start"
}, Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
icon: icon,
size: 24
})), Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, children)), !icon && children);
}
/* harmony default export */ var navigation_button = (NavigationButton);
// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/typography.js
/**
* WordPress dependencies
*/
const typography = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
d: "M6.9 7L3 17.8h1.7l1-2.8h4.1l1 2.8h1.7L8.6 7H6.9zm-.7 6.6l1.5-4.3 1.5 4.3h-3zM21.6 17c-.1.1-.2.2-.3.2-.1.1-.2.1-.4.1s-.3-.1-.4-.2c-.1-.1-.1-.3-.1-.6V12c0-.5 0-1-.1-1.4-.1-.4-.3-.7-.5-1-.2-.2-.5-.4-.9-.5-.4 0-.8-.1-1.3-.1s-1 .1-1.4.2c-.4.1-.7.3-1 .4-.2.2-.4.3-.6.5-.1.2-.2.4-.2.7 0 .3.1.5.2.8.2.2.4.3.8.3.3 0 .6-.1.8-.3.2-.2.3-.4.3-.7 0-.3-.1-.5-.2-.7-.2-.2-.4-.3-.6-.4.2-.2.4-.3.7-.4.3-.1.6-.1.8-.1.3 0 .6 0 .8.1.2.1.4.3.5.5.1.2.2.5.2.9v1.1c0 .3-.1.5-.3.6-.2.2-.5.3-.9.4-.3.1-.7.3-1.1.4-.4.1-.8.3-1.1.5-.3.2-.6.4-.8.7-.2.3-.3.7-.3 1.2 0 .6.2 1.1.5 1.4.3.4.9.5 1.6.5.5 0 1-.1 1.4-.3.4-.2.8-.6 1.1-1.1 0 .4.1.7.3 1 .2.3.6.4 1.2.4.4 0 .7-.1.9-.2.2-.1.5-.3.7-.4h-.3zm-3-.9c-.2.4-.5.7-.8.8-.3.2-.6.2-.8.2-.4 0-.6-.1-.9-.3-.2-.2-.3-.6-.3-1.1 0-.5.1-.9.3-1.2s.5-.5.8-.7c.3-.2.7-.3 1-.5.3-.1.6-.3.7-.6v3.4z"
}));
/* harmony default export */ var library_typography = (typography);
// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/color.js
/**
* WordPress dependencies
*/
const color_color = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
viewBox: "0 0 24 24",
xmlns: "http://www.w3.org/2000/svg"
}, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
d: "M17.2 10.9c-.5-1-1.2-2.1-2.1-3.2-.6-.9-1.3-1.7-2.1-2.6L12 4l-1 1.1c-.6.9-1.3 1.7-2 2.6-.8 1.2-1.5 2.3-2 3.2-.6 1.2-1 2.2-1 3 0 3.4 2.7 6.1 6.1 6.1s6.1-2.7 6.1-6.1c0-.8-.3-1.8-1-3zm-5.1 7.6c-2.5 0-4.6-2.1-4.6-4.6 0-.3.1-1 .8-2.3.5-.9 1.1-1.9 2-3.1.7-.9 1.3-1.7 1.8-2.3.7.8 1.3 1.6 1.8 2.3.8 1.1 1.5 2.2 2 3.1.7 1.3.8 2 .8 2.3 0 2.5-2.1 4.6-4.6 4.6z"
}));
/* harmony default export */ var library_color = (color_color);
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/layout.js
var layout = __webpack_require__("Civd");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/border-panel.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const MIN_BORDER_WIDTH = 0; // Defining empty array here instead of inline avoids unnecessary re-renders of
// color control.
const EMPTY_ARRAY = [];
function useHasBorderPanel(name) {
const controls = [useHasBorderColorControl(name), useHasBorderRadiusControl(name), useHasBorderStyleControl(name), useHasBorderWidthControl(name)];
return controls.some(Boolean);
}
function useHasBorderColorControl(name) {
const supports = getSupportedGlobalStylesPanels(name);
return useSetting('border.color', name)[0] && supports.includes('borderColor');
}
function useHasBorderRadiusControl(name) {
const supports = getSupportedGlobalStylesPanels(name);
return useSetting('border.radius', name)[0] && supports.includes('borderRadius');
}
function useHasBorderStyleControl(name) {
const supports = getSupportedGlobalStylesPanels(name);
return useSetting('border.style', name)[0] && supports.includes('borderStyle');
}
function useHasBorderWidthControl(name) {
const supports = getSupportedGlobalStylesPanels(name);
return useSetting('border.width', name)[0] && supports.includes('borderWidth');
}
function BorderPanel(_ref) {
let {
name
} = _ref;
const units = Object(external_wp_components_["__experimentalUseCustomUnits"])({
availableUnits: useSetting('spacing.units')[0] || ['px', 'em', 'rem']
}); // Border width.
const hasBorderWidth = useHasBorderWidthControl(name);
const [borderWidthValue, setBorderWidth] = useStyle('border.width', name); // Border style.
const hasBorderStyle = useHasBorderStyleControl(name);
const [borderStyle, setBorderStyle] = useStyle('border.style', name); // Border color.
const [colors = EMPTY_ARRAY] = useSetting('color.palette');
const disableCustomColors = !useSetting('color.custom')[0];
const disableCustomGradients = !useSetting('color.customGradient')[0];
const hasBorderColor = useHasBorderColorControl(name);
const [borderColor, setBorderColor] = useStyle('border.color', name); // Border radius.
const hasBorderRadius = useHasBorderRadiusControl(name);
const [borderRadiusValues, setBorderRadius] = useStyle('border.radius', name);
return Object(external_wp_element_["createElement"])(external_wp_components_["PanelBody"], {
title: Object(external_wp_i18n_["__"])('Border'),
initialOpen: true
}, (hasBorderWidth || hasBorderStyle) && Object(external_wp_element_["createElement"])("div", {
className: "edit-site-global-styles-sidebar__border-controls-row"
}, hasBorderWidth && Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalUnitControl"], {
value: borderWidthValue,
label: Object(external_wp_i18n_["__"])('Width'),
min: MIN_BORDER_WIDTH,
onChange: value => {
setBorderWidth(value || undefined);
},
units: units
}), hasBorderStyle && Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalBorderStyleControl"], {
value: borderStyle,
onChange: setBorderStyle
})), hasBorderColor && Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalColorGradientControl"], {
label: Object(external_wp_i18n_["__"])('Color'),
colorValue: borderColor,
colors: colors,
gradients: undefined,
disableCustomColors: disableCustomColors,
disableCustomGradients: disableCustomGradients,
onColorChange: setBorderColor
}), hasBorderRadius && Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalBorderRadiusControl"], {
values: borderRadiusValues,
onChange: setBorderRadius
}));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/color-utils.js
/**
* Internal dependencies
*/
function useHasColorPanel(name) {
const supports = getSupportedGlobalStylesPanels(name);
return supports.includes('color') || supports.includes('backgroundColor') || supports.includes('background') || supports.includes('linkColor');
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/dimensions-panel.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const AXIAL_SIDES = ['horizontal', 'vertical'];
function useHasDimensionsPanel(name) {
const hasPadding = useHasPadding(name);
const hasMargin = useHasMargin(name);
const hasGap = useHasGap(name);
return hasPadding || hasMargin || hasGap;
}
function useHasPadding(name) {
const supports = getSupportedGlobalStylesPanels(name);
const [settings] = useSetting('spacing.padding', name);
return settings && supports.includes('padding');
}
function useHasMargin(name) {
const supports = getSupportedGlobalStylesPanels(name);
const [settings] = useSetting('spacing.margin', name);
return settings && supports.includes('margin');
}
function useHasGap(name) {
const supports = getSupportedGlobalStylesPanels(name);
const [settings] = useSetting('spacing.blockGap', name);
return settings && supports.includes('--wp--style--block-gap');
}
function filterValuesBySides(values, sides) {
if (!sides) {
// If no custom side configuration all sides are opted into by default.
return values;
} // Only include sides opted into within filtered values.
const filteredValues = {};
sides.forEach(side => {
if (side === 'vertical') {
filteredValues.top = values.top;
filteredValues.bottom = values.bottom;
}
if (side === 'horizontal') {
filteredValues.left = values.left;
filteredValues.right = values.right;
}
filteredValues[side] = values[side];
});
return filteredValues;
}
function splitStyleValue(value) {
// Check for shorthand value ( a string value ).
if (value && typeof value === 'string') {
// Convert to value for individual sides for BoxControl.
return {
top: value,
right: value,
bottom: value,
left: value
};
}
return value;
}
function DimensionsPanel(_ref) {
let {
name
} = _ref;
const showPaddingControl = useHasPadding(name);
const showMarginControl = useHasMargin(name);
const showGapControl = useHasGap(name);
const units = Object(external_wp_components_["__experimentalUseCustomUnits"])({
availableUnits: useSetting('spacing.units', name)[0] || ['%', 'px', 'em', 'rem', 'vw']
});
const [rawPadding, setRawPadding] = useStyle('spacing.padding', name);
const paddingValues = splitStyleValue(rawPadding);
const paddingSides = Object(external_wp_blockEditor_["__experimentalUseCustomSides"])(name, 'padding');
const isAxialPadding = paddingSides && paddingSides.some(side => AXIAL_SIDES.includes(side));
const setPaddingValues = newPaddingValues => {
const padding = filterValuesBySides(newPaddingValues, paddingSides);
setRawPadding(padding);
};
const resetPaddingValue = () => setPaddingValues({});
const hasPaddingValue = () => !!paddingValues && Object.keys(paddingValues).length;
const [rawMargin, setRawMargin] = useStyle('spacing.margin', name);
const marginValues = splitStyleValue(rawMargin);
const marginSides = Object(external_wp_blockEditor_["__experimentalUseCustomSides"])(name, 'margin');
const isAxialMargin = marginSides && marginSides.some(side => AXIAL_SIDES.includes(side));
const setMarginValues = newMarginValues => {
const margin = filterValuesBySides(newMarginValues, marginSides);
setRawMargin(margin);
};
const resetMarginValue = () => setMarginValues({});
const hasMarginValue = () => !!marginValues && Object.keys(marginValues).length;
const [gapValue, setGapValue] = useStyle('spacing.blockGap', name);
const resetGapValue = () => setGapValue(undefined);
const hasGapValue = () => !!gapValue;
const resetAll = () => {
resetPaddingValue();
resetMarginValue();
resetGapValue();
};
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalToolsPanel"], {
label: Object(external_wp_i18n_["__"])('Dimensions'),
resetAll: resetAll
}, showPaddingControl && Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalToolsPanelItem"], {
hasValue: hasPaddingValue,
label: Object(external_wp_i18n_["__"])('Padding'),
onDeselect: resetPaddingValue,
isShownByDefault: true
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalBoxControl"], {
values: paddingValues,
onChange: setPaddingValues,
label: Object(external_wp_i18n_["__"])('Padding'),
sides: paddingSides,
units: units,
allowReset: false,
splitOnAxis: isAxialPadding
})), showMarginControl && Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalToolsPanelItem"], {
hasValue: hasMarginValue,
label: Object(external_wp_i18n_["__"])('Margin'),
onDeselect: resetMarginValue,
isShownByDefault: true
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalBoxControl"], {
values: marginValues,
onChange: setMarginValues,
label: Object(external_wp_i18n_["__"])('Margin'),
sides: marginSides,
units: units,
allowReset: false,
splitOnAxis: isAxialMargin
})), showGapControl && Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalToolsPanelItem"], {
hasValue: hasGapValue,
label: Object(external_wp_i18n_["__"])('Block spacing'),
onDeselect: resetGapValue,
isShownByDefault: true
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalUnitControl"], {
label: Object(external_wp_i18n_["__"])('Block spacing'),
__unstableInputWidth: "80px",
min: 0,
onChange: setGapValue,
units: units,
value: gapValue
})));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/typography-panel.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function useHasTypographyPanel(name) {
const hasLineHeight = useHasLineHeightControl(name);
const hasFontAppearance = useHasAppearanceControl(name);
const hasLetterSpacing = useHasLetterSpacingControl(name);
const supports = getSupportedGlobalStylesPanels(name);
return hasLineHeight || hasFontAppearance || hasLetterSpacing || supports.includes('fontSize');
}
function useHasLineHeightControl(name) {
const supports = getSupportedGlobalStylesPanels(name);
return useSetting('typography.lineHeight', name)[0] && supports.includes('lineHeight');
}
function useHasAppearanceControl(name) {
const supports = getSupportedGlobalStylesPanels(name);
const hasFontStyles = useSetting('typography.fontStyle', name)[0] && supports.includes('fontStyle');
const hasFontWeights = useSetting('typography.fontWeight', name)[0] && supports.includes('fontWeight');
return hasFontStyles || hasFontWeights;
}
function useHasLetterSpacingControl(name) {
const supports = getSupportedGlobalStylesPanels(name);
return useSetting('typography.letterSpacing', name)[0] && supports.includes('letterSpacing');
}
function TypographyPanel(_ref) {
let {
name,
element
} = _ref;
const supports = getSupportedGlobalStylesPanels(name);
const prefix = element === 'text' || !element ? '' : `elements.${element}.`;
const [fontSizes] = useSetting('typography.fontSizes', name);
const disableCustomFontSizes = !useSetting('typography.customFontSize', name)[0];
const [fontFamilies] = useSetting('typography.fontFamilies', name);
const hasFontStyles = useSetting('typography.fontStyle', name)[0] && supports.includes('fontStyle');
const hasFontWeights = useSetting('typography.fontWeight', name)[0] && supports.includes('fontWeight');
const hasLineHeightEnabled = useHasLineHeightControl(name);
const hasAppearanceControl = useHasAppearanceControl(name);
const hasLetterSpacingControl = useHasLetterSpacingControl(name);
const [fontFamily, setFontFamily] = useStyle(prefix + 'typography.fontFamily', name);
const [fontSize, setFontSize] = useStyle(prefix + 'typography.fontSize', name);
const [fontStyle, setFontStyle] = useStyle(prefix + 'typography.fontStyle', name);
const [fontWeight, setFontWeight] = useStyle(prefix + 'typography.fontWeight', name);
const [lineHeight, setLineHeight] = useStyle(prefix + 'typography.lineHeight', name);
const [letterSpacing, setLetterSpacing] = useStyle(prefix + 'typography.letterSpacing', name);
const [backgroundColor] = useStyle(prefix + 'color.background', name);
const [gradientValue] = useStyle(prefix + 'color.gradient', name);
const [color] = useStyle(prefix + 'color.text', name);
const extraStyles = element === 'link' ? {
textDecoration: 'underline'
} : {};
return Object(external_wp_element_["createElement"])(external_wp_components_["PanelBody"], {
className: "edit-site-typography-panel",
initialOpen: true
}, Object(external_wp_element_["createElement"])("div", {
className: "edit-site-typography-panel__preview",
style: {
fontFamily: fontFamily !== null && fontFamily !== void 0 ? fontFamily : 'serif',
background: gradientValue !== null && gradientValue !== void 0 ? gradientValue : backgroundColor,
color,
fontSize,
fontStyle,
fontWeight,
letterSpacing,
...extraStyles
}
}, "Aa"), supports.includes('fontFamily') && Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalFontFamilyControl"], {
fontFamilies: fontFamilies,
value: fontFamily,
onChange: setFontFamily
}), supports.includes('fontSize') && Object(external_wp_element_["createElement"])(external_wp_components_["FontSizePicker"], {
value: fontSize,
onChange: setFontSize,
fontSizes: fontSizes,
disableCustomFontSizes: disableCustomFontSizes
}), hasLineHeightEnabled && Object(external_wp_element_["createElement"])(external_wp_blockEditor_["LineHeightControl"], {
value: lineHeight,
onChange: setLineHeight
}), hasAppearanceControl && Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalFontAppearanceControl"], {
value: {
fontStyle,
fontWeight
},
onChange: _ref2 => {
let {
fontStyle: newFontStyle,
fontWeight: newFontWeight
} = _ref2;
setFontStyle(newFontStyle);
setFontWeight(newFontWeight);
},
hasFontStyles: hasFontStyles,
hasFontWeights: hasFontWeights
}), hasLetterSpacingControl && Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalLetterSpacingControl"], {
value: letterSpacing,
onChange: setLetterSpacing
}));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/context-menu.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ContextMenu(_ref) {
let {
name,
parentMenu = ''
} = _ref;
const hasTypographyPanel = useHasTypographyPanel(name);
const hasColorPanel = useHasColorPanel(name);
const hasBorderPanel = useHasBorderPanel(name);
const hasDimensionsPanel = useHasDimensionsPanel(name);
const hasLayoutPanel = hasBorderPanel || hasDimensionsPanel;
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalItemGroup"], null, hasTypographyPanel && Object(external_wp_element_["createElement"])(navigation_button, {
icon: library_typography,
path: parentMenu + '/typography'
}, Object(external_wp_i18n_["__"])('Typography')), hasColorPanel && Object(external_wp_element_["createElement"])(navigation_button, {
icon: library_color,
path: parentMenu + '/colors'
}, Object(external_wp_i18n_["__"])('Colors')), hasLayoutPanel && Object(external_wp_element_["createElement"])(navigation_button, {
icon: layout["a" /* default */],
path: parentMenu + '/layout'
}, Object(external_wp_i18n_["__"])('Layout')));
}
/* harmony default export */ var context_menu = (ContextMenu);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/screen-root.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ScreenRoot() {
return Object(external_wp_element_["createElement"])(external_wp_components_["Card"], {
size: "small"
}, Object(external_wp_element_["createElement"])(external_wp_components_["CardBody"], null, Object(external_wp_element_["createElement"])(preview, null)), Object(external_wp_element_["createElement"])(external_wp_components_["CardBody"], null, Object(external_wp_element_["createElement"])(context_menu, null)), Object(external_wp_element_["createElement"])(external_wp_components_["CardDivider"], null), Object(external_wp_element_["createElement"])(external_wp_components_["CardBody"], null, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalItemGroup"], null, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalItem"], null, Object(external_wp_i18n_["__"])('Customize the appearance of specific blocks for the whole site.')), Object(external_wp_element_["createElement"])(navigation_button, {
path: "/blocks"
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHStack"], {
justify: "space-between"
}, Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_i18n_["__"])('Blocks')), Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
icon: Object(external_wp_i18n_["isRTL"])() ? chevron_left["a" /* default */] : chevron_right["a" /* default */]
})))))));
}
/* harmony default export */ var screen_root = (ScreenRoot);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/header.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ScreenHeader(_ref) {
let {
back,
title,
description
} = _ref;
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalVStack"], {
spacing: 2
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHStack"], {
spacing: 2
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalView"], null, Object(external_wp_element_["createElement"])(navigation_button, {
path: back,
icon: Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
icon: Object(external_wp_i18n_["isRTL"])() ? chevron_right["a" /* default */] : chevron_left["a" /* default */],
variant: "muted"
}),
size: "small",
isBack: true,
"aria-label": Object(external_wp_i18n_["__"])('Navigate to the previous view')
})), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalSpacer"], null, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHeading"], {
level: 5
}, title))), description && Object(external_wp_element_["createElement"])("p", {
className: "edit-site-global-styles-header__description"
}, description));
}
/* harmony default export */ var global_styles_header = (ScreenHeader);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/screen-block-list.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function BlockMenuItem(_ref) {
let {
block
} = _ref;
const hasTypographyPanel = useHasTypographyPanel(block.name);
const hasColorPanel = useHasColorPanel(block.name);
const hasBorderPanel = useHasBorderPanel(block.name);
const hasDimensionsPanel = useHasDimensionsPanel(block.name);
const hasLayoutPanel = hasBorderPanel || hasDimensionsPanel;
const hasBlockMenuItem = hasTypographyPanel || hasColorPanel || hasLayoutPanel;
if (!hasBlockMenuItem) {
return null;
}
return Object(external_wp_element_["createElement"])(navigation_button, {
path: '/blocks/' + block.name
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHStack"], {
justify: "flex-start"
}, Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockIcon"], {
icon: block.icon
})), Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, block.title)));
}
function ScreenBlockList() {
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(global_styles_header, {
back: "/",
title: Object(external_wp_i18n_["__"])('Blocks'),
description: Object(external_wp_i18n_["__"])('Customize the appearance of specific blocks and for the whole site.')
}), Object(external_wp_blocks_["getBlockTypes"])().map(block => Object(external_wp_element_["createElement"])(BlockMenuItem, {
block: block,
key: 'menu-itemblock-' + block.name
})));
}
/* harmony default export */ var screen_block_list = (ScreenBlockList);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/screen-block.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ScreenBlock(_ref) {
let {
name
} = _ref;
const blockType = Object(external_wp_blocks_["getBlockType"])(name);
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(global_styles_header, {
back: "/blocks",
title: blockType.title
}), Object(external_wp_element_["createElement"])(context_menu, {
parentMenu: '/blocks/' + name,
name: name
}));
}
/* harmony default export */ var screen_block = (ScreenBlock);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/subtitle.js
/**
* WordPress dependencies
*/
function Subtitle(_ref) {
let {
children
} = _ref;
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHeading"], {
className: "edit-site-global-styles-subtitle",
level: 2
}, children);
}
/* harmony default export */ var subtitle = (Subtitle);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/screen-typography.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function Item(_ref) {
let {
name,
parentMenu,
element,
label
} = _ref;
const hasSupport = !name;
const prefix = element === 'text' || !element ? '' : `elements.${element}.`;
const extraStyles = element === 'link' ? {
textDecoration: 'underline'
} : {};
const [fontFamily] = useStyle(prefix + 'typography.fontFamily', name);
const [fontStyle] = useStyle(prefix + 'typography.fontStyle', name);
const [fontWeight] = useStyle(prefix + 'typography.fontWeight', name);
const [letterSpacing] = useStyle(prefix + 'typography.letterSpacing', name);
const [backgroundColor] = useStyle(prefix + 'color.background', name);
const [gradientValue] = useStyle(prefix + 'color.gradient', name);
const [color] = useStyle(prefix + 'color.text', name);
if (!hasSupport) {
return null;
}
return Object(external_wp_element_["createElement"])(navigation_button, {
path: parentMenu + '/typography/' + element
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHStack"], {
justify: "flex-start"
}, Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], {
className: "edit-site-global-styles-screen-typography__indicator",
style: {
fontFamily: fontFamily !== null && fontFamily !== void 0 ? fontFamily : 'serif',
background: gradientValue !== null && gradientValue !== void 0 ? gradientValue : backgroundColor,
color,
fontStyle,
fontWeight,
letterSpacing,
...extraStyles
}
}, Object(external_wp_i18n_["__"])('Aa')), Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, label)));
}
function ScreenTypography(_ref2) {
let {
name
} = _ref2;
const parentMenu = name === undefined ? '' : '/blocks/' + name;
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(global_styles_header, {
back: parentMenu ? parentMenu : '/',
title: Object(external_wp_i18n_["__"])('Typography'),
description: Object(external_wp_i18n_["__"])('Manage the typography settings for different elements.')
}), !name && Object(external_wp_element_["createElement"])("div", {
className: "edit-site-global-styles-screen-typography"
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalVStack"], {
spacing: 3
}, Object(external_wp_element_["createElement"])(subtitle, null, Object(external_wp_i18n_["__"])('Elements')), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalItemGroup"], {
isBordered: true,
isSeparated: true
}, Object(external_wp_element_["createElement"])(Item, {
name: name,
parentMenu: parentMenu,
element: "text",
label: Object(external_wp_i18n_["__"])('Text')
}), Object(external_wp_element_["createElement"])(Item, {
name: name,
parentMenu: parentMenu,
element: "link",
label: Object(external_wp_i18n_["__"])('Links')
})))), !!name && Object(external_wp_element_["createElement"])(TypographyPanel, {
name: name,
element: "text"
}));
}
/* harmony default export */ var screen_typography = (ScreenTypography);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/screen-typography-element.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const screen_typography_element_elements = {
text: {
description: Object(external_wp_i18n_["__"])('Manage the fonts used on the site.'),
title: Object(external_wp_i18n_["__"])('Text')
},
link: {
description: Object(external_wp_i18n_["__"])('Manage the fonts and typography used on the links.'),
title: Object(external_wp_i18n_["__"])('Links')
}
};
function ScreenTypographyElement(_ref) {
let {
name,
element
} = _ref;
const parentMenu = name === undefined ? '/typography' : '/blocks/' + name + '/typography';
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(global_styles_header, {
back: parentMenu,
title: screen_typography_element_elements[element].title,
description: screen_typography_element_elements[element].description
}), Object(external_wp_element_["createElement"])(TypographyPanel, {
name: name,
element: element
}));
}
/* harmony default export */ var screen_typography_element = (ScreenTypographyElement);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/palette.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const EMPTY_COLORS = [];
function Palette(_ref) {
let {
name
} = _ref;
const [customColors] = useSetting('color.palette.custom');
const [themeColors] = useSetting('color.palette.theme');
const [defaultColors] = useSetting('color.palette.default');
const [defaultPaletteEnabled] = useSetting('color.defaultPalette', name);
const colors = Object(external_wp_element_["useMemo"])(() => [...(customColors || EMPTY_COLORS), ...(themeColors || EMPTY_COLORS), ...(defaultColors && defaultPaletteEnabled ? defaultColors : EMPTY_COLORS)], [customColors, themeColors, defaultColors, defaultPaletteEnabled]);
const screenPath = !name ? '/colors/palette' : '/blocks/' + name + '/colors/palette';
const paletteButtonText = colors.length > 0 ? Object(external_wp_i18n_["sprintf"])( // Translators: %d: Number of palette colors.
Object(external_wp_i18n_["_n"])('%d color', '%d colors', colors.length), colors.length) : Object(external_wp_i18n_["__"])('Add custom colors');
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalVStack"], {
spacing: 3
}, Object(external_wp_element_["createElement"])(subtitle, null, Object(external_wp_i18n_["__"])('Palette')), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalItemGroup"], {
isBordered: true,
isSeparated: true
}, Object(external_wp_element_["createElement"])(navigation_button, {
path: screenPath
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHStack"], {
isReversed: colors.length === 0
}, Object(external_wp_element_["createElement"])(external_wp_components_["FlexBlock"], null, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalZStack"], {
isLayered: false,
offset: -8
}, colors.slice(0, 5).map(_ref2 => {
let {
color
} = _ref2;
return Object(external_wp_element_["createElement"])(external_wp_components_["ColorIndicator"], {
key: color,
colorValue: color
});
}))), Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, paletteButtonText)))));
}
/* harmony default export */ var palette = (Palette);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/screen-colors.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function BackgroundColorItem(_ref) {
let {
name,
parentMenu
} = _ref;
const supports = getSupportedGlobalStylesPanels(name);
const hasSupport = supports.includes('backgroundColor') || supports.includes('background');
const [backgroundColor] = useStyle('color.background', name);
const [gradientValue] = useStyle('color.gradient', name);
if (!hasSupport) {
return null;
}
return Object(external_wp_element_["createElement"])(navigation_button, {
path: parentMenu + '/colors/background'
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHStack"], {
justify: "flex-start"
}, Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_element_["createElement"])(external_wp_components_["ColorIndicator"], {
colorValue: gradientValue !== null && gradientValue !== void 0 ? gradientValue : backgroundColor
})), Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_i18n_["__"])('Background'))));
}
function TextColorItem(_ref2) {
let {
name,
parentMenu
} = _ref2;
const supports = getSupportedGlobalStylesPanels(name);
const hasSupport = supports.includes('color');
const [color] = useStyle('color.text', name);
if (!hasSupport) {
return null;
}
return Object(external_wp_element_["createElement"])(navigation_button, {
path: parentMenu + '/colors/text'
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHStack"], {
justify: "flex-start"
}, Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_element_["createElement"])(external_wp_components_["ColorIndicator"], {
colorValue: color
})), Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_i18n_["__"])('Text'))));
}
function LinkColorItem(_ref3) {
let {
name,
parentMenu
} = _ref3;
const supports = getSupportedGlobalStylesPanels(name);
const hasSupport = supports.includes('linkColor');
const [color] = useStyle('elements.link.color.text', name);
if (!hasSupport) {
return null;
}
return Object(external_wp_element_["createElement"])(navigation_button, {
path: parentMenu + '/colors/link'
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHStack"], {
justify: "flex-start"
}, Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_element_["createElement"])(external_wp_components_["ColorIndicator"], {
colorValue: color
})), Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_i18n_["__"])('Links'))));
}
function ScreenColors(_ref4) {
let {
name
} = _ref4;
const parentMenu = name === undefined ? '' : '/blocks/' + name;
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(global_styles_header, {
back: parentMenu ? parentMenu : '/',
title: Object(external_wp_i18n_["__"])('Colors'),
description: Object(external_wp_i18n_["__"])('Manage palettes and the default color of different global elements on the website.')
}), Object(external_wp_element_["createElement"])("div", {
className: "edit-site-global-styles-screen-colors"
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalVStack"], {
spacing: 10
}, Object(external_wp_element_["createElement"])(palette, {
name: name
}), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalVStack"], {
spacing: 3
}, Object(external_wp_element_["createElement"])(subtitle, null, Object(external_wp_i18n_["__"])('Elements')), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalItemGroup"], {
isBordered: true,
isSeparated: true
}, Object(external_wp_element_["createElement"])(BackgroundColorItem, {
name: name,
parentMenu: parentMenu
}), Object(external_wp_element_["createElement"])(TextColorItem, {
name: name,
parentMenu: parentMenu
}), Object(external_wp_element_["createElement"])(LinkColorItem, {
name: name,
parentMenu: parentMenu
}))))));
}
/* harmony default export */ var screen_colors = (ScreenColors);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/color-palette-panel.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ColorPalettePanel(_ref) {
let {
name
} = _ref;
const [themeColors, setThemeColors] = useSetting('color.palette.theme', name);
const [baseThemeColors] = useSetting('color.palette.theme', name, 'base');
const [defaultColors, setDefaultColors] = useSetting('color.palette.default', name);
const [baseDefaultColors] = useSetting('color.palette.default', name, 'base');
const [customColors, setCustomColors] = useSetting('color.palette.custom', name);
const [defaultPaletteEnabled] = useSetting('color.defaultPalette', name);
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalVStack"], {
className: "edit-site-global-styles-color-palette-panel",
spacing: 10
}, !!themeColors && !!themeColors.length && Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalPaletteEdit"], {
canReset: themeColors !== baseThemeColors,
canOnlyChangeValues: true,
colors: themeColors,
onChange: setThemeColors,
paletteLabel: Object(external_wp_i18n_["__"])('Theme')
}), !!defaultColors && !!defaultColors.length && !!defaultPaletteEnabled && Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalPaletteEdit"], {
canReset: defaultColors !== baseDefaultColors,
canOnlyChangeValues: true,
colors: defaultColors,
onChange: setDefaultColors,
paletteLabel: Object(external_wp_i18n_["__"])('Default')
}), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalPaletteEdit"], {
colors: customColors,
onChange: setCustomColors,
paletteLabel: Object(external_wp_i18n_["__"])('Custom'),
emptyMessage: Object(external_wp_i18n_["__"])('Custom colors are empty! Add some colors to create your own color palette.'),
slugPrefix: "custom-"
}));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/gradients-palette-panel.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function GradientPalettePanel(_ref) {
let {
name
} = _ref;
const [themeGradients, setThemeGradients] = useSetting('color.gradients.theme', name);
const [baseThemeGradients] = useSetting('color.gradients.theme', name, 'base');
const [defaultGradients, setDefaultGradients] = useSetting('color.gradients.default', name);
const [baseDefaultGradients] = useSetting('color.gradients.default', name, 'base');
const [customGradients, setCustomGradients] = useSetting('color.gradients.custom', name);
const [defaultPaletteEnabled] = useSetting('color.defaultGradients', name);
const [duotonePalette] = useSetting('color.duotone') || [];
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalVStack"], {
className: "edit-site-global-styles-gradient-palette-panel",
spacing: 10
}, !!themeGradients && !!themeGradients.length && Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalPaletteEdit"], {
canReset: themeGradients !== baseThemeGradients,
canOnlyChangeValues: true,
gradients: themeGradients,
onChange: setThemeGradients,
paletteLabel: Object(external_wp_i18n_["__"])('Theme')
}), !!defaultGradients && !!defaultGradients.length && !!defaultPaletteEnabled && Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalPaletteEdit"], {
canReset: defaultGradients !== baseDefaultGradients,
canOnlyChangeValues: true,
gradients: defaultGradients,
onChange: setDefaultGradients,
paletteLabel: Object(external_wp_i18n_["__"])('Default')
}), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalPaletteEdit"], {
gradients: customGradients,
onChange: setCustomGradients,
paletteLabel: Object(external_wp_i18n_["__"])('Custom'),
emptyMessage: Object(external_wp_i18n_["__"])('Custom gradients are empty! Add some gradients to create your own palette.'),
slugPrefix: "custom-"
}), Object(external_wp_element_["createElement"])("div", null, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHeading"], {
className: "edit-site-global-styles-gradient-palette-panel__duotone-heading"
}, Object(external_wp_i18n_["__"])('Duotone')), Object(external_wp_element_["createElement"])(external_wp_components_["DuotonePicker"], {
duotonePalette: duotonePalette,
disableCustomDuotone: true,
disableCustomColors: true,
clearable: false,
onChange: external_lodash_["noop"]
})));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/screen-color-palette.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ScreenColorPalette(_ref) {
let {
name
} = _ref;
const [currentTab, setCurrentTab] = Object(external_wp_element_["useState"])('solid');
const parentMenu = name === undefined ? '' : '/blocks/' + name;
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(global_styles_header, {
back: parentMenu + '/colors',
title: Object(external_wp_i18n_["__"])('Palette'),
description: Object(external_wp_i18n_["__"])('Palettes are used to provide default color options for blocks and various design tools. Here you can edit the colors with their labels.')
}), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalToggleGroupControl"], {
className: "edit-site-screen-color-palette-toggle",
value: currentTab,
onChange: setCurrentTab,
label: Object(external_wp_i18n_["__"])('Select palette type'),
hideLabelFromVision: true,
isBlock: true
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalToggleGroupControlOption"], {
value: "solid",
label: Object(external_wp_i18n_["__"])('Solid')
}), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalToggleGroupControlOption"], {
value: "gradient",
label: Object(external_wp_i18n_["__"])('Gradient')
})), currentTab === 'solid' && Object(external_wp_element_["createElement"])(ColorPalettePanel, {
name: name
}), currentTab === 'gradient' && Object(external_wp_element_["createElement"])(GradientPalettePanel, {
name: name
}));
}
/* harmony default export */ var screen_color_palette = (ScreenColorPalette);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/screen-background-color.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ScreenBackgroundColor(_ref) {
let {
name
} = _ref;
const parentMenu = name === undefined ? '' : '/blocks/' + name;
const supports = getSupportedGlobalStylesPanels(name);
const [solids] = useSetting('color.palette', name);
const [gradients] = useSetting('color.gradients', name);
const [areCustomSolidsEnabled] = useSetting('color.custom', name);
const [areCustomGradientsEnabled] = useSetting('color.customGradient', name);
const colorsPerOrigin = useColorsPerOrigin(name);
const gradientsPerOrigin = useGradientsPerOrigin(name);
const [isBackgroundEnabled] = useSetting('color.background', name);
const hasBackgroundColor = supports.includes('backgroundColor') && isBackgroundEnabled && (solids.length > 0 || areCustomSolidsEnabled);
const hasGradientColor = supports.includes('background') && (gradients.length > 0 || areCustomGradientsEnabled);
const [backgroundColor, setBackgroundColor] = useStyle('color.background', name);
const [userBackgroundColor] = useStyle('color.background', name, 'user');
const [gradient, setGradient] = useStyle('color.gradient', name);
const [userGradient] = useStyle('color.gradient', name, 'user');
if (!hasBackgroundColor && !hasGradientColor) {
return null;
}
const settings = [];
let backgroundSettings = {};
if (hasBackgroundColor) {
backgroundSettings = {
colorValue: backgroundColor,
onColorChange: setBackgroundColor
};
if (backgroundColor) {
backgroundSettings.clearable = backgroundColor === userBackgroundColor;
}
}
let gradientSettings = {};
if (hasGradientColor) {
gradientSettings = {
gradientValue: gradient,
onGradientChange: setGradient
};
if (gradient) {
gradientSettings.clearable = gradient === userGradient;
}
}
settings.push({ ...backgroundSettings,
...gradientSettings,
label: Object(external_wp_i18n_["__"])('Background color')
});
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(global_styles_header, {
back: parentMenu + '/colors',
title: Object(external_wp_i18n_["__"])('Background'),
description: Object(external_wp_i18n_["__"])('Set a background color or gradient for the whole website.')
}), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalPanelColorGradientSettings"], {
title: Object(external_wp_i18n_["__"])('Color'),
settings: settings,
colors: colorsPerOrigin,
gradients: gradientsPerOrigin,
disableCustomColors: !areCustomSolidsEnabled,
disableCustomGradients: !areCustomGradientsEnabled,
__experimentalHasMultipleOrigins: true,
showTitle: false,
enableAlpha: true,
__experimentalIsRenderedInSidebar: true
}));
}
/* harmony default export */ var screen_background_color = (ScreenBackgroundColor);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/screen-text-color.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ScreenTextColor(_ref) {
let {
name
} = _ref;
const parentMenu = name === undefined ? '' : '/blocks/' + name;
const supports = getSupportedGlobalStylesPanels(name);
const [solids] = useSetting('color.palette', name);
const [areCustomSolidsEnabled] = useSetting('color.custom', name);
const [isTextEnabled] = useSetting('color.text', name);
const colorsPerOrigin = useColorsPerOrigin(name);
const hasTextColor = supports.includes('color') && isTextEnabled && (solids.length > 0 || areCustomSolidsEnabled);
const [color, setColor] = useStyle('color.text', name);
const [userColor] = useStyle('color.text', name, 'user');
if (!hasTextColor) {
return null;
}
const settings = [{
colorValue: color,
onColorChange: setColor,
label: Object(external_wp_i18n_["__"])('Text color'),
clearable: color === userColor
}];
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(global_styles_header, {
back: parentMenu + '/colors',
title: Object(external_wp_i18n_["__"])('Text'),
description: Object(external_wp_i18n_["__"])('Set the default color used for text across the site.')
}), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalPanelColorGradientSettings"], {
title: Object(external_wp_i18n_["__"])('Color'),
settings: settings,
colors: colorsPerOrigin,
disableCustomColors: !areCustomSolidsEnabled,
__experimentalHasMultipleOrigins: true,
showTitle: false,
enableAlpha: true,
__experimentalIsRenderedInSidebar: true
}));
}
/* harmony default export */ var screen_text_color = (ScreenTextColor);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/screen-link-color.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ScreenLinkColor(_ref) {
let {
name
} = _ref;
const parentMenu = name === undefined ? '' : '/blocks/' + name;
const supports = getSupportedGlobalStylesPanels(name);
const [solids] = useSetting('color.palette', name);
const [areCustomSolidsEnabled] = useSetting('color.custom', name);
const colorsPerOrigin = useColorsPerOrigin(name);
const [isLinkEnabled] = useSetting('color.link', name);
const hasLinkColor = supports.includes('linkColor') && isLinkEnabled && (solids.length > 0 || areCustomSolidsEnabled);
const [linkColor, setLinkColor] = useStyle('elements.link.color.text', name);
const [userLinkColor] = useStyle('elements.link.color.text', name, 'user');
if (!hasLinkColor) {
return null;
}
const settings = [{
colorValue: linkColor,
onColorChange: setLinkColor,
label: Object(external_wp_i18n_["__"])('Link color'),
clearable: linkColor === userLinkColor
}];
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(global_styles_header, {
back: parentMenu + '/colors',
title: Object(external_wp_i18n_["__"])('Links'),
description: Object(external_wp_i18n_["__"])('Set the default color used for links across the site.')
}), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalPanelColorGradientSettings"], {
title: Object(external_wp_i18n_["__"])('Color'),
settings: settings,
colors: colorsPerOrigin,
disableCustomColors: !areCustomSolidsEnabled,
__experimentalHasMultipleOrigins: true,
showTitle: false,
enableAlpha: true,
__experimentalIsRenderedInSidebar: true
}));
}
/* harmony default export */ var screen_link_color = (ScreenLinkColor);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/screen-layout.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ScreenLayout(_ref) {
let {
name
} = _ref;
const parentMenu = name === undefined ? '' : '/blocks/' + name;
const hasBorderPanel = useHasBorderPanel(name);
const hasDimensionsPanel = useHasDimensionsPanel(name);
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(global_styles_header, {
back: parentMenu ? parentMenu : '/',
title: Object(external_wp_i18n_["__"])('Layout')
}), hasDimensionsPanel && Object(external_wp_element_["createElement"])(DimensionsPanel, {
name: name
}), hasBorderPanel && Object(external_wp_element_["createElement"])(BorderPanel, {
name: name
}));
}
/* harmony default export */ var screen_layout = (ScreenLayout);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/ui.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ContextScreens(_ref) {
let {
name
} = _ref;
const parentMenu = name === undefined ? '' : '/blocks/' + name;
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigatorScreen"], {
path: parentMenu + '/typography'
}, Object(external_wp_element_["createElement"])(screen_typography, {
name: name
})), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigatorScreen"], {
path: parentMenu + '/typography/text'
}, Object(external_wp_element_["createElement"])(screen_typography_element, {
name: name,
element: "text"
})), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigatorScreen"], {
path: parentMenu + '/typography/link'
}, Object(external_wp_element_["createElement"])(screen_typography_element, {
name: name,
element: "link"
})), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigatorScreen"], {
path: parentMenu + '/colors'
}, Object(external_wp_element_["createElement"])(screen_colors, {
name: name
})), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigatorScreen"], {
path: parentMenu + '/colors/palette'
}, Object(external_wp_element_["createElement"])(screen_color_palette, {
name: name
})), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigatorScreen"], {
path: parentMenu + '/colors/background'
}, Object(external_wp_element_["createElement"])(screen_background_color, {
name: name
})), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigatorScreen"], {
path: parentMenu + '/colors/text'
}, Object(external_wp_element_["createElement"])(screen_text_color, {
name: name
})), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigatorScreen"], {
path: parentMenu + '/colors/link'
}, Object(external_wp_element_["createElement"])(screen_link_color, {
name: name
})), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigatorScreen"], {
path: parentMenu + '/layout'
}, Object(external_wp_element_["createElement"])(screen_layout, {
name: name
})));
}
function GlobalStylesUI() {
const blocks = Object(external_wp_blocks_["getBlockTypes"])();
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigatorProvider"], {
initialPath: "/"
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigatorScreen"], {
path: "/"
}, Object(external_wp_element_["createElement"])(screen_root, null)), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigatorScreen"], {
path: "/blocks"
}, Object(external_wp_element_["createElement"])(screen_block_list, null)), blocks.map(block => Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigatorScreen"], {
key: 'menu-block-' + block.name,
path: '/blocks/' + block.name
}, Object(external_wp_element_["createElement"])(screen_block, {
name: block.name
}))), Object(external_wp_element_["createElement"])(ContextScreens, null), blocks.map(block => Object(external_wp_element_["createElement"])(ContextScreens, {
key: 'screens-block-' + block.name,
name: block.name
})));
}
/* harmony default export */ var ui = (GlobalStylesUI);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/use-global-styles-output.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* Internal dependencies
*/
function compileStyleValue(uncompiledValue) {
const VARIABLE_REFERENCE_PREFIX = 'var:';
const VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE = '|';
const VARIABLE_PATH_SEPARATOR_TOKEN_STYLE = '--';
if (Object(external_lodash_["startsWith"])(uncompiledValue, VARIABLE_REFERENCE_PREFIX)) {
const variable = uncompiledValue.slice(VARIABLE_REFERENCE_PREFIX.length).split(VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE).join(VARIABLE_PATH_SEPARATOR_TOKEN_STYLE);
return `var(--wp--${variable})`;
}
return uncompiledValue;
}
/**
* Transform given preset tree into a set of style declarations.
*
* @param {Object} blockPresets
*
* @return {Array} An array of style declarations.
*/
function getPresetsDeclarations() {
let blockPresets = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return Object(external_lodash_["reduce"])(PRESET_METADATA, (declarations, _ref) => {
let {
path,
valueKey,
cssVarInfix
} = _ref;
const presetByOrigin = Object(external_lodash_["get"])(blockPresets, path, []);
['default', 'theme', 'custom'].forEach(origin => {
if (presetByOrigin[origin]) {
presetByOrigin[origin].forEach(value => {
declarations.push(`--wp--preset--${cssVarInfix}--${Object(external_lodash_["kebabCase"])(value.slug)}: ${value[valueKey]}`);
});
}
});
return declarations;
}, []);
}
/**
* Transform given preset tree into a set of preset class declarations.
*
* @param {string} blockSelector
* @param {Object} blockPresets
* @return {string} CSS declarations for the preset classes.
*/
function getPresetsClasses(blockSelector) {
let blockPresets = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return Object(external_lodash_["reduce"])(PRESET_METADATA, (declarations, _ref2) => {
let {
path,
cssVarInfix,
classes
} = _ref2;
if (!classes) {
return declarations;
}
const presetByOrigin = Object(external_lodash_["get"])(blockPresets, path, []);
['default', 'theme', 'custom'].forEach(origin => {
if (presetByOrigin[origin]) {
presetByOrigin[origin].forEach(_ref3 => {
let {
slug
} = _ref3;
classes.forEach(_ref4 => {
let {
classSuffix,
propertyName
} = _ref4;
const classSelectorToUse = `.has-${Object(external_lodash_["kebabCase"])(slug)}-${classSuffix}`;
const selectorToUse = blockSelector.split(',') // Selector can be "h1, h2, h3"
.map(selector => `${selector}${classSelectorToUse}`).join(',');
const value = `var(--wp--preset--${cssVarInfix}--${Object(external_lodash_["kebabCase"])(slug)})`;
declarations += `${selectorToUse}{${propertyName}: ${value} !important;}`;
});
});
}
});
return declarations;
}, '');
}
function flattenTree() {
let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
let prefix = arguments.length > 1 ? arguments[1] : undefined;
let token = arguments.length > 2 ? arguments[2] : undefined;
let result = [];
Object.keys(input).forEach(key => {
const newKey = prefix + Object(external_lodash_["kebabCase"])(key.replace('/', '-'));
const newLeaf = input[key];
if (newLeaf instanceof Object) {
const newPrefix = newKey + token;
result = [...result, ...flattenTree(newLeaf, newPrefix, token)];
} else {
result.push(`${newKey}: ${newLeaf}`);
}
});
return result;
}
/**
* Transform given style tree into a set of style declarations.
*
* @param {Object} blockStyles Block styles.
*
* @return {Array} An array of style declarations.
*/
function getStylesDeclarations() {
let blockStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return Object(external_lodash_["reduce"])(external_wp_blocks_["__EXPERIMENTAL_STYLE_PROPERTY"], (declarations, _ref5, key) => {
let {
value,
properties
} = _ref5;
const pathToValue = value;
if (Object(external_lodash_["first"])(pathToValue) === 'elements') {
return declarations;
}
const styleValue = Object(external_lodash_["get"])(blockStyles, pathToValue);
if (!!properties && !Object(external_lodash_["isString"])(styleValue)) {
Object.entries(properties).forEach(entry => {
const [name, prop] = entry;
if (!Object(external_lodash_["get"])(styleValue, [prop], false)) {
// Do not create a declaration
// for sub-properties that don't have any value.
return;
}
const cssProperty = Object(external_lodash_["kebabCase"])(name);
declarations.push(`${cssProperty}: ${compileStyleValue(Object(external_lodash_["get"])(styleValue, [prop]))}`);
});
} else if (Object(external_lodash_["get"])(blockStyles, pathToValue, false)) {
const cssProperty = key.startsWith('--') ? key : Object(external_lodash_["kebabCase"])(key);
declarations.push(`${cssProperty}: ${compileStyleValue(Object(external_lodash_["get"])(blockStyles, pathToValue))}`);
}
return declarations;
}, []);
}
const getNodesWithStyles = (tree, blockSelectors) => {
var _tree$styles, _tree$styles2;
const nodes = [];
if (!(tree !== null && tree !== void 0 && tree.styles)) {
return nodes;
}
const pickStyleKeys = treeToPickFrom => Object(external_lodash_["pickBy"])(treeToPickFrom, (value, key) => ['border', 'color', 'spacing', 'typography'].includes(key)); // Top-level.
const styles = pickStyleKeys(tree.styles);
if (!!styles) {
nodes.push({
styles,
selector: ROOT_BLOCK_SELECTOR
});
}
Object(external_lodash_["forEach"])((_tree$styles = tree.styles) === null || _tree$styles === void 0 ? void 0 : _tree$styles.elements, (value, key) => {
if (!!value && !!external_wp_blocks_["__EXPERIMENTAL_ELEMENTS"][key]) {
nodes.push({
styles: value,
selector: external_wp_blocks_["__EXPERIMENTAL_ELEMENTS"][key]
});
}
}); // Iterate over blocks: they can have styles & elements.
Object(external_lodash_["forEach"])((_tree$styles2 = tree.styles) === null || _tree$styles2 === void 0 ? void 0 : _tree$styles2.blocks, (node, blockName) => {
var _blockSelectors$block;
const blockStyles = pickStyleKeys(node);
if (!!blockStyles && !!(blockSelectors !== null && blockSelectors !== void 0 && (_blockSelectors$block = blockSelectors[blockName]) !== null && _blockSelectors$block !== void 0 && _blockSelectors$block.selector)) {
nodes.push({
styles: blockStyles,
selector: blockSelectors[blockName].selector
});
}
Object(external_lodash_["forEach"])(node === null || node === void 0 ? void 0 : node.elements, (value, elementName) => {
if (!!value && !!(blockSelectors !== null && blockSelectors !== void 0 && blockSelectors[blockName]) && !!(external_wp_blocks_["__EXPERIMENTAL_ELEMENTS"] !== null && external_wp_blocks_["__EXPERIMENTAL_ELEMENTS"] !== void 0 && external_wp_blocks_["__EXPERIMENTAL_ELEMENTS"][elementName])) {
nodes.push({
styles: value,
selector: blockSelectors[blockName].selector.split(',').map(sel => sel + ' ' + external_wp_blocks_["__EXPERIMENTAL_ELEMENTS"][elementName]).join(',')
});
}
});
});
return nodes;
};
const getNodesWithSettings = (tree, blockSelectors) => {
var _tree$settings, _tree$settings2;
const nodes = [];
if (!(tree !== null && tree !== void 0 && tree.settings)) {
return nodes;
}
const pickPresets = treeToPickFrom => {
const presets = {};
PRESET_METADATA.forEach(_ref6 => {
let {
path
} = _ref6;
const value = Object(external_lodash_["get"])(treeToPickFrom, path, false);
if (value !== false) {
Object(external_lodash_["set"])(presets, path, value);
}
});
return presets;
}; // Top-level.
const presets = pickPresets(tree.settings);
const custom = (_tree$settings = tree.settings) === null || _tree$settings === void 0 ? void 0 : _tree$settings.custom;
if (!Object(external_lodash_["isEmpty"])(presets) || !!custom) {
nodes.push({
presets,
custom,
selector: ROOT_BLOCK_SELECTOR
});
} // Blocks.
Object(external_lodash_["forEach"])((_tree$settings2 = tree.settings) === null || _tree$settings2 === void 0 ? void 0 : _tree$settings2.blocks, (node, blockName) => {
const blockPresets = pickPresets(node);
const blockCustom = node.custom;
if (!Object(external_lodash_["isEmpty"])(blockPresets) || !!blockCustom) {
nodes.push({
presets: blockPresets,
custom: blockCustom,
selector: blockSelectors[blockName].selector
});
}
});
return nodes;
};
const toCustomProperties = (tree, blockSelectors) => {
const settings = getNodesWithSettings(tree, blockSelectors);
let ruleset = '';
settings.forEach(_ref7 => {
let {
presets,
custom,
selector
} = _ref7;
const declarations = getPresetsDeclarations(presets);
const customProps = flattenTree(custom, '--wp--custom--', '--');
if (customProps.length > 0) {
declarations.push(...customProps);
}
if (declarations.length > 0) {
ruleset = ruleset + `${selector}{${declarations.join(';')};}`;
}
});
return ruleset;
};
const toStyles = (tree, blockSelectors) => {
const nodesWithStyles = getNodesWithStyles(tree, blockSelectors);
const nodesWithSettings = getNodesWithSettings(tree, blockSelectors);
let ruleset = '.wp-site-blocks > * { margin-top: 0; margin-bottom: 0; }.wp-site-blocks > * + * { margin-top: var( --wp--style--block-gap ); }';
nodesWithStyles.forEach(_ref8 => {
let {
selector,
styles
} = _ref8;
const declarations = getStylesDeclarations(styles);
if (declarations.length === 0) {
return;
}
ruleset = ruleset + `${selector}{${declarations.join(';')};}`;
});
nodesWithSettings.forEach(_ref9 => {
let {
selector,
presets
} = _ref9;
if (ROOT_BLOCK_SELECTOR === selector) {
// Do not add extra specificity for top-level classes.
selector = '';
}
const classes = getPresetsClasses(selector, presets);
if (!Object(external_lodash_["isEmpty"])(classes)) {
ruleset = ruleset + classes;
}
});
return ruleset;
};
const getBlockSelectors = blockTypes => {
const result = {};
blockTypes.forEach(blockType => {
var _blockType$supports$_, _blockType$supports;
const name = blockType.name;
const selector = (_blockType$supports$_ = blockType === null || blockType === void 0 ? void 0 : (_blockType$supports = blockType.supports) === null || _blockType$supports === void 0 ? void 0 : _blockType$supports.__experimentalSelector) !== null && _blockType$supports$_ !== void 0 ? _blockType$supports$_ : '.wp-block-' + name.replace('core/', '').replace('/', '-');
result[name] = {
name,
selector
};
});
return result;
};
function useGlobalStylesOutput() {
const [stylesheets, setStylesheets] = Object(external_wp_element_["useState"])([]);
const [settings, setSettings] = Object(external_wp_element_["useState"])({});
const {
merged: mergedConfig
} = Object(external_wp_element_["useContext"])(GlobalStylesContext);
Object(external_wp_element_["useEffect"])(() => {
if (!(mergedConfig !== null && mergedConfig !== void 0 && mergedConfig.styles) || !(mergedConfig !== null && mergedConfig !== void 0 && mergedConfig.settings)) {
return;
}
const blockSelectors = getBlockSelectors(Object(external_wp_blocks_["getBlockTypes"])());
const customProperties = toCustomProperties(mergedConfig, blockSelectors);
const globalStyles = toStyles(mergedConfig, blockSelectors);
setStylesheets([{
css: customProperties,
isGlobalStyles: true
}, {
css: globalStyles,
isGlobalStyles: true
}]);
setSettings(mergedConfig.settings);
}, [mergedConfig]);
return [stylesheets, settings];
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/index.js
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar/global-styles-sidebar.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function GlobalStylesSidebar() {
const [canReset, onReset] = useGlobalStylesReset();
const {
toggleFeature
} = Object(external_wp_data_["useDispatch"])(store);
return Object(external_wp_element_["createElement"])(DefaultSidebar, {
className: "edit-site-global-styles-sidebar",
identifier: "edit-site/global-styles",
title: Object(external_wp_i18n_["__"])('Styles'),
icon: library_styles,
closeLabel: Object(external_wp_i18n_["__"])('Close global styles sidebar'),
header: Object(external_wp_element_["createElement"])(external_wp_components_["Flex"], null, Object(external_wp_element_["createElement"])(external_wp_components_["FlexBlock"], null, Object(external_wp_element_["createElement"])("strong", null, Object(external_wp_i18n_["__"])('Styles')), Object(external_wp_element_["createElement"])("span", {
className: "edit-site-global-styles-sidebar__beta"
}, Object(external_wp_i18n_["__"])('Beta'))), Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_element_["createElement"])(external_wp_components_["DropdownMenu"], {
icon: more_vertical["a" /* default */],
label: Object(external_wp_i18n_["__"])('More Global Styles Actions'),
toggleProps: {
disabled: !canReset
},
controls: [{
title: Object(external_wp_i18n_["__"])('Reset to defaults'),
onClick: onReset
}, {
title: Object(external_wp_i18n_["__"])('Welcome Guide'),
onClick: () => toggleFeature('welcomeGuideStyles')
}]
})))
}, Object(external_wp_element_["createElement"])(ui, null));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar/constants.js
const SIDEBAR_TEMPLATE = 'edit-site/template';
const SIDEBAR_BLOCK = 'edit-site/block-inspector';
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar/settings-header/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const SettingsHeader = _ref => {
let {
sidebarName
} = _ref;
const {
enableComplementaryArea
} = Object(external_wp_data_["useDispatch"])(build_module["i" /* store */]);
const openTemplateSettings = () => enableComplementaryArea(STORE_NAME, SIDEBAR_TEMPLATE);
const openBlockSettings = () => enableComplementaryArea(STORE_NAME, SIDEBAR_BLOCK);
const [templateAriaLabel, templateActiveClass] = sidebarName === SIDEBAR_TEMPLATE ? // translators: ARIA label for the Template sidebar tab, selected.
[Object(external_wp_i18n_["__"])('Template (selected)'), 'is-active'] : // translators: ARIA label for the Template Settings Sidebar tab, not selected.
[Object(external_wp_i18n_["__"])('Template'), ''];
const [blockAriaLabel, blockActiveClass] = sidebarName === SIDEBAR_BLOCK ? // translators: ARIA label for the Block Settings Sidebar tab, selected.
[Object(external_wp_i18n_["__"])('Block (selected)'), 'is-active'] : // translators: ARIA label for the Block Settings Sidebar tab, not selected.
[Object(external_wp_i18n_["__"])('Block'), ''];
/* Use a list so screen readers will announce how many tabs there are. */
return Object(external_wp_element_["createElement"])("ul", null, Object(external_wp_element_["createElement"])("li", null, Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
onClick: openTemplateSettings,
className: `edit-site-sidebar__panel-tab ${templateActiveClass}`,
"aria-label": templateAriaLabel // translators: Data label for the Template Settings Sidebar tab.
,
"data-label": Object(external_wp_i18n_["__"])('Template')
}, // translators: Text label for the Template Settings Sidebar tab.
Object(external_wp_i18n_["__"])('Template'))), Object(external_wp_element_["createElement"])("li", null, Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
onClick: openBlockSettings,
className: `edit-site-sidebar__panel-tab ${blockActiveClass}`,
"aria-label": blockAriaLabel // translators: Data label for the Block Settings Sidebar tab.
,
"data-label": Object(external_wp_i18n_["__"])('Block')
}, // translators: Text label for the Block Settings Sidebar tab.
Object(external_wp_i18n_["__"])('Block'))));
};
/* harmony default export */ var settings_header = (SettingsHeader);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar/template-card/template-areas.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function TemplateAreaItem(_ref) {
let {
area,
clientId
} = _ref;
const {
selectBlock,
toggleBlockHighlight
} = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
const templatePartArea = Object(external_wp_data_["useSelect"])(select => {
const defaultAreas = select(external_wp_editor_["store"]).__experimentalGetDefaultTemplatePartAreas();
return defaultAreas.find(defaultArea => defaultArea.area === area);
}, [area]);
const highlightBlock = () => toggleBlockHighlight(clientId, true);
const cancelHighlightBlock = () => toggleBlockHighlight(clientId, false);
return Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
className: "edit-site-template-card__template-areas-item",
icon: templatePartArea === null || templatePartArea === void 0 ? void 0 : templatePartArea.icon,
onMouseOver: highlightBlock,
onMouseLeave: cancelHighlightBlock,
onFocus: highlightBlock,
onBlur: cancelHighlightBlock,
onClick: () => {
selectBlock(clientId);
}
}, templatePartArea === null || templatePartArea === void 0 ? void 0 : templatePartArea.label);
}
function template_areas_TemplateAreas() {
const templateParts = Object(external_wp_data_["useSelect"])(select => select(store).getCurrentTemplateTemplateParts(), []);
if (!templateParts.length) {
return null;
}
return Object(external_wp_element_["createElement"])("section", {
className: "edit-site-template-card__template-areas"
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHeading"], {
level: 3,
className: "edit-site-template-card__template-areas-title"
}, Object(external_wp_i18n_["__"])('Areas')), Object(external_wp_element_["createElement"])("ul", {
className: "edit-site-template-card__template-areas-list"
}, templateParts.map(_ref2 => {
let {
templatePart,
block
} = _ref2;
return Object(external_wp_element_["createElement"])("li", {
key: templatePart.slug
}, Object(external_wp_element_["createElement"])(TemplateAreaItem, {
area: templatePart.area,
clientId: block.clientId
}));
})));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar/template-card/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function TemplateCard() {
const {
title,
description,
icon
} = Object(external_wp_data_["useSelect"])(select => {
const {
getEditedPostType,
getEditedPostId
} = select(store);
const {
getEntityRecord
} = select(external_wp_coreData_["store"]);
const {
__experimentalGetTemplateInfo: getTemplateInfo
} = select(external_wp_editor_["store"]);
const postType = getEditedPostType();
const postId = getEditedPostId();
const record = getEntityRecord('postType', postType, postId);
const info = record ? getTemplateInfo(record) : {};
return info;
}, []);
if (!title && !description) {
return null;
}
return Object(external_wp_element_["createElement"])("div", {
className: "edit-site-template-card"
}, Object(external_wp_element_["createElement"])(external_wp_components_["Icon"], {
className: "edit-site-template-card__icon",
icon: icon
}), Object(external_wp_element_["createElement"])("div", {
className: "edit-site-template-card__content"
}, Object(external_wp_element_["createElement"])("h2", {
className: "edit-site-template-card__title"
}, title), Object(external_wp_element_["createElement"])("div", {
className: "edit-site-template-card__description"
}, description), Object(external_wp_element_["createElement"])(template_areas_TemplateAreas, null)));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const {
Slot: InspectorSlot,
Fill: InspectorFill
} = Object(external_wp_components_["createSlotFill"])('EditSiteSidebarInspector');
const SidebarInspectorFill = InspectorFill;
function SidebarComplementaryAreaFills() {
const {
sidebar,
isEditorSidebarOpened,
hasBlockSelection
} = Object(external_wp_data_["useSelect"])(select => {
const _sidebar = select(build_module["i" /* store */]).getActiveComplementaryArea(STORE_NAME);
const _isEditorSidebarOpened = [SIDEBAR_BLOCK, SIDEBAR_TEMPLATE].includes(_sidebar);
return {
sidebar: _sidebar,
isEditorSidebarOpened: _isEditorSidebarOpened,
hasBlockSelection: !!select(external_wp_blockEditor_["store"]).getBlockSelectionStart()
};
}, []);
const {
enableComplementaryArea
} = Object(external_wp_data_["useDispatch"])(build_module["i" /* store */]);
Object(external_wp_element_["useEffect"])(() => {
if (!isEditorSidebarOpened) return;
if (hasBlockSelection) {
enableComplementaryArea(STORE_NAME, SIDEBAR_BLOCK);
} else {
enableComplementaryArea(STORE_NAME, SIDEBAR_TEMPLATE);
}
}, [hasBlockSelection, isEditorSidebarOpened]);
let sidebarName = sidebar;
if (!isEditorSidebarOpened) {
sidebarName = hasBlockSelection ? SIDEBAR_BLOCK : SIDEBAR_TEMPLATE;
}
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(DefaultSidebar, {
identifier: sidebarName,
title: Object(external_wp_i18n_["__"])('Settings'),
icon: cog["a" /* default */],
closeLabel: Object(external_wp_i18n_["__"])('Close settings sidebar'),
header: Object(external_wp_element_["createElement"])(settings_header, {
sidebarName: sidebarName
}),
headerClassName: "edit-site-sidebar__panel-tabs"
}, sidebarName === SIDEBAR_TEMPLATE && Object(external_wp_element_["createElement"])(external_wp_components_["PanelBody"], null, Object(external_wp_element_["createElement"])(TemplateCard, null)), sidebarName === SIDEBAR_BLOCK && Object(external_wp_element_["createElement"])(InspectorSlot, {
bubblesVirtually: true
})), Object(external_wp_element_["createElement"])(GlobalStylesSidebar, null));
}
// EXTERNAL MODULE: external ["wp","htmlEntities"]
var external_wp_htmlEntities_ = __webpack_require__("rmEH");
// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/home.js
/**
* WordPress dependencies
*/
const home = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
d: "M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z"
}));
/* harmony default export */ var library_home = (home);
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/symbol-filled.js
var symbol_filled = __webpack_require__("OE6V");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/main-dashboard-button/index.js
/**
* WordPress dependencies
*/
const slotName = '__experimentalMainDashboardButton';
const {
Fill,
Slot: MainDashboardButtonSlot
} = Object(external_wp_components_["createSlotFill"])(slotName);
const MainDashboardButton = Fill;
const main_dashboard_button_Slot = _ref => {
let {
children
} = _ref;
const slot = Object(external_wp_components_["__experimentalUseSlot"])(slotName);
const hasFills = Boolean(slot.fills && slot.fills.length);
if (!hasFills) {
return children;
}
return Object(external_wp_element_["createElement"])(MainDashboardButtonSlot, {
bubblesVirtually: true
});
};
MainDashboardButton.Slot = main_dashboard_button_Slot;
/* harmony default export */ var main_dashboard_button = (MainDashboardButton);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/navigation-sidebar/navigation-panel/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const SITE_EDITOR_KEY = 'site-editor';
function NavLink(_ref) {
let {
params,
replace,
...props
} = _ref;
const linkProps = useLink(params, replace);
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigationItem"], Object(esm_extends["a" /* default */])({}, linkProps, props));
}
const NavigationPanel = _ref2 => {
let {
activeItem = SITE_EDITOR_KEY
} = _ref2;
const {
isNavigationOpen,
siteTitle
} = Object(external_wp_data_["useSelect"])(select => {
const {
getEntityRecord
} = select(external_wp_coreData_["store"]);
const siteData = getEntityRecord('root', '__unstableBase', undefined) || {};
return {
siteTitle: siteData.name,
isNavigationOpen: select(store).isNavigationOpened()
};
}, []);
const {
setIsNavigationPanelOpened
} = Object(external_wp_data_["useDispatch"])(store);
const closeOnEscape = event => {
if (event.keyCode === external_wp_keycodes_["ESCAPE"] && !event.defaultPrevented) {
event.preventDefault();
setIsNavigationPanelOpened(false);
}
};
return (// eslint-disable-next-line jsx-a11y/no-static-element-interactions
Object(external_wp_element_["createElement"])("div", {
className: classnames_default()(`edit-site-navigation-panel`, {
'is-open': isNavigationOpen
}),
onKeyDown: closeOnEscape
}, Object(external_wp_element_["createElement"])("div", {
className: "edit-site-navigation-panel__inner"
}, Object(external_wp_element_["createElement"])("div", {
className: "edit-site-navigation-panel__site-title-container"
}, Object(external_wp_element_["createElement"])("div", {
className: "edit-site-navigation-panel__site-title"
}, Object(external_wp_htmlEntities_["decodeEntities"])(siteTitle))), Object(external_wp_element_["createElement"])("div", {
className: "edit-site-navigation-panel__scroll-container"
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigation"], {
activeItem: activeItem
}, Object(external_wp_element_["createElement"])(main_dashboard_button.Slot, null, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigationBackButton"], {
backButtonLabel: Object(external_wp_i18n_["__"])('Dashboard'),
className: "edit-site-navigation-panel__back-to-dashboard",
href: "index.php"
})), Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigationMenu"], null, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalNavigationGroup"], {
title: Object(external_wp_i18n_["__"])('Editor')
}, Object(external_wp_element_["createElement"])(NavLink, {
icon: library_home,
title: Object(external_wp_i18n_["__"])('Site'),
item: SITE_EDITOR_KEY,
params: {
postId: undefined,
postType: undefined
}
}), Object(external_wp_element_["createElement"])(NavLink, {
icon: layout["a" /* default */],
title: Object(external_wp_i18n_["__"])('Templates'),
item: "wp_template",
params: {
postId: undefined,
postType: 'wp_template'
}
}), Object(external_wp_element_["createElement"])(NavLink, {
icon: symbol_filled["a" /* default */],
title: Object(external_wp_i18n_["__"])('Template Parts'),
item: "wp_template_part",
params: {
postId: undefined,
postType: 'wp_template_part'
}
})))))))
);
};
/* harmony default export */ var navigation_panel = (NavigationPanel);
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/wordpress.js
var wordpress = __webpack_require__("wduq");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/navigation-sidebar/navigation-toggle/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function NavigationToggle(_ref) {
let {
icon
} = _ref;
const {
isNavigationOpen,
isRequestingSiteIcon,
siteIconUrl
} = Object(external_wp_data_["useSelect"])(select => {
const {
getEntityRecord,
isResolving
} = select(external_wp_coreData_["store"]);
const siteData = getEntityRecord('root', '__unstableBase', undefined) || {};
return {
isNavigationOpen: select(store).isNavigationOpened(),
isRequestingSiteIcon: isResolving('core', 'getEntityRecord', ['root', '__unstableBase', undefined]),
siteIconUrl: siteData.site_icon_url
};
}, []);
const {
setIsNavigationPanelOpened
} = Object(external_wp_data_["useDispatch"])(store);
const disableMotion = Object(external_wp_compose_["useReducedMotion"])();
const toggleNavigationPanel = () => setIsNavigationPanelOpened(!isNavigationOpen);
let buttonIcon = Object(external_wp_element_["createElement"])(external_wp_components_["Icon"], {
size: "36px",
icon: wordpress["a" /* default */]
});
const effect = {
expand: {
scale: 1.7,
borderRadius: 0,
transition: {
type: 'tween',
duration: '0.2'
}
}
};
if (siteIconUrl) {
buttonIcon = Object(external_wp_element_["createElement"])(external_wp_components_["__unstableMotion"].img, {
variants: !disableMotion && effect,
alt: Object(external_wp_i18n_["__"])('Site Icon'),
className: "edit-site-navigation-toggle__site-icon",
src: siteIconUrl
});
} else if (isRequestingSiteIcon) {
buttonIcon = null;
} else if (icon) {
buttonIcon = Object(external_wp_element_["createElement"])(external_wp_components_["Icon"], {
size: "36px",
icon: icon
});
}
return Object(external_wp_element_["createElement"])(external_wp_components_["__unstableMotion"].div, {
className: 'edit-site-navigation-toggle' + (isNavigationOpen ? ' is-open' : ''),
whileHover: "expand"
}, Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
className: "edit-site-navigation-toggle__button has-icon",
label: Object(external_wp_i18n_["__"])('Toggle navigation'),
onClick: toggleNavigationPanel,
showTooltip: true
}, buttonIcon));
}
/* harmony default export */ var navigation_toggle = (NavigationToggle);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/navigation-sidebar/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const {
Fill: NavigationPanelPreviewFill,
Slot: NavigationPanelPreviewSlot
} = Object(external_wp_components_["createSlotFill"])('EditSiteNavigationPanelPreview');
const {
Fill: NavigationSidebarFill,
Slot: NavigationSidebarSlot
} = Object(external_wp_components_["createSlotFill"])('EditSiteNavigationSidebar');
function NavigationSidebar(_ref) {
let {
isDefaultOpen = false,
activeTemplateType
} = _ref;
const isDesktopViewport = Object(external_wp_compose_["useViewportMatch"])('medium');
const {
setIsNavigationPanelOpened
} = Object(external_wp_data_["useDispatch"])(store);
Object(external_wp_element_["useEffect"])(function autoOpenNavigationPanelOnViewportChange() {
setIsNavigationPanelOpened(isDefaultOpen && isDesktopViewport);
}, [isDefaultOpen, isDesktopViewport, setIsNavigationPanelOpened]);
return Object(external_wp_element_["createElement"])(NavigationSidebarFill, null, Object(external_wp_element_["createElement"])(navigation_toggle, null), Object(external_wp_element_["createElement"])(navigation_panel, {
activeItem: activeTemplateType
}), Object(external_wp_element_["createElement"])(NavigationPanelPreviewSlot, null));
}
NavigationSidebar.Slot = NavigationSidebarSlot;
/* harmony default export */ var navigation_sidebar = (NavigationSidebar);
// EXTERNAL MODULE: external ["wp","reusableBlocks"]
var external_wp_reusableBlocks_ = __webpack_require__("diJD");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/template-part-converter/convert-to-regular.js
/**
* WordPress dependencies
*/
function ConvertToRegularBlocks(_ref) {
let {
clientId
} = _ref;
const {
getBlocks
} = Object(external_wp_data_["useSelect"])(external_wp_blockEditor_["store"]);
const {
replaceBlocks
} = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
return Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockSettingsMenuControls"], null, _ref2 => {
let {
onClose
} = _ref2;
return Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
onClick: () => {
replaceBlocks(clientId, getBlocks(clientId));
onClose();
}
}, Object(external_wp_i18n_["__"])('Detach blocks from template part'));
});
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/create-template-part-modal/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function CreateTemplatePartModal(_ref) {
let {
closeModal,
onCreate
} = _ref;
const [title, setTitle] = Object(external_wp_element_["useState"])('');
const [area, setArea] = Object(external_wp_element_["useState"])(TEMPLATE_PART_AREA_GENERAL);
const [isSubmitting, setIsSubmitting] = Object(external_wp_element_["useState"])(false);
const instanceId = Object(external_wp_compose_["useInstanceId"])(CreateTemplatePartModal);
const templatePartAreas = Object(external_wp_data_["useSelect"])(select => select(external_wp_editor_["store"]).__experimentalGetDefaultTemplatePartAreas(), []);
return Object(external_wp_element_["createElement"])(external_wp_components_["Modal"], {
title: Object(external_wp_i18n_["__"])('Create a template part'),
closeLabel: Object(external_wp_i18n_["__"])('Close'),
onRequestClose: closeModal,
overlayClassName: "edit-site-create-template-part-modal"
}, Object(external_wp_element_["createElement"])("form", {
onSubmit: async event => {
event.preventDefault();
if (!title) {
return;
}
setIsSubmitting(true);
await onCreate({
title,
area
});
}
}, Object(external_wp_element_["createElement"])(external_wp_components_["TextControl"], {
label: Object(external_wp_i18n_["__"])('Name'),
value: title,
onChange: setTitle,
required: true
}), Object(external_wp_element_["createElement"])(external_wp_components_["BaseControl"], {
label: Object(external_wp_i18n_["__"])('Area'),
id: `edit-site-create-template-part-modal__area-selection-${instanceId}`,
className: "edit-site-create-template-part-modal__area-base-control"
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalRadioGroup"], {
label: Object(external_wp_i18n_["__"])('Area'),
className: "edit-site-create-template-part-modal__area-radio-group",
id: `edit-site-create-template-part-modal__area-selection-${instanceId}`,
onChange: setArea,
checked: area
}, templatePartAreas.map(_ref2 => {
let {
icon,
label,
area: value,
description
} = _ref2;
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalRadio"], {
key: label,
value: value,
className: "edit-site-create-template-part-modal__area-radio"
}, Object(external_wp_element_["createElement"])(external_wp_components_["Flex"], {
align: "start",
justify: "start"
}, Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_element_["createElement"])(external_wp_components_["Icon"], {
icon: icon
})), Object(external_wp_element_["createElement"])(external_wp_components_["FlexBlock"], {
className: "edit-site-create-template-part-modal__option-label"
}, label, Object(external_wp_element_["createElement"])("div", null, description)), Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], {
className: "edit-site-create-template-part-modal__checkbox"
}, area === value && Object(external_wp_element_["createElement"])(external_wp_components_["Icon"], {
icon: check["a" /* default */]
}))));
}))), Object(external_wp_element_["createElement"])(external_wp_components_["Flex"], {
className: "edit-site-create-template-part-modal__modal-actions",
justify: "flex-end"
}, Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
variant: "secondary",
onClick: () => {
closeModal();
}
}, Object(external_wp_i18n_["__"])('Cancel'))), Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
variant: "primary",
type: "submit",
disabled: !title,
isBusy: isSubmitting
}, Object(external_wp_i18n_["__"])('Create'))))));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/template-part-converter/convert-to-template-part.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ConvertToTemplatePart(_ref) {
let {
clientIds,
blocks
} = _ref;
const [isModalOpen, setIsModalOpen] = Object(external_wp_element_["useState"])(false);
const {
replaceBlocks
} = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
const {
saveEntityRecord
} = Object(external_wp_data_["useDispatch"])(external_wp_coreData_["store"]);
const {
createSuccessNotice
} = Object(external_wp_data_["useDispatch"])(external_wp_notices_["store"]);
const onConvert = async _ref2 => {
let {
title,
area
} = _ref2;
const templatePart = await saveEntityRecord('postType', 'wp_template_part', {
slug: Object(external_lodash_["kebabCase"])(title),
title,
content: Object(external_wp_blocks_["serialize"])(blocks),
area
});
replaceBlocks(clientIds, Object(external_wp_blocks_["createBlock"])('core/template-part', {
slug: templatePart.slug,
theme: templatePart.theme
}));
createSuccessNotice(Object(external_wp_i18n_["__"])('Template part created.'), {
type: 'snackbar'
}); // The modal and this component will be unmounted because of `replaceBlocks` above,
// so no need to call `closeModal` or `onClose`.
};
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockSettingsMenuControls"], null, () => Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
onClick: () => {
setIsModalOpen(true);
}
}, Object(external_wp_i18n_["__"])('Make template part'))), isModalOpen && Object(external_wp_element_["createElement"])(CreateTemplatePartModal, {
closeModal: () => {
setIsModalOpen(false);
},
onCreate: onConvert
}));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/template-part-converter/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function TemplatePartConverter() {
var _blocks$;
const {
clientIds,
blocks
} = Object(external_wp_data_["useSelect"])(select => {
const {
getSelectedBlockClientIds,
getBlocksByClientId
} = select(external_wp_blockEditor_["store"]);
const selectedBlockClientIds = getSelectedBlockClientIds();
return {
clientIds: selectedBlockClientIds,
blocks: getBlocksByClientId(selectedBlockClientIds)
};
}, []); // Allow converting a single template part to standard blocks.
if (blocks.length === 1 && ((_blocks$ = blocks[0]) === null || _blocks$ === void 0 ? void 0 : _blocks$.name) === 'core/template-part') {
return Object(external_wp_element_["createElement"])(ConvertToRegularBlocks, {
clientId: clientIds[0]
});
}
return Object(external_wp_element_["createElement"])(ConvertToTemplatePart, {
clientIds: clientIds,
blocks: blocks
});
}
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/edit.js + 1 modules
var edit = __webpack_require__("B9Az");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/navigate-to-link/index.js
/**
* WordPress dependencies
*/
function NavigateToLink(_ref) {
let {
type,
id,
activePage,
onActivePageChange
} = _ref;
const post = Object(external_wp_data_["useSelect"])(select => type && id && type !== 'URL' && select(external_wp_coreData_["store"]).getEntityRecord('postType', type, id), [type, id]);
const onClick = Object(external_wp_element_["useMemo"])(() => {
if (!(post !== null && post !== void 0 && post.link)) return null;
const path = Object(external_wp_url_["getPathAndQueryString"])(post.link);
if (path === (activePage === null || activePage === void 0 ? void 0 : activePage.path)) return null;
return () => onActivePageChange({
type,
slug: post.slug,
path,
context: {
postType: post.type,
postId: post.id
}
});
}, [post, activePage === null || activePage === void 0 ? void 0 : activePage.path, onActivePageChange]);
return onClick && Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
icon: edit["a" /* default */],
label: Object(external_wp_i18n_["__"])('Edit Page Template'),
onClick: onClick
});
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/block-editor/block-inspector-button.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function BlockInspectorButton(_ref) {
let {
onClick = () => {}
} = _ref;
const {
shortcut,
isBlockInspectorOpen
} = Object(external_wp_data_["useSelect"])(select => ({
shortcut: select(external_wp_keyboardShortcuts_["store"]).getShortcutRepresentation('core/edit-site/toggle-block-settings-sidebar'),
isBlockInspectorOpen: select(build_module["i" /* store */]).getActiveComplementaryArea(store.name) === SIDEBAR_BLOCK
}), []);
const {
enableComplementaryArea,
disableComplementaryArea
} = Object(external_wp_data_["useDispatch"])(build_module["i" /* store */]);
const label = isBlockInspectorOpen ? Object(external_wp_i18n_["__"])('Hide more settings') : Object(external_wp_i18n_["__"])('Show more settings');
return Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
onClick: () => {
if (isBlockInspectorOpen) {
disableComplementaryArea(STORE_NAME);
Object(external_wp_a11y_["speak"])(Object(external_wp_i18n_["__"])('Block settings closed'));
} else {
enableComplementaryArea(STORE_NAME, SIDEBAR_BLOCK);
Object(external_wp_a11y_["speak"])(Object(external_wp_i18n_["__"])('Additional settings are now available in the Editor block settings sidebar'));
} // Close dropdown menu.
onClick();
},
shortcut: shortcut
}, label);
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/edit-template-part-menu-button/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function EditTemplatePartMenuButton() {
return Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockSettingsMenuControls"], null, _ref => {
let {
selectedClientIds,
onClose
} = _ref;
return Object(external_wp_element_["createElement"])(EditTemplatePartMenuItem, {
selectedClientId: selectedClientIds[0],
onClose: onClose
});
});
}
function EditTemplatePartMenuItem(_ref2) {
let {
selectedClientId,
onClose
} = _ref2;
const {
params
} = useLocation();
const selectedTemplatePart = Object(external_wp_data_["useSelect"])(select => {
const block = select(external_wp_blockEditor_["store"]).getBlock(selectedClientId);
if (block && Object(external_wp_blocks_["isTemplatePart"])(block)) {
const {
theme,
slug
} = block.attributes;
return select(external_wp_coreData_["store"]).getEntityRecord('postType', 'wp_template_part', // Ideally this should be an official public API.
`${theme}//${slug}`);
}
}, [selectedClientId]);
const linkProps = useLink({
postId: selectedTemplatePart === null || selectedTemplatePart === void 0 ? void 0 : selectedTemplatePart.id,
postType: selectedTemplatePart === null || selectedTemplatePart === void 0 ? void 0 : selectedTemplatePart.type
}, {
fromTemplateId: params.postId
});
if (!selectedTemplatePart) {
return null;
}
return Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], Object(esm_extends["a" /* default */])({}, linkProps, {
onClick: event => {
linkProps.onClick(event);
onClose();
}
}),
/* translators: %s: template part title */
Object(external_wp_i18n_["sprintf"])(Object(external_wp_i18n_["__"])('Edit %s'), selectedTemplatePart.slug));
}
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/arrow-left.js
var arrow_left = __webpack_require__("cjQ8");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/block-editor/back-button.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function BackButton() {
var _location$state;
const location = useLocation();
const history = useHistory();
const isTemplatePart = location.params.postType === 'wp_template_part';
const previousTemplateId = (_location$state = location.state) === null || _location$state === void 0 ? void 0 : _location$state.fromTemplateId;
if (!isTemplatePart || !previousTemplateId) {
return null;
}
return Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
className: "edit-site-visual-editor__back-button",
icon: arrow_left["a" /* default */],
onClick: () => {
history.back();
}
}, Object(external_wp_i18n_["__"])('Back'));
}
/* harmony default export */ var back_button = (BackButton);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/block-editor/resize-handle.js
/**
* WordPress dependencies
*/
const DELTA_DISTANCE = 20; // The distance to resize per keydown in pixels.
function ResizeHandle(_ref) {
let {
direction,
resizeWidthBy
} = _ref;
function handleKeyDown(event) {
const {
keyCode
} = event;
if (direction === 'left' && keyCode === external_wp_keycodes_["LEFT"] || direction === 'right' && keyCode === external_wp_keycodes_["RIGHT"]) {
resizeWidthBy(DELTA_DISTANCE);
} else if (direction === 'left' && keyCode === external_wp_keycodes_["RIGHT"] || direction === 'right' && keyCode === external_wp_keycodes_["LEFT"]) {
resizeWidthBy(-DELTA_DISTANCE);
}
}
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("button", {
className: `resizable-editor__drag-handle is-${direction}`,
"aria-label": Object(external_wp_i18n_["__"])('Drag to resize'),
"aria-describedby": `resizable-editor__resize-help-${direction}`,
onKeyDown: handleKeyDown
}), Object(external_wp_element_["createElement"])(external_wp_components_["VisuallyHidden"], {
id: `resizable-editor__resize-help-${direction}`
}, Object(external_wp_i18n_["__"])('Use left and right arrow keys to resize the canvas.')));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/block-editor/resizable-editor.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const DEFAULT_STYLES = {
width: '100%',
height: '100%'
}; // Removes the inline styles in the drag handles.
const HANDLE_STYLES_OVERRIDE = {
position: undefined,
userSelect: undefined,
cursor: undefined,
width: undefined,
height: undefined,
top: undefined,
right: undefined,
bottom: undefined,
left: undefined
};
function ResizableEditor(_ref) {
let {
enableResizing,
settings,
...props
} = _ref;
const deviceType = Object(external_wp_data_["useSelect"])(select => select(store).__experimentalGetPreviewDeviceType(), []);
const deviceStyles = Object(external_wp_blockEditor_["__experimentalUseResizeCanvas"])(deviceType);
const [width, setWidth] = Object(external_wp_element_["useState"])(DEFAULT_STYLES.width);
const [height, setHeight] = Object(external_wp_element_["useState"])(DEFAULT_STYLES.height);
const iframeRef = Object(external_wp_element_["useRef"])();
const mouseMoveTypingResetRef = Object(external_wp_blockEditor_["__unstableUseMouseMoveTypingReset"])();
const ref = Object(external_wp_compose_["useMergeRefs"])([iframeRef, mouseMoveTypingResetRef]);
Object(external_wp_element_["useEffect"])(function autoResizeIframeHeight() {
const iframe = iframeRef.current;
if (!iframe || !enableResizing) {
return;
}
const resizeObserver = new iframe.contentWindow.ResizeObserver(() => {
setHeight(iframe.contentDocument.querySelector(`.edit-site-block-editor__block-list`).offsetHeight);
}); // Observing the <html> rather than the <body> because the latter
// gets destroyed and remounted after initialization in <Iframe>.
resizeObserver.observe(iframe.contentDocument.documentElement);
return () => {
resizeObserver.disconnect();
};
}, [enableResizing]);
const resizeWidthBy = Object(external_wp_element_["useCallback"])(deltaPixels => {
if (iframeRef.current) {
setWidth(iframeRef.current.offsetWidth + deltaPixels);
}
}, []);
return Object(external_wp_element_["createElement"])(external_wp_components_["ResizableBox"], {
size: {
width,
height
},
onResizeStop: (event, direction, element) => {
setWidth(element.style.width);
},
minWidth: 300,
maxWidth: "100%",
maxHeight: "100%",
enable: {
right: enableResizing,
left: enableResizing
},
showHandle: enableResizing // The editor is centered horizontally, resizing it only
// moves half the distance. Hence double the ratio to correctly
// align the cursor to the resizer handle.
,
resizeRatio: 2,
handleComponent: {
left: Object(external_wp_element_["createElement"])(ResizeHandle, {
direction: "left",
resizeWidthBy: resizeWidthBy
}),
right: Object(external_wp_element_["createElement"])(ResizeHandle, {
direction: "right",
resizeWidthBy: resizeWidthBy
})
},
handleClasses: undefined,
handleStyles: {
left: HANDLE_STYLES_OVERRIDE,
right: HANDLE_STYLES_OVERRIDE
}
}, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__unstableIframe"], Object(esm_extends["a" /* default */])({
style: enableResizing ? undefined : deviceStyles,
head: Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__unstableEditorStyles"], {
styles: settings.styles
}), Object(external_wp_element_["createElement"])("style", null, // Forming a "block formatting context" to prevent margin collapsing.
// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context
`.edit-site-block-editor__block-list { display: flow-root; }`)),
ref: ref,
name: "editor-canvas",
className: "edit-site-visual-editor__editor-canvas"
}, props)));
}
/* harmony default export */ var resizable_editor = (ResizableEditor);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/block-editor/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const LAYOUT = {
type: 'default',
// At the root level of the site editor, no alignments should be allowed.
alignments: []
};
function BlockEditor(_ref) {
let {
setIsInserterOpen
} = _ref;
const {
settings,
templateType,
templateId,
page
} = Object(external_wp_data_["useSelect"])(select => {
const {
getSettings,
getEditedPostType,
getEditedPostId,
getPage
} = select(store);
return {
settings: getSettings(setIsInserterOpen),
templateType: getEditedPostType(),
templateId: getEditedPostId(),
page: getPage()
};
}, [setIsInserterOpen]);
const [blocks, onInput, onChange] = Object(external_wp_coreData_["useEntityBlockEditor"])('postType', templateType);
const {
setPage
} = Object(external_wp_data_["useDispatch"])(store);
const contentRef = Object(external_wp_element_["useRef"])();
const mergedRefs = Object(external_wp_compose_["useMergeRefs"])([contentRef, Object(external_wp_blockEditor_["__unstableUseTypingObserver"])()]);
const isMobileViewport = Object(external_wp_compose_["useViewportMatch"])('small', '<');
const {
clearSelectedBlock
} = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
const isTemplatePart = templateType === 'wp_template_part';
return Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockEditorProvider"], {
settings: settings,
value: blocks,
onInput: onInput,
onChange: onChange,
useSubRegistry: false
}, Object(external_wp_element_["createElement"])(EditTemplatePartMenuButton, null), Object(external_wp_element_["createElement"])(TemplatePartConverter, null), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalLinkControl"].ViewerFill, null, Object(external_wp_element_["useCallback"])(fillProps => Object(external_wp_element_["createElement"])(NavigateToLink, Object(esm_extends["a" /* default */])({}, fillProps, {
activePage: page,
onActivePageChange: setPage
})), [page])), Object(external_wp_element_["createElement"])(SidebarInspectorFill, null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockInspector"], null)), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockTools"], {
className: classnames_default()('edit-site-visual-editor', {
'is-focus-mode': isTemplatePart
}),
__unstableContentRef: contentRef,
onClick: event => {
// Clear selected block when clicking on the gray background.
if (event.target === event.currentTarget) {
clearSelectedBlock();
}
}
}, Object(external_wp_element_["createElement"])(back_button, null), Object(external_wp_element_["createElement"])(resizable_editor // Reinitialize the editor and reset the states when the template changes.
, {
key: templateId,
enableResizing: isTemplatePart && // Disable resizing in mobile viewport.
!isMobileViewport,
settings: settings,
contentRef: mergedRefs
}, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockList"], {
className: "edit-site-block-editor__block-list wp-site-blocks",
__experimentalLayout: LAYOUT,
renderAppender: isTemplatePart ? false : undefined
})), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__unstableBlockSettingsMenuFirstItem"], null, _ref2 => {
let {
onClose
} = _ref2;
return Object(external_wp_element_["createElement"])(BlockInspectorButton, {
onClick: onClose
});
})), Object(external_wp_element_["createElement"])(external_wp_reusableBlocks_["ReusableBlocksMenuItems"], null));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/keyboard-shortcuts/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function KeyboardShortcuts(_ref) {
let {
openEntitiesSavedStates
} = _ref;
const {
__experimentalGetDirtyEntityRecords,
isSavingEntityRecord
} = Object(external_wp_data_["useSelect"])(external_wp_coreData_["store"]);
const isListViewOpen = Object(external_wp_data_["useSelect"])(select => select(store).isListViewOpened(), []);
const isBlockInspectorOpen = Object(external_wp_data_["useSelect"])(select => select(build_module["i" /* store */]).getActiveComplementaryArea(store.name) === SIDEBAR_BLOCK, []);
const {
redo,
undo
} = Object(external_wp_data_["useDispatch"])(external_wp_coreData_["store"]);
const {
setIsListViewOpened
} = Object(external_wp_data_["useDispatch"])(store);
const {
enableComplementaryArea,
disableComplementaryArea
} = Object(external_wp_data_["useDispatch"])(build_module["i" /* store */]);
Object(external_wp_keyboardShortcuts_["useShortcut"])('core/edit-site/save', event => {
event.preventDefault();
const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
const isDirty = !!dirtyEntityRecords.length;
const isSaving = dirtyEntityRecords.some(record => isSavingEntityRecord(record.kind, record.name, record.key));
if (!isSaving && isDirty) {
openEntitiesSavedStates();
}
});
Object(external_wp_keyboardShortcuts_["useShortcut"])('core/edit-site/undo', event => {
undo();
event.preventDefault();
});
Object(external_wp_keyboardShortcuts_["useShortcut"])('core/edit-site/redo', event => {
redo();
event.preventDefault();
});
Object(external_wp_keyboardShortcuts_["useShortcut"])('core/edit-site/toggle-list-view', () => {
setIsListViewOpened(!isListViewOpen);
});
Object(external_wp_keyboardShortcuts_["useShortcut"])('core/edit-site/toggle-block-settings-sidebar', event => {
// This shortcut has no known clashes, but use preventDefault to prevent any
// obscure shortcuts from triggering.
event.preventDefault();
if (isBlockInspectorOpen) {
disableComplementaryArea(STORE_NAME);
} else {
enableComplementaryArea(STORE_NAME, SIDEBAR_BLOCK);
}
});
return null;
}
function KeyboardShortcutsRegister() {
// Registering the shortcuts
const {
registerShortcut
} = Object(external_wp_data_["useDispatch"])(external_wp_keyboardShortcuts_["store"]);
Object(external_wp_element_["useEffect"])(() => {
registerShortcut({
name: 'core/edit-site/save',
category: 'global',
description: Object(external_wp_i18n_["__"])('Save your changes.'),
keyCombination: {
modifier: 'primary',
character: 's'
}
});
registerShortcut({
name: 'core/edit-site/undo',
category: 'global',
description: Object(external_wp_i18n_["__"])('Undo your last changes.'),
keyCombination: {
modifier: 'primary',
character: 'z'
}
});
registerShortcut({
name: 'core/edit-site/redo',
category: 'global',
description: Object(external_wp_i18n_["__"])('Redo your last undo.'),
keyCombination: {
modifier: 'primaryShift',
character: 'z'
}
});
registerShortcut({
name: 'core/edit-site/toggle-list-view',
category: 'global',
description: Object(external_wp_i18n_["__"])('Open the block list view.'),
keyCombination: {
modifier: 'access',
character: 'o'
}
});
registerShortcut({
name: 'core/edit-site/toggle-block-settings-sidebar',
category: 'global',
description: Object(external_wp_i18n_["__"])('Show or hide the block settings sidebar.'),
keyCombination: {
modifier: 'primaryShift',
character: ','
}
});
registerShortcut({
name: 'core/edit-site/next-region',
category: 'global',
description: Object(external_wp_i18n_["__"])('Navigate to the next part of the editor.'),
keyCombination: {
modifier: 'ctrl',
character: '`'
},
aliases: [{
modifier: 'access',
character: 'n'
}]
});
registerShortcut({
name: 'core/edit-site/previous-region',
category: 'global',
description: Object(external_wp_i18n_["__"])('Navigate to the previous part of the editor.'),
keyCombination: {
modifier: 'ctrlShift',
character: '`'
},
aliases: [{
modifier: 'access',
character: 'p'
}]
});
}, [registerShortcut]);
return null;
}
KeyboardShortcuts.Register = KeyboardShortcutsRegister;
/* harmony default export */ var keyboard_shortcuts = (KeyboardShortcuts);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/url-query-controller/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function URLQueryController() {
const {
setTemplate,
setTemplatePart,
showHomepage,
setPage
} = Object(external_wp_data_["useDispatch"])(store);
const history = useHistory();
const {
params: {
postId,
postType
}
} = useLocation();
const {
getPage,
getEditedPostId,
getEditedPostType
} = Object(external_wp_data_["useSelect"])(store); // Set correct entity on page navigation.
Object(external_wp_element_["useEffect"])(() => {
let isMounted = true;
if ('page' === postType || 'post' === postType) {
setPage({
context: {
postType,
postId
}
}); // Resolves correct template based on ID.
} else if ('wp_template' === postType) {
setTemplate(postId);
} else if ('wp_template_part' === postType) {
setTemplatePart(postId);
} else {
showHomepage().then(() => {
var _page$context, _page$context2;
if (!isMounted) {
return;
}
const page = getPage();
const editedPostId = getEditedPostId();
const editedPostType = getEditedPostType();
if (page !== null && page !== void 0 && (_page$context = page.context) !== null && _page$context !== void 0 && _page$context.postId && page !== null && page !== void 0 && (_page$context2 = page.context) !== null && _page$context2 !== void 0 && _page$context2.postType) {
history.replace({
postId: page.context.postId,
postType: page.context.postType
});
} else if (editedPostId && editedPostType) {
history.replace({
postId: editedPostId,
postType: editedPostType
});
}
});
}
return () => {
isMounted = false;
};
}, [postId, postType]);
return null;
}
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js
var library_close = __webpack_require__("w95h");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/secondary-sidebar/inserter-sidebar.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function InserterSidebar() {
const {
setIsInserterOpened
} = Object(external_wp_data_["useDispatch"])(store);
const insertionPoint = Object(external_wp_data_["useSelect"])(select => select(store).__experimentalGetInsertionPoint(), []);
const isMobile = Object(external_wp_compose_["useViewportMatch"])('medium', '<');
const [inserterDialogRef, inserterDialogProps] = Object(external_wp_compose_["__experimentalUseDialog"])({
onClose: () => setIsInserterOpened(false)
});
return Object(external_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({
ref: inserterDialogRef
}, inserterDialogProps, {
className: "edit-site-editor__inserter-panel"
}), Object(external_wp_element_["createElement"])("div", {
className: "edit-site-editor__inserter-panel-header"
}, Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
icon: library_close["a" /* default */],
onClick: () => setIsInserterOpened(false)
})), Object(external_wp_element_["createElement"])("div", {
className: "edit-site-editor__inserter-panel-content"
}, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalLibrary"], {
showInserterHelpPanel: true,
shouldFocusBlock: isMobile,
rootClientId: insertionPoint.rootClientId,
__experimentalInsertionIndex: insertionPoint.insertionIndex,
__experimentalFilterValue: insertionPoint.filterValue
})));
}
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js
var close_small = __webpack_require__("bWcr");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/secondary-sidebar/list-view-sidebar.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ListViewSidebar() {
const {
setIsListViewOpened
} = Object(external_wp_data_["useDispatch"])(store);
const {
clearSelectedBlock,
selectBlock
} = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
async function selectEditorBlock(clientId) {
await clearSelectedBlock();
selectBlock(clientId, -1);
}
const focusOnMountRef = Object(external_wp_compose_["useFocusOnMount"])('firstElement');
const focusReturnRef = Object(external_wp_compose_["useFocusReturn"])();
function closeOnEscape(event) {
if (event.keyCode === external_wp_keycodes_["ESCAPE"] && !event.defaultPrevented) {
setIsListViewOpened(false);
}
}
const instanceId = Object(external_wp_compose_["useInstanceId"])(ListViewSidebar);
const labelId = `edit-site-editor__list-view-panel-label-${instanceId}`;
return (// eslint-disable-next-line jsx-a11y/no-static-element-interactions
Object(external_wp_element_["createElement"])("div", {
"aria-labelledby": labelId,
className: "edit-site-editor__list-view-panel",
onKeyDown: closeOnEscape
}, Object(external_wp_element_["createElement"])("div", {
className: "edit-site-editor__list-view-panel-header"
}, Object(external_wp_element_["createElement"])("strong", {
id: labelId
}, Object(external_wp_i18n_["__"])('List view')), Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
icon: close_small["a" /* default */],
label: Object(external_wp_i18n_["__"])('Close list view sidebar'),
onClick: () => setIsListViewOpened(false)
})), Object(external_wp_element_["createElement"])("div", {
className: "edit-site-editor__list-view-panel-content",
ref: Object(external_wp_compose_["useMergeRefs"])([focusReturnRef, focusOnMountRef])
}, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalListView"], {
onSelect: selectEditorBlock,
showNestedBlocks: true,
__experimentalFeatures: true,
__experimentalPersistentListViewFeatures: true
})))
);
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/error-boundary/index.js
/**
* WordPress dependencies
*/
function CopyButton(_ref) {
let {
text,
children
} = _ref;
const ref = Object(external_wp_compose_["useCopyToClipboard"])(text);
return Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
variant: "secondary",
ref: ref
}, children);
}
class error_boundary_ErrorBoundary extends external_wp_element_["Component"] {
constructor() {
super(...arguments);
this.reboot = this.reboot.bind(this);
this.state = {
error: null
};
}
static getDerivedStateFromError(error) {
return {
error
};
}
reboot() {
this.props.onError();
}
render() {
const {
error
} = this.state;
if (!error) {
return this.props.children;
}
return Object(external_wp_element_["createElement"])(external_wp_blockEditor_["Warning"], {
className: "editor-error-boundary",
actions: [Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
key: "recovery",
onClick: this.reboot,
variant: "secondary"
}, Object(external_wp_i18n_["__"])('Attempt Recovery')), Object(external_wp_element_["createElement"])(CopyButton, {
key: "copy-error",
text: error.stack
}, Object(external_wp_i18n_["__"])('Copy Error'))]
}, Object(external_wp_i18n_["__"])('The editor has encountered an unexpected error.'));
}
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/welcome-guide/image.js
function WelcomeGuideImage(_ref) {
let {
nonAnimatedSrc,
animatedSrc
} = _ref;
return Object(external_wp_element_["createElement"])("picture", {
className: "edit-site-welcome-guide__image"
}, Object(external_wp_element_["createElement"])("source", {
srcSet: nonAnimatedSrc,
media: "(prefers-reduced-motion: reduce)"
}), Object(external_wp_element_["createElement"])("img", {
src: animatedSrc,
width: "312",
height: "240",
alt: ""
}));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/welcome-guide/editor.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function WelcomeGuideEditor() {
const {
toggleFeature
} = Object(external_wp_data_["useDispatch"])(store);
const isActive = Object(external_wp_data_["useSelect"])(select => select(store).isFeatureActive('welcomeGuide'), []);
if (!isActive) {
return null;
}
return Object(external_wp_element_["createElement"])(external_wp_components_["Guide"], {
className: "edit-site-welcome-guide",
contentLabel: Object(external_wp_i18n_["__"])('Welcome to the site editor'),
finishButtonText: Object(external_wp_i18n_["__"])('Get Started'),
onFinish: () => toggleFeature('welcomeGuide'),
pages: [{
image: Object(external_wp_element_["createElement"])(WelcomeGuideImage, {
nonAnimatedSrc: "https://s.w.org/images/block-editor/edit-your-site.svg?1",
animatedSrc: "https://s.w.org/images/block-editor/edit-your-site.gif?1"
}),
content: Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("h1", {
className: "edit-site-welcome-guide__heading"
}, Object(external_wp_i18n_["__"])('Edit your site')), Object(external_wp_element_["createElement"])("p", {
className: "edit-site-welcome-guide__text"
}, Object(external_wp_i18n_["__"])('Design everything on your site — from the header right down to the footer — using blocks.')), Object(external_wp_element_["createElement"])("p", {
className: "edit-site-welcome-guide__text"
}, Object(external_wp_element_["createInterpolateElement"])(Object(external_wp_i18n_["__"])('Click <StylesIconImage /> to start designing your blocks, and choose your typography, layout, and colors.'), {
StylesIconImage: Object(external_wp_element_["createElement"])("img", {
alt: Object(external_wp_i18n_["__"])('styles'),
src: "data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 4c-4.4 0-8 3.6-8 8v.1c0 4.1 3.2 7.5 7.2 7.9h.8c4.4 0 8-3.6 8-8s-3.6-8-8-8zm0 15V5c3.9 0 7 3.1 7 7s-3.1 7-7 7z' fill='%231E1E1E'/%3E%3C/svg%3E%0A"
})
})))
}]
});
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/welcome-guide/styles.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function WelcomeGuideStyles() {
const {
toggleFeature
} = Object(external_wp_data_["useDispatch"])(store);
const {
isActive,
isStylesOpen
} = Object(external_wp_data_["useSelect"])(select => {
const sidebar = select(build_module["i" /* store */]).getActiveComplementaryArea(store.name);
return {
isActive: select(store).isFeatureActive('welcomeGuideStyles'),
isStylesOpen: sidebar === 'edit-site/global-styles'
};
}, []);
if (!isActive || !isStylesOpen) {
return null;
}
return Object(external_wp_element_["createElement"])(external_wp_components_["Guide"], {
className: "edit-site-welcome-guide",
contentLabel: Object(external_wp_i18n_["__"])('Welcome to styles'),
finishButtonText: Object(external_wp_i18n_["__"])('Get Started'),
onFinish: () => toggleFeature('welcomeGuideStyles'),
pages: [{
image: Object(external_wp_element_["createElement"])(WelcomeGuideImage, {
nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-to-styles.svg?1",
animatedSrc: "https://s.w.org/images/block-editor/welcome-to-styles.gif?1"
}),
content: Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("h1", {
className: "edit-site-welcome-guide__heading"
}, Object(external_wp_i18n_["__"])('Welcome to Styles')), Object(external_wp_element_["createElement"])("p", {
className: "edit-site-welcome-guide__text"
}, Object(external_wp_i18n_["__"])('Tweak your site, or give it a whole new look! Get creative — how about a new color palette for your buttons, or choosing a new font? Take a look at what you can do here.')))
}, {
image: Object(external_wp_element_["createElement"])(WelcomeGuideImage, {
nonAnimatedSrc: "https://s.w.org/images/block-editor/set-the-design.svg?1",
animatedSrc: "https://s.w.org/images/block-editor/set-the-design.gif?1"
}),
content: Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("h1", {
className: "edit-site-welcome-guide__heading"
}, Object(external_wp_i18n_["__"])('Set the design')), Object(external_wp_element_["createElement"])("p", {
className: "edit-site-welcome-guide__text"
}, Object(external_wp_i18n_["__"])('You can customize your site as much as you like with different colors, typography, and layouts. Or if you prefer, just leave it up to your theme to handle! ')))
}, {
image: Object(external_wp_element_["createElement"])(WelcomeGuideImage, {
nonAnimatedSrc: "https://s.w.org/images/block-editor/personalize-blocks.svg?1",
animatedSrc: "https://s.w.org/images/block-editor/personalize-blocks.gif?1"
}),
content: Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("h1", {
className: "edit-site-welcome-guide__heading"
}, Object(external_wp_i18n_["__"])('Personalize blocks')), Object(external_wp_element_["createElement"])("p", {
className: "edit-site-welcome-guide__text"
}, Object(external_wp_i18n_["__"])('You can adjust your blocks to ensure a cohesive experience across your site — add your unique colors to a branded Button block, or adjust the Heading block to your preferred size.')))
}, {
image: Object(external_wp_element_["createElement"])(WelcomeGuideImage, {
nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-documentation.svg",
animatedSrc: "https://s.w.org/images/block-editor/welcome-documentation.gif"
}),
content: Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("h1", {
className: "edit-site-welcome-guide__heading"
}, Object(external_wp_i18n_["__"])('Learn more')), Object(external_wp_element_["createElement"])("p", {
className: "edit-site-welcome-guide__text"
}, Object(external_wp_i18n_["__"])('New to block themes and styling your site? '), Object(external_wp_element_["createElement"])(external_wp_components_["ExternalLink"], {
href: Object(external_wp_i18n_["__"])('https://wordpress.org/support/article/styles-overview/')
}, Object(external_wp_i18n_["__"])('Heres a detailed guide to learn how to make the most of it.'))))
}]
});
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/welcome-guide/index.js
/**
* Internal dependencies
*/
function WelcomeGuide() {
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(WelcomeGuideEditor, null), Object(external_wp_element_["createElement"])(WelcomeGuideStyles, null));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/editor/global-styles-renderer.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* Internal dependencies
*/
function useGlobalStylesRenderer() {
const [styles, settings] = useGlobalStylesOutput();
const {
getSettings
} = Object(external_wp_data_["useSelect"])(store);
const {
updateSettings
} = Object(external_wp_data_["useDispatch"])(store);
Object(external_wp_element_["useEffect"])(() => {
var _currentStoreSettings;
if (!styles || !settings) {
return;
}
const currentStoreSettings = getSettings();
const nonGlobalStyles = currentStoreSettings === null || currentStoreSettings === void 0 ? void 0 : (_currentStoreSettings = currentStoreSettings.styles) === null || _currentStoreSettings === void 0 ? void 0 : _currentStoreSettings.filter(style => !style.isGlobalStyles);
updateSettings({ ...currentStoreSettings,
styles: [...nonGlobalStyles, ...styles],
__experimentalFeatures: settings
});
}, [styles, settings]);
}
function GlobalStylesRenderer() {
useGlobalStylesRenderer();
return null;
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/global-styles-provider.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function mergeTreesCustomizer(_, srcValue) {
// We only pass as arrays the presets,
// in which case we want the new array of values
// to override the old array (no merging).
if (Array.isArray(srcValue)) {
return srcValue;
}
}
function mergeBaseAndUserConfigs(base, user) {
return Object(external_lodash_["mergeWith"])({}, base, user, mergeTreesCustomizer);
}
const cleanEmptyObject = object => {
if (!Object(external_lodash_["isObject"])(object) || Array.isArray(object)) {
return object;
}
const cleanedNestedObjects = Object(external_lodash_["pickBy"])(Object(external_lodash_["mapValues"])(object, cleanEmptyObject), external_lodash_["identity"]);
return Object(external_lodash_["isEmpty"])(cleanedNestedObjects) ? undefined : cleanedNestedObjects;
};
function useGlobalStylesUserConfig() {
const {
globalStylesId,
settings,
styles
} = Object(external_wp_data_["useSelect"])(select => {
const _globalStylesId = select(external_wp_coreData_["store"]).__experimentalGetCurrentGlobalStylesId();
const record = _globalStylesId ? select(external_wp_coreData_["store"]).getEditedEntityRecord('root', 'globalStyles', _globalStylesId) : undefined;
return {
globalStylesId: _globalStylesId,
settings: record === null || record === void 0 ? void 0 : record.settings,
styles: record === null || record === void 0 ? void 0 : record.styles
};
}, []);
const {
getEditedEntityRecord
} = Object(external_wp_data_["useSelect"])(external_wp_coreData_["store"]);
const {
editEntityRecord
} = Object(external_wp_data_["useDispatch"])(external_wp_coreData_["store"]);
const config = Object(external_wp_element_["useMemo"])(() => {
return {
settings: settings !== null && settings !== void 0 ? settings : {},
styles: styles !== null && styles !== void 0 ? styles : {}
};
}, [settings, styles]);
const setConfig = Object(external_wp_element_["useCallback"])(callback => {
var _record$styles, _record$settings;
const record = getEditedEntityRecord('root', 'globalStyles', globalStylesId);
const currentConfig = {
styles: (_record$styles = record === null || record === void 0 ? void 0 : record.styles) !== null && _record$styles !== void 0 ? _record$styles : {},
settings: (_record$settings = record === null || record === void 0 ? void 0 : record.settings) !== null && _record$settings !== void 0 ? _record$settings : {}
};
const updatedConfig = callback(currentConfig);
editEntityRecord('root', 'globalStyles', globalStylesId, {
styles: cleanEmptyObject(updatedConfig.styles) || {},
settings: cleanEmptyObject(updatedConfig.settings) || {}
});
}, [globalStylesId]);
return [!!settings || !!styles, config, setConfig];
}
function useGlobalStylesBaseConfig() {
const baseConfig = Object(external_wp_data_["useSelect"])(select => {
return select(external_wp_coreData_["store"]).__experimentalGetCurrentThemeBaseGlobalStyles();
}, []);
return [!!baseConfig, baseConfig];
}
function useGlobalStylesContext() {
const [isUserConfigReady, userConfig, setUserConfig] = useGlobalStylesUserConfig();
const [isBaseConfigReady, baseConfig] = useGlobalStylesBaseConfig();
const mergedConfig = Object(external_wp_element_["useMemo"])(() => {
if (!baseConfig || !userConfig) {
return {};
}
return mergeBaseAndUserConfigs(baseConfig, userConfig);
}, [userConfig, baseConfig]);
const context = Object(external_wp_element_["useMemo"])(() => {
return {
isReady: isUserConfigReady && isBaseConfigReady,
user: userConfig,
base: baseConfig,
merged: mergedConfig,
setUserConfig
};
}, [mergedConfig, userConfig, baseConfig, setUserConfig, isUserConfigReady, isBaseConfigReady]);
return context;
}
function GlobalStylesProvider(_ref) {
let {
children
} = _ref;
const context = useGlobalStylesContext();
if (!context.isReady) {
return null;
}
return Object(external_wp_element_["createElement"])(GlobalStylesContext.Provider, {
value: context
}, children);
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/routes/use-title.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function useTitle(title) {
const location = useLocation();
const siteTitle = Object(external_wp_data_["useSelect"])(select => {
var _select$getEntityReco;
return (_select$getEntityReco = select(external_wp_coreData_["store"]).getEntityRecord('root', 'site')) === null || _select$getEntityReco === void 0 ? void 0 : _select$getEntityReco.title;
}, []);
const isInitialLocationRef = Object(external_wp_element_["useRef"])(true);
Object(external_wp_element_["useEffect"])(() => {
isInitialLocationRef.current = false;
}, [location]);
Object(external_wp_element_["useEffect"])(() => {
// Don't update or announce the title for initial page load.
if (isInitialLocationRef.current) {
return;
}
if (title && siteTitle) {
// @see https://github.com/WordPress/wordpress-develop/blob/94849898192d271d533e09756007e176feb80697/src/wp-admin/admin-header.php#L67-L68
const formattedTitle = Object(external_wp_i18n_["sprintf"])(
/* translators: Admin screen title. 1: Admin screen name, 2: Network or site name. */
Object(external_wp_i18n_["__"])('%1$s %2$s — WordPress'), title, siteTitle);
document.title = formattedTitle; // Announce title on route change for screen readers.
Object(external_wp_a11y_["speak"])(Object(external_wp_i18n_["sprintf"])(
/* translators: The page title that is currently displaying. */
Object(external_wp_i18n_["__"])('Now displaying: %s'), document.title), 'assertive');
}
}, [title, siteTitle, location]);
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/editor/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const interfaceLabels = {
secondarySidebar: Object(external_wp_i18n_["__"])('Block Library'),
drawer: Object(external_wp_i18n_["__"])('Navigation Sidebar')
};
function Editor(_ref) {
let {
onError
} = _ref;
const {
isInserterOpen,
isListViewOpen,
sidebarIsOpened,
settings,
entityId,
templateType,
page,
template,
templateResolved,
isNavigationOpen,
previousShortcut,
nextShortcut
} = Object(external_wp_data_["useSelect"])(select => {
const {
isInserterOpened,
isListViewOpened,
getSettings,
getEditedPostType,
getEditedPostId,
getPage,
isNavigationOpened
} = select(store);
const {
hasFinishedResolution,
getEntityRecord
} = select(external_wp_coreData_["store"]);
const postType = getEditedPostType();
const postId = getEditedPostId(); // The currently selected entity to display. Typically template or template part.
return {
isInserterOpen: isInserterOpened(),
isListViewOpen: isListViewOpened(),
sidebarIsOpened: !!select(build_module["i" /* store */]).getActiveComplementaryArea(store.name),
settings: getSettings(),
templateType: postType,
page: getPage(),
template: postId ? getEntityRecord('postType', postType, postId) : null,
templateResolved: postId ? hasFinishedResolution('getEntityRecord', ['postType', postType, postId]) : false,
entityId: postId,
isNavigationOpen: isNavigationOpened(),
previousShortcut: select(external_wp_keyboardShortcuts_["store"]).getAllShortcutKeyCombinations('core/edit-site/previous-region'),
nextShortcut: select(external_wp_keyboardShortcuts_["store"]).getAllShortcutKeyCombinations('core/edit-site/next-region')
};
}, []);
const {
setPage,
setIsInserterOpened
} = Object(external_wp_data_["useDispatch"])(store);
const [isEntitiesSavedStatesOpen, setIsEntitiesSavedStatesOpen] = Object(external_wp_element_["useState"])(false);
const openEntitiesSavedStates = Object(external_wp_element_["useCallback"])(() => setIsEntitiesSavedStatesOpen(true), []);
const closeEntitiesSavedStates = Object(external_wp_element_["useCallback"])(() => {
setIsEntitiesSavedStatesOpen(false);
}, []);
const blockContext = Object(external_wp_element_["useMemo"])(() => ({ ...(page === null || page === void 0 ? void 0 : page.context),
queryContext: [(page === null || page === void 0 ? void 0 : page.context.queryContext) || {
page: 1
}, newQueryContext => setPage({ ...page,
context: { ...(page === null || page === void 0 ? void 0 : page.context),
queryContext: { ...(page === null || page === void 0 ? void 0 : page.context.queryContext),
...newQueryContext
}
}
})]
}), [page === null || page === void 0 ? void 0 : page.context]);
Object(external_wp_element_["useEffect"])(() => {
if (isNavigationOpen) {
document.body.classList.add('is-navigation-sidebar-open');
} else {
document.body.classList.remove('is-navigation-sidebar-open');
}
}, [isNavigationOpen]); // Don't render the Editor until the settings are set and loaded
const isReady = (settings === null || settings === void 0 ? void 0 : settings.siteUrl) && templateType !== undefined && entityId !== undefined;
const secondarySidebar = () => {
if (isInserterOpen) {
return Object(external_wp_element_["createElement"])(InserterSidebar, null);
}
if (isListViewOpen) {
return Object(external_wp_element_["createElement"])(ListViewSidebar, null);
}
return null;
}; // Only announce the title once the editor is ready to prevent "Replace"
// action in <URlQueryController> from double-announcing.
useTitle(isReady && Object(external_wp_i18n_["__"])('Editor (beta)'));
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(URLQueryController, null), isReady && Object(external_wp_element_["createElement"])(external_wp_keyboardShortcuts_["ShortcutProvider"], null, Object(external_wp_element_["createElement"])(external_wp_coreData_["EntityProvider"], {
kind: "root",
type: "site"
}, Object(external_wp_element_["createElement"])(external_wp_coreData_["EntityProvider"], {
kind: "postType",
type: templateType,
id: entityId
}, Object(external_wp_element_["createElement"])(GlobalStylesProvider, null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockContextProvider"], {
value: blockContext
}, Object(external_wp_element_["createElement"])(GlobalStylesRenderer, null), Object(external_wp_element_["createElement"])(error_boundary_ErrorBoundary, {
onError: onError
}, Object(external_wp_element_["createElement"])(keyboard_shortcuts.Register, null), Object(external_wp_element_["createElement"])(SidebarComplementaryAreaFills, null), Object(external_wp_element_["createElement"])(build_module["e" /* InterfaceSkeleton */], {
labels: interfaceLabels,
secondarySidebar: secondarySidebar(),
sidebar: sidebarIsOpened && Object(external_wp_element_["createElement"])(build_module["b" /* ComplementaryArea */].Slot, {
scope: "core/edit-site"
}),
drawer: Object(external_wp_element_["createElement"])(navigation_sidebar.Slot, null),
header: Object(external_wp_element_["createElement"])(Header, {
openEntitiesSavedStates: openEntitiesSavedStates
}),
notices: Object(external_wp_element_["createElement"])(external_wp_editor_["EditorSnackbars"], null),
content: Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_editor_["EditorNotices"], null), template && Object(external_wp_element_["createElement"])(BlockEditor, {
setIsInserterOpen: setIsInserterOpened
}), templateResolved && !template && (settings === null || settings === void 0 ? void 0 : settings.siteUrl) && entityId && Object(external_wp_element_["createElement"])(external_wp_components_["Notice"], {
status: "warning",
isDismissible: false
}, Object(external_wp_i18n_["__"])("You attempted to edit an item that doesn't exist. Perhaps it was deleted?")), Object(external_wp_element_["createElement"])(keyboard_shortcuts, {
openEntitiesSavedStates: openEntitiesSavedStates
})),
actions: Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, isEntitiesSavedStatesOpen ? Object(external_wp_element_["createElement"])(external_wp_editor_["EntitiesSavedStates"], {
close: closeEntitiesSavedStates
}) : Object(external_wp_element_["createElement"])("div", {
className: "edit-site-editor__toggle-save-panel"
}, Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
variant: "secondary",
className: "edit-site-editor__toggle-save-panel-button",
onClick: openEntitiesSavedStates,
"aria-expanded": false
}, Object(external_wp_i18n_["__"])('Open save panel')))),
footer: Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockBreadcrumb"], null),
shortcuts: {
previous: previousShortcut,
next: nextShortcut
}
}), Object(external_wp_element_["createElement"])(WelcomeGuide, null), Object(external_wp_element_["createElement"])(external_wp_components_["Popover"].Slot, null), Object(external_wp_element_["createElement"])(external_wp_plugins_["PluginArea"], null))))))));
}
/* harmony default export */ var editor = (Editor);
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/list/use-register-shortcuts.js
/**
* WordPress dependencies
*/
function useRegisterShortcuts() {
const {
registerShortcut
} = Object(external_wp_data_["useDispatch"])(external_wp_keyboardShortcuts_["store"]);
Object(external_wp_element_["useEffect"])(() => {
registerShortcut({
name: 'core/edit-site/next-region',
category: 'global',
description: Object(external_wp_i18n_["__"])('Navigate to the next part of the editor.'),
keyCombination: {
modifier: 'ctrl',
character: '`'
},
aliases: [{
modifier: 'access',
character: 'n'
}]
});
registerShortcut({
name: 'core/edit-site/previous-region',
category: 'global',
description: Object(external_wp_i18n_["__"])('Navigate to the previous part of the editor.'),
keyCombination: {
modifier: 'ctrlShift',
character: '`'
},
aliases: [{
modifier: 'access',
character: 'p'
}]
});
}, []);
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/add-new-template/new-template.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const DEFAULT_TEMPLATE_SLUGS = ['front-page', 'single-post', 'page', 'archive', 'search', '404', 'index'];
function NewTemplate(_ref) {
let {
postType
} = _ref;
const history = useHistory();
const {
templates,
defaultTemplateTypes
} = Object(external_wp_data_["useSelect"])(select => ({
templates: select(external_wp_coreData_["store"]).getEntityRecords('postType', 'wp_template', {
per_page: -1
}),
defaultTemplateTypes: select(external_wp_editor_["store"]).__experimentalGetDefaultTemplateTypes()
}), []);
const {
saveEntityRecord
} = Object(external_wp_data_["useDispatch"])(external_wp_coreData_["store"]);
const {
createErrorNotice
} = Object(external_wp_data_["useDispatch"])(external_wp_notices_["store"]);
const {
getLastEntitySaveError
} = Object(external_wp_data_["useSelect"])(external_wp_coreData_["store"]);
async function createTemplate(_ref2) {
let {
slug
} = _ref2;
try {
const {
title,
description
} = Object(external_lodash_["find"])(defaultTemplateTypes, {
slug
});
const template = await saveEntityRecord('postType', 'wp_template', {
excerpt: description,
// Slugs need to be strings, so this is for template `404`
slug: slug.toString(),
status: 'publish',
title
});
const lastEntitySaveError = getLastEntitySaveError('postType', 'wp_template', template.id);
if (lastEntitySaveError) {
throw lastEntitySaveError;
} // Navigate to the created template editor.
history.push({
postId: template.id,
postType: template.type
}); // TODO: Add a success notice?
} catch (error) {
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : Object(external_wp_i18n_["__"])('An error occurred while creating the template.');
createErrorNotice(errorMessage, {
type: 'snackbar'
});
}
}
const existingTemplateSlugs = Object(external_lodash_["map"])(templates, 'slug');
const missingTemplates = Object(external_lodash_["filter"])(defaultTemplateTypes, template => Object(external_lodash_["includes"])(DEFAULT_TEMPLATE_SLUGS, template.slug) && !Object(external_lodash_["includes"])(existingTemplateSlugs, template.slug));
if (!missingTemplates.length) {
return null;
}
return Object(external_wp_element_["createElement"])(external_wp_components_["DropdownMenu"], {
className: "edit-site-new-template-dropdown",
icon: null,
text: postType.labels.add_new,
label: postType.labels.add_new_item,
popoverProps: {
noArrow: false
},
toggleProps: {
variant: 'primary'
}
}, () => Object(external_wp_element_["createElement"])(external_wp_components_["NavigableMenu"], {
className: "edit-site-new-template-dropdown__popover"
}, Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
label: postType.labels.add_new_item
}, Object(external_lodash_["map"])(missingTemplates, _ref3 => {
let {
title,
description,
slug
} = _ref3;
return Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
info: description,
key: slug,
onClick: () => {
createTemplate({
slug
}); // We will be navigated way so no need to close the dropdown.
}
}, title);
}))));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/add-new-template/new-template-part.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function NewTemplatePart(_ref) {
let {
postType
} = _ref;
const history = useHistory();
const [isModalOpen, setIsModalOpen] = Object(external_wp_element_["useState"])(false);
const {
createErrorNotice
} = Object(external_wp_data_["useDispatch"])(external_wp_notices_["store"]);
const {
saveEntityRecord
} = Object(external_wp_data_["useDispatch"])(external_wp_coreData_["store"]);
const {
getLastEntitySaveError
} = Object(external_wp_data_["useSelect"])(external_wp_coreData_["store"]);
async function createTemplatePart(_ref2) {
let {
title,
area
} = _ref2;
if (!title) {
createErrorNotice(Object(external_wp_i18n_["__"])('Title is not defined.'), {
type: 'snackbar'
});
return;
}
try {
const templatePart = await saveEntityRecord('postType', 'wp_template_part', {
slug: Object(external_lodash_["kebabCase"])(title),
title,
content: '',
area
});
const lastEntitySaveError = getLastEntitySaveError('postType', 'wp_template_part', templatePart.id);
if (lastEntitySaveError) {
throw lastEntitySaveError;
}
setIsModalOpen(false); // Navigate to the created template part editor.
history.push({
postId: templatePart.id,
postType: templatePart.type
}); // TODO: Add a success notice?
} catch (error) {
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : Object(external_wp_i18n_["__"])('An error occurred while creating the template part.');
createErrorNotice(errorMessage, {
type: 'snackbar'
});
setIsModalOpen(false);
}
}
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
variant: "primary",
onClick: () => {
setIsModalOpen(true);
}
}, postType.labels.add_new), isModalOpen && Object(external_wp_element_["createElement"])(CreateTemplatePartModal, {
closeModal: () => setIsModalOpen(false),
onCreate: createTemplatePart
}));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/add-new-template/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function AddNewTemplate(_ref) {
let {
templateType = 'wp_template'
} = _ref;
const postType = Object(external_wp_data_["useSelect"])(select => select(external_wp_coreData_["store"]).getPostType(templateType), [templateType]);
if (!postType) {
return null;
}
if (templateType === 'wp_template') {
return Object(external_wp_element_["createElement"])(NewTemplate, {
postType: postType
});
} else if (templateType === 'wp_template_part') {
return Object(external_wp_element_["createElement"])(NewTemplatePart, {
postType: postType
});
}
return null;
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/list/header.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function header_Header(_ref) {
var _postType$labels;
let {
templateType
} = _ref;
const postType = Object(external_wp_data_["useSelect"])(select => select(external_wp_coreData_["store"]).getPostType(templateType), [templateType]);
if (!postType) {
return null;
}
return Object(external_wp_element_["createElement"])("header", {
className: "edit-site-list-header"
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHeading"], {
level: 1,
className: "edit-site-list-header__title"
}, (_postType$labels = postType.labels) === null || _postType$labels === void 0 ? void 0 : _postType$labels.name), Object(external_wp_element_["createElement"])("div", {
className: "edit-site-list-header__right"
}, Object(external_wp_element_["createElement"])(AddNewTemplate, {
templateType: templateType
})));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/utils/is-template-removable.js
/**
* Check if a template is removable.
*
* @param {Object} template The template entity to check.
* @return {boolean} Whether the template is revertable.
*/
function isTemplateRemovable(template) {
if (!template) {
return false;
}
return template.source === 'custom' && !template.has_theme_file;
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/list/actions/rename-menu-item.js
/**
* WordPress dependencies
*/
function RenameMenuItem(_ref) {
let {
template,
onClose
} = _ref;
const [title, setTitle] = Object(external_wp_element_["useState"])(() => template.title.rendered);
const [isModalOpen, setIsModalOpen] = Object(external_wp_element_["useState"])(false);
const {
getLastEntitySaveError
} = Object(external_wp_data_["useSelect"])(external_wp_coreData_["store"]);
const {
editEntityRecord,
saveEditedEntityRecord
} = Object(external_wp_data_["useDispatch"])(external_wp_coreData_["store"]);
const {
createSuccessNotice,
createErrorNotice
} = Object(external_wp_data_["useDispatch"])(external_wp_notices_["store"]);
if (!template.is_custom) {
return null;
}
async function onTemplateRename(event) {
event.preventDefault();
try {
await editEntityRecord('postType', template.type, template.id, {
title
}); // Update state before saving rerenders the list.
setTitle('');
setIsModalOpen(false);
onClose(); // Persist edited entity.
await saveEditedEntityRecord('postType', template.type, template.id);
const lastError = getLastEntitySaveError('postType', template.type, template.id);
if (lastError) {
throw lastError;
}
createSuccessNotice(Object(external_wp_i18n_["__"])('Template has been renamed.'), {
type: 'snackbar'
});
} catch (error) {
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : Object(external_wp_i18n_["__"])('An error occurred while renaming the template.');
createErrorNotice(errorMessage, {
type: 'snackbar'
});
}
}
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
onClick: () => {
setIsModalOpen(true);
setTitle(template.title.rendered);
}
}, Object(external_wp_i18n_["__"])('Rename')), isModalOpen && Object(external_wp_element_["createElement"])(external_wp_components_["Modal"], {
title: Object(external_wp_i18n_["__"])('Rename template'),
closeLabel: Object(external_wp_i18n_["__"])('Close'),
onRequestClose: () => {
setIsModalOpen(false);
},
overlayClassName: "edit-site-list__rename-modal"
}, Object(external_wp_element_["createElement"])("form", {
onSubmit: onTemplateRename
}, Object(external_wp_element_["createElement"])(external_wp_components_["Flex"], {
align: "flex-start",
gap: 8
}, Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_element_["createElement"])(external_wp_components_["TextControl"], {
label: Object(external_wp_i18n_["__"])('Name'),
value: title,
onChange: setTitle,
required: true
}))), Object(external_wp_element_["createElement"])(external_wp_components_["Flex"], {
className: "edit-site-list__rename-modal-actions",
justify: "flex-end",
expanded: false
}, Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
variant: "tertiary",
onClick: () => {
setIsModalOpen(false);
}
}, Object(external_wp_i18n_["__"])('Cancel'))), Object(external_wp_element_["createElement"])(external_wp_components_["FlexItem"], null, Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
variant: "primary",
type: "submit"
}, Object(external_wp_i18n_["__"])('Save')))))));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/list/actions/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function Actions(_ref) {
let {
template
} = _ref;
const {
removeTemplate,
revertTemplate
} = Object(external_wp_data_["useDispatch"])(store);
const {
saveEditedEntityRecord
} = Object(external_wp_data_["useDispatch"])(external_wp_coreData_["store"]);
const {
createSuccessNotice,
createErrorNotice
} = Object(external_wp_data_["useDispatch"])(external_wp_notices_["store"]);
const isRemovable = isTemplateRemovable(template);
const isRevertable = isTemplateRevertable(template);
if (!isRemovable && !isRevertable) {
return null;
}
async function revertAndSaveTemplate() {
try {
await revertTemplate(template, {
allowUndo: false
});
await saveEditedEntityRecord('postType', template.type, template.id);
createSuccessNotice(Object(external_wp_i18n_["__"])('Template reverted.'), {
type: 'snackbar'
});
} catch (error) {
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : Object(external_wp_i18n_["__"])('An error occurred while reverting the template.');
createErrorNotice(errorMessage, {
type: 'snackbar'
});
}
}
return Object(external_wp_element_["createElement"])(external_wp_components_["DropdownMenu"], {
icon: more_vertical["a" /* default */],
label: Object(external_wp_i18n_["__"])('Actions'),
className: "edit-site-list-table__actions"
}, _ref2 => {
let {
onClose
} = _ref2;
return Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], null, isRemovable && Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(RenameMenuItem, {
template: template,
onClose: onClose
}), Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
isDestructive: true,
onClick: () => {
removeTemplate(template);
onClose();
}
}, Object(external_wp_i18n_["__"])('Delete template'))), isRevertable && Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
info: Object(external_wp_i18n_["__"])('Restore template to default state'),
onClick: () => {
revertAndSaveTemplate();
onClose();
}
}, Object(external_wp_i18n_["__"])('Clear customizations')));
});
}
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/plugins.js
var plugins = __webpack_require__("0Ene");
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/list/added-by.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
const TEMPLATE_POST_TYPE_NAMES = ['wp_template', 'wp_template_part'];
function CustomizedTooltip(_ref) {
let {
isCustomized,
children
} = _ref;
if (!isCustomized) {
return children;
}
return Object(external_wp_element_["createElement"])(external_wp_components_["Tooltip"], {
text: Object(external_wp_i18n_["__"])('This template has been customized')
}, children);
}
function AddedByTheme(_ref2) {
var _theme$name;
let {
slug,
isCustomized
} = _ref2;
const theme = Object(external_wp_data_["useSelect"])(select => select(external_wp_coreData_["store"]).getTheme(slug), [slug]);
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHStack"], {
alignment: "left"
}, Object(external_wp_element_["createElement"])(CustomizedTooltip, {
isCustomized: isCustomized
}, Object(external_wp_element_["createElement"])("div", {
className: classnames_default()('edit-site-list-added-by__icon', {
'is-customized': isCustomized
})
}, Object(external_wp_element_["createElement"])(external_wp_components_["Icon"], {
icon: layout["a" /* default */]
}))), Object(external_wp_element_["createElement"])("span", null, (theme === null || theme === void 0 ? void 0 : (_theme$name = theme.name) === null || _theme$name === void 0 ? void 0 : _theme$name.rendered) || slug));
}
function AddedByPlugin(_ref3) {
let {
slug,
isCustomized
} = _ref3;
const plugin = Object(external_wp_data_["useSelect"])(select => select(external_wp_coreData_["store"]).getPlugin(slug), [slug]);
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHStack"], {
alignment: "left"
}, Object(external_wp_element_["createElement"])(CustomizedTooltip, {
isCustomized: isCustomized
}, Object(external_wp_element_["createElement"])("div", {
className: "edit-site-list-added-by__icon"
}, Object(external_wp_element_["createElement"])(external_wp_components_["Icon"], {
icon: plugins["a" /* default */]
}))), Object(external_wp_element_["createElement"])("span", null, (plugin === null || plugin === void 0 ? void 0 : plugin.name) || slug));
}
function AddedByAuthor(_ref4) {
let {
id
} = _ref4;
const user = Object(external_wp_data_["useSelect"])(select => select(external_wp_coreData_["store"]).getUser(id), [id]);
const [isImageLoaded, setIsImageLoaded] = Object(external_wp_element_["useState"])(false);
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHStack"], {
alignment: "left"
}, Object(external_wp_element_["createElement"])("div", {
className: classnames_default()('edit-site-list-added-by__avatar', {
'is-loaded': isImageLoaded
})
}, Object(external_wp_element_["createElement"])("img", {
onLoad: () => setIsImageLoaded(true),
alt: "",
src: user === null || user === void 0 ? void 0 : user.avatar_urls[48]
})), Object(external_wp_element_["createElement"])("span", null, user === null || user === void 0 ? void 0 : user.nickname));
}
function AddedBySite() {
const {
name,
logoURL
} = Object(external_wp_data_["useSelect"])(select => {
var _getMedia;
const {
getEntityRecord,
getMedia
} = select(external_wp_coreData_["store"]);
const siteData = getEntityRecord('root', '__unstableBase');
return {
name: siteData.name,
logoURL: siteData !== null && siteData !== void 0 && siteData.site_logo ? (_getMedia = getMedia(siteData.site_logo)) === null || _getMedia === void 0 ? void 0 : _getMedia.source_url : undefined
};
}, []);
const [isImageLoaded, setIsImageLoaded] = Object(external_wp_element_["useState"])(false);
return Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHStack"], {
alignment: "left"
}, Object(external_wp_element_["createElement"])("div", {
className: classnames_default()('edit-site-list-added-by__avatar', {
'is-loaded': isImageLoaded
})
}, Object(external_wp_element_["createElement"])("img", {
onLoad: () => setIsImageLoaded(true),
alt: "",
src: logoURL
})), Object(external_wp_element_["createElement"])("span", null, name));
}
function AddedBy(_ref5) {
let {
templateType,
template
} = _ref5;
if (!template) {
return;
}
if (TEMPLATE_POST_TYPE_NAMES.includes(templateType)) {
// Template originally provided by a theme, but customized by a user.
// Templates originally didn't have the 'origin' field so identify
// older customized templates by checking for no origin and a 'theme'
// or 'custom' source.
if (template.has_theme_file && (template.origin === 'theme' || !template.origin && ['theme', 'custom'].includes(template.source))) {
return Object(external_wp_element_["createElement"])(AddedByTheme, {
slug: template.theme,
isCustomized: template.source === 'custom'
});
} // Template originally provided by a plugin, but customized by a user.
if (template.has_theme_file && template.origin === 'plugin') {
return Object(external_wp_element_["createElement"])(AddedByPlugin, {
slug: template.theme,
isCustomized: template.source === 'custom'
});
} // Template was created from scratch, but has no author. Author support
// was only added to templates in WordPress 5.9. Fallback to showing the
// site logo and title.
if (!template.has_theme_file && template.source === 'custom' && !template.author) {
return Object(external_wp_element_["createElement"])(AddedBySite, null);
}
} // Simply show the author for templates created from scratch that have an
// author or for any other post type.
return Object(external_wp_element_["createElement"])(AddedByAuthor, {
id: template.author
});
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/list/table.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function Table(_ref) {
let {
templateType
} = _ref;
const {
templates,
isLoading,
postType
} = Object(external_wp_data_["useSelect"])(select => {
const {
getEntityRecords,
hasFinishedResolution,
getPostType
} = select(external_wp_coreData_["store"]);
return {
templates: getEntityRecords('postType', templateType, {
per_page: -1
}),
isLoading: !hasFinishedResolution('getEntityRecords', ['postType', templateType, {
per_page: -1
}]),
postType: getPostType(templateType)
};
}, [templateType]);
if (!templates || isLoading) {
return null;
}
if (!templates.length) {
var _postType$labels, _postType$labels$name;
return Object(external_wp_element_["createElement"])("div", null, Object(external_wp_i18n_["sprintf"])( // translators: The template type name, should be either "templates" or "template parts".
Object(external_wp_i18n_["__"])('No %s found.'), postType === null || postType === void 0 ? void 0 : (_postType$labels = postType.labels) === null || _postType$labels === void 0 ? void 0 : (_postType$labels$name = _postType$labels.name) === null || _postType$labels$name === void 0 ? void 0 : _postType$labels$name.toLowerCase()));
}
return (// These explicit aria roles are needed for Safari.
// See https://developer.mozilla.org/en-US/docs/Web/CSS/display#tables
Object(external_wp_element_["createElement"])("table", {
className: "edit-site-list-table",
role: "table"
}, Object(external_wp_element_["createElement"])("thead", null, Object(external_wp_element_["createElement"])("tr", {
className: "edit-site-list-table-head",
role: "row"
}, Object(external_wp_element_["createElement"])("th", {
className: "edit-site-list-table-column",
role: "columnheader"
}, Object(external_wp_i18n_["__"])('Template')), Object(external_wp_element_["createElement"])("th", {
className: "edit-site-list-table-column",
role: "columnheader"
}, Object(external_wp_i18n_["__"])('Added by')), Object(external_wp_element_["createElement"])("th", {
className: "edit-site-list-table-column",
role: "columnheader"
}, Object(external_wp_element_["createElement"])(external_wp_components_["VisuallyHidden"], null, Object(external_wp_i18n_["__"])('Actions'))))), Object(external_wp_element_["createElement"])("tbody", null, templates.map(template => {
var _template$title;
return Object(external_wp_element_["createElement"])("tr", {
key: template.id,
className: "edit-site-list-table-row",
role: "row"
}, Object(external_wp_element_["createElement"])("td", {
className: "edit-site-list-table-column",
role: "cell"
}, Object(external_wp_element_["createElement"])(external_wp_components_["__experimentalHeading"], {
level: 4
}, Object(external_wp_element_["createElement"])(Link, {
params: {
postId: template.id,
postType: template.type
}
}, ((_template$title = template.title) === null || _template$title === void 0 ? void 0 : _template$title.rendered) || template.slug)), template.description), Object(external_wp_element_["createElement"])("td", {
className: "edit-site-list-table-column",
role: "cell"
}, Object(external_wp_element_["createElement"])(AddedBy, {
templateType: templateType,
template: template
})), Object(external_wp_element_["createElement"])("td", {
className: "edit-site-list-table-column",
role: "cell"
}, Object(external_wp_element_["createElement"])(Actions, {
template: template
})));
})))
);
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/list/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function List() {
var _postType$labels, _postType$labels2;
const {
params: {
postType: templateType
}
} = useLocation();
useRegisterShortcuts();
const {
previousShortcut,
nextShortcut,
isNavigationOpen
} = Object(external_wp_data_["useSelect"])(select => {
return {
previousShortcut: select(external_wp_keyboardShortcuts_["store"]).getAllShortcutKeyCombinations('core/edit-site/previous-region'),
nextShortcut: select(external_wp_keyboardShortcuts_["store"]).getAllShortcutKeyCombinations('core/edit-site/next-region'),
isNavigationOpen: select(store).isNavigationOpened()
};
}, []);
const postType = Object(external_wp_data_["useSelect"])(select => select(external_wp_coreData_["store"]).getPostType(templateType), [templateType]);
useTitle(postType === null || postType === void 0 ? void 0 : (_postType$labels = postType.labels) === null || _postType$labels === void 0 ? void 0 : _postType$labels.name); // `postType` could load in asynchronously. Only provide the detailed region labels if
// the postType has loaded, otherwise `InterfaceSkeleton` will fallback to the defaults.
const itemsListLabel = postType === null || postType === void 0 ? void 0 : (_postType$labels2 = postType.labels) === null || _postType$labels2 === void 0 ? void 0 : _postType$labels2.items_list;
const detailedRegionLabels = postType ? {
header: Object(external_wp_i18n_["sprintf"])( // translators: %s - the name of the page, 'Header' as in the header area of that page.
Object(external_wp_i18n_["__"])('%s - Header'), itemsListLabel),
body: Object(external_wp_i18n_["sprintf"])( // translators: %s - the name of the page, 'Content' as in the content area of that page.
Object(external_wp_i18n_["__"])('%s - Content'), itemsListLabel)
} : undefined;
return Object(external_wp_element_["createElement"])(build_module["e" /* InterfaceSkeleton */], {
className: classnames_default()('edit-site-list', {
'is-navigation-open': isNavigationOpen
}),
labels: {
drawer: Object(external_wp_i18n_["__"])('Navigation Sidebar'),
...detailedRegionLabels
},
header: Object(external_wp_element_["createElement"])(header_Header, {
templateType: templateType
}),
drawer: Object(external_wp_element_["createElement"])(navigation_sidebar.Slot, null),
notices: Object(external_wp_element_["createElement"])(external_wp_editor_["EditorSnackbars"], null),
content: Object(external_wp_element_["createElement"])(Table, {
templateType: templateType
}),
shortcuts: {
previous: previousShortcut,
next: nextShortcut
}
});
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/utils/get-is-list-page.js
/**
* Returns if the params match the list page route.
*
* @param {Object} params The search params.
* @param {string} params.postId The post ID.
* @param {string} params.postType The post type.
* @return {boolean} Is list page or not.
*/
function getIsListPage(_ref) {
let {
postId,
postType
} = _ref;
return !!(!postId && postType);
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/app/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function EditSiteApp(_ref) {
let {
reboot
} = _ref;
return Object(external_wp_element_["createElement"])(external_wp_components_["SlotFillProvider"], null, Object(external_wp_element_["createElement"])(external_wp_editor_["UnsavedChangesWarning"], null), Object(external_wp_element_["createElement"])(Routes, null, _ref2 => {
let {
params
} = _ref2;
const isListPage = getIsListPage(params);
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, isListPage ? Object(external_wp_element_["createElement"])(List, null) : Object(external_wp_element_["createElement"])(editor, {
onError: reboot
}), Object(external_wp_element_["createElement"])(navigation_sidebar // Open the navigation sidebar by default when in the list page.
, {
isDefaultOpen: !!isListPage,
activeTemplateType: isListPage ? params.postType : undefined
}));
}));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar/plugin-sidebar/index.js
/**
* WordPress dependencies
*/
/**
* Renders a sidebar when activated. The contents within the `PluginSidebar` will appear as content within the sidebar.
* It also automatically renders a corresponding `PluginSidebarMenuItem` component when `isPinnable` flag is set to `true`.
* If you wish to display the sidebar, you can with use the `PluginSidebarMoreMenuItem` component or the `wp.data.dispatch` API:
*
* ```js
* wp.data.dispatch( 'core/edit-site' ).openGeneralSidebar( 'plugin-name/sidebar-name' );
* ```
*
* @see PluginSidebarMoreMenuItem
*
* @param {Object} props Element props.
* @param {string} props.name A string identifying the sidebar. Must be unique for every sidebar registered within the scope of your plugin.
* @param {string} [props.className] An optional class name added to the sidebar body.
* @param {string} props.title Title displayed at the top of the sidebar.
* @param {boolean} [props.isPinnable=true] Whether to allow to pin sidebar to the toolbar. When set to `true` it also automatically renders a corresponding menu item.
* @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered when the sidebar is pinned to toolbar.
*
* @example
* ```js
* // Using ES5 syntax
* var __ = wp.i18n.__;
* var el = wp.element.createElement;
* var PanelBody = wp.components.PanelBody;
* var PluginSidebar = wp.editSite.PluginSidebar;
* var moreIcon = wp.element.createElement( 'svg' ); //... svg element.
*
* function MyPluginSidebar() {
* return el(
* PluginSidebar,
* {
* name: 'my-sidebar',
* title: 'My sidebar title',
* icon: moreIcon,
* },
* el(
* PanelBody,
* {},
* __( 'My sidebar content' )
* )
* );
* }
* ```
*
* @example
* ```jsx
* // Using ESNext syntax
* import { __ } from '@wordpress/i18n';
* import { PanelBody } from '@wordpress/components';
* import { PluginSidebar } from '@wordpress/edit-site';
* import { more } from '@wordpress/icons';
*
* const MyPluginSidebar = () => (
* <PluginSidebar
* name="my-sidebar"
* title="My sidebar title"
* icon={ more }
* >
* <PanelBody>
* { __( 'My sidebar content' ) }
* </PanelBody>
* </PluginSidebar>
* );
* ```
*/
function PluginSidebarEditSite(_ref) {
let {
className,
...props
} = _ref;
return Object(external_wp_element_["createElement"])(build_module["b" /* ComplementaryArea */], Object(esm_extends["a" /* default */])({
panelClassName: className,
className: "edit-site-sidebar",
scope: "core/edit-site"
}, props));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/header/plugin-sidebar-more-menu-item/index.js
/**
* WordPress dependencies
*/
/**
* Renders a menu item in `Plugins` group in `More Menu` drop down,
* and can be used to activate the corresponding `PluginSidebar` component.
* The text within the component appears as the menu item label.
*
* @param {Object} props Component props.
* @param {string} props.target A string identifying the target sidebar you wish to be activated by this menu item. Must be the same as the `name` prop you have given to that sidebar.
* @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered to the left of the menu item label.
*
* @example
* ```js
* // Using ES5 syntax
* var __ = wp.i18n.__;
* var PluginSidebarMoreMenuItem = wp.editSite.PluginSidebarMoreMenuItem;
* var moreIcon = wp.element.createElement( 'svg' ); //... svg element.
*
* function MySidebarMoreMenuItem() {
* return wp.element.createElement(
* PluginSidebarMoreMenuItem,
* {
* target: 'my-sidebar',
* icon: moreIcon,
* },
* __( 'My sidebar title' )
* )
* }
* ```
*
* @example
* ```jsx
* // Using ESNext syntax
* import { __ } from '@wordpress/i18n';
* import { PluginSidebarMoreMenuItem } from '@wordpress/edit-site';
* import { more } from '@wordpress/icons';
*
* const MySidebarMoreMenuItem = () => (
* <PluginSidebarMoreMenuItem
* target="my-sidebar"
* icon={ more }
* >
* { __( 'My sidebar title' ) }
* </PluginSidebarMoreMenuItem>
* );
* ```
*
* @return {WPComponent} The component to be rendered.
*/
function PluginSidebarMoreMenuItem(props) {
return Object(external_wp_element_["createElement"])(build_module["c" /* ComplementaryAreaMoreMenuItem */] // Menu item is marked with unstable prop for backward compatibility.
// @see https://github.com/WordPress/gutenberg/issues/14457
, Object(esm_extends["a" /* default */])({
__unstableExplicitMenuItem: true,
scope: "core/edit-site"
}, props));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/header/plugin-more-menu-item/index.js
/**
* WordPress dependencies
*/
/**
* Renders a menu item in `Plugins` group in `More Menu` drop down, and can be used to as a button or link depending on the props provided.
* The text within the component appears as the menu item label.
*
* @param {Object} props Component properties.
* @param {string} [props.href] When `href` is provided then the menu item is represented as an anchor rather than button. It corresponds to the `href` attribute of the anchor.
* @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered to the left of the menu item label.
* @param {Function} [props.onClick=noop] The callback function to be executed when the user clicks the menu item.
* @param {...*} [props.other] Any additional props are passed through to the underlying [Button](/packages/components/src/button/README.md) component.
*
* @example
* ```js
* // Using ES5 syntax
* var __ = wp.i18n.__;
* var PluginMoreMenuItem = wp.editSite.PluginMoreMenuItem;
* var moreIcon = wp.element.createElement( 'svg' ); //... svg element.
*
* function onButtonClick() {
* alert( 'Button clicked.' );
* }
*
* function MyButtonMoreMenuItem() {
* return wp.element.createElement(
* PluginMoreMenuItem,
* {
* icon: moreIcon,
* onClick: onButtonClick,
* },
* __( 'My button title' )
* );
* }
* ```
*
* @example
* ```jsx
* // Using ESNext syntax
* import { __ } from '@wordpress/i18n';
* import { PluginMoreMenuItem } from '@wordpress/edit-site';
* import { more } from '@wordpress/icons';
*
* function onButtonClick() {
* alert( 'Button clicked.' );
* }
*
* const MyButtonMoreMenuItem = () => (
* <PluginMoreMenuItem
* icon={ more }
* onClick={ onButtonClick }
* >
* { __( 'My button title' ) }
* </PluginMoreMenuItem>
* );
* ```
*
* @return {WPComponent} The component to be rendered.
*/
/* harmony default export */ var plugin_more_menu_item = (Object(external_wp_compose_["compose"])(Object(external_wp_plugins_["withPluginContext"])((context, ownProps) => {
return {
icon: ownProps.icon || context.icon,
name: 'core/edit-site/plugin-more-menu'
};
}))(build_module["a" /* ActionItem */]));
// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* Reinitializes the editor after the user chooses to reboot the editor after
* an unhandled error occurs, replacing previously mounted editor element using
* an initial state from prior to the crash.
*
* @param {Element} target DOM node in which editor is rendered.
* @param {?Object} settings Editor settings object.
*/
function reinitializeEditor(target, settings) {
// This will be a no-op if the target doesn't have any React nodes.
Object(external_wp_element_["unmountComponentAtNode"])(target);
const reboot = reinitializeEditor.bind(null, target, settings); // We dispatch actions and update the store synchronously before rendering
// so that we won't trigger unnecessary re-renders with useEffect.
{
Object(external_wp_data_["dispatch"])(store).updateSettings(settings); // Keep the defaultTemplateTypes in the core/editor settings too,
// so that they can be selected with core/editor selectors in any editor.
// This is needed because edit-site doesn't initialize with EditorProvider,
// which internally uses updateEditorSettings as well.
Object(external_wp_data_["dispatch"])(external_wp_editor_["store"]).updateEditorSettings({
defaultTemplateTypes: settings.defaultTemplateTypes,
defaultTemplatePartAreas: settings.defaultTemplatePartAreas
});
const isLandingOnListPage = getIsListPage(Object(external_wp_url_["getQueryArgs"])(window.location.href));
if (isLandingOnListPage) {
// Default the navigation panel to be opened when we're in a bigger
// screen and land in the list screen.
Object(external_wp_data_["dispatch"])(store).setIsNavigationPanelOpened(Object(external_wp_data_["select"])(external_wp_viewport_["store"]).isViewportMatch('medium'));
}
}
Object(external_wp_element_["render"])(Object(external_wp_element_["createElement"])(EditSiteApp, {
reboot: reboot
}), target);
}
/**
* Initializes the site editor screen.
*
* @param {string} id ID of the root element to render the screen in.
* @param {Object} settings Editor settings.
*/
function initializeEditor(id, settings) {
settings.__experimentalFetchLinkSuggestions = (search, searchOptions) => Object(external_wp_coreData_["__experimentalFetchLinkSuggestions"])(search, searchOptions, settings);
settings.__experimentalFetchRichUrlData = external_wp_coreData_["__experimentalFetchUrlData"];
settings.__experimentalSpotlightEntityBlocks = ['core/template-part'];
const target = document.getElementById(id);
Object(external_wp_data_["dispatch"])(external_wp_blocks_["store"]).__experimentalReapplyBlockTypeFilters();
Object(external_wp_blockLibrary_["registerCoreBlocks"])();
if (false) {}
reinitializeEditor(target, settings);
}
/***/ }),
/***/ "K2cm":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const redo = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M15.6 6.5l-1.1 1 2.9 3.3H8c-.9 0-1.7.3-2.3.9-1.4 1.5-1.4 4.2-1.4 5.6v.2h1.5v-.3c0-1.1 0-3.5 1-4.5.3-.3.7-.5 1.3-.5h9.2L14.5 15l1.1 1.1 4.6-4.6-4.6-5z"
}));
/* harmony default export */ __webpack_exports__["a"] = (redo);
/***/ }),
/***/ "K9lf":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["compose"]; }());
/***/ }),
/***/ "KEfo":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["viewport"]; }());
/***/ }),
/***/ "Mmq9":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["url"]; }());
/***/ }),
/***/ "NWDH":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const chevronDown = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
viewBox: "0 0 24 24",
xmlns: "http://www.w3.org/2000/svg"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"
}));
/* harmony default export */ __webpack_exports__["a"] = (chevronDown);
/***/ }),
/***/ "Ntru":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const undo = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M18.3 11.7c-.6-.6-1.4-.9-2.3-.9H6.7l2.9-3.3-1.1-1-4.5 5L8.5 16l1-1-2.7-2.7H16c.5 0 .9.2 1.3.5 1 1 1 3.4 1 4.5v.3h1.5v-.2c0-1.5 0-4.3-1.5-5.7z"
}));
/* harmony default export */ __webpack_exports__["a"] = (undo);
/***/ }),
/***/ "OE6V":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const symbolFilled = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-17.6 1L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z"
}));
/* harmony default export */ __webpack_exports__["a"] = (symbolFilled);
/***/ }),
/***/ "OzlF":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const listView = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
viewBox: "0 0 24 24",
xmlns: "http://www.w3.org/2000/svg"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M13.8 5.2H3v1.5h10.8V5.2zm-3.6 12v1.5H21v-1.5H10.2zm7.2-6H6.6v1.5h10.8v-1.5z"
}));
/* harmony default export */ __webpack_exports__["a"] = (listView);
/***/ }),
/***/ "Q4Sy":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const plus = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z"
}));
/* harmony default export */ __webpack_exports__["a"] = (plus);
/***/ }),
/***/ "QyPg":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["blockLibrary"]; }());
/***/ }),
/***/ "RMJe":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const check = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
}));
/* harmony default export */ __webpack_exports__["a"] = (check);
/***/ }),
/***/ "RxS6":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["keycodes"]; }());
/***/ }),
/***/ "TSYQ":
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
Copyright (c) 2018 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/* global define */
(function () {
'use strict';
var hasOwn = {}.hasOwnProperty;
function classNames() {
var classes = [];
for (var i = 0; i < arguments.length; i++) {
var arg = arguments[i];
if (!arg) continue;
var argType = typeof arg;
if (argType === 'string' || argType === 'number') {
classes.push(arg);
} else if (Array.isArray(arg)) {
if (arg.length) {
var inner = classNames.apply(null, arg);
if (inner) {
classes.push(inner);
}
}
} else if (argType === 'object') {
if (arg.toString === Object.prototype.toString) {
for (var key in arg) {
if (hasOwn.call(arg, key) && arg[key]) {
classes.push(key);
}
}
} else {
classes.push(arg.toString());
}
}
}
return classes.join(' ');
}
if ( true && module.exports) {
classNames.default = classNames;
module.exports = classNames;
} else if (true) {
// register as 'classnames', consistent with npm package name
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
return classNames;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
} else {}
}());
/***/ }),
/***/ "Tqx9":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["primitives"]; }());
/***/ }),
/***/ "TvNi":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["plugins"]; }());
/***/ }),
/***/ "U60i":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXPORTS
__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ complementary_area; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ ComplementaryAreaMoreMenuItem; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* reexport */ fullscreen_mode; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* reexport */ interface_skeleton; });
__webpack_require__.d(__webpack_exports__, "h", function() { return /* reexport */ pinned_items; });
__webpack_require__.d(__webpack_exports__, "f", function() { return /* reexport */ MoreMenuDropdown; });
__webpack_require__.d(__webpack_exports__, "g", function() { return /* reexport */ MoreMenuFeatureToggle; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ action_item; });
__webpack_require__.d(__webpack_exports__, "i", function() { return /* reexport */ store; });
// NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/store/actions.js
var actions_namespaceObject = {};
__webpack_require__.r(actions_namespaceObject);
__webpack_require__.d(actions_namespaceObject, "enableComplementaryArea", function() { return actions_enableComplementaryArea; });
__webpack_require__.d(actions_namespaceObject, "disableComplementaryArea", function() { return actions_disableComplementaryArea; });
__webpack_require__.d(actions_namespaceObject, "pinItem", function() { return actions_pinItem; });
__webpack_require__.d(actions_namespaceObject, "unpinItem", function() { return actions_unpinItem; });
__webpack_require__.d(actions_namespaceObject, "toggleFeature", function() { return actions_toggleFeature; });
__webpack_require__.d(actions_namespaceObject, "setFeatureValue", function() { return setFeatureValue; });
__webpack_require__.d(actions_namespaceObject, "setFeatureDefaults", function() { return setFeatureDefaults; });
// NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/store/selectors.js
var selectors_namespaceObject = {};
__webpack_require__.r(selectors_namespaceObject);
__webpack_require__.d(selectors_namespaceObject, "getActiveComplementaryArea", function() { return selectors_getActiveComplementaryArea; });
__webpack_require__.d(selectors_namespaceObject, "isItemPinned", function() { return selectors_isItemPinned; });
__webpack_require__.d(selectors_namespaceObject, "isFeatureActive", function() { return isFeatureActive; });
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
var esm_extends = __webpack_require__("wx14");
// EXTERNAL MODULE: external ["wp","element"]
var external_wp_element_ = __webpack_require__("GRId");
// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
// EXTERNAL MODULE: external ["wp","components"]
var external_wp_components_ = __webpack_require__("tI+e");
// EXTERNAL MODULE: external ["wp","data"]
var external_wp_data_ = __webpack_require__("1ZqX");
// EXTERNAL MODULE: external ["wp","i18n"]
var external_wp_i18n_ = __webpack_require__("l3Sj");
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js
var check = __webpack_require__("RMJe");
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/star-filled.js
var star_filled = __webpack_require__("URob");
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/star-empty.js
var star_empty = __webpack_require__("Xxwi");
// EXTERNAL MODULE: external ["wp","viewport"]
var external_wp_viewport_ = __webpack_require__("KEfo");
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js
var close_small = __webpack_require__("bWcr");
// EXTERNAL MODULE: external "lodash"
var external_lodash_ = __webpack_require__("YLtl");
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/reducer.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Reducer to keep tract of the active area per scope.
*
* @param {boolean} state Previous state.
* @param {Object} action Action object.
* @param {string} action.type Action type.
* @param {string} action.itemType Type of item.
* @param {string} action.scope Item scope.
* @param {string} action.item Item name.
*
* @return {Object} Updated state.
*/
function singleEnableItems() {
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
let {
type,
itemType,
scope,
item
} = arguments.length > 1 ? arguments[1] : undefined;
if (type !== 'SET_SINGLE_ENABLE_ITEM' || !itemType || !scope) {
return state;
}
return { ...state,
[itemType]: { ...state[itemType],
[scope]: item || null
}
};
}
/**
* Reducer keeping track of the "pinned" items per scope.
*
* @param {boolean} state Previous state.
* @param {Object} action Action object.
* @param {string} action.type Action type.
* @param {string} action.itemType Type of item.
* @param {string} action.scope Item scope.
* @param {string} action.item Item name.
* @param {boolean} action.isEnable Whether the item is pinned.
*
* @return {Object} Updated state.
*/
function multipleEnableItems() {
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
let {
type,
itemType,
scope,
item,
isEnable
} = arguments.length > 1 ? arguments[1] : undefined;
if (type !== 'SET_MULTIPLE_ENABLE_ITEM' || !itemType || !scope || !item || Object(external_lodash_["get"])(state, [itemType, scope, item]) === isEnable) {
return state;
}
const currentTypeState = state[itemType] || {};
const currentScopeState = currentTypeState[scope] || {};
return { ...state,
[itemType]: { ...currentTypeState,
[scope]: { ...currentScopeState,
[item]: isEnable || false
}
}
};
}
/**
* Reducer returning the defaults for user preferences.
*
* This is kept intentionally separate from the preferences
* themselves so that defaults are not persisted.
*
* @param {Object} state Current state.
* @param {Object} action Dispatched action.
*
* @return {Object} Updated state.
*/
const preferenceDefaults = Object(external_wp_data_["combineReducers"])({
features() {
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
let action = arguments.length > 1 ? arguments[1] : undefined;
if (action.type === 'SET_FEATURE_DEFAULTS') {
const {
scope,
defaults
} = action;
return { ...state,
[scope]: { ...state[scope],
...defaults
}
};
}
return state;
}
});
/**
* Reducer returning the user preferences.
*
* @param {Object} state Current state.
* @param {Object} action Dispatched action.
*
* @return {Object} Updated state.
*/
const preferences = Object(external_wp_data_["combineReducers"])({
features() {
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
let action = arguments.length > 1 ? arguments[1] : undefined;
if (action.type === 'SET_FEATURE_VALUE') {
const {
scope,
featureName,
value
} = action;
return { ...state,
[scope]: { ...state[scope],
[featureName]: value
}
};
}
return state;
}
});
const enableItems = Object(external_wp_data_["combineReducers"])({
singleEnableItems,
multipleEnableItems
});
/* harmony default export */ var reducer = (Object(external_wp_data_["combineReducers"])({
enableItems,
preferenceDefaults,
preferences
}));
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/actions.js
/**
* Returns an action object used in signalling that an active area should be changed.
*
* @param {string} itemType Type of item.
* @param {string} scope Item scope.
* @param {string} item Item identifier.
*
* @return {Object} Action object.
*/
function setSingleEnableItem(itemType, scope, item) {
return {
type: 'SET_SINGLE_ENABLE_ITEM',
itemType,
scope,
item
};
}
/**
* Returns an action object used in signalling that a complementary item should be enabled.
*
* @param {string} scope Complementary area scope.
* @param {string} area Area identifier.
*
* @return {Object} Action object.
*/
function actions_enableComplementaryArea(scope, area) {
return setSingleEnableItem('complementaryArea', scope, area);
}
/**
* Returns an action object used in signalling that the complementary area of a given scope should be disabled.
*
* @param {string} scope Complementary area scope.
*
* @return {Object} Action object.
*/
function actions_disableComplementaryArea(scope) {
return setSingleEnableItem('complementaryArea', scope, undefined);
}
/**
* Returns an action object to make an area enabled/disabled.
*
* @param {string} itemType Type of item.
* @param {string} scope Item scope.
* @param {string} item Item identifier.
* @param {boolean} isEnable Boolean indicating if an area should be pinned or not.
*
* @return {Object} Action object.
*/
function setMultipleEnableItem(itemType, scope, item, isEnable) {
return {
type: 'SET_MULTIPLE_ENABLE_ITEM',
itemType,
scope,
item,
isEnable
};
}
/**
* Returns an action object used in signalling that an item should be pinned.
*
* @param {string} scope Item scope.
* @param {string} itemId Item identifier.
*
* @return {Object} Action object.
*/
function actions_pinItem(scope, itemId) {
return setMultipleEnableItem('pinnedItems', scope, itemId, true);
}
/**
* Returns an action object used in signalling that an item should be unpinned.
*
* @param {string} scope Item scope.
* @param {string} itemId Item identifier.
*
* @return {Object} Action object.
*/
function actions_unpinItem(scope, itemId) {
return setMultipleEnableItem('pinnedItems', scope, itemId, false);
}
/**
* Returns an action object used in signalling that a feature should be toggled.
*
* @param {string} scope The feature scope (e.g. core/edit-post).
* @param {string} featureName The feature name.
*/
function actions_toggleFeature(scope, featureName) {
return function (_ref) {
let {
select,
dispatch
} = _ref;
const currentValue = select.isFeatureActive(scope, featureName);
dispatch.setFeatureValue(scope, featureName, !currentValue);
};
}
/**
* Returns an action object used in signalling that a feature should be set to
* a true or false value
*
* @param {string} scope The feature scope (e.g. core/edit-post).
* @param {string} featureName The feature name.
* @param {boolean} value The value to set.
*
* @return {Object} Action object.
*/
function setFeatureValue(scope, featureName, value) {
return {
type: 'SET_FEATURE_VALUE',
scope,
featureName,
value: !!value
};
}
/**
* Returns an action object used in signalling that defaults should be set for features.
*
* @param {string} scope The feature scope (e.g. core/edit-post).
* @param {Object<string, boolean>} defaults A key/value map of feature names to values.
*
* @return {Object} Action object.
*/
function setFeatureDefaults(scope, defaults) {
return {
type: 'SET_FEATURE_DEFAULTS',
scope,
defaults
};
}
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/selectors.js
/**
* External dependencies
*/
/**
* Returns the item that is enabled in a given scope.
*
* @param {Object} state Global application state.
* @param {string} itemType Type of item.
* @param {string} scope Item scope.
*
* @return {?string|null} The item that is enabled in the passed scope and type.
*/
function getSingleEnableItem(state, itemType, scope) {
return Object(external_lodash_["get"])(state.enableItems.singleEnableItems, [itemType, scope]);
}
/**
* Returns the complementary area that is active in a given scope.
*
* @param {Object} state Global application state.
* @param {string} scope Item scope.
*
* @return {string} The complementary area that is active in the given scope.
*/
function selectors_getActiveComplementaryArea(state, scope) {
return getSingleEnableItem(state, 'complementaryArea', scope);
}
/**
* Returns a boolean indicating if an item is enabled or not in a given scope.
*
* @param {Object} state Global application state.
* @param {string} itemType Type of item.
* @param {string} scope Scope.
* @param {string} item Item to check.
*
* @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.
*/
function isMultipleEnabledItemEnabled(state, itemType, scope, item) {
return Object(external_lodash_["get"])(state.enableItems.multipleEnableItems, [itemType, scope, item]);
}
/**
* Returns a boolean indicating if an item is pinned or not.
*
* @param {Object} state Global application state.
* @param {string} scope Scope.
* @param {string} item Item to check.
*
* @return {boolean} True if the item is pinned and false otherwise.
*/
function selectors_isItemPinned(state, scope, item) {
return isMultipleEnabledItemEnabled(state, 'pinnedItems', scope, item) !== false;
}
/**
* Returns a boolean indicating whether a feature is active for a particular
* scope.
*
* @param {Object} state The store state.
* @param {string} scope The scope of the feature (e.g. core/edit-post).
* @param {string} featureName The name of the feature.
*
* @return {boolean} Is the feature enabled?
*/
function isFeatureActive(state, scope, featureName) {
var _state$preferences$fe, _state$preferenceDefa;
const featureValue = (_state$preferences$fe = state.preferences.features[scope]) === null || _state$preferences$fe === void 0 ? void 0 : _state$preferences$fe[featureName];
const defaultedFeatureValue = featureValue !== undefined ? featureValue : (_state$preferenceDefa = state.preferenceDefaults.features[scope]) === null || _state$preferenceDefa === void 0 ? void 0 : _state$preferenceDefa[featureName];
return !!defaultedFeatureValue;
}
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/constants.js
/**
* The identifier for the data store.
*
* @type {string}
*/
const STORE_NAME = 'core/interface';
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* Store definition for the interface namespace.
*
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
*
* @type {Object}
*/
const store = Object(external_wp_data_["createReduxStore"])(STORE_NAME, {
reducer: reducer,
actions: actions_namespaceObject,
selectors: selectors_namespaceObject,
persist: ['enableItems', 'preferences'],
__experimentalUseThunks: true
}); // Once we build a more generic persistence plugin that works across types of stores
// we'd be able to replace this with a register call.
Object(external_wp_data_["registerStore"])(STORE_NAME, {
reducer: reducer,
actions: actions_namespaceObject,
selectors: selectors_namespaceObject,
persist: ['enableItems', 'preferences'],
__experimentalUseThunks: true
});
// EXTERNAL MODULE: external ["wp","plugins"]
var external_wp_plugins_ = __webpack_require__("TvNi");
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-context/index.js
/**
* WordPress dependencies
*/
/* harmony default export */ var complementary_area_context = (Object(external_wp_plugins_["withPluginContext"])((context, ownProps) => {
return {
icon: ownProps.icon || context.icon,
identifier: ownProps.identifier || `${context.name}/${ownProps.name}`
};
}));
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-toggle/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ComplementaryAreaToggle(_ref) {
let {
as = external_wp_components_["Button"],
scope,
identifier,
icon,
selectedIcon,
...props
} = _ref;
const ComponentToUse = as;
const isSelected = Object(external_wp_data_["useSelect"])(select => select(store).getActiveComplementaryArea(scope) === identifier, [identifier]);
const {
enableComplementaryArea,
disableComplementaryArea
} = Object(external_wp_data_["useDispatch"])(store);
return Object(external_wp_element_["createElement"])(ComponentToUse, Object(esm_extends["a" /* default */])({
icon: selectedIcon && isSelected ? selectedIcon : icon,
onClick: () => {
if (isSelected) {
disableComplementaryArea(scope);
} else {
enableComplementaryArea(scope, identifier);
}
}
}, Object(external_lodash_["omit"])(props, ['name'])));
}
/* harmony default export */ var complementary_area_toggle = (complementary_area_context(ComplementaryAreaToggle));
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-header/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const ComplementaryAreaHeader = _ref => {
let {
smallScreenTitle,
children,
className,
toggleButtonProps
} = _ref;
const toggleButton = Object(external_wp_element_["createElement"])(complementary_area_toggle, Object(esm_extends["a" /* default */])({
icon: close_small["a" /* default */]
}, toggleButtonProps));
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("div", {
className: "components-panel__header interface-complementary-area-header__small"
}, smallScreenTitle && Object(external_wp_element_["createElement"])("span", {
className: "interface-complementary-area-header__small-title"
}, smallScreenTitle), toggleButton), Object(external_wp_element_["createElement"])("div", {
className: classnames_default()('components-panel__header', 'interface-complementary-area-header', className),
tabIndex: -1
}, children, toggleButton));
};
/* harmony default export */ var complementary_area_header = (ComplementaryAreaHeader);
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/action-item/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
function ActionItemSlot(_ref) {
let {
name,
as: Component = external_wp_components_["ButtonGroup"],
fillProps = {},
bubblesVirtually,
...props
} = _ref;
return Object(external_wp_element_["createElement"])(external_wp_components_["Slot"], {
name: name,
bubblesVirtually: bubblesVirtually,
fillProps: fillProps
}, fills => {
if (Object(external_lodash_["isEmpty"])(external_wp_element_["Children"].toArray(fills))) {
return null;
} // Special handling exists for backward compatibility.
// It ensures that menu items created by plugin authors aren't
// duplicated with automatically injected menu items coming
// from pinnable plugin sidebars.
// @see https://github.com/WordPress/gutenberg/issues/14457
const initializedByPlugins = [];
external_wp_element_["Children"].forEach(fills, _ref2 => {
let {
props: {
__unstableExplicitMenuItem,
__unstableTarget
}
} = _ref2;
if (__unstableTarget && __unstableExplicitMenuItem) {
initializedByPlugins.push(__unstableTarget);
}
});
const children = external_wp_element_["Children"].map(fills, child => {
if (!child.props.__unstableExplicitMenuItem && initializedByPlugins.includes(child.props.__unstableTarget)) {
return null;
}
return child;
});
return Object(external_wp_element_["createElement"])(Component, props, children);
});
}
function ActionItem(_ref3) {
let {
name,
as: Component = external_wp_components_["Button"],
onClick,
...props
} = _ref3;
return Object(external_wp_element_["createElement"])(external_wp_components_["Fill"], {
name: name
}, _ref4 => {
let {
onClick: fpOnClick
} = _ref4;
return Object(external_wp_element_["createElement"])(Component, Object(esm_extends["a" /* default */])({
onClick: onClick || fpOnClick ? function () {
(onClick || external_lodash_["noop"])(...arguments);
(fpOnClick || external_lodash_["noop"])(...arguments);
} : undefined
}, props));
});
}
ActionItem.Slot = ActionItemSlot;
/* harmony default export */ var action_item = (ActionItem);
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-more-menu-item/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const PluginsMenuItem = props => // Menu item is marked with unstable prop for backward compatibility.
// They are removed so they don't leak to DOM elements.
// @see https://github.com/WordPress/gutenberg/issues/14457
Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], Object(external_lodash_["omit"])(props, ['__unstableExplicitMenuItem', '__unstableTarget']));
function ComplementaryAreaMoreMenuItem(_ref) {
let {
scope,
target,
__unstableExplicitMenuItem,
...props
} = _ref;
return Object(external_wp_element_["createElement"])(complementary_area_toggle, Object(esm_extends["a" /* default */])({
as: toggleProps => {
return Object(external_wp_element_["createElement"])(action_item, Object(esm_extends["a" /* default */])({
__unstableExplicitMenuItem: __unstableExplicitMenuItem,
__unstableTarget: `${scope}/${target}`,
as: PluginsMenuItem,
name: `${scope}/plugin-more-menu`
}, toggleProps));
},
role: "menuitemcheckbox",
selectedIcon: check["a" /* default */],
name: target,
scope: scope
}, props));
}
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/pinned-items/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
function PinnedItems(_ref) {
let {
scope,
...props
} = _ref;
return Object(external_wp_element_["createElement"])(external_wp_components_["Fill"], Object(esm_extends["a" /* default */])({
name: `PinnedItems/${scope}`
}, props));
}
function PinnedItemsSlot(_ref2) {
let {
scope,
className,
...props
} = _ref2;
return Object(external_wp_element_["createElement"])(external_wp_components_["Slot"], Object(esm_extends["a" /* default */])({
name: `PinnedItems/${scope}`
}, props), fills => !Object(external_lodash_["isEmpty"])(fills) && Object(external_wp_element_["createElement"])("div", {
className: classnames_default()(className, 'interface-pinned-items')
}, fills));
}
PinnedItems.Slot = PinnedItemsSlot;
/* harmony default export */ var pinned_items = (PinnedItems);
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ComplementaryAreaSlot(_ref) {
let {
scope,
...props
} = _ref;
return Object(external_wp_element_["createElement"])(external_wp_components_["Slot"], Object(esm_extends["a" /* default */])({
name: `ComplementaryArea/${scope}`
}, props));
}
function ComplementaryAreaFill(_ref2) {
let {
scope,
children,
className
} = _ref2;
return Object(external_wp_element_["createElement"])(external_wp_components_["Fill"], {
name: `ComplementaryArea/${scope}`
}, Object(external_wp_element_["createElement"])("div", {
className: className
}, children));
}
function useAdjustComplementaryListener(scope, identifier, activeArea, isActive, isSmall) {
const previousIsSmall = Object(external_wp_element_["useRef"])(false);
const shouldOpenWhenNotSmall = Object(external_wp_element_["useRef"])(false);
const {
enableComplementaryArea,
disableComplementaryArea
} = Object(external_wp_data_["useDispatch"])(store);
Object(external_wp_element_["useEffect"])(() => {
// If the complementary area is active and the editor is switching from a big to a small window size.
if (isActive && isSmall && !previousIsSmall.current) {
// Disable the complementary area.
disableComplementaryArea(scope); // Flag the complementary area to be reopened when the window size goes from small to big.
shouldOpenWhenNotSmall.current = true;
} else if ( // If there is a flag indicating the complementary area should be enabled when we go from small to big window size
// and we are going from a small to big window size.
shouldOpenWhenNotSmall.current && !isSmall && previousIsSmall.current) {
// Remove the flag indicating the complementary area should be enabled.
shouldOpenWhenNotSmall.current = false; // Enable the complementary area.
enableComplementaryArea(scope, identifier);
} else if ( // If the flag is indicating the current complementary should be reopened but another complementary area becomes active,
// remove the flag.
shouldOpenWhenNotSmall.current && activeArea && activeArea !== identifier) {
shouldOpenWhenNotSmall.current = false;
}
if (isSmall !== previousIsSmall.current) {
previousIsSmall.current = isSmall;
}
}, [isActive, isSmall, scope, identifier, activeArea]);
}
function ComplementaryArea(_ref3) {
let {
children,
className,
closeLabel = Object(external_wp_i18n_["__"])('Close plugin'),
identifier,
header,
headerClassName,
icon,
isPinnable = true,
panelClassName,
scope,
name,
smallScreenTitle,
title,
toggleShortcut,
isActiveByDefault,
showIconLabels = false
} = _ref3;
const {
isActive,
isPinned,
activeArea,
isSmall,
isLarge
} = Object(external_wp_data_["useSelect"])(select => {
const {
getActiveComplementaryArea,
isItemPinned
} = select(store);
const _activeArea = getActiveComplementaryArea(scope);
return {
isActive: _activeArea === identifier,
isPinned: isItemPinned(scope, identifier),
activeArea: _activeArea,
isSmall: select(external_wp_viewport_["store"]).isViewportMatch('< medium'),
isLarge: select(external_wp_viewport_["store"]).isViewportMatch('large')
};
}, [identifier, scope]);
useAdjustComplementaryListener(scope, identifier, activeArea, isActive, isSmall);
const {
enableComplementaryArea,
disableComplementaryArea,
pinItem,
unpinItem
} = Object(external_wp_data_["useDispatch"])(store);
Object(external_wp_element_["useEffect"])(() => {
if (isActiveByDefault && activeArea === undefined && !isSmall) {
enableComplementaryArea(scope, identifier);
}
}, [activeArea, isActiveByDefault, scope, identifier, isSmall]);
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, isPinnable && Object(external_wp_element_["createElement"])(pinned_items, {
scope: scope
}, isPinned && Object(external_wp_element_["createElement"])(complementary_area_toggle, {
scope: scope,
identifier: identifier,
isPressed: isActive && (!showIconLabels || isLarge),
"aria-expanded": isActive,
label: title,
icon: showIconLabels ? check["a" /* default */] : icon,
showTooltip: !showIconLabels,
variant: showIconLabels ? 'tertiary' : undefined
})), name && isPinnable && Object(external_wp_element_["createElement"])(ComplementaryAreaMoreMenuItem, {
target: name,
scope: scope,
icon: icon
}, title), isActive && Object(external_wp_element_["createElement"])(ComplementaryAreaFill, {
className: classnames_default()('interface-complementary-area', className),
scope: scope
}, Object(external_wp_element_["createElement"])(complementary_area_header, {
className: headerClassName,
closeLabel: closeLabel,
onClose: () => disableComplementaryArea(scope),
smallScreenTitle: smallScreenTitle,
toggleButtonProps: {
label: closeLabel,
shortcut: toggleShortcut,
scope,
identifier
}
}, header || Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("strong", null, title), isPinnable && Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
className: "interface-complementary-area__pin-unpin-item",
icon: isPinned ? star_filled["a" /* default */] : star_empty["a" /* default */],
label: isPinned ? Object(external_wp_i18n_["__"])('Unpin from toolbar') : Object(external_wp_i18n_["__"])('Pin to toolbar'),
onClick: () => (isPinned ? unpinItem : pinItem)(scope, identifier),
isPressed: isPinned,
"aria-expanded": isPinned
}))), Object(external_wp_element_["createElement"])(external_wp_components_["Panel"], {
className: panelClassName
}, children)));
}
const ComplementaryAreaWrapped = complementary_area_context(ComplementaryArea);
ComplementaryAreaWrapped.Slot = ComplementaryAreaSlot;
/* harmony default export */ var complementary_area = (ComplementaryAreaWrapped);
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/fullscreen-mode/index.js
/**
* WordPress dependencies
*/
const FullscreenMode = _ref => {
let {
isActive
} = _ref;
Object(external_wp_element_["useEffect"])(() => {
let isSticky = false; // `is-fullscreen-mode` is set in PHP as a body class by Gutenberg, and this causes
// `sticky-menu` to be applied by WordPress and prevents the admin menu being scrolled
// even if `is-fullscreen-mode` is then removed. Let's remove `sticky-menu` here as
// a consequence of the FullscreenMode setup
if (document.body.classList.contains('sticky-menu')) {
isSticky = true;
document.body.classList.remove('sticky-menu');
}
return () => {
if (isSticky) {
document.body.classList.add('sticky-menu');
}
};
}, []);
Object(external_wp_element_["useEffect"])(() => {
if (isActive) {
document.body.classList.add('is-fullscreen-mode');
} else {
document.body.classList.remove('is-fullscreen-mode');
}
return () => {
if (isActive) {
document.body.classList.remove('is-fullscreen-mode');
}
};
}, [isActive]);
return null;
};
/* harmony default export */ var fullscreen_mode = (FullscreenMode);
// EXTERNAL MODULE: external ["wp","compose"]
var external_wp_compose_ = __webpack_require__("K9lf");
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/interface-skeleton/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* WordPress dependencies
*/
function useHTMLClass(className) {
Object(external_wp_element_["useEffect"])(() => {
const element = document && document.querySelector(`html:not(.${className})`);
if (!element) {
return;
}
element.classList.toggle(className);
return () => {
element.classList.toggle(className);
};
}, [className]);
}
function InterfaceSkeleton(_ref, ref) {
let {
footer,
header,
sidebar,
secondarySidebar,
notices,
content,
drawer,
actions,
labels,
className,
shortcuts
} = _ref;
const navigateRegionsProps = Object(external_wp_components_["__unstableUseNavigateRegions"])(shortcuts);
useHTMLClass('interface-interface-skeleton__html-container');
const defaultLabels = {
/* translators: accessibility text for the nav bar landmark region. */
drawer: Object(external_wp_i18n_["__"])('Drawer'),
/* translators: accessibility text for the top bar landmark region. */
header: Object(external_wp_i18n_["__"])('Header'),
/* translators: accessibility text for the content landmark region. */
body: Object(external_wp_i18n_["__"])('Content'),
/* translators: accessibility text for the secondary sidebar landmark region. */
secondarySidebar: Object(external_wp_i18n_["__"])('Block Library'),
/* translators: accessibility text for the settings landmark region. */
sidebar: Object(external_wp_i18n_["__"])('Settings'),
/* translators: accessibility text for the publish landmark region. */
actions: Object(external_wp_i18n_["__"])('Publish'),
/* translators: accessibility text for the footer landmark region. */
footer: Object(external_wp_i18n_["__"])('Footer')
};
const mergedLabels = { ...defaultLabels,
...labels
};
return Object(external_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({}, navigateRegionsProps, {
ref: Object(external_wp_compose_["useMergeRefs"])([ref, navigateRegionsProps.ref]),
className: classnames_default()(className, 'interface-interface-skeleton', navigateRegionsProps.className, !!footer && 'has-footer')
}), !!drawer && Object(external_wp_element_["createElement"])("div", {
className: "interface-interface-skeleton__drawer",
role: "region",
"aria-label": mergedLabels.drawer,
tabIndex: "-1"
}, drawer), Object(external_wp_element_["createElement"])("div", {
className: "interface-interface-skeleton__editor"
}, !!header && Object(external_wp_element_["createElement"])("div", {
className: "interface-interface-skeleton__header",
role: "region",
"aria-label": mergedLabels.header,
tabIndex: "-1"
}, header), Object(external_wp_element_["createElement"])("div", {
className: "interface-interface-skeleton__body"
}, !!secondarySidebar && Object(external_wp_element_["createElement"])("div", {
className: "interface-interface-skeleton__secondary-sidebar",
role: "region",
"aria-label": mergedLabels.secondarySidebar,
tabIndex: "-1"
}, secondarySidebar), !!notices && Object(external_wp_element_["createElement"])("div", {
className: "interface-interface-skeleton__notices"
}, notices), Object(external_wp_element_["createElement"])("div", {
className: "interface-interface-skeleton__content",
role: "region",
"aria-label": mergedLabels.body,
tabIndex: "-1"
}, content), !!sidebar && Object(external_wp_element_["createElement"])("div", {
className: "interface-interface-skeleton__sidebar",
role: "region",
"aria-label": mergedLabels.sidebar,
tabIndex: "-1"
}, sidebar), !!actions && Object(external_wp_element_["createElement"])("div", {
className: "interface-interface-skeleton__actions",
role: "region",
"aria-label": mergedLabels.actions,
tabIndex: "-1"
}, actions))), !!footer && Object(external_wp_element_["createElement"])("div", {
className: "interface-interface-skeleton__footer",
role: "region",
"aria-label": mergedLabels.footer,
tabIndex: "-1"
}, footer));
}
/* harmony default export */ var interface_skeleton = (Object(external_wp_element_["forwardRef"])(InterfaceSkeleton));
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/more-vertical.js
var more_vertical = __webpack_require__("VKE3");
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/more-menu-dropdown/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
function MoreMenuDropdown(_ref) {
let {
as: DropdownComponent = external_wp_components_["DropdownMenu"],
className,
/* translators: button label text should, if possible, be under 16 characters. */
label = Object(external_wp_i18n_["__"])('Options'),
popoverProps,
toggleProps,
children
} = _ref;
return Object(external_wp_element_["createElement"])(DropdownComponent, {
className: classnames_default()('interface-more-menu-dropdown', className),
icon: more_vertical["a" /* default */],
label: label,
popoverProps: {
position: 'bottom left',
...popoverProps,
className: classnames_default()('interface-more-menu-dropdown__content', popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.className)
},
toggleProps: {
tooltipPosition: 'bottom',
...toggleProps
}
}, onClose => children(onClose));
}
// EXTERNAL MODULE: external ["wp","a11y"]
var external_wp_a11y_ = __webpack_require__("gdqT");
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/more-menu-feature-toggle/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function MoreMenuFeatureToggle(_ref) {
let {
scope,
label,
info,
messageActivated,
messageDeactivated,
shortcut,
feature
} = _ref;
const isActive = Object(external_wp_data_["useSelect"])(select => select(store).isFeatureActive(scope, feature), [feature]);
const {
toggleFeature
} = Object(external_wp_data_["useDispatch"])(store);
const speakMessage = () => {
if (isActive) {
Object(external_wp_a11y_["speak"])(messageDeactivated || Object(external_wp_i18n_["__"])('Feature deactivated'));
} else {
Object(external_wp_a11y_["speak"])(messageActivated || Object(external_wp_i18n_["__"])('Feature activated'));
}
};
return Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
icon: isActive && check["a" /* default */],
isSelected: isActive,
onClick: () => {
toggleFeature(scope, feature);
speakMessage();
},
role: "menuitemcheckbox",
info: info,
shortcut: shortcut
}, label);
}
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/index.js
// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/index.js
/***/ }),
/***/ "URob":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const starFilled = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "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"
}));
/* harmony default export */ __webpack_exports__["a"] = (starFilled);
/***/ }),
/***/ "VKE3":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const moreVertical = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z"
}));
/* harmony default export */ __webpack_exports__["a"] = (moreVertical);
/***/ }),
/***/ "Xxwi":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const starEmpty = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
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"
}));
/* harmony default export */ __webpack_exports__["a"] = (starEmpty);
/***/ }),
/***/ "YLtl":
/***/ (function(module, exports) {
(function() { module.exports = window["lodash"]; }());
/***/ }),
/***/ "axFQ":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["blockEditor"]; }());
/***/ }),
/***/ "bWcr":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const closeSmall = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z"
}));
/* harmony default export */ __webpack_exports__["a"] = (closeSmall);
/***/ }),
/***/ "cjQ8":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const arrowLeft = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M20 10.8H6.7l4.1-4.5-1.1-1.1-5.8 6.3 5.8 5.8 1.1-1.1-4-3.9H20z"
}));
/* harmony default export */ __webpack_exports__["a"] = (arrowLeft);
/***/ }),
/***/ "diJD":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["reusableBlocks"]; }());
/***/ }),
/***/ "g56x":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["hooks"]; }());
/***/ }),
/***/ "gdqT":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["a11y"]; }());
/***/ }),
/***/ "hF7m":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["keyboardShortcuts"]; }());
/***/ }),
/***/ "iClF":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/**
* WordPress dependencies
*/
/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */
/**
* Return an SVG icon.
*
* @param {IconProps} props icon is the SVG component to render
* size is a number specifiying the icon size in pixels
* Other props will be passed to wrapped SVG component
*
* @return {JSX.Element} Icon component
*/
function Icon(_ref) {
let {
icon,
size = 24,
...props
} = _ref;
return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["cloneElement"])(icon, {
width: size,
height: size,
...props
});
}
/* harmony default export */ __webpack_exports__["a"] = (Icon);
/***/ }),
/***/ "jSdM":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["editor"]; }());
/***/ }),
/***/ "jZUy":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["coreData"]; }());
/***/ }),
/***/ "l3Sj":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["i18n"]; }());
/***/ }),
/***/ "onLe":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["notices"]; }());
/***/ }),
/***/ "pPDe":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
var LEAF_KEY, hasWeakMap;
/**
* Arbitrary value used as key for referencing cache object in WeakMap tree.
*
* @type {Object}
*/
LEAF_KEY = {};
/**
* Whether environment supports WeakMap.
*
* @type {boolean}
*/
hasWeakMap = typeof WeakMap !== 'undefined';
/**
* Returns the first argument as the sole entry in an array.
*
* @param {*} value Value to return.
*
* @return {Array} Value returned as entry in array.
*/
function arrayOf( value ) {
return [ value ];
}
/**
* Returns true if the value passed is object-like, or false otherwise. A value
* is object-like if it can support property assignment, e.g. object or array.
*
* @param {*} value Value to test.
*
* @return {boolean} Whether value is object-like.
*/
function isObjectLike( value ) {
return !! value && 'object' === typeof value;
}
/**
* Creates and returns a new cache object.
*
* @return {Object} Cache object.
*/
function createCache() {
var cache = {
clear: function() {
cache.head = null;
},
};
return cache;
}
/**
* Returns true if entries within the two arrays are strictly equal by
* reference from a starting index.
*
* @param {Array} a First array.
* @param {Array} b Second array.
* @param {number} fromIndex Index from which to start comparison.
*
* @return {boolean} Whether arrays are shallowly equal.
*/
function isShallowEqual( a, b, fromIndex ) {
var i;
if ( a.length !== b.length ) {
return false;
}
for ( i = fromIndex; i < a.length; i++ ) {
if ( a[ i ] !== b[ i ] ) {
return false;
}
}
return true;
}
/**
* Returns a memoized selector function. The getDependants function argument is
* called before the memoized selector and is expected to return an immutable
* reference or array of references on which the selector depends for computing
* its own return value. The memoize cache is preserved only as long as those
* dependant references remain the same. If getDependants returns a different
* reference(s), the cache is cleared and the selector value regenerated.
*
* @param {Function} selector Selector function.
* @param {Function} getDependants Dependant getter returning an immutable
* reference or array of reference used in
* cache bust consideration.
*
* @return {Function} Memoized selector.
*/
/* harmony default export */ __webpack_exports__["a"] = (function( selector, getDependants ) {
var rootCache, getCache;
// Use object source as dependant if getter not provided
if ( ! getDependants ) {
getDependants = arrayOf;
}
/**
* Returns the root cache. If WeakMap is supported, this is assigned to the
* root WeakMap cache set, otherwise it is a shared instance of the default
* cache object.
*
* @return {(WeakMap|Object)} Root cache object.
*/
function getRootCache() {
return rootCache;
}
/**
* Returns the cache for a given dependants array. When possible, a WeakMap
* will be used to create a unique cache for each set of dependants. This
* is feasible due to the nature of WeakMap in allowing garbage collection
* to occur on entries where the key object is no longer referenced. Since
* WeakMap requires the key to be an object, this is only possible when the
* dependant is object-like. The root cache is created as a hierarchy where
* each top-level key is the first entry in a dependants set, the value a
* WeakMap where each key is the next dependant, and so on. This continues
* so long as the dependants are object-like. If no dependants are object-
* like, then the cache is shared across all invocations.
*
* @see isObjectLike
*
* @param {Array} dependants Selector dependants.
*
* @return {Object} Cache object.
*/
function getWeakMapCache( dependants ) {
var caches = rootCache,
isUniqueByDependants = true,
i, dependant, map, cache;
for ( i = 0; i < dependants.length; i++ ) {
dependant = dependants[ i ];
// Can only compose WeakMap from object-like key.
if ( ! isObjectLike( dependant ) ) {
isUniqueByDependants = false;
break;
}
// Does current segment of cache already have a WeakMap?
if ( caches.has( dependant ) ) {
// Traverse into nested WeakMap.
caches = caches.get( dependant );
} else {
// Create, set, and traverse into a new one.
map = new WeakMap();
caches.set( dependant, map );
caches = map;
}
}
// We use an arbitrary (but consistent) object as key for the last item
// in the WeakMap to serve as our running cache.
if ( ! caches.has( LEAF_KEY ) ) {
cache = createCache();
cache.isUniqueByDependants = isUniqueByDependants;
caches.set( LEAF_KEY, cache );
}
return caches.get( LEAF_KEY );
}
// Assign cache handler by availability of WeakMap
getCache = hasWeakMap ? getWeakMapCache : getRootCache;
/**
* Resets root memoization cache.
*/
function clear() {
rootCache = hasWeakMap ? new WeakMap() : createCache();
}
// eslint-disable-next-line jsdoc/check-param-names
/**
* The augmented selector call, considering first whether dependants have
* changed before passing it to underlying memoize function.
*
* @param {Object} source Source object for derivation.
* @param {...*} extraArgs Additional arguments to pass to selector.
*
* @return {*} Selector result.
*/
function callSelector( /* source, ...extraArgs */ ) {
var len = arguments.length,
cache, node, i, args, dependants;
// Create copy of arguments (avoid leaking deoptimization).
args = new Array( len );
for ( i = 0; i < len; i++ ) {
args[ i ] = arguments[ i ];
}
dependants = getDependants.apply( null, args );
cache = getCache( dependants );
// If not guaranteed uniqueness by dependants (primitive type or lack
// of WeakMap support), shallow compare against last dependants and, if
// references have changed, destroy cache to recalculate result.
if ( ! cache.isUniqueByDependants ) {
if ( cache.lastDependants && ! isShallowEqual( dependants, cache.lastDependants, 0 ) ) {
cache.clear();
}
cache.lastDependants = dependants;
}
node = cache.head;
while ( node ) {
// Check whether node arguments match arguments
if ( ! isShallowEqual( node.args, args, 1 ) ) {
node = node.next;
continue;
}
// At this point we can assume we've found a match
// Surface matched node to head if not already
if ( node !== cache.head ) {
// Adjust siblings to point to each other.
node.prev.next = node.next;
if ( node.next ) {
node.next.prev = node.prev;
}
node.next = cache.head;
node.prev = null;
cache.head.prev = node;
cache.head = node;
}
// Return immediately
return node.val;
}
// No cached value found. Continue to insertion phase:
node = {
// Generate the result from original function
val: selector.apply( null, args ),
};
// Avoid including the source object in the cache.
args[ 0 ] = null;
node.args = args;
// Don't need to check whether node is already head, since it would
// have been returned above already if it was
// Shift existing head down list
if ( cache.head ) {
cache.head.prev = node;
node.next = cache.head;
}
cache.head = node;
return node.val;
}
callSelector.getDependants = getDependants;
callSelector.clear = clear;
clear();
return callSelector;
});
/***/ }),
/***/ "rmEH":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["htmlEntities"]; }());
/***/ }),
/***/ "rrFr":
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;//download.js v4.2, by dandavis; 2008-2016. [MIT] see http://danml.com/download.html for tests/usage
// v1 landed a FF+Chrome compat way of downloading strings to local un-named files, upgraded to use a hidden frame and optional mime
// v2 added named files via a[download], msSaveBlob, IE (10+) support, and window.URL support for larger+faster saves than dataURLs
// v3 added dataURL and Blob Input, bind-toggle arity, and legacy dataURL fallback was improved with force-download mime and base64 support. 3.1 improved safari handling.
// v4 adds AMD/UMD, commonJS, and plain browser support
// v4.1 adds url download capability via solo URL argument (same domain/CORS only)
// v4.2 adds semantic variable names, long (over 2MB) dataURL support, and hidden by default temp anchors
// https://github.com/rndme/download
(function (root, factory) {
if (true) {
// AMD. Register as an anonymous module.
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
} else {}
}(this, function () {
return function download(data, strFileName, strMimeType) {
var self = window, // this script is only for browsers anyway...
defaultMime = "application/octet-stream", // this default mime also triggers iframe downloads
mimeType = strMimeType || defaultMime,
payload = data,
url = !strFileName && !strMimeType && payload,
anchor = document.createElement("a"),
toString = function(a){return String(a);},
myBlob = (self.Blob || self.MozBlob || self.WebKitBlob || toString),
fileName = strFileName || "download",
blob,
reader;
myBlob= myBlob.call ? myBlob.bind(self) : Blob ;
if(String(this)==="true"){ //reverse arguments, allowing download.bind(true, "text/xml", "export.xml") to act as a callback
payload=[payload, mimeType];
mimeType=payload[0];
payload=payload[1];
}
if(url && url.length< 2048){ // if no filename and no mime, assume a url was passed as the only argument
fileName = url.split("/").pop().split("?")[0];
anchor.href = url; // assign href prop to temp anchor
if(anchor.href.indexOf(url) !== -1){ // if the browser determines that it's a potentially valid url path:
var ajax=new XMLHttpRequest();
ajax.open( "GET", url, true);
ajax.responseType = 'blob';
ajax.onload= function(e){
download(e.target.response, fileName, defaultMime);
};
setTimeout(function(){ ajax.send();}, 0); // allows setting custom ajax headers using the return:
return ajax;
} // end if valid url?
} // end if url?
//go ahead and download dataURLs right away
if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(payload)){
if(payload.length > (1024*1024*1.999) && myBlob !== toString ){
payload=dataUrlToBlob(payload);
mimeType=payload.type || defaultMime;
}else{
return navigator.msSaveBlob ? // IE10 can't do a[download], only Blobs:
navigator.msSaveBlob(dataUrlToBlob(payload), fileName) :
saver(payload) ; // everyone else can save dataURLs un-processed
}
}else{//not data url, is it a string with special needs?
if(/([\x80-\xff])/.test(payload)){
var i=0, tempUiArr= new Uint8Array(payload.length), mx=tempUiArr.length;
for(i;i<mx;++i) tempUiArr[i]= payload.charCodeAt(i);
payload=new myBlob([tempUiArr], {type: mimeType});
}
}
blob = payload instanceof myBlob ?
payload :
new myBlob([payload], {type: mimeType}) ;
function dataUrlToBlob(strUrl) {
var parts= strUrl.split(/[:;,]/),
type= parts[1],
decoder= parts[2] == "base64" ? atob : decodeURIComponent,
binData= decoder( parts.pop() ),
mx= binData.length,
i= 0,
uiArr= new Uint8Array(mx);
for(i;i<mx;++i) uiArr[i]= binData.charCodeAt(i);
return new myBlob([uiArr], {type: type});
}
function saver(url, winMode){
if ('download' in anchor) { //html5 A[download]
anchor.href = url;
anchor.setAttribute("download", fileName);
anchor.className = "download-js-link";
anchor.innerHTML = "downloading...";
anchor.style.display = "none";
document.body.appendChild(anchor);
setTimeout(function() {
anchor.click();
document.body.removeChild(anchor);
if(winMode===true){setTimeout(function(){ self.URL.revokeObjectURL(anchor.href);}, 250 );}
}, 66);
return true;
}
// handle non-a[download] safari as best we can:
if(/(Version)\/(\d+)\.(\d+)(?:\.(\d+))?.*Safari\//.test(navigator.userAgent)) {
if(/^data:/.test(url)) url="data:"+url.replace(/^data:([\w\/\-\+]+)/, defaultMime);
if(!window.open(url)){ // popup blocked, offer direct download:
if(confirm("Displaying New Document\n\nUse Save As... to download, then click back to return to this page.")){ location.href=url; }
}
return true;
}
//do iframe dataURL download (old ch+FF):
var f = document.createElement("iframe");
document.body.appendChild(f);
if(!winMode && /^data:/.test(url)){ // force a mime that will download:
url="data:"+url.replace(/^data:([\w\/\-\+]+)/, defaultMime);
}
f.src=url;
setTimeout(function(){ document.body.removeChild(f); }, 333);
}//end saver
if (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL)
return navigator.msSaveBlob(blob, fileName);
}
if(self.URL){ // simple fast and modern way using Blob and URL:
saver(self.URL.createObjectURL(blob), true);
}else{
// handle non-Blob()+non-URL browsers:
if(typeof blob === "string" || blob.constructor===toString ){
try{
return saver( "data:" + mimeType + ";base64," + self.btoa(blob) );
}catch(y){
return saver( "data:" + mimeType + "," + encodeURIComponent(blob) );
}
}
// Blob but not URL support:
reader=new FileReader();
reader.onload=function(e){
saver(this.result);
};
reader.readAsDataURL(blob);
}
return true;
}; /* end download() */
}));
/***/ }),
/***/ "tI+e":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["components"]; }());
/***/ }),
/***/ "w95h":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const close = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"
}));
/* harmony default export */ __webpack_exports__["a"] = (close);
/***/ }),
/***/ "wduq":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
/**
* WordPress dependencies
*/
const wordpress = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "-2 -2 24 24"
}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
d: "M20 10c0-5.51-4.49-10-10-10C4.48 0 0 4.49 0 10c0 5.52 4.48 10 10 10 5.51 0 10-4.48 10-10zM7.78 15.37L4.37 6.22c.55-.02 1.17-.08 1.17-.08.5-.06.44-1.13-.06-1.11 0 0-1.45.11-2.37.11-.18 0-.37 0-.58-.01C4.12 2.69 6.87 1.11 10 1.11c2.33 0 4.45.87 6.05 2.34-.68-.11-1.65.39-1.65 1.58 0 .74.45 1.36.9 2.1.35.61.55 1.36.55 2.46 0 1.49-1.4 5-1.4 5l-3.03-8.37c.54-.02.82-.17.82-.17.5-.05.44-1.25-.06-1.22 0 0-1.44.12-2.38.12-.87 0-2.33-.12-2.33-.12-.5-.03-.56 1.2-.06 1.22l.92.08 1.26 3.41zM17.41 10c.24-.64.74-1.87.43-4.25.7 1.29 1.05 2.71 1.05 4.25 0 3.29-1.73 6.24-4.4 7.78.97-2.59 1.94-5.2 2.92-7.78zM6.1 18.09C3.12 16.65 1.11 13.53 1.11 10c0-1.3.23-2.48.72-3.59C3.25 10.3 4.67 14.2 6.1 18.09zm4.03-6.63l2.58 6.98c-.86.29-1.76.45-2.71.45-.79 0-1.57-.11-2.29-.33.81-2.38 1.62-4.74 2.42-7.1z"
}));
/* harmony default export */ __webpack_exports__["a"] = (wordpress);
/***/ }),
/***/ "wx14":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _extends; });
function _extends() {
_extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
return _extends.apply(this, arguments);
}
/***/ }),
/***/ "ywyh":
/***/ (function(module, exports) {
(function() { module.exports = window["wp"]["apiFetch"]; }());
/***/ })
/******/ });