diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 07:56:49 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 07:56:49 +0000 |
commit | a415c29efee45520ae252d2aa28f1083a521cd7b (patch) | |
tree | f4ade4b6668ecc0765de7e1424f7c1427ad433ff /wp-includes/js/dist/preferences.js | |
parent | Initial commit. (diff) | |
download | wordpress-a415c29efee45520ae252d2aa28f1083a521cd7b.tar.xz wordpress-a415c29efee45520ae252d2aa28f1083a521cd7b.zip |
Adding upstream version 6.4.3+dfsg1.upstream/6.4.3+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'wp-includes/js/dist/preferences.js')
-rw-r--r-- | wp-includes/js/dist/preferences.js | 388 |
1 files changed, 388 insertions, 0 deletions
diff --git a/wp-includes/js/dist/preferences.js b/wp-includes/js/dist/preferences.js new file mode 100644 index 0000000..f6161fe --- /dev/null +++ b/wp-includes/js/dist/preferences.js @@ -0,0 +1,388 @@ +/******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ // The require scope +/******/ var __webpack_require__ = {}; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(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 */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + PreferenceToggleMenuItem: function() { return /* reexport */ PreferenceToggleMenuItem; }, + store: function() { return /* 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: function() { return set; }, + setDefaults: function() { return setDefaults; }, + setPersistenceLayer: function() { return setPersistenceLayer; }, + toggle: function() { return 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: function() { return get; } +}); + +;// CONCATENATED MODULE: external ["wp","element"] +var external_wp_element_namespaceObject = window["wp"]["element"]; +;// CONCATENATED MODULE: external ["wp","data"] +var external_wp_data_namespaceObject = window["wp"]["data"]; +;// CONCATENATED MODULE: external ["wp","components"] +var external_wp_components_namespaceObject = window["wp"]["components"]; +;// CONCATENATED MODULE: external ["wp","i18n"] +var external_wp_i18n_namespaceObject = window["wp"]["i18n"]; +;// CONCATENATED MODULE: external ["wp","primitives"] +var 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 */ var library_check = (check); + +;// CONCATENATED MODULE: external ["wp","a11y"] +var 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 */ var 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<string, *>} 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<Object>} 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__; +/******/ })() +;
\ No newline at end of file |