diff -r 7b1b88e27a20 -r 48c4eec2b7e6 wp/wp-includes/js/dist/viewport.js --- a/wp/wp-includes/js/dist/viewport.js Thu Sep 29 08:06:27 2022 +0200 +++ b/wp/wp-includes/js/dist/viewport.js Fri Sep 05 18:40:08 2025 +0200 @@ -1,36 +1,36 @@ -/******/ (function() { // webpackBootstrap +/******/ (() => { // 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) { +/******/ __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 */ -/******/ !function() { -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } -/******/ }(); +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ -/******/ !function() { +/******/ (() => { /******/ // define __esModule on exports -/******/ __webpack_require__.r = function(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__ = {}; @@ -39,29 +39,29 @@ // EXPORTS __webpack_require__.d(__webpack_exports__, { - "ifViewportMatches": function() { return /* reexport */ if_viewport_matches; }, - "store": function() { return /* reexport */ store; }, - "withViewportMatch": function() { return /* reexport */ with_viewport_match; } + ifViewportMatches: () => (/* reexport */ if_viewport_matches), + store: () => (/* reexport */ store), + withViewportMatch: () => (/* reexport */ with_viewport_match) }); // NAMESPACE OBJECT: ./node_modules/@wordpress/viewport/build-module/store/actions.js var actions_namespaceObject = {}; __webpack_require__.r(actions_namespaceObject); __webpack_require__.d(actions_namespaceObject, { - "setIsMatching": function() { return setIsMatching; } + setIsMatching: () => (setIsMatching) }); // NAMESPACE OBJECT: ./node_modules/@wordpress/viewport/build-module/store/selectors.js var selectors_namespaceObject = {}; __webpack_require__.r(selectors_namespaceObject); __webpack_require__.d(selectors_namespaceObject, { - "isViewportMatch": function() { return isViewportMatch; } + isViewportMatch: () => (isViewportMatch) }); -;// CONCATENATED MODULE: external "lodash" -var external_lodash_namespaceObject = window["lodash"]; +;// CONCATENATED MODULE: external ["wp","compose"] +const external_wp_compose_namespaceObject = window["wp"]["compose"]; ;// CONCATENATED MODULE: external ["wp","data"] -var external_wp_data_namespaceObject = window["wp"]["data"]; +const external_wp_data_namespaceObject = window["wp"]["data"]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/store/reducer.js /** * Reducer returning the viewport state, as keys of breakpoint queries with @@ -72,25 +72,23 @@ * * @return {Object} Updated state. */ -function reducer() { - let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - let action = arguments.length > 1 ? arguments[1] : undefined; - +function reducer(state = {}, action) { switch (action.type) { case 'SET_IS_MATCHING': return action.values; } - return state; } - -/* harmony default export */ var store_reducer = (reducer); +/* harmony default export */ const store_reducer = (reducer); ;// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/store/actions.js /** * Returns an action object used in signalling that viewport queries have been * updated. Values are specified as an object of breakpoint query keys where * value represents whether query matches. + * Ignored from documentation as it is for internal use only. + * + * @ignore * * @param {Object} values Breakpoint query matches. * @@ -114,8 +112,21 @@ * @example * * ```js - * isViewportMatch( state, '< huge' ); - * isViewPortMatch( state, 'medium' ); + * import { store as viewportStore } from '@wordpress/viewport'; + * import { useSelect } from '@wordpress/data'; + * import { __ } from '@wordpress/i18n'; + * const ExampleComponent = () => { + * const isMobile = useSelect( + * ( select ) => select( viewportStore ).isViewportMatch( '< small' ), + * [] + * ); + * + * return isMobile ? ( + *
{ __( 'Mobile' ) }
+ * ) : ( + *
{ __( 'Not Mobile' ) }
+ * ); + * }; * ``` * * @return {boolean} Whether viewport matches query. @@ -125,7 +136,6 @@ if (query.indexOf(' ') === -1) { query = '>= ' + query; } - return !!state[query]; } @@ -134,38 +144,6 @@ * WordPress dependencies */ -/** - * Internal dependencies - */ - - - - -const STORE_NAME = 'core/viewport'; -/** - * Store definition for the viewport 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: store_reducer, - actions: actions_namespaceObject, - selectors: selectors_namespaceObject -}); -(0,external_wp_data_namespaceObject.register)(store); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/listener.js -/** - * External dependencies - */ - -/** - * WordPress dependencies - */ - /** * Internal dependencies @@ -173,17 +151,45 @@ +const STORE_NAME = 'core/viewport'; + +/** + * Store definition for the viewport 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: store_reducer, + actions: actions_namespaceObject, + selectors: selectors_namespaceObject +}); +(0,external_wp_data_namespaceObject.register)(store); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/listener.js +/** + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ + const addDimensionsEventListener = (breakpoints, operators) => { /** * Callback invoked when media query state should be updated. Is invoked a * maximum of one time per call stack. */ - const setIsMatching = (0,external_lodash_namespaceObject.debounce)(() => { - const values = (0,external_lodash_namespaceObject.mapValues)(queries, query => query.matches); + const setIsMatching = (0,external_wp_compose_namespaceObject.debounce)(() => { + const values = Object.fromEntries(queries.map(([key, query]) => [key, query.matches])); (0,external_wp_data_namespaceObject.dispatch)(store).setIsMatching(values); - }, { + }, 0, { leading: true }); + /** * Hash of breakpoint names with generated MediaQueryList for corresponding * media query. @@ -193,53 +199,25 @@ * * @type {Object} */ - - const queries = (0,external_lodash_namespaceObject.reduce)(breakpoints, (result, width, name) => { - (0,external_lodash_namespaceObject.forEach)(operators, (condition, operator) => { + const operatorEntries = Object.entries(operators); + const queries = Object.entries(breakpoints).flatMap(([name, width]) => { + return operatorEntries.map(([operator, condition]) => { const list = window.matchMedia(`(${condition}: ${width}px)`); - list.addListener(setIsMatching); - const key = [operator, name].join(' '); - result[key] = list; + list.addEventListener('change', setIsMatching); + return [`${operator} ${name}`, list]; }); - return result; - }, {}); - window.addEventListener('orientationchange', setIsMatching); // Set initial values. + }); + window.addEventListener('orientationchange', setIsMatching); + // Set initial values. setIsMatching(); setIsMatching.flush(); }; - -/* harmony default export */ var listener = (addDimensionsEventListener); - -;// CONCATENATED MODULE: external ["wp","compose"] -var external_wp_compose_namespaceObject = window["wp"]["compose"]; -;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js -function _extends() { - _extends = Object.assign ? Object.assign.bind() : function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; +/* harmony default export */ const listener = (addDimensionsEventListener); - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - return _extends.apply(this, arguments); -} -;// CONCATENATED MODULE: external ["wp","element"] -var external_wp_element_namespaceObject = window["wp"]["element"]; +;// CONCATENATED MODULE: external "ReactJSXRuntime" +const external_ReactJSXRuntime_namespaceObject = window["ReactJSXRuntime"]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/with-viewport-match.js - - - -/** - * External dependencies - */ - /** * WordPress dependencies */ @@ -270,36 +248,37 @@ */ const withViewportMatch = queries => { - const useViewPortQueriesResult = () => (0,external_lodash_namespaceObject.mapValues)(queries, query => { + const queryEntries = Object.entries(queries); + const useViewPortQueriesResult = () => Object.fromEntries(queryEntries.map(([key, query]) => { let [operator, breakpointName] = query.split(' '); - if (breakpointName === undefined) { breakpointName = operator; operator = '>='; - } // Hooks should unconditionally execute in the same order, + } + // Hooks should unconditionally execute in the same order, // we are respecting that as from the static query of the HOC we generate // a hook that calls other hooks always in the same order (because the query never changes). // eslint-disable-next-line react-hooks/rules-of-hooks - - - return (0,external_wp_compose_namespaceObject.useViewportMatch)(breakpointName, operator); - }); - + return [key, (0,external_wp_compose_namespaceObject.useViewportMatch)(breakpointName, operator)]; + })); return (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => { return (0,external_wp_compose_namespaceObject.pure)(props => { const queriesResult = useViewPortQueriesResult(); - return (0,external_wp_element_namespaceObject.createElement)(WrappedComponent, _extends({}, props, queriesResult)); + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(WrappedComponent, { + ...props, + ...queriesResult + }); }); }, 'withViewportMatch'); }; - -/* harmony default export */ var with_viewport_match = (withViewportMatch); +/* harmony default export */ const with_viewport_match = (withViewportMatch); ;// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/if-viewport-matches.js /** * WordPress dependencies */ + /** * Internal dependencies */ @@ -325,12 +304,10 @@ * * @return {Function} Higher-order component. */ - const ifViewportMatches = query => (0,external_wp_compose_namespaceObject.createHigherOrderComponent)((0,external_wp_compose_namespaceObject.compose)([with_viewport_match({ isViewportMatch: query }), (0,external_wp_compose_namespaceObject.ifCondition)(props => props.isViewportMatch)]), 'ifViewportMatches'); - -/* harmony default export */ var if_viewport_matches = (ifViewportMatches); +/* harmony default export */ const if_viewport_matches = (ifViewportMatches); ;// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/index.js /** @@ -340,6 +317,7 @@ + /** * Hash of breakpoint names with pixel width at which it becomes effective. * @@ -347,7 +325,6 @@ * * @type {Object} */ - const BREAKPOINTS = { huge: 1440, wide: 1280, @@ -356,12 +333,12 @@ small: 600, mobile: 480 }; + /** * Hash of query operators with corresponding condition for media query. * * @type {Object} */ - const OPERATORS = { '<': 'max-width', '>=': 'min-width'