[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/wp-includes/js/dist/ -> preferences.js (source)

   1  /******/ (function() { // webpackBootstrap
   2  /******/     "use strict";
   3  /******/     // The require scope
   4  /******/     var __webpack_require__ = {};
   5  /******/     
   6  /************************************************************************/
   7  /******/     /* webpack/runtime/define property getters */
   8  /******/     !function() {
   9  /******/         // define getter functions for harmony exports
  10  /******/         __webpack_require__.d = function(exports, definition) {
  11  /******/             for(var key in definition) {
  12  /******/                 if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
  13  /******/                     Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
  14  /******/                 }
  15  /******/             }
  16  /******/         };
  17  /******/     }();
  18  /******/     
  19  /******/     /* webpack/runtime/hasOwnProperty shorthand */
  20  /******/     !function() {
  21  /******/         __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
  22  /******/     }();
  23  /******/     
  24  /******/     /* webpack/runtime/make namespace object */
  25  /******/     !function() {
  26  /******/         // define __esModule on exports
  27  /******/         __webpack_require__.r = function(exports) {
  28  /******/             if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  29  /******/                 Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  30  /******/             }
  31  /******/             Object.defineProperty(exports, '__esModule', { value: true });
  32  /******/         };
  33  /******/     }();
  34  /******/     
  35  /************************************************************************/
  36  var __webpack_exports__ = {};
  37  // ESM COMPAT FLAG
  38  __webpack_require__.r(__webpack_exports__);
  39  
  40  // EXPORTS
  41  __webpack_require__.d(__webpack_exports__, {
  42    "PreferenceToggleMenuItem": function() { return /* reexport */ PreferenceToggleMenuItem; },
  43    "store": function() { return /* reexport */ store; }
  44  });
  45  
  46  // NAMESPACE OBJECT: ./node_modules/@wordpress/preferences/build-module/store/actions.js
  47  var actions_namespaceObject = {};
  48  __webpack_require__.r(actions_namespaceObject);
  49  __webpack_require__.d(actions_namespaceObject, {
  50    "set": function() { return set; },
  51    "setDefaults": function() { return setDefaults; },
  52    "toggle": function() { return toggle; }
  53  });
  54  
  55  // NAMESPACE OBJECT: ./node_modules/@wordpress/preferences/build-module/store/selectors.js
  56  var selectors_namespaceObject = {};
  57  __webpack_require__.r(selectors_namespaceObject);
  58  __webpack_require__.d(selectors_namespaceObject, {
  59    "get": function() { return get; }
  60  });
  61  
  62  ;// CONCATENATED MODULE: external ["wp","element"]
  63  var external_wp_element_namespaceObject = window["wp"]["element"];
  64  ;// CONCATENATED MODULE: external ["wp","data"]
  65  var external_wp_data_namespaceObject = window["wp"]["data"];
  66  ;// CONCATENATED MODULE: external ["wp","components"]
  67  var external_wp_components_namespaceObject = window["wp"]["components"];
  68  ;// CONCATENATED MODULE: external ["wp","i18n"]
  69  var external_wp_i18n_namespaceObject = window["wp"]["i18n"];
  70  ;// CONCATENATED MODULE: external ["wp","primitives"]
  71  var external_wp_primitives_namespaceObject = window["wp"]["primitives"];
  72  ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js
  73  
  74  
  75  /**
  76   * WordPress dependencies
  77   */
  78  
  79  const check = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
  80    xmlns: "http://www.w3.org/2000/svg",
  81    viewBox: "0 0 24 24"
  82  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
  83    d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
  84  }));
  85  /* harmony default export */ var library_check = (check);
  86  
  87  ;// CONCATENATED MODULE: external ["wp","a11y"]
  88  var external_wp_a11y_namespaceObject = window["wp"]["a11y"];
  89  ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/store/reducer.js
  90  /**
  91   * WordPress dependencies
  92   */
  93  
  94  /**
  95   * Reducer returning the defaults for user preferences.
  96   *
  97   * This is kept intentionally separate from the preferences
  98   * themselves so that defaults are not persisted.
  99   *
 100   * @param {Object} state  Current state.
 101   * @param {Object} action Dispatched action.
 102   *
 103   * @return {Object} Updated state.
 104   */
 105  
 106  function defaults() {
 107    let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
 108    let action = arguments.length > 1 ? arguments[1] : undefined;
 109  
 110    if (action.type === 'SET_PREFERENCE_DEFAULTS') {
 111      const {
 112        scope,
 113        defaults: values
 114      } = action;
 115      return { ...state,
 116        [scope]: { ...state[scope],
 117          ...values
 118        }
 119      };
 120    }
 121  
 122    return state;
 123  }
 124  /**
 125   * Reducer returning the user preferences.
 126   *
 127   * @param {Object} state  Current state.
 128   * @param {Object} action Dispatched action.
 129   *
 130   * @return {Object} Updated state.
 131   */
 132  
 133  function preferences() {
 134    let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
 135    let action = arguments.length > 1 ? arguments[1] : undefined;
 136  
 137    if (action.type === 'SET_PREFERENCE_VALUE') {
 138      const {
 139        scope,
 140        name,
 141        value
 142      } = action;
 143      return { ...state,
 144        [scope]: { ...state[scope],
 145          [name]: value
 146        }
 147      };
 148    }
 149  
 150    return state;
 151  }
 152  /* harmony default export */ var reducer = ((0,external_wp_data_namespaceObject.combineReducers)({
 153    defaults,
 154    preferences
 155  }));
 156  
 157  ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/store/actions.js
 158  /**
 159   * Returns an action object used in signalling that a preference should be
 160   * toggled.
 161   *
 162   * @param {string} scope The preference scope (e.g. core/edit-post).
 163   * @param {string} name  The preference name.
 164   */
 165  function toggle(scope, name) {
 166    return function (_ref) {
 167      let {
 168        select,
 169        dispatch
 170      } = _ref;
 171      const currentValue = select.get(scope, name);
 172      dispatch.set(scope, name, !currentValue);
 173    };
 174  }
 175  /**
 176   * Returns an action object used in signalling that a preference should be set
 177   * to a value
 178   *
 179   * @param {string} scope The preference scope (e.g. core/edit-post).
 180   * @param {string} name  The preference name.
 181   * @param {*}      value The value to set.
 182   *
 183   * @return {Object} Action object.
 184   */
 185  
 186  function set(scope, name, value) {
 187    return {
 188      type: 'SET_PREFERENCE_VALUE',
 189      scope,
 190      name,
 191      value
 192    };
 193  }
 194  /**
 195   * Returns an action object used in signalling that preference defaults should
 196   * be set.
 197   *
 198   * @param {string}            scope    The preference scope (e.g. core/edit-post).
 199   * @param {Object<string, *>} defaults A key/value map of preference names to values.
 200   *
 201   * @return {Object} Action object.
 202   */
 203  
 204  function setDefaults(scope, defaults) {
 205    return {
 206      type: 'SET_PREFERENCE_DEFAULTS',
 207      scope,
 208      defaults
 209    };
 210  }
 211  
 212  ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/store/selectors.js
 213  /**
 214   * Returns a boolean indicating whether a prefer is active for a particular
 215   * scope.
 216   *
 217   * @param {Object} state The store state.
 218   * @param {string} scope The scope of the feature (e.g. core/edit-post).
 219   * @param {string} name  The name of the feature.
 220   *
 221   * @return {*} Is the feature enabled?
 222   */
 223  function get(state, scope, name) {
 224    var _state$preferences$sc, _state$defaults$scope;
 225  
 226    const value = (_state$preferences$sc = state.preferences[scope]) === null || _state$preferences$sc === void 0 ? void 0 : _state$preferences$sc[name];
 227    return value !== undefined ? value : (_state$defaults$scope = state.defaults[scope]) === null || _state$defaults$scope === void 0 ? void 0 : _state$defaults$scope[name];
 228  }
 229  
 230  ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/store/constants.js
 231  /**
 232   * The identifier for the data store.
 233   *
 234   * @type {string}
 235   */
 236  const STORE_NAME = 'core/preferences';
 237  
 238  ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/store/index.js
 239  /**
 240   * WordPress dependencies
 241   */
 242  
 243  /**
 244   * Internal dependencies
 245   */
 246  
 247  /**
 248   * Internal dependencies
 249   */
 250  
 251  
 252  
 253  
 254  
 255  /**
 256   * Store definition for the interface namespace.
 257   *
 258   * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
 259   *
 260   * @type {Object}
 261   */
 262  
 263  const store = (0,external_wp_data_namespaceObject.createReduxStore)(STORE_NAME, {
 264    reducer: reducer,
 265    actions: actions_namespaceObject,
 266    selectors: selectors_namespaceObject,
 267    persist: ['preferences']
 268  }); // Once we build a more generic persistence plugin that works across types of stores
 269  // we'd be able to replace this with a register call.
 270  
 271  (0,external_wp_data_namespaceObject.registerStore)(STORE_NAME, {
 272    reducer: reducer,
 273    actions: actions_namespaceObject,
 274    selectors: selectors_namespaceObject,
 275    persist: ['preferences']
 276  });
 277  
 278  ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/components/preference-toggle-menu-item/index.js
 279  
 280  
 281  /**
 282   * WordPress dependencies
 283   */
 284  
 285  
 286  
 287  
 288  
 289  /**
 290   * Internal dependencies
 291   */
 292  
 293  
 294  function PreferenceToggleMenuItem(_ref) {
 295    let {
 296      scope,
 297      name,
 298      label,
 299      info,
 300      messageActivated,
 301      messageDeactivated,
 302      shortcut
 303    } = _ref;
 304    const isActive = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(store).get(scope, name), [name]);
 305    const {
 306      toggle
 307    } = (0,external_wp_data_namespaceObject.useDispatch)(store);
 308  
 309    const speakMessage = () => {
 310      if (isActive) {
 311        const message = messageDeactivated || (0,external_wp_i18n_namespaceObject.sprintf)(
 312        /* translators: %s: preference name, e.g. 'Fullscreen mode' */
 313        (0,external_wp_i18n_namespaceObject.__)('Preference deactivated - %s'), label);
 314        (0,external_wp_a11y_namespaceObject.speak)(message);
 315      } else {
 316        const message = messageActivated || (0,external_wp_i18n_namespaceObject.sprintf)(
 317        /* translators: %s: preference name, e.g. 'Fullscreen mode' */
 318        (0,external_wp_i18n_namespaceObject.__)('Preference activated - %s'), label);
 319        (0,external_wp_a11y_namespaceObject.speak)(message);
 320      }
 321    };
 322  
 323    return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
 324      icon: isActive && library_check,
 325      isSelected: isActive,
 326      onClick: () => {
 327        toggle(scope, name);
 328        speakMessage();
 329      },
 330      role: "menuitemcheckbox",
 331      info: info,
 332      shortcut: shortcut
 333    }, label);
 334  }
 335  
 336  ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/components/index.js
 337  
 338  
 339  ;// CONCATENATED MODULE: ./node_modules/@wordpress/preferences/build-module/index.js
 340  
 341  
 342  
 343  (window.wp = window.wp || {}).preferences = __webpack_exports__;
 344  /******/ })()
 345  ;


Generated: Fri Apr 19 01:00:02 2024 Cross-referenced by PHPXref 0.7.1