/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ // The require scope /******/ var __webpack_require__ = {}; /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __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/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __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__ = {}; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { PreferenceToggleMenuItem: () => (/* reexport */ PreferenceToggleMenuItem), store: () => (/* reexport */ store) }); // NAMESPACE OBJECT: ./node_modules/@wordpress/preferences/build-module/store/actions.js var actions_namespaceObject = {}; __webpack_require__.r(actions_namespaceObject); __webpack_require__.d(actions_namespaceObject, { set: () => (set), setDefaults: () => (setDefaults), setPersistenceLayer: () => (setPersistenceLayer), toggle: () => (toggle) }); // NAMESPACE OBJECT: ./node_modules/@wordpress/preferences/build-module/store/selectors.js var selectors_namespaceObject = {}; __webpack_require__.r(selectors_namespaceObject); __webpack_require__.d(selectors_namespaceObject, { get: () => (get) }); ;// CONCATENATED MODULE: external ["wp","element"] const external_wp_element_namespaceObject = window["wp"]["element"]; ;// CONCATENATED MODULE: external ["wp","data"] const external_wp_data_namespaceObject = window["wp"]["data"]; ;// CONCATENATED MODULE: external ["wp","components"] const external_wp_components_namespaceObject = window["wp"]["components"]; ;// CONCATENATED MODULE: external ["wp","i18n"] const external_wp_i18n_namespaceObject = window["wp"]["i18n"]; ;// CONCATENATED MODULE: external ["wp","primitives"] const external_wp_primitives_namespaceObject = window["wp"]["primitives"]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js /** * WordPress dependencies */ const check = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z" })); /* harmony default export */ const library_check = (check); ;// CONCATENATED MODULE: external ["wp","a11y"] const external_wp_a11y_namespaceObject = window["wp"]["a11y"]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/store/reducer.js /** * WordPress dependencies */ /** * 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. */ function defaults(state = {}, action) { if (action.type === 'SET_PREFERENCE_DEFAULTS') { const { scope, defaults: values } = action; return { ...state, [scope]: { ...state[scope], ...values } }; } return state; } /** * Higher order reducer that does the following: * - Merges any data from the persistence layer into the state when the * `SET_PERSISTENCE_LAYER` action is received. * - Passes any preferences changes to the persistence layer. * * @param {Function} reducer The preferences reducer. * * @return {Function} The enhanced reducer. */ function withPersistenceLayer(reducer) { let persistenceLayer; return (state, action) => { // Setup the persistence layer, and return the persisted data // as the state. if (action.type === 'SET_PERSISTENCE_LAYER') { const { persistenceLayer: persistence, persistedData } = action; persistenceLayer = persistence; return persistedData; } const nextState = reducer(state, action); if (action.type === 'SET_PREFERENCE_VALUE') { persistenceLayer?.set(nextState); } return nextState; }; } /** * Reducer returning the user preferences. * * @param {Object} state Current state. * @param {Object} action Dispatched action. * * @return {Object} Updated state. */ const preferences = withPersistenceLayer((state = {}, action) => { if (action.type === 'SET_PREFERENCE_VALUE') { const { scope, name, value } = action; return { ...state, [scope]: { ...state[scope], [name]: value } }; } return state; }); /* harmony default export */ const reducer = ((0,external_wp_data_namespaceObject.combineReducers)({ defaults, preferences })); ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/store/actions.js /** * Returns an action object used in signalling that a preference should be * toggled. * * @param {string} scope The preference scope (e.g. core/edit-post). * @param {string} name The preference name. */ function toggle(scope, name) { return function ({ select, dispatch }) { const currentValue = select.get(scope, name); dispatch.set(scope, name, !currentValue); }; } /** * Returns an action object used in signalling that a preference should be set * to a value * * @param {string} scope The preference scope (e.g. core/edit-post). * @param {string} name The preference name. * @param {*} value The value to set. * * @return {Object} Action object. */ function set(scope, name, value) { return { type: 'SET_PREFERENCE_VALUE', scope, name, value }; } /** * Returns an action object used in signalling that preference defaults should * be set. * * @param {string} scope The preference scope (e.g. core/edit-post). * @param {Object} defaults A key/value map of preference names to values. * * @return {Object} Action object. */ function setDefaults(scope, defaults) { return { type: 'SET_PREFERENCE_DEFAULTS', scope, defaults }; } /** @typedef {() => Promise} WPPreferencesPersistenceLayerGet */ /** @typedef {(Object) => void} WPPreferencesPersistenceLayerSet */ /** * @typedef WPPreferencesPersistenceLayer * * @property {WPPreferencesPersistenceLayerGet} get An async function that gets data from the persistence layer. * @property {WPPreferencesPersistenceLayerSet} set A function that sets data in the persistence layer. */ /** * Sets the persistence layer. * * When a persistence layer is set, the preferences store will: * - call `get` immediately and update the store state to the value returned. * - call `set` with all preferences whenever a preference changes value. * * `setPersistenceLayer` should ideally be dispatched at the start of an * application's lifecycle, before any other actions have been dispatched to * the preferences store. * * @param {WPPreferencesPersistenceLayer} persistenceLayer The persistence layer. * * @return {Object} Action object. */ async function setPersistenceLayer(persistenceLayer) { const persistedData = await persistenceLayer.get(); return { type: 'SET_PERSISTENCE_LAYER', persistenceLayer, persistedData }; } ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/store/selectors.js /** * Returns a boolean indicating whether a prefer 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} name The name of the feature. * * @return {*} Is the feature enabled? */ function get(state, scope, name) { const value = state.preferences[scope]?.[name]; return value !== undefined ? value : state.defaults[scope]?.[name]; } ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/store/constants.js /** * The identifier for the data store. * * @type {string} */ const STORE_NAME = 'core/preferences'; ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/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 = (0,external_wp_data_namespaceObject.createReduxStore)(STORE_NAME, { reducer: reducer, actions: actions_namespaceObject, selectors: selectors_namespaceObject }); (0,external_wp_data_namespaceObject.register)(store); ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/components/preference-toggle-menu-item/index.js /** * WordPress dependencies */ /** * Internal dependencies */ function PreferenceToggleMenuItem({ scope, name, label, info, messageActivated, messageDeactivated, shortcut, onToggle = () => null, disabled = false }) { const isActive = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(store).get(scope, name), [scope, name]); const { toggle } = (0,external_wp_data_namespaceObject.useDispatch)(store); const speakMessage = () => { if (isActive) { const message = messageDeactivated || (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: preference name, e.g. 'Fullscreen mode' */ (0,external_wp_i18n_namespaceObject.__)('Preference deactivated - %s'), label); (0,external_wp_a11y_namespaceObject.speak)(message); } else { const message = messageActivated || (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: preference name, e.g. 'Fullscreen mode' */ (0,external_wp_i18n_namespaceObject.__)('Preference activated - %s'), label); (0,external_wp_a11y_namespaceObject.speak)(message); } }; return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { icon: isActive && library_check, isSelected: isActive, onClick: () => { onToggle(); toggle(scope, name); speakMessage(); }, role: "menuitemcheckbox", info: info, shortcut: shortcut, disabled: disabled }, label); } ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/components/index.js ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/index.js (window.wp = window.wp || {}).preferences = __webpack_exports__; /******/ })() ;