| | (() => { |
| | "use strict"; |
| | var __webpack_modules__ = ({ |
| |
|
| | 7734: |
| | ((module) => { |
| |
|
| |
|
| |
|
| | |
| |
|
| |
|
| | var envHasBigInt64Array = typeof BigInt64Array !== 'undefined'; |
| |
|
| |
|
| | module.exports = function equal(a, b) { |
| | if (a === b) return true; |
| |
|
| | if (a && b && typeof a == 'object' && typeof b == 'object') { |
| | if (a.constructor !== b.constructor) return false; |
| |
|
| | var length, i, keys; |
| | if (Array.isArray(a)) { |
| | length = a.length; |
| | if (length != b.length) return false; |
| | for (i = length; i-- !== 0;) |
| | if (!equal(a[i], b[i])) return false; |
| | return true; |
| | } |
| |
|
| |
|
| | if ((a instanceof Map) && (b instanceof Map)) { |
| | if (a.size !== b.size) return false; |
| | for (i of a.entries()) |
| | if (!b.has(i[0])) return false; |
| | for (i of a.entries()) |
| | if (!equal(i[1], b.get(i[0]))) return false; |
| | return true; |
| | } |
| |
|
| | if ((a instanceof Set) && (b instanceof Set)) { |
| | if (a.size !== b.size) return false; |
| | for (i of a.entries()) |
| | if (!b.has(i[0])) return false; |
| | return true; |
| | } |
| |
|
| | if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) { |
| | length = a.length; |
| | if (length != b.length) return false; |
| | for (i = length; i-- !== 0;) |
| | if (a[i] !== b[i]) return false; |
| | return true; |
| | } |
| |
|
| |
|
| | if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; |
| | if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); |
| | if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); |
| |
|
| | keys = Object.keys(a); |
| | length = keys.length; |
| | if (length !== Object.keys(b).length) return false; |
| |
|
| | for (i = length; i-- !== 0;) |
| | if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; |
| |
|
| | for (i = length; i-- !== 0;) { |
| | var key = keys[i]; |
| |
|
| | if (!equal(a[key], b[key])) return false; |
| | } |
| |
|
| | return true; |
| | } |
| |
|
| | |
| | return a!==a && b!==b; |
| | }; |
| |
|
| |
|
| | }) |
| |
|
| | }); |
| | |
| | |
| | var __webpack_module_cache__ = {}; |
| | |
| | |
| | function __webpack_require__(moduleId) { |
| | |
| | var cachedModule = __webpack_module_cache__[moduleId]; |
| | if (cachedModule !== undefined) { |
| | return cachedModule.exports; |
| | } |
| | |
| | var module = __webpack_module_cache__[moduleId] = { |
| | |
| | |
| | exports: {} |
| | }; |
| | |
| | |
| | __webpack_modules__[moduleId](module, module.exports, __webpack_require__); |
| | |
| | |
| | return module.exports; |
| | } |
| | |
| | |
| | |
| | (() => { |
| | |
| | __webpack_require__.n = (module) => { |
| | var getter = module && module.__esModule ? |
| | () => (module['default']) : |
| | () => (module); |
| | __webpack_require__.d(getter, { a: getter }); |
| | return getter; |
| | }; |
| | })(); |
| | |
| | |
| | (() => { |
| | |
| | __webpack_require__.d = (exports, definition) => { |
| | for(var key in definition) { |
| | if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { |
| | Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); |
| | } |
| | } |
| | }; |
| | })(); |
| | |
| | |
| | (() => { |
| | __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) |
| | })(); |
| | |
| | |
| | (() => { |
| | |
| | __webpack_require__.r = (exports) => { |
| | if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { |
| | Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); |
| | } |
| | Object.defineProperty(exports, '__esModule', { value: true }); |
| | }; |
| | })(); |
| | |
| | |
| | var __webpack_exports__ = {}; |
| | |
| | (() => { |
| | |
| | __webpack_require__.r(__webpack_exports__); |
| |
|
| | |
| | __webpack_require__.d(__webpack_exports__, { |
| | initialize: () => ( initialize), |
| | store: () => ( store) |
| | }); |
| |
|
| | |
| | var selectors_namespaceObject = {}; |
| | __webpack_require__.r(selectors_namespaceObject); |
| | __webpack_require__.d(selectors_namespaceObject, { |
| | __experimentalGetInsertionPoint: () => (__experimentalGetInsertionPoint), |
| | isInserterOpened: () => (isInserterOpened) |
| | }); |
| |
|
| | |
| | var actions_namespaceObject = {}; |
| | __webpack_require__.r(actions_namespaceObject); |
| | __webpack_require__.d(actions_namespaceObject, { |
| | setIsInserterOpened: () => (setIsInserterOpened) |
| | }); |
| |
|
| | ; |
| | const external_wp_element_namespaceObject = window["wp"]["element"]; |
| | ; |
| | const external_wp_blockLibrary_namespaceObject = window["wp"]["blockLibrary"]; |
| | ; |
| | const external_wp_widgets_namespaceObject = window["wp"]["widgets"]; |
| | ; |
| | const external_wp_blocks_namespaceObject = window["wp"]["blocks"]; |
| | ; |
| | const external_wp_data_namespaceObject = window["wp"]["data"]; |
| | ; |
| | const external_wp_preferences_namespaceObject = window["wp"]["preferences"]; |
| | ; |
| | const external_wp_components_namespaceObject = window["wp"]["components"]; |
| | ; |
| | const external_wp_i18n_namespaceObject = window["wp"]["i18n"]; |
| | ; |
| | const external_wp_blockEditor_namespaceObject = window["wp"]["blockEditor"]; |
| | ; |
| | const external_wp_compose_namespaceObject = window["wp"]["compose"]; |
| | ; |
| | const external_wp_hooks_namespaceObject = window["wp"]["hooks"]; |
| | ; |
| | const external_ReactJSXRuntime_namespaceObject = window["ReactJSXRuntime"]; |
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | function CopyButton({ |
| | text, |
| | children |
| | }) { |
| | const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(text); |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, { |
| | variant: "secondary", |
| | ref: ref, |
| | children: children |
| | }); |
| | } |
| | class ErrorBoundary extends external_wp_element_namespaceObject.Component { |
| | constructor() { |
| | super(...arguments); |
| | this.state = { |
| | error: null |
| | }; |
| | } |
| | componentDidCatch(error) { |
| | this.setState({ |
| | error |
| | }); |
| | (0,external_wp_hooks_namespaceObject.doAction)('editor.ErrorBoundary.errorLogged', error); |
| | } |
| | render() { |
| | const { |
| | error |
| | } = this.state; |
| | if (!error) { |
| | return this.props.children; |
| | } |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, { |
| | className: "customize-widgets-error-boundary", |
| | actions: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(CopyButton, { |
| | text: error.stack, |
| | children: (0,external_wp_i18n_namespaceObject.__)('Copy Error') |
| | }, "copy-error")], |
| | children: (0,external_wp_i18n_namespaceObject.__)('The editor has encountered an unexpected error.') |
| | }); |
| | } |
| | } |
| |
|
| | ; |
| | const external_wp_coreData_namespaceObject = window["wp"]["coreData"]; |
| | ; |
| | const external_wp_mediaUtils_namespaceObject = window["wp"]["mediaUtils"]; |
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | function BlockInspectorButton({ |
| | inspector, |
| | closeMenu, |
| | ...props |
| | }) { |
| | const selectedBlockClientId = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSelectedBlockClientId(), []); |
| | const selectedBlock = (0,external_wp_element_namespaceObject.useMemo)(() => document.getElementById(`block-${selectedBlockClientId}`), [selectedBlockClientId]); |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, { |
| | onClick: () => { |
| | |
| | inspector.open({ |
| | returnFocusWhenClose: selectedBlock |
| | }); |
| | |
| | closeMenu(); |
| | }, |
| | ...props, |
| | children: (0,external_wp_i18n_namespaceObject.__)('Show more settings') |
| | }); |
| | } |
| | const block_inspector_button = (BlockInspectorButton); |
| |
|
| | ; |
| | function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f)}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n} const dist_clsx = (clsx); |
| | ; |
| | const external_wp_keycodes_namespaceObject = window["wp"]["keycodes"]; |
| | ; |
| | const external_wp_primitives_namespaceObject = window["wp"]["primitives"]; |
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | const undo = (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, { |
| | xmlns: "http://www.w3.org/2000/svg", |
| | viewBox: "0 0 24 24", |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, { |
| | d: "M18.3 11.7c-.6-.6-1.4-.9-2.3-.9H6.7l2.9-3.3-1.1-1-4.5 5L8.5 16l1-1-2.7-2.7H16c.5 0 .9.2 1.3.5 1 1 1 3.4 1 4.5v.3h1.5v-.2c0-1.5 0-4.3-1.5-5.7z" |
| | }) |
| | }); |
| | const library_undo = (undo); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | const redo = (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, { |
| | xmlns: "http://www.w3.org/2000/svg", |
| | viewBox: "0 0 24 24", |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, { |
| | d: "M15.6 6.5l-1.1 1 2.9 3.3H8c-.9 0-1.7.3-2.3.9-1.4 1.5-1.4 4.2-1.4 5.6v.2h1.5v-.3c0-1.1 0-3.5 1-4.5.3-.3.7-.5 1.3-.5h9.2L14.5 15l1.1 1.1 4.6-4.6-4.6-5z" |
| | }) |
| | }); |
| | const library_redo = (redo); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | const plus = (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, { |
| | xmlns: "http://www.w3.org/2000/svg", |
| | viewBox: "0 0 24 24", |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, { |
| | d: "M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z" |
| | }) |
| | }); |
| | const library_plus = (plus); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | const closeSmall = (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, { |
| | xmlns: "http://www.w3.org/2000/svg", |
| | viewBox: "0 0 24 24", |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, { |
| | d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z" |
| | }) |
| | }); |
| | const close_small = (closeSmall); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | function blockInserterPanel(state = false, action) { |
| | switch (action.type) { |
| | case 'SET_IS_INSERTER_OPENED': |
| | return action.value; |
| | } |
| | return state; |
| | } |
| | const reducer = ((0,external_wp_data_namespaceObject.combineReducers)({ |
| | blockInserterPanel |
| | })); |
| |
|
| | ; |
| | const EMPTY_INSERTION_POINT = { |
| | rootClientId: undefined, |
| | insertionIndex: undefined |
| | }; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | function isInserterOpened(state) { |
| | return !!state.blockInserterPanel; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | function __experimentalGetInsertionPoint(state) { |
| | if (typeof state.blockInserterPanel === 'boolean') { |
| | return EMPTY_INSERTION_POINT; |
| | } |
| | return state.blockInserterPanel; |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | function setIsInserterOpened(value) { |
| | return { |
| | type: 'SET_IS_INSERTER_OPENED', |
| | value |
| | }; |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| | const STORE_NAME = 'core/customize-widgets'; |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | const storeConfig = { |
| | reducer: reducer, |
| | selectors: selectors_namespaceObject, |
| | actions: actions_namespaceObject |
| | }; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | const store = (0,external_wp_data_namespaceObject.createReduxStore)(STORE_NAME, storeConfig); |
| | (0,external_wp_data_namespaceObject.register)(store); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| |
|
| | function Inserter({ |
| | setIsOpened |
| | }) { |
| | const inserterTitleId = (0,external_wp_compose_namespaceObject.useInstanceId)(Inserter, 'customize-widget-layout__inserter-panel-title'); |
| | const insertionPoint = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).__experimentalGetInsertionPoint(), []); |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", { |
| | className: "customize-widgets-layout__inserter-panel", |
| | "aria-labelledby": inserterTitleId, |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", { |
| | className: "customize-widgets-layout__inserter-panel-header", |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", { |
| | id: inserterTitleId, |
| | className: "customize-widgets-layout__inserter-panel-header-title", |
| | children: (0,external_wp_i18n_namespaceObject.__)('Add a block') |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, { |
| | className: "customize-widgets-layout__inserter-panel-header-close-button", |
| | icon: close_small, |
| | onClick: () => setIsOpened(false), |
| | "aria-label": (0,external_wp_i18n_namespaceObject.__)('Close inserter') |
| | })] |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)("div", { |
| | className: "customize-widgets-layout__inserter-panel-content", |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalLibrary, { |
| | rootClientId: insertionPoint.rootClientId, |
| | __experimentalInsertionIndex: insertionPoint.insertionIndex, |
| | showInserterHelpPanel: true, |
| | onSelect: () => setIsOpened(false) |
| | }) |
| | })] |
| | }); |
| | } |
| | const components_inserter = (Inserter); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | const moreVertical = (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, { |
| | xmlns: "http://www.w3.org/2000/svg", |
| | viewBox: "0 0 24 24", |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, { |
| | d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z" |
| | }) |
| | }); |
| | const more_vertical = (moreVertical); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | const external = (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, { |
| | xmlns: "http://www.w3.org/2000/svg", |
| | viewBox: "0 0 24 24", |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, { |
| | d: "M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z" |
| | }) |
| | }); |
| | const library_external = (external); |
| |
|
| | ; |
| | const external_wp_keyboardShortcuts_namespaceObject = window["wp"]["keyboardShortcuts"]; |
| | ; |
| | |
| | |
| | |
| |
|
| | const textFormattingShortcuts = [{ |
| | keyCombination: { |
| | modifier: 'primary', |
| | character: 'b' |
| | }, |
| | description: (0,external_wp_i18n_namespaceObject.__)('Make the selected text bold.') |
| | }, { |
| | keyCombination: { |
| | modifier: 'primary', |
| | character: 'i' |
| | }, |
| | description: (0,external_wp_i18n_namespaceObject.__)('Make the selected text italic.') |
| | }, { |
| | keyCombination: { |
| | modifier: 'primary', |
| | character: 'k' |
| | }, |
| | description: (0,external_wp_i18n_namespaceObject.__)('Convert the selected text into a link.') |
| | }, { |
| | keyCombination: { |
| | modifier: 'primaryShift', |
| | character: 'k' |
| | }, |
| | description: (0,external_wp_i18n_namespaceObject.__)('Remove a link.') |
| | }, { |
| | keyCombination: { |
| | character: '[[' |
| | }, |
| | description: (0,external_wp_i18n_namespaceObject.__)('Insert a link to a post or page.') |
| | }, { |
| | keyCombination: { |
| | modifier: 'primary', |
| | character: 'u' |
| | }, |
| | description: (0,external_wp_i18n_namespaceObject.__)('Underline the selected text.') |
| | }, { |
| | keyCombination: { |
| | modifier: 'access', |
| | character: 'd' |
| | }, |
| | description: (0,external_wp_i18n_namespaceObject.__)('Strikethrough the selected text.') |
| | }, { |
| | keyCombination: { |
| | modifier: 'access', |
| | character: 'x' |
| | }, |
| | description: (0,external_wp_i18n_namespaceObject.__)('Make the selected text inline code.') |
| | }, { |
| | keyCombination: { |
| | modifier: 'access', |
| | character: '0' |
| | }, |
| | aliases: [{ |
| | modifier: 'access', |
| | character: '7' |
| | }], |
| | description: (0,external_wp_i18n_namespaceObject.__)('Convert the current heading to a paragraph.') |
| | }, { |
| | keyCombination: { |
| | modifier: 'access', |
| | character: '1-6' |
| | }, |
| | description: (0,external_wp_i18n_namespaceObject.__)('Convert the current paragraph or heading to a heading of level 1 to 6.') |
| | }, { |
| | keyCombination: { |
| | modifier: 'primaryShift', |
| | character: 'SPACE' |
| | }, |
| | description: (0,external_wp_i18n_namespaceObject.__)('Add non breaking space.') |
| | }]; |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| | function KeyCombination({ |
| | keyCombination, |
| | forceAriaLabel |
| | }) { |
| | const shortcut = keyCombination.modifier ? external_wp_keycodes_namespaceObject.displayShortcutList[keyCombination.modifier](keyCombination.character) : keyCombination.character; |
| | const ariaLabel = keyCombination.modifier ? external_wp_keycodes_namespaceObject.shortcutAriaLabel[keyCombination.modifier](keyCombination.character) : keyCombination.character; |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)("kbd", { |
| | className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination", |
| | "aria-label": forceAriaLabel || ariaLabel, |
| | children: (Array.isArray(shortcut) ? shortcut : [shortcut]).map((character, index) => { |
| | if (character === '+') { |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.Fragment, { |
| | children: character |
| | }, index); |
| | } |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)("kbd", { |
| | className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key", |
| | children: character |
| | }, index); |
| | }) |
| | }); |
| | } |
| | function Shortcut({ |
| | description, |
| | keyCombination, |
| | aliases = [], |
| | ariaLabel |
| | }) { |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", { |
| | className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-description", |
| | children: description |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", { |
| | className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-term", |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(KeyCombination, { |
| | keyCombination: keyCombination, |
| | forceAriaLabel: ariaLabel |
| | }), aliases.map((alias, index) => (0,external_ReactJSXRuntime_namespaceObject.jsx)(KeyCombination, { |
| | keyCombination: alias, |
| | forceAriaLabel: ariaLabel |
| | }, index))] |
| | })] |
| | }); |
| | } |
| | const keyboard_shortcut_help_modal_shortcut = (Shortcut); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| | function DynamicShortcut({ |
| | name |
| | }) { |
| | const { |
| | keyCombination, |
| | description, |
| | aliases |
| | } = (0,external_wp_data_namespaceObject.useSelect)(select => { |
| | const { |
| | getShortcutKeyCombination, |
| | getShortcutDescription, |
| | getShortcutAliases |
| | } = select(external_wp_keyboardShortcuts_namespaceObject.store); |
| | return { |
| | keyCombination: getShortcutKeyCombination(name), |
| | aliases: getShortcutAliases(name), |
| | description: getShortcutDescription(name) |
| | }; |
| | }, [name]); |
| | if (!keyCombination) { |
| | return null; |
| | } |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)(keyboard_shortcut_help_modal_shortcut, { |
| | keyCombination: keyCombination, |
| | description: description, |
| | aliases: aliases |
| | }); |
| | } |
| | const dynamic_shortcut = (DynamicShortcut); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| | const ShortcutList = ({ |
| | shortcuts |
| | }) => |
| | |
| | |
| | |
| | |
| | |
| | |
| | (0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", { |
| | className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-list", |
| | role: "list", |
| | children: shortcuts.map((shortcut, index) => (0,external_ReactJSXRuntime_namespaceObject.jsx)("li", { |
| | className: "customize-widgets-keyboard-shortcut-help-modal__shortcut", |
| | children: typeof shortcut === 'string' ? (0,external_ReactJSXRuntime_namespaceObject.jsx)(dynamic_shortcut, { |
| | name: shortcut |
| | }) : (0,external_ReactJSXRuntime_namespaceObject.jsx)(keyboard_shortcut_help_modal_shortcut, { |
| | ...shortcut |
| | }) |
| | }, index)) |
| | }) |
| | ; |
| | const ShortcutSection = ({ |
| | title, |
| | shortcuts, |
| | className |
| | }) => (0,external_ReactJSXRuntime_namespaceObject.jsxs)("section", { |
| | className: dist_clsx('customize-widgets-keyboard-shortcut-help-modal__section', className), |
| | children: [!!title && (0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", { |
| | className: "customize-widgets-keyboard-shortcut-help-modal__section-title", |
| | children: title |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutList, { |
| | shortcuts: shortcuts |
| | })] |
| | }); |
| | const ShortcutCategorySection = ({ |
| | title, |
| | categoryName, |
| | additionalShortcuts = [] |
| | }) => { |
| | const categoryShortcuts = (0,external_wp_data_namespaceObject.useSelect)(select => { |
| | return select(external_wp_keyboardShortcuts_namespaceObject.store).getCategoryShortcuts(categoryName); |
| | }, [categoryName]); |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutSection, { |
| | title: title, |
| | shortcuts: categoryShortcuts.concat(additionalShortcuts) |
| | }); |
| | }; |
| | function KeyboardShortcutHelpModal({ |
| | isModalActive, |
| | toggleModal |
| | }) { |
| | const { |
| | registerShortcut |
| | } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_keyboardShortcuts_namespaceObject.store); |
| | registerShortcut({ |
| | name: 'core/customize-widgets/keyboard-shortcuts', |
| | category: 'main', |
| | description: (0,external_wp_i18n_namespaceObject.__)('Display these keyboard shortcuts.'), |
| | keyCombination: { |
| | modifier: 'access', |
| | character: 'h' |
| | } |
| | }); |
| | (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/customize-widgets/keyboard-shortcuts', toggleModal); |
| | if (!isModalActive) { |
| | return null; |
| | } |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Modal, { |
| | className: "customize-widgets-keyboard-shortcut-help-modal", |
| | title: (0,external_wp_i18n_namespaceObject.__)('Keyboard shortcuts'), |
| | onRequestClose: toggleModal, |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutSection, { |
| | className: "customize-widgets-keyboard-shortcut-help-modal__main-shortcuts", |
| | shortcuts: ['core/customize-widgets/keyboard-shortcuts'] |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutCategorySection, { |
| | title: (0,external_wp_i18n_namespaceObject.__)('Global shortcuts'), |
| | categoryName: "global" |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutCategorySection, { |
| | title: (0,external_wp_i18n_namespaceObject.__)('Selection shortcuts'), |
| | categoryName: "selection" |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutCategorySection, { |
| | title: (0,external_wp_i18n_namespaceObject.__)('Block shortcuts'), |
| | categoryName: "block", |
| | additionalShortcuts: [{ |
| | keyCombination: { |
| | character: '/' |
| | }, |
| | description: (0,external_wp_i18n_namespaceObject.__)('Change the block type after adding a new paragraph.'), |
| | |
| | ariaLabel: (0,external_wp_i18n_namespaceObject.__)('Forward-slash') |
| | }] |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutSection, { |
| | title: (0,external_wp_i18n_namespaceObject.__)('Text formatting'), |
| | shortcuts: textFormattingShortcuts |
| | })] |
| | }); |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| | function MoreMenu() { |
| | const [isKeyboardShortcutsModalActive, setIsKeyboardShortcutsModalVisible] = (0,external_wp_element_namespaceObject.useState)(false); |
| | const toggleKeyboardShortcutsModal = () => setIsKeyboardShortcutsModalVisible(!isKeyboardShortcutsModalActive); |
| | (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/customize-widgets/keyboard-shortcuts', toggleKeyboardShortcutsModal); |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, { |
| | icon: more_vertical, |
| | label: (0,external_wp_i18n_namespaceObject.__)('Options'), |
| | popoverProps: { |
| | placement: 'bottom-end', |
| | className: 'more-menu-dropdown__content' |
| | }, |
| | toggleProps: { |
| | tooltipPosition: 'bottom', |
| | size: 'compact' |
| | }, |
| | children: () => (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, { |
| | label: (0,external_wp_i18n_namespaceObject._x)('View', 'noun'), |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, { |
| | scope: "core/customize-widgets", |
| | name: "fixedToolbar", |
| | label: (0,external_wp_i18n_namespaceObject.__)('Top toolbar'), |
| | info: (0,external_wp_i18n_namespaceObject.__)('Access all block and document tools in a single place'), |
| | messageActivated: (0,external_wp_i18n_namespaceObject.__)('Top toolbar activated'), |
| | messageDeactivated: (0,external_wp_i18n_namespaceObject.__)('Top toolbar deactivated') |
| | }) |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuGroup, { |
| | label: (0,external_wp_i18n_namespaceObject.__)('Tools'), |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, { |
| | onClick: () => { |
| | setIsKeyboardShortcutsModalVisible(true); |
| | }, |
| | shortcut: external_wp_keycodes_namespaceObject.displayShortcut.access('h'), |
| | children: (0,external_wp_i18n_namespaceObject.__)('Keyboard shortcuts') |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, { |
| | scope: "core/customize-widgets", |
| | name: "welcomeGuide", |
| | label: (0,external_wp_i18n_namespaceObject.__)('Welcome Guide') |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuItem, { |
| | role: "menuitem", |
| | icon: library_external, |
| | href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/block-based-widgets-editor/'), |
| | target: "_blank", |
| | rel: "noopener noreferrer", |
| | children: [(0,external_wp_i18n_namespaceObject.__)('Help'), (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, { |
| | as: "span", |
| | children: |
| | (0,external_wp_i18n_namespaceObject.__)('(opens in a new tab)') |
| | })] |
| | })] |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, { |
| | label: (0,external_wp_i18n_namespaceObject.__)('Preferences'), |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, { |
| | scope: "core/customize-widgets", |
| | name: "keepCaretInsideBlock", |
| | label: (0,external_wp_i18n_namespaceObject.__)('Contain text cursor inside block'), |
| | info: (0,external_wp_i18n_namespaceObject.__)('Aids screen readers by stopping text caret from leaving blocks.'), |
| | messageActivated: (0,external_wp_i18n_namespaceObject.__)('Contain text cursor inside block activated'), |
| | messageDeactivated: (0,external_wp_i18n_namespaceObject.__)('Contain text cursor inside block deactivated') |
| | }) |
| | })] |
| | }) |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(KeyboardShortcutHelpModal, { |
| | isModalActive: isKeyboardShortcutsModalActive, |
| | toggleModal: toggleKeyboardShortcutsModal |
| | })] |
| | }); |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| | function Header({ |
| | sidebar, |
| | inserter, |
| | isInserterOpened, |
| | setIsInserterOpened, |
| | isFixedToolbarActive |
| | }) { |
| | const [[hasUndo, hasRedo], setUndoRedo] = (0,external_wp_element_namespaceObject.useState)([sidebar.hasUndo(), sidebar.hasRedo()]); |
| | const shortcut = (0,external_wp_keycodes_namespaceObject.isAppleOS)() ? external_wp_keycodes_namespaceObject.displayShortcut.primaryShift('z') : external_wp_keycodes_namespaceObject.displayShortcut.primary('y'); |
| | (0,external_wp_element_namespaceObject.useEffect)(() => { |
| | return sidebar.subscribeHistory(() => { |
| | setUndoRedo([sidebar.hasUndo(), sidebar.hasRedo()]); |
| | }); |
| | }, [sidebar]); |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", { |
| | className: dist_clsx('customize-widgets-header', { |
| | 'is-fixed-toolbar-active': isFixedToolbarActive |
| | }), |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.NavigableToolbar, { |
| | className: "customize-widgets-header-toolbar", |
| | "aria-label": (0,external_wp_i18n_namespaceObject.__)('Document tools'), |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, { |
| | icon: !(0,external_wp_i18n_namespaceObject.isRTL)() ? library_undo : library_redo |
| | , |
| | label: (0,external_wp_i18n_namespaceObject.__)('Undo'), |
| | shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('z') |
| | |
| | |
| | |
| | , |
| | "aria-disabled": !hasUndo, |
| | onClick: sidebar.undo, |
| | className: "customize-widgets-editor-history-button undo-button" |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, { |
| | icon: !(0,external_wp_i18n_namespaceObject.isRTL)() ? library_redo : library_undo |
| | , |
| | label: (0,external_wp_i18n_namespaceObject.__)('Redo'), |
| | shortcut: shortcut |
| | |
| | |
| | |
| | , |
| | "aria-disabled": !hasRedo, |
| | onClick: sidebar.redo, |
| | className: "customize-widgets-editor-history-button redo-button" |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, { |
| | className: "customize-widgets-header-toolbar__inserter-toggle", |
| | isPressed: isInserterOpened, |
| | variant: "primary", |
| | icon: library_plus, |
| | label: (0,external_wp_i18n_namespaceObject._x)('Add block', 'Generic label for block inserter button'), |
| | onClick: () => { |
| | setIsInserterOpened(isOpen => !isOpen); |
| | } |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(MoreMenu, {})] |
| | }) |
| | }), (0,external_wp_element_namespaceObject.createPortal)( (0,external_ReactJSXRuntime_namespaceObject.jsx)(components_inserter, { |
| | setIsOpened: setIsInserterOpened |
| | }), inserter.contentContainer[0])] |
| | }); |
| | } |
| | const header = (Header); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| | |
| | |
| | |
| |
|
| | function useInserter(inserter) { |
| | const isInserterOpened = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).isInserterOpened(), []); |
| | const { |
| | setIsInserterOpened |
| | } = (0,external_wp_data_namespaceObject.useDispatch)(store); |
| | (0,external_wp_element_namespaceObject.useEffect)(() => { |
| | if (isInserterOpened) { |
| | inserter.open(); |
| | } else { |
| | inserter.close(); |
| | } |
| | }, [inserter, isInserterOpened]); |
| | return [isInserterOpened, (0,external_wp_element_namespaceObject.useCallback)(updater => { |
| | let isOpen = updater; |
| | if (typeof updater === 'function') { |
| | isOpen = updater((0,external_wp_data_namespaceObject.select)(store).isInserterOpened()); |
| | } |
| | setIsInserterOpened(isOpen); |
| | }, [setIsInserterOpened])]; |
| | } |
| |
|
| | |
| | var es6 = __webpack_require__(7734); |
| | var es6_default = __webpack_require__.n(es6); |
| | ; |
| | const external_wp_isShallowEqual_namespaceObject = window["wp"]["isShallowEqual"]; |
| | var external_wp_isShallowEqual_default = __webpack_require__.n(external_wp_isShallowEqual_namespaceObject); |
| | ; |
| | |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | function settingIdToWidgetId(settingId) { |
| | const matches = settingId.match(/^widget_(.+)(?:\[(\d+)\])$/); |
| | if (matches) { |
| | const idBase = matches[1]; |
| | const number = parseInt(matches[2], 10); |
| | return `${idBase}-${number}`; |
| | } |
| | return settingId; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | function blockToWidget(block, existingWidget = null) { |
| | let widget; |
| | const isValidLegacyWidgetBlock = block.name === 'core/legacy-widget' && (block.attributes.id || block.attributes.instance); |
| | if (isValidLegacyWidgetBlock) { |
| | if (block.attributes.id) { |
| | |
| | widget = { |
| | id: block.attributes.id |
| | }; |
| | } else { |
| | const { |
| | encoded, |
| | hash, |
| | raw, |
| | ...rest |
| | } = block.attributes.instance; |
| |
|
| | |
| | widget = { |
| | idBase: block.attributes.idBase, |
| | instance: { |
| | ...existingWidget?.instance, |
| | |
| | is_widget_customizer_js_value: true, |
| | encoded_serialized_instance: encoded, |
| | instance_hash_key: hash, |
| | raw_instance: raw, |
| | ...rest |
| | } |
| | }; |
| | } |
| | } else { |
| | const instance = { |
| | content: (0,external_wp_blocks_namespaceObject.serialize)(block) |
| | }; |
| | widget = { |
| | idBase: 'block', |
| | widgetClass: 'WP_Widget_Block', |
| | instance: { |
| | raw_instance: instance |
| | } |
| | }; |
| | } |
| | const { |
| | form, |
| | rendered, |
| | ...restExistingWidget |
| | } = existingWidget || {}; |
| | return { |
| | ...restExistingWidget, |
| | ...widget |
| | }; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | function widgetToBlock({ |
| | id, |
| | idBase, |
| | number, |
| | instance |
| | }) { |
| | let block; |
| | const { |
| | encoded_serialized_instance: encoded, |
| | instance_hash_key: hash, |
| | raw_instance: raw, |
| | ...rest |
| | } = instance; |
| | if (idBase === 'block') { |
| | var _raw$content; |
| | const parsedBlocks = (0,external_wp_blocks_namespaceObject.parse)((_raw$content = raw.content) !== null && _raw$content !== void 0 ? _raw$content : '', { |
| | __unstableSkipAutop: true |
| | }); |
| | block = parsedBlocks.length ? parsedBlocks[0] : (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {}); |
| | } else if (number) { |
| | |
| | block = (0,external_wp_blocks_namespaceObject.createBlock)('core/legacy-widget', { |
| | idBase, |
| | instance: { |
| | encoded, |
| | hash, |
| | raw, |
| | ...rest |
| | } |
| | }); |
| | } else { |
| | |
| | block = (0,external_wp_blocks_namespaceObject.createBlock)('core/legacy-widget', { |
| | id |
| | }); |
| | } |
| | return (0,external_wp_widgets_namespaceObject.addWidgetIdToBlock)(block, id); |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| | |
| | |
| | |
| |
|
| | function widgetsToBlocks(widgets) { |
| | return widgets.map(widget => widgetToBlock(widget)); |
| | } |
| | function useSidebarBlockEditor(sidebar) { |
| | const [blocks, setBlocks] = (0,external_wp_element_namespaceObject.useState)(() => widgetsToBlocks(sidebar.getWidgets())); |
| | (0,external_wp_element_namespaceObject.useEffect)(() => { |
| | return sidebar.subscribe((prevWidgets, nextWidgets) => { |
| | setBlocks(prevBlocks => { |
| | const prevWidgetsMap = new Map(prevWidgets.map(widget => [widget.id, widget])); |
| | const prevBlocksMap = new Map(prevBlocks.map(block => [(0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(block), block])); |
| | const nextBlocks = nextWidgets.map(nextWidget => { |
| | const prevWidget = prevWidgetsMap.get(nextWidget.id); |
| |
|
| | |
| | if (prevWidget && prevWidget === nextWidget) { |
| | return prevBlocksMap.get(nextWidget.id); |
| | } |
| | return widgetToBlock(nextWidget); |
| | }); |
| |
|
| | |
| | if (external_wp_isShallowEqual_default()(prevBlocks, nextBlocks)) { |
| | return prevBlocks; |
| | } |
| | return nextBlocks; |
| | }); |
| | }); |
| | }, [sidebar]); |
| | const onChangeBlocks = (0,external_wp_element_namespaceObject.useCallback)(nextBlocks => { |
| | setBlocks(prevBlocks => { |
| | if (external_wp_isShallowEqual_default()(prevBlocks, nextBlocks)) { |
| | return prevBlocks; |
| | } |
| | const prevBlocksMap = new Map(prevBlocks.map(block => [(0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(block), block])); |
| | const nextWidgets = nextBlocks.map(nextBlock => { |
| | const widgetId = (0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(nextBlock); |
| |
|
| | |
| | if (widgetId && prevBlocksMap.has(widgetId)) { |
| | const prevBlock = prevBlocksMap.get(widgetId); |
| | const prevWidget = sidebar.getWidget(widgetId); |
| |
|
| | |
| | |
| | if (es6_default()(nextBlock, prevBlock) && prevWidget) { |
| | return prevWidget; |
| | } |
| | return blockToWidget(nextBlock, prevWidget); |
| | } |
| |
|
| | |
| | return blockToWidget(nextBlock); |
| | }); |
| |
|
| | |
| | if (external_wp_isShallowEqual_default()(sidebar.getWidgets(), nextWidgets)) { |
| | return prevBlocks; |
| | } |
| | const addedWidgetIds = sidebar.setWidgets(nextWidgets); |
| | return nextBlocks.reduce((updatedNextBlocks, nextBlock, index) => { |
| | const addedWidgetId = addedWidgetIds[index]; |
| | if (addedWidgetId !== null) { |
| | |
| | |
| | if (updatedNextBlocks === nextBlocks) { |
| | updatedNextBlocks = nextBlocks.slice(); |
| | } |
| | updatedNextBlocks[index] = (0,external_wp_widgets_namespaceObject.addWidgetIdToBlock)(nextBlock, addedWidgetId); |
| | } |
| | return updatedNextBlocks; |
| | }, nextBlocks); |
| | }); |
| | }, [sidebar]); |
| | return [blocks, onChangeBlocks, onChangeBlocks]; |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| | const FocusControlContext = (0,external_wp_element_namespaceObject.createContext)(); |
| | function FocusControl({ |
| | api, |
| | sidebarControls, |
| | children |
| | }) { |
| | const [focusedWidgetIdRef, setFocusedWidgetIdRef] = (0,external_wp_element_namespaceObject.useState)({ |
| | current: null |
| | }); |
| | const focusWidget = (0,external_wp_element_namespaceObject.useCallback)(widgetId => { |
| | for (const sidebarControl of sidebarControls) { |
| | const widgets = sidebarControl.setting.get(); |
| | if (widgets.includes(widgetId)) { |
| | sidebarControl.sectionInstance.expand({ |
| | |
| | |
| | completeCallback() { |
| | |
| | |
| | setFocusedWidgetIdRef({ |
| | current: widgetId |
| | }); |
| | } |
| | }); |
| | break; |
| | } |
| | } |
| | }, [sidebarControls]); |
| | (0,external_wp_element_namespaceObject.useEffect)(() => { |
| | function handleFocus(settingId) { |
| | const widgetId = settingIdToWidgetId(settingId); |
| | focusWidget(widgetId); |
| | } |
| | let previewBound = false; |
| | function handleReady() { |
| | api.previewer.preview.bind('focus-control-for-setting', handleFocus); |
| | previewBound = true; |
| | } |
| | api.previewer.bind('ready', handleReady); |
| | return () => { |
| | api.previewer.unbind('ready', handleReady); |
| | if (previewBound) { |
| | api.previewer.preview.unbind('focus-control-for-setting', handleFocus); |
| | } |
| | }; |
| | }, [api, focusWidget]); |
| | const context = (0,external_wp_element_namespaceObject.useMemo)(() => [focusedWidgetIdRef, focusWidget], [focusedWidgetIdRef, focusWidget]); |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)(FocusControlContext.Provider, { |
| | value: context, |
| | children: children |
| | }); |
| | } |
| | const useFocusControl = () => (0,external_wp_element_namespaceObject.useContext)(FocusControlContext); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| | |
| | |
| | |
| |
|
| | function useBlocksFocusControl(blocks) { |
| | const { |
| | selectBlock |
| | } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); |
| | const [focusedWidgetIdRef] = useFocusControl(); |
| | const blocksRef = (0,external_wp_element_namespaceObject.useRef)(blocks); |
| | (0,external_wp_element_namespaceObject.useEffect)(() => { |
| | blocksRef.current = blocks; |
| | }, [blocks]); |
| | (0,external_wp_element_namespaceObject.useEffect)(() => { |
| | if (focusedWidgetIdRef.current) { |
| | const focusedBlock = blocksRef.current.find(block => (0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(block) === focusedWidgetIdRef.current); |
| | if (focusedBlock) { |
| | selectBlock(focusedBlock.clientId); |
| | |
| | |
| | |
| | const blockNode = document.querySelector(`[data-block="${focusedBlock.clientId}"]`); |
| | blockNode?.focus(); |
| | } |
| | } |
| | }, [focusedWidgetIdRef, selectBlock]); |
| | } |
| |
|
| | ; |
| | const external_wp_privateApis_namespaceObject = window["wp"]["privateApis"]; |
| | ; |
| | |
| | |
| | |
| |
|
| | const { |
| | lock, |
| | unlock |
| | } = (0,external_wp_privateApis_namespaceObject.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.', '@wordpress/customize-widgets'); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| | const { |
| | ExperimentalBlockEditorProvider |
| | } = unlock(external_wp_blockEditor_namespaceObject.privateApis); |
| | function SidebarEditorProvider({ |
| | sidebar, |
| | settings, |
| | children |
| | }) { |
| | const [blocks, onInput, onChange] = useSidebarBlockEditor(sidebar); |
| | useBlocksFocusControl(blocks); |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)(ExperimentalBlockEditorProvider, { |
| | value: blocks, |
| | onInput: onInput, |
| | onChange: onChange, |
| | settings: settings, |
| | useSubRegistry: false, |
| | children: children |
| | }); |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | function WelcomeGuide({ |
| | sidebar |
| | }) { |
| | const { |
| | toggle |
| | } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_preferences_namespaceObject.store); |
| | const isEntirelyBlockWidgets = sidebar.getWidgets().every(widget => widget.id.startsWith('block-')); |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", { |
| | className: "customize-widgets-welcome-guide", |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", { |
| | className: "customize-widgets-welcome-guide__image__wrapper", |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)("picture", { |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)("source", { |
| | srcSet: "https://s.w.org/images/block-editor/welcome-editor.svg", |
| | media: "(prefers-reduced-motion: reduce)" |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)("img", { |
| | className: "customize-widgets-welcome-guide__image", |
| | src: "https://s.w.org/images/block-editor/welcome-editor.gif", |
| | width: "312", |
| | height: "240", |
| | alt: "" |
| | })] |
| | }) |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)("h1", { |
| | className: "customize-widgets-welcome-guide__heading", |
| | children: (0,external_wp_i18n_namespaceObject.__)('Welcome to block Widgets') |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)("p", { |
| | className: "customize-widgets-welcome-guide__text", |
| | children: isEntirelyBlockWidgets ? (0,external_wp_i18n_namespaceObject.__)('Your theme provides different “block” areas for you to add and edit content. Try adding a search bar, social icons, or other types of blocks here and see how they’ll look on your site.') : (0,external_wp_i18n_namespaceObject.__)('You can now add any block to your site’s widget areas. Don’t worry, all of your favorite widgets still work flawlessly.') |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, { |
| | className: "customize-widgets-welcome-guide__button", |
| | variant: "primary", |
| | onClick: () => toggle('core/customize-widgets', 'welcomeGuide'), |
| | children: (0,external_wp_i18n_namespaceObject.__)('Got it') |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)("hr", { |
| | className: "customize-widgets-welcome-guide__separator" |
| | }), !isEntirelyBlockWidgets && (0,external_ReactJSXRuntime_namespaceObject.jsxs)("p", { |
| | className: "customize-widgets-welcome-guide__more-info", |
| | children: [(0,external_wp_i18n_namespaceObject.__)('Want to stick with the old widgets?'), (0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, { |
| | href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/plugins/classic-widgets/'), |
| | children: (0,external_wp_i18n_namespaceObject.__)('Get the Classic Widgets plugin.') |
| | })] |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)("p", { |
| | className: "customize-widgets-welcome-guide__more-info", |
| | children: [(0,external_wp_i18n_namespaceObject.__)('New to the block editor?'), (0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, { |
| | href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/wordpress-block-editor/'), |
| | children: (0,external_wp_i18n_namespaceObject.__)("Here's a detailed guide.") |
| | })] |
| | })] |
| | }); |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| | function KeyboardShortcuts({ |
| | undo, |
| | redo, |
| | save |
| | }) { |
| | (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/customize-widgets/undo', event => { |
| | undo(); |
| | event.preventDefault(); |
| | }); |
| | (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/customize-widgets/redo', event => { |
| | redo(); |
| | event.preventDefault(); |
| | }); |
| | (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/customize-widgets/save', event => { |
| | event.preventDefault(); |
| | save(); |
| | }); |
| | return null; |
| | } |
| | function KeyboardShortcutsRegister() { |
| | const { |
| | registerShortcut, |
| | unregisterShortcut |
| | } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_keyboardShortcuts_namespaceObject.store); |
| | (0,external_wp_element_namespaceObject.useEffect)(() => { |
| | registerShortcut({ |
| | name: 'core/customize-widgets/undo', |
| | category: 'global', |
| | description: (0,external_wp_i18n_namespaceObject.__)('Undo your last changes.'), |
| | keyCombination: { |
| | modifier: 'primary', |
| | character: 'z' |
| | } |
| | }); |
| | registerShortcut({ |
| | name: 'core/customize-widgets/redo', |
| | category: 'global', |
| | description: (0,external_wp_i18n_namespaceObject.__)('Redo your last undo.'), |
| | keyCombination: { |
| | modifier: 'primaryShift', |
| | character: 'z' |
| | }, |
| | |
| | |
| | |
| | |
| | aliases: (0,external_wp_keycodes_namespaceObject.isAppleOS)() ? [] : [{ |
| | modifier: 'primary', |
| | character: 'y' |
| | }] |
| | }); |
| | registerShortcut({ |
| | name: 'core/customize-widgets/save', |
| | category: 'global', |
| | description: (0,external_wp_i18n_namespaceObject.__)('Save your changes.'), |
| | keyCombination: { |
| | modifier: 'primary', |
| | character: 's' |
| | } |
| | }); |
| | return () => { |
| | unregisterShortcut('core/customize-widgets/undo'); |
| | unregisterShortcut('core/customize-widgets/redo'); |
| | unregisterShortcut('core/customize-widgets/save'); |
| | }; |
| | }, [registerShortcut]); |
| | return null; |
| | } |
| | KeyboardShortcuts.Register = KeyboardShortcutsRegister; |
| | const keyboard_shortcuts = (KeyboardShortcuts); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| | function BlockAppender(props) { |
| | const ref = (0,external_wp_element_namespaceObject.useRef)(); |
| | const isBlocksListEmpty = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlockCount() === 0); |
| |
|
| | |
| | |
| | (0,external_wp_element_namespaceObject.useEffect)(() => { |
| | if (isBlocksListEmpty && ref.current) { |
| | const { |
| | ownerDocument |
| | } = ref.current; |
| | if (!ownerDocument.activeElement || ownerDocument.activeElement === ownerDocument.body) { |
| | ref.current.focus(); |
| | } |
| | } |
| | }, [isBlocksListEmpty]); |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.ButtonBlockAppender, { |
| | ...props, |
| | ref: ref |
| | }); |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | const { |
| | ExperimentalBlockCanvas: BlockCanvas |
| | } = unlock(external_wp_blockEditor_namespaceObject.privateApis); |
| | const { |
| | BlockKeyboardShortcuts |
| | } = unlock(external_wp_blockLibrary_namespaceObject.privateApis); |
| | function SidebarBlockEditor({ |
| | blockEditorSettings, |
| | sidebar, |
| | inserter, |
| | inspector |
| | }) { |
| | const [isInserterOpened, setIsInserterOpened] = useInserter(inserter); |
| | const isMediumViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('small'); |
| | const { |
| | hasUploadPermissions, |
| | isFixedToolbarActive, |
| | keepCaretInsideBlock, |
| | isWelcomeGuideActive |
| | } = (0,external_wp_data_namespaceObject.useSelect)(select => { |
| | var _select$canUser; |
| | const { |
| | get |
| | } = select(external_wp_preferences_namespaceObject.store); |
| | return { |
| | hasUploadPermissions: (_select$canUser = select(external_wp_coreData_namespaceObject.store).canUser('create', 'media')) !== null && _select$canUser !== void 0 ? _select$canUser : true, |
| | isFixedToolbarActive: !!get('core/customize-widgets', 'fixedToolbar'), |
| | keepCaretInsideBlock: !!get('core/customize-widgets', 'keepCaretInsideBlock'), |
| | isWelcomeGuideActive: !!get('core/customize-widgets', 'welcomeGuide') |
| | }; |
| | }, []); |
| | const settings = (0,external_wp_element_namespaceObject.useMemo)(() => { |
| | let mediaUploadBlockEditor; |
| | if (hasUploadPermissions) { |
| | mediaUploadBlockEditor = ({ |
| | onError, |
| | ...argumentsObject |
| | }) => { |
| | (0,external_wp_mediaUtils_namespaceObject.uploadMedia)({ |
| | wpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes, |
| | onError: ({ |
| | message |
| | }) => onError(message), |
| | ...argumentsObject |
| | }); |
| | }; |
| | } |
| | return { |
| | ...blockEditorSettings, |
| | __experimentalSetIsInserterOpened: setIsInserterOpened, |
| | mediaUpload: mediaUploadBlockEditor, |
| | hasFixedToolbar: isFixedToolbarActive || !isMediumViewport, |
| | keepCaretInsideBlock, |
| | __unstableHasCustomAppender: true |
| | }; |
| | }, [hasUploadPermissions, blockEditorSettings, isFixedToolbarActive, isMediumViewport, keepCaretInsideBlock, setIsInserterOpened]); |
| | if (isWelcomeGuideActive) { |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)(WelcomeGuide, { |
| | sidebar: sidebar |
| | }); |
| | } |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(keyboard_shortcuts.Register, {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockKeyboardShortcuts, {}), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(SidebarEditorProvider, { |
| | sidebar: sidebar, |
| | settings: settings, |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(keyboard_shortcuts, { |
| | undo: sidebar.undo, |
| | redo: sidebar.redo, |
| | save: sidebar.save |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(header, { |
| | sidebar: sidebar, |
| | inserter: inserter, |
| | isInserterOpened: isInserterOpened, |
| | setIsInserterOpened: setIsInserterOpened, |
| | isFixedToolbarActive: isFixedToolbarActive || !isMediumViewport |
| | }), (isFixedToolbarActive || !isMediumViewport) && (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockToolbar, { |
| | hideDragHandle: true |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockCanvas, { |
| | shouldIframe: false, |
| | styles: settings.defaultEditorStyles, |
| | height: "100%", |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockList, { |
| | renderAppender: BlockAppender |
| | }) |
| | }), (0,external_wp_element_namespaceObject.createPortal)( |
| | |
| | |
| | |
| | (0,external_ReactJSXRuntime_namespaceObject.jsx)("form", { |
| | onSubmit: event => event.preventDefault(), |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockInspector, {}) |
| | }), inspector.contentContainer[0])] |
| | }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__unstableBlockSettingsMenuFirstItem, { |
| | children: ({ |
| | onClose |
| | }) => (0,external_ReactJSXRuntime_namespaceObject.jsx)(block_inspector_button, { |
| | inspector: inspector, |
| | closeMenu: onClose |
| | }) |
| | })] |
| | }); |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | const SidebarControlsContext = (0,external_wp_element_namespaceObject.createContext)(); |
| | function SidebarControls({ |
| | sidebarControls, |
| | activeSidebarControl, |
| | children |
| | }) { |
| | const context = (0,external_wp_element_namespaceObject.useMemo)(() => ({ |
| | sidebarControls, |
| | activeSidebarControl |
| | }), [sidebarControls, activeSidebarControl]); |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)(SidebarControlsContext.Provider, { |
| | value: context, |
| | children: children |
| | }); |
| | } |
| | function useSidebarControls() { |
| | const { |
| | sidebarControls |
| | } = (0,external_wp_element_namespaceObject.useContext)(SidebarControlsContext); |
| | return sidebarControls; |
| | } |
| | function useActiveSidebarControl() { |
| | const { |
| | activeSidebarControl |
| | } = (0,external_wp_element_namespaceObject.useContext)(SidebarControlsContext); |
| | return activeSidebarControl; |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | function useClearSelectedBlock(sidebarControl, popoverRef) { |
| | const { |
| | hasSelectedBlock, |
| | hasMultiSelection |
| | } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store); |
| | const { |
| | clearSelectedBlock |
| | } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); |
| | (0,external_wp_element_namespaceObject.useEffect)(() => { |
| | if (popoverRef.current && sidebarControl) { |
| | const inspector = sidebarControl.inspector; |
| | const container = sidebarControl.container[0]; |
| | const ownerDocument = container.ownerDocument; |
| | const ownerWindow = ownerDocument.defaultView; |
| | function handleClearSelectedBlock(element) { |
| | if ( |
| | |
| | (hasSelectedBlock() || hasMultiSelection()) && |
| | |
| | element && ownerDocument.contains(element) && |
| | |
| | !container.contains(element) && !popoverRef.current.contains(element) && !element.closest('[role="dialog"]') && |
| | |
| | !inspector.expanded()) { |
| | clearSelectedBlock(); |
| | } |
| | } |
| |
|
| | |
| | function handleMouseDown(event) { |
| | handleClearSelectedBlock(event.target); |
| | } |
| | |
| | function handleBlur() { |
| | handleClearSelectedBlock(ownerDocument.activeElement); |
| | } |
| | ownerDocument.addEventListener('mousedown', handleMouseDown); |
| | ownerWindow.addEventListener('blur', handleBlur); |
| | return () => { |
| | ownerDocument.removeEventListener('mousedown', handleMouseDown); |
| | ownerWindow.removeEventListener('blur', handleBlur); |
| | }; |
| | } |
| | }, [popoverRef, sidebarControl, hasSelectedBlock, hasMultiSelection, clearSelectedBlock]); |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | function CustomizeWidgets({ |
| | api, |
| | sidebarControls, |
| | blockEditorSettings |
| | }) { |
| | const [activeSidebarControl, setActiveSidebarControl] = (0,external_wp_element_namespaceObject.useState)(null); |
| | const parentContainer = document.getElementById('customize-theme-controls'); |
| | const popoverRef = (0,external_wp_element_namespaceObject.useRef)(); |
| | useClearSelectedBlock(activeSidebarControl, popoverRef); |
| | (0,external_wp_element_namespaceObject.useEffect)(() => { |
| | const unsubscribers = sidebarControls.map(sidebarControl => sidebarControl.subscribe(expanded => { |
| | if (expanded) { |
| | setActiveSidebarControl(sidebarControl); |
| | } |
| | })); |
| | return () => { |
| | unsubscribers.forEach(unsubscriber => unsubscriber()); |
| | }; |
| | }, [sidebarControls]); |
| | const activeSidebar = activeSidebarControl && (0,external_wp_element_namespaceObject.createPortal)( (0,external_ReactJSXRuntime_namespaceObject.jsx)(ErrorBoundary, { |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(SidebarBlockEditor, { |
| | blockEditorSettings: blockEditorSettings, |
| | sidebar: activeSidebarControl.sidebarAdapter, |
| | inserter: activeSidebarControl.inserter, |
| | inspector: activeSidebarControl.inspector |
| | }, activeSidebarControl.id) |
| | }), activeSidebarControl.container[0]); |
| |
|
| | |
| | |
| | const popover = parentContainer && (0,external_wp_element_namespaceObject.createPortal)( (0,external_ReactJSXRuntime_namespaceObject.jsx)("div", { |
| | className: "customize-widgets-popover", |
| | ref: popoverRef, |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Popover.Slot, {}) |
| | }), parentContainer); |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SlotFillProvider, { |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(SidebarControls, { |
| | sidebarControls: sidebarControls, |
| | activeSidebarControl: activeSidebarControl, |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(FocusControl, { |
| | api: api, |
| | sidebarControls: sidebarControls, |
| | children: [activeSidebar, popover] |
| | }) |
| | }) |
| | }); |
| | } |
| |
|
| | ; |
| | function getInspectorSection() { |
| | const { |
| | wp: { |
| | customize |
| | } |
| | } = window; |
| | return class InspectorSection extends customize.Section { |
| | constructor(id, options) { |
| | super(id, options); |
| | this.parentSection = options.parentSection; |
| | this.returnFocusWhenClose = null; |
| | this._isOpen = false; |
| | } |
| | get isOpen() { |
| | return this._isOpen; |
| | } |
| | set isOpen(value) { |
| | this._isOpen = value; |
| | this.triggerActiveCallbacks(); |
| | } |
| | ready() { |
| | this.contentContainer[0].classList.add('customize-widgets-layout__inspector'); |
| | } |
| | isContextuallyActive() { |
| | return this.isOpen; |
| | } |
| | onChangeExpanded(expanded, args) { |
| | super.onChangeExpanded(expanded, args); |
| | if (this.parentSection && !args.unchanged) { |
| | if (expanded) { |
| | this.parentSection.collapse({ |
| | manualTransition: true |
| | }); |
| | } else { |
| | this.parentSection.expand({ |
| | manualTransition: true, |
| | completeCallback: () => { |
| | |
| | if (this.returnFocusWhenClose && !this.contentContainer[0].contains(this.returnFocusWhenClose)) { |
| | this.returnFocusWhenClose.focus(); |
| | } |
| | } |
| | }); |
| | } |
| | } |
| | } |
| | open({ |
| | returnFocusWhenClose |
| | } = {}) { |
| | this.isOpen = true; |
| | this.returnFocusWhenClose = returnFocusWhenClose; |
| | this.expand({ |
| | allowMultiple: true |
| | }); |
| | } |
| | close() { |
| | this.collapse({ |
| | allowMultiple: true |
| | }); |
| | } |
| | collapse(options) { |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | this.isOpen = false; |
| | super.collapse(options); |
| | } |
| | triggerActiveCallbacks() { |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | this.active.callbacks.fireWith(this.active, [false, true]); |
| | } |
| | }; |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | |
| | |
| | |
| |
|
| | const getInspectorSectionId = sidebarId => `widgets-inspector-${sidebarId}`; |
| | function getSidebarSection() { |
| | const { |
| | wp: { |
| | customize |
| | } |
| | } = window; |
| | const reduceMotionMediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)'); |
| | let isReducedMotion = reduceMotionMediaQuery.matches; |
| | reduceMotionMediaQuery.addEventListener('change', event => { |
| | isReducedMotion = event.matches; |
| | }); |
| | return class SidebarSection extends customize.Section { |
| | ready() { |
| | const InspectorSection = getInspectorSection(); |
| | this.inspector = new InspectorSection(getInspectorSectionId(this.id), { |
| | title: (0,external_wp_i18n_namespaceObject.__)('Block Settings'), |
| | parentSection: this, |
| | customizeAction: [(0,external_wp_i18n_namespaceObject.__)('Customizing'), (0,external_wp_i18n_namespaceObject.__)('Widgets'), this.params.title].join(' ▸ ') |
| | }); |
| | customize.section.add(this.inspector); |
| | this.contentContainer[0].classList.add('customize-widgets__sidebar-section'); |
| | } |
| | hasSubSectionOpened() { |
| | return this.inspector.expanded(); |
| | } |
| | onChangeExpanded(expanded, _args) { |
| | const controls = this.controls(); |
| | const args = { |
| | ..._args, |
| | completeCallback() { |
| | controls.forEach(control => { |
| | control.onChangeSectionExpanded?.(expanded, args); |
| | }); |
| | _args.completeCallback?.(); |
| | } |
| | }; |
| | if (args.manualTransition) { |
| | if (expanded) { |
| | this.contentContainer.addClass(['busy', 'open']); |
| | this.contentContainer.removeClass('is-sub-section-open'); |
| | this.contentContainer.closest('.wp-full-overlay').addClass('section-open'); |
| | } else { |
| | this.contentContainer.addClass(['busy', 'is-sub-section-open']); |
| | this.contentContainer.closest('.wp-full-overlay').addClass('section-open'); |
| | this.contentContainer.removeClass('open'); |
| | } |
| | const handleTransitionEnd = () => { |
| | this.contentContainer.removeClass('busy'); |
| | args.completeCallback(); |
| | }; |
| | if (isReducedMotion) { |
| | handleTransitionEnd(); |
| | } else { |
| | this.contentContainer.one('transitionend', handleTransitionEnd); |
| | } |
| | } else { |
| | super.onChangeExpanded(expanded, args); |
| | } |
| | } |
| | }; |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| | const { |
| | wp |
| | } = window; |
| | function parseWidgetId(widgetId) { |
| | const matches = widgetId.match(/^(.+)-(\d+)$/); |
| | if (matches) { |
| | return { |
| | idBase: matches[1], |
| | number: parseInt(matches[2], 10) |
| | }; |
| | } |
| |
|
| | |
| | return { |
| | idBase: widgetId |
| | }; |
| | } |
| | function widgetIdToSettingId(widgetId) { |
| | const { |
| | idBase, |
| | number |
| | } = parseWidgetId(widgetId); |
| | if (number) { |
| | return `widget_${idBase}[${number}]`; |
| | } |
| | return `widget_${idBase}`; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | function debounce(leading, callback, timeout) { |
| | let isLeading = false; |
| | let timerID; |
| | function debounced(...args) { |
| | const result = (isLeading ? callback : leading).apply(this, args); |
| | isLeading = true; |
| | clearTimeout(timerID); |
| | timerID = setTimeout(() => { |
| | isLeading = false; |
| | }, timeout); |
| | return result; |
| | } |
| | debounced.cancel = () => { |
| | isLeading = false; |
| | clearTimeout(timerID); |
| | }; |
| | return debounced; |
| | } |
| | class SidebarAdapter { |
| | constructor(setting, api) { |
| | this.setting = setting; |
| | this.api = api; |
| | this.locked = false; |
| | this.widgetsCache = new WeakMap(); |
| | this.subscribers = new Set(); |
| | this.history = [this._getWidgetIds().map(widgetId => this.getWidget(widgetId))]; |
| | this.historyIndex = 0; |
| | this.historySubscribers = new Set(); |
| | |
| | this._debounceSetHistory = debounce(this._pushHistory, this._replaceHistory, 1000); |
| | this.setting.bind(this._handleSettingChange.bind(this)); |
| | this.api.bind('change', this._handleAllSettingsChange.bind(this)); |
| | this.undo = this.undo.bind(this); |
| | this.redo = this.redo.bind(this); |
| | this.save = this.save.bind(this); |
| | } |
| | subscribe(callback) { |
| | this.subscribers.add(callback); |
| | return () => { |
| | this.subscribers.delete(callback); |
| | }; |
| | } |
| | getWidgets() { |
| | return this.history[this.historyIndex]; |
| | } |
| | _emit(...args) { |
| | for (const callback of this.subscribers) { |
| | callback(...args); |
| | } |
| | } |
| | _getWidgetIds() { |
| | return this.setting.get(); |
| | } |
| | _pushHistory() { |
| | this.history = [...this.history.slice(0, this.historyIndex + 1), this._getWidgetIds().map(widgetId => this.getWidget(widgetId))]; |
| | this.historyIndex += 1; |
| | this.historySubscribers.forEach(listener => listener()); |
| | } |
| | _replaceHistory() { |
| | this.history[this.historyIndex] = this._getWidgetIds().map(widgetId => this.getWidget(widgetId)); |
| | } |
| | _handleSettingChange() { |
| | if (this.locked) { |
| | return; |
| | } |
| | const prevWidgets = this.getWidgets(); |
| | this._pushHistory(); |
| | this._emit(prevWidgets, this.getWidgets()); |
| | } |
| | _handleAllSettingsChange(setting) { |
| | if (this.locked) { |
| | return; |
| | } |
| | if (!setting.id.startsWith('widget_')) { |
| | return; |
| | } |
| | const widgetId = settingIdToWidgetId(setting.id); |
| | if (!this.setting.get().includes(widgetId)) { |
| | return; |
| | } |
| | const prevWidgets = this.getWidgets(); |
| | this._pushHistory(); |
| | this._emit(prevWidgets, this.getWidgets()); |
| | } |
| | _createWidget(widget) { |
| | const widgetModel = wp.customize.Widgets.availableWidgets.findWhere({ |
| | id_base: widget.idBase |
| | }); |
| | let number = widget.number; |
| | if (widgetModel.get('is_multi') && !number) { |
| | widgetModel.set('multi_number', widgetModel.get('multi_number') + 1); |
| | number = widgetModel.get('multi_number'); |
| | } |
| | const settingId = number ? `widget_${widget.idBase}[${number}]` : `widget_${widget.idBase}`; |
| | const settingArgs = { |
| | transport: wp.customize.Widgets.data.selectiveRefreshableWidgets[widgetModel.get('id_base')] ? 'postMessage' : 'refresh', |
| | previewer: this.setting.previewer |
| | }; |
| | const setting = this.api.create(settingId, settingId, '', settingArgs); |
| | setting.set(widget.instance); |
| | const widgetId = settingIdToWidgetId(settingId); |
| | return widgetId; |
| | } |
| | _removeWidget(widget) { |
| | const settingId = widgetIdToSettingId(widget.id); |
| | const setting = this.api(settingId); |
| | if (setting) { |
| | const instance = setting.get(); |
| | this.widgetsCache.delete(instance); |
| | } |
| | this.api.remove(settingId); |
| | } |
| | _updateWidget(widget) { |
| | const prevWidget = this.getWidget(widget.id); |
| |
|
| | |
| | if (prevWidget === widget) { |
| | return widget.id; |
| | } |
| |
|
| | |
| | if (prevWidget.idBase && widget.idBase && prevWidget.idBase === widget.idBase) { |
| | const settingId = widgetIdToSettingId(widget.id); |
| | this.api(settingId).set(widget.instance); |
| | return widget.id; |
| | } |
| |
|
| | |
| | this._removeWidget(widget); |
| | return this._createWidget(widget); |
| | } |
| | getWidget(widgetId) { |
| | if (!widgetId) { |
| | return null; |
| | } |
| | const { |
| | idBase, |
| | number |
| | } = parseWidgetId(widgetId); |
| | const settingId = widgetIdToSettingId(widgetId); |
| | const setting = this.api(settingId); |
| | if (!setting) { |
| | return null; |
| | } |
| | const instance = setting.get(); |
| | if (this.widgetsCache.has(instance)) { |
| | return this.widgetsCache.get(instance); |
| | } |
| | const widget = { |
| | id: widgetId, |
| | idBase, |
| | number, |
| | instance |
| | }; |
| | this.widgetsCache.set(instance, widget); |
| | return widget; |
| | } |
| | _updateWidgets(nextWidgets) { |
| | this.locked = true; |
| | const addedWidgetIds = []; |
| | const nextWidgetIds = nextWidgets.map(nextWidget => { |
| | if (nextWidget.id && this.getWidget(nextWidget.id)) { |
| | addedWidgetIds.push(null); |
| | return this._updateWidget(nextWidget); |
| | } |
| | const widgetId = this._createWidget(nextWidget); |
| | addedWidgetIds.push(widgetId); |
| | return widgetId; |
| | }); |
| | const deletedWidgets = this.getWidgets().filter(widget => !nextWidgetIds.includes(widget.id)); |
| | deletedWidgets.forEach(widget => this._removeWidget(widget)); |
| | this.setting.set(nextWidgetIds); |
| | this.locked = false; |
| | return addedWidgetIds; |
| | } |
| | setWidgets(nextWidgets) { |
| | const addedWidgetIds = this._updateWidgets(nextWidgets); |
| | this._debounceSetHistory(); |
| | return addedWidgetIds; |
| | } |
| |
|
| | |
| | |
| | |
| | hasUndo() { |
| | return this.historyIndex > 0; |
| | } |
| | hasRedo() { |
| | return this.historyIndex < this.history.length - 1; |
| | } |
| | _seek(historyIndex) { |
| | const currentWidgets = this.getWidgets(); |
| | this.historyIndex = historyIndex; |
| | const widgets = this.history[this.historyIndex]; |
| | this._updateWidgets(widgets); |
| | this._emit(currentWidgets, this.getWidgets()); |
| | this.historySubscribers.forEach(listener => listener()); |
| | this._debounceSetHistory.cancel(); |
| | } |
| | undo() { |
| | if (!this.hasUndo()) { |
| | return; |
| | } |
| | this._seek(this.historyIndex - 1); |
| | } |
| | redo() { |
| | if (!this.hasRedo()) { |
| | return; |
| | } |
| | this._seek(this.historyIndex + 1); |
| | } |
| | subscribeHistory(listener) { |
| | this.historySubscribers.add(listener); |
| | return () => { |
| | this.historySubscribers.delete(listener); |
| | }; |
| | } |
| | save() { |
| | this.api.previewer.save(); |
| | } |
| | } |
| |
|
| | ; |
| | const external_wp_dom_namespaceObject = window["wp"]["dom"]; |
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| | |
| | |
| | |
| |
|
| | function getInserterOuterSection() { |
| | const { |
| | wp: { |
| | customize |
| | } |
| | } = window; |
| | const OuterSection = customize.OuterSection; |
| | |
| | |
| | |
| | customize.OuterSection = class extends OuterSection { |
| | onChangeExpanded(expanded, args) { |
| | if (expanded) { |
| | customize.section.each(section => { |
| | if (section.params.type === 'outer' && section.id !== this.id) { |
| | if (section.expanded()) { |
| | section.collapse(); |
| | } |
| | } |
| | }); |
| | } |
| | return super.onChangeExpanded(expanded, args); |
| | } |
| | }; |
| | |
| | customize.sectionConstructor.outer = customize.OuterSection; |
| | return class InserterOuterSection extends customize.OuterSection { |
| | constructor(...args) { |
| | super(...args); |
| |
|
| | |
| | |
| | this.params.type = 'outer'; |
| | this.activeElementBeforeExpanded = null; |
| | const ownerWindow = this.contentContainer[0].ownerDocument.defaultView; |
| |
|
| | |
| | ownerWindow.addEventListener('keydown', event => { |
| | if (this.expanded() && (event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE || event.code === 'Escape') && !event.defaultPrevented) { |
| | event.preventDefault(); |
| | event.stopPropagation(); |
| | (0,external_wp_data_namespaceObject.dispatch)(store).setIsInserterOpened(false); |
| | } |
| | }, |
| | |
| | true); |
| | this.contentContainer.addClass('widgets-inserter'); |
| |
|
| | |
| | |
| | this.isFromInternalAction = false; |
| | this.expanded.bind(() => { |
| | if (!this.isFromInternalAction) { |
| | |
| | (0,external_wp_data_namespaceObject.dispatch)(store).setIsInserterOpened(this.expanded()); |
| | } |
| | this.isFromInternalAction = false; |
| | }); |
| | } |
| | open() { |
| | if (!this.expanded()) { |
| | const contentContainer = this.contentContainer[0]; |
| | this.activeElementBeforeExpanded = contentContainer.ownerDocument.activeElement; |
| | this.isFromInternalAction = true; |
| | this.expand({ |
| | completeCallback() { |
| | |
| | |
| | |
| | const searchBox = external_wp_dom_namespaceObject.focus.tabbable.find(contentContainer)[1]; |
| | if (searchBox) { |
| | searchBox.focus(); |
| | } |
| | } |
| | }); |
| | } |
| | } |
| | close() { |
| | if (this.expanded()) { |
| | const contentContainer = this.contentContainer[0]; |
| | const activeElement = contentContainer.ownerDocument.activeElement; |
| | this.isFromInternalAction = true; |
| | this.collapse({ |
| | completeCallback() { |
| | |
| | |
| | |
| | |
| | |
| | if (contentContainer.contains(activeElement)) { |
| | |
| | if (this.activeElementBeforeExpanded) { |
| | this.activeElementBeforeExpanded.focus(); |
| | } |
| | } |
| | } |
| | }); |
| | } |
| | } |
| | }; |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| |
|
| | const getInserterId = controlId => `widgets-inserter-${controlId}`; |
| | function getSidebarControl() { |
| | const { |
| | wp: { |
| | customize |
| | } |
| | } = window; |
| | return class SidebarControl extends customize.Control { |
| | constructor(...args) { |
| | super(...args); |
| | this.subscribers = new Set(); |
| | } |
| | ready() { |
| | const InserterOuterSection = getInserterOuterSection(); |
| | this.inserter = new InserterOuterSection(getInserterId(this.id), {}); |
| | customize.section.add(this.inserter); |
| | this.sectionInstance = customize.section(this.section()); |
| | this.inspector = this.sectionInstance.inspector; |
| | this.sidebarAdapter = new SidebarAdapter(this.setting, customize); |
| | } |
| | subscribe(callback) { |
| | this.subscribers.add(callback); |
| | return () => { |
| | this.subscribers.delete(callback); |
| | }; |
| | } |
| | onChangeSectionExpanded(expanded, args) { |
| | if (!args.unchanged) { |
| | |
| | if (!expanded) { |
| | (0,external_wp_data_namespaceObject.dispatch)(store).setIsInserterOpened(false); |
| | } |
| | this.subscribers.forEach(subscriber => subscriber(expanded, args)); |
| | } |
| | } |
| | }; |
| | } |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | const withMoveToSidebarToolbarItem = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => { |
| | let widgetId = (0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(props); |
| | const sidebarControls = useSidebarControls(); |
| | const activeSidebarControl = useActiveSidebarControl(); |
| | const hasMultipleSidebars = sidebarControls?.length > 1; |
| | const blockName = props.name; |
| | const clientId = props.clientId; |
| | const canInsertBlockInSidebar = (0,external_wp_data_namespaceObject.useSelect)(select => { |
| | |
| | |
| | return select(external_wp_blockEditor_namespaceObject.store).canInsertBlockType(blockName, ''); |
| | }, [blockName]); |
| | const block = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId), [clientId]); |
| | const { |
| | removeBlock |
| | } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); |
| | const [, focusWidget] = useFocusControl(); |
| | function moveToSidebar(sidebarControlId) { |
| | const newSidebarControl = sidebarControls.find(sidebarControl => sidebarControl.id === sidebarControlId); |
| | if (widgetId) { |
| | |
| | |
| | |
| | const oldSetting = activeSidebarControl.setting; |
| | const newSetting = newSidebarControl.setting; |
| | oldSetting(oldSetting().filter(id => id !== widgetId)); |
| | newSetting([...newSetting(), widgetId]); |
| | } else { |
| | |
| | |
| | |
| | |
| | |
| | const sidebarAdapter = newSidebarControl.sidebarAdapter; |
| | removeBlock(clientId); |
| | const addedWidgetIds = sidebarAdapter.setWidgets([...sidebarAdapter.getWidgets(), blockToWidget(block)]); |
| | |
| | widgetId = addedWidgetIds.reverse().find(id => !!id); |
| | } |
| |
|
| | |
| | focusWidget(widgetId); |
| | } |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { |
| | children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockEdit, { |
| | ...props |
| | }), hasMultipleSidebars && canInsertBlockInSidebar && (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, { |
| | children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_widgets_namespaceObject.MoveToWidgetArea, { |
| | widgetAreas: sidebarControls.map(sidebarControl => ({ |
| | id: sidebarControl.id, |
| | name: sidebarControl.params.label, |
| | description: sidebarControl.params.description |
| | })), |
| | currentWidgetAreaId: activeSidebarControl?.id, |
| | onSelect: moveToSidebar |
| | }) |
| | })] |
| | }); |
| | }, 'withMoveToSidebarToolbarItem'); |
| | (0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/customize-widgets/block-edit', withMoveToSidebarToolbarItem); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| | const replaceMediaUpload = () => external_wp_mediaUtils_namespaceObject.MediaUpload; |
| | (0,external_wp_hooks_namespaceObject.addFilter)('editor.MediaUpload', 'core/edit-widgets/replace-media-upload', replaceMediaUpload); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| | const { |
| | wp: wide_widget_display_wp |
| | } = window; |
| | const withWideWidgetDisplay = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => { |
| | var _wp$customize$Widgets; |
| | const { |
| | idBase |
| | } = props.attributes; |
| | const isWide = (_wp$customize$Widgets = wide_widget_display_wp.customize.Widgets.data.availableWidgets.find(widget => widget.id_base === idBase)?.is_wide) !== null && _wp$customize$Widgets !== void 0 ? _wp$customize$Widgets : false; |
| | return (0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockEdit, { |
| | ...props, |
| | isWide: isWide |
| | }); |
| | }, 'withWideWidgetDisplay'); |
| | (0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/customize-widgets/wide-widget-display', withWideWidgetDisplay); |
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| | ; |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | |
| | |
| | |
| |
|
| |
|
| |
|
| |
|
| |
|
| | const { |
| | wp: build_module_wp |
| | } = window; |
| | const DISABLED_BLOCKS = ['core/more', 'core/block', 'core/freeform', 'core/template-part']; |
| | const ENABLE_EXPERIMENTAL_FSE_BLOCKS = false; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | function initialize(editorName, blockEditorSettings) { |
| | (0,external_wp_data_namespaceObject.dispatch)(external_wp_preferences_namespaceObject.store).setDefaults('core/customize-widgets', { |
| | fixedToolbar: false, |
| | welcomeGuide: true |
| | }); |
| | (0,external_wp_data_namespaceObject.dispatch)(external_wp_blocks_namespaceObject.store).reapplyBlockTypeFilters(); |
| | const coreBlocks = (0,external_wp_blockLibrary_namespaceObject.__experimentalGetCoreBlocks)().filter(block => { |
| | return !(DISABLED_BLOCKS.includes(block.name) || block.name.startsWith('core/post') || block.name.startsWith('core/query') || block.name.startsWith('core/site') || block.name.startsWith('core/navigation')); |
| | }); |
| | (0,external_wp_blockLibrary_namespaceObject.registerCoreBlocks)(coreBlocks); |
| | (0,external_wp_widgets_namespaceObject.registerLegacyWidgetBlock)(); |
| | if (false) {} |
| | (0,external_wp_widgets_namespaceObject.registerLegacyWidgetVariations)(blockEditorSettings); |
| | (0,external_wp_widgets_namespaceObject.registerWidgetGroupBlock)(); |
| |
|
| | |
| | |
| | |
| | |
| | (0,external_wp_blocks_namespaceObject.setFreeformContentHandlerName)('core/html'); |
| | const SidebarControl = getSidebarControl(blockEditorSettings); |
| | build_module_wp.customize.sectionConstructor.sidebar = getSidebarSection(); |
| | build_module_wp.customize.controlConstructor.sidebar_block_editor = SidebarControl; |
| | const container = document.createElement('div'); |
| | document.body.appendChild(container); |
| | build_module_wp.customize.bind('ready', () => { |
| | const sidebarControls = []; |
| | build_module_wp.customize.control.each(control => { |
| | if (control instanceof SidebarControl) { |
| | sidebarControls.push(control); |
| | } |
| | }); |
| | (0,external_wp_element_namespaceObject.createRoot)(container).render( (0,external_ReactJSXRuntime_namespaceObject.jsx)(CustomizeWidgets, { |
| | api: build_module_wp.customize, |
| | sidebarControls: sidebarControls, |
| | blockEditorSettings: blockEditorSettings |
| | })); |
| | }); |
| | } |
| |
|
| |
|
| | })(); |
| |
|
| | (window.wp = window.wp || {}).customizeWidgets = __webpack_exports__; |
| | })() |
| | ; |