wp/wp-includes/js/dist/viewport.js
changeset 9 177826044cd9
child 16 a86126ab1dd4
equal deleted inserted replaced
8:c7c34916027a 9:177826044cd9
       
     1 this["wp"] = this["wp"] || {}; this["wp"]["viewport"] =
       
     2 /******/ (function(modules) { // webpackBootstrap
       
     3 /******/ 	// The module cache
       
     4 /******/ 	var installedModules = {};
       
     5 /******/
       
     6 /******/ 	// The require function
       
     7 /******/ 	function __webpack_require__(moduleId) {
       
     8 /******/
       
     9 /******/ 		// Check if module is in cache
       
    10 /******/ 		if(installedModules[moduleId]) {
       
    11 /******/ 			return installedModules[moduleId].exports;
       
    12 /******/ 		}
       
    13 /******/ 		// Create a new module (and put it into the cache)
       
    14 /******/ 		var module = installedModules[moduleId] = {
       
    15 /******/ 			i: moduleId,
       
    16 /******/ 			l: false,
       
    17 /******/ 			exports: {}
       
    18 /******/ 		};
       
    19 /******/
       
    20 /******/ 		// Execute the module function
       
    21 /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
       
    22 /******/
       
    23 /******/ 		// Flag the module as loaded
       
    24 /******/ 		module.l = true;
       
    25 /******/
       
    26 /******/ 		// Return the exports of the module
       
    27 /******/ 		return module.exports;
       
    28 /******/ 	}
       
    29 /******/
       
    30 /******/
       
    31 /******/ 	// expose the modules object (__webpack_modules__)
       
    32 /******/ 	__webpack_require__.m = modules;
       
    33 /******/
       
    34 /******/ 	// expose the module cache
       
    35 /******/ 	__webpack_require__.c = installedModules;
       
    36 /******/
       
    37 /******/ 	// define getter function for harmony exports
       
    38 /******/ 	__webpack_require__.d = function(exports, name, getter) {
       
    39 /******/ 		if(!__webpack_require__.o(exports, name)) {
       
    40 /******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
       
    41 /******/ 		}
       
    42 /******/ 	};
       
    43 /******/
       
    44 /******/ 	// define __esModule on exports
       
    45 /******/ 	__webpack_require__.r = function(exports) {
       
    46 /******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
       
    47 /******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
       
    48 /******/ 		}
       
    49 /******/ 		Object.defineProperty(exports, '__esModule', { value: true });
       
    50 /******/ 	};
       
    51 /******/
       
    52 /******/ 	// create a fake namespace object
       
    53 /******/ 	// mode & 1: value is a module id, require it
       
    54 /******/ 	// mode & 2: merge all properties of value into the ns
       
    55 /******/ 	// mode & 4: return value when already ns object
       
    56 /******/ 	// mode & 8|1: behave like require
       
    57 /******/ 	__webpack_require__.t = function(value, mode) {
       
    58 /******/ 		if(mode & 1) value = __webpack_require__(value);
       
    59 /******/ 		if(mode & 8) return value;
       
    60 /******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
       
    61 /******/ 		var ns = Object.create(null);
       
    62 /******/ 		__webpack_require__.r(ns);
       
    63 /******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
       
    64 /******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
       
    65 /******/ 		return ns;
       
    66 /******/ 	};
       
    67 /******/
       
    68 /******/ 	// getDefaultExport function for compatibility with non-harmony modules
       
    69 /******/ 	__webpack_require__.n = function(module) {
       
    70 /******/ 		var getter = module && module.__esModule ?
       
    71 /******/ 			function getDefault() { return module['default']; } :
       
    72 /******/ 			function getModuleExports() { return module; };
       
    73 /******/ 		__webpack_require__.d(getter, 'a', getter);
       
    74 /******/ 		return getter;
       
    75 /******/ 	};
       
    76 /******/
       
    77 /******/ 	// Object.prototype.hasOwnProperty.call
       
    78 /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
       
    79 /******/
       
    80 /******/ 	// __webpack_public_path__
       
    81 /******/ 	__webpack_require__.p = "";
       
    82 /******/
       
    83 /******/
       
    84 /******/ 	// Load entry module and return exports
       
    85 /******/ 	return __webpack_require__(__webpack_require__.s = 372);
       
    86 /******/ })
       
    87 /************************************************************************/
       
    88 /******/ ({
       
    89 
       
    90 /***/ 2:
       
    91 /***/ (function(module, exports) {
       
    92 
       
    93 (function() { module.exports = this["lodash"]; }());
       
    94 
       
    95 /***/ }),
       
    96 
       
    97 /***/ 372:
       
    98 /***/ (function(module, __webpack_exports__, __webpack_require__) {
       
    99 
       
   100 "use strict";
       
   101 __webpack_require__.r(__webpack_exports__);
       
   102 var actions_namespaceObject = {};
       
   103 __webpack_require__.r(actions_namespaceObject);
       
   104 __webpack_require__.d(actions_namespaceObject, "setIsMatching", function() { return setIsMatching; });
       
   105 var selectors_namespaceObject = {};
       
   106 __webpack_require__.r(selectors_namespaceObject);
       
   107 __webpack_require__.d(selectors_namespaceObject, "isViewportMatch", function() { return isViewportMatch; });
       
   108 
       
   109 // EXTERNAL MODULE: external "lodash"
       
   110 var external_lodash_ = __webpack_require__(2);
       
   111 
       
   112 // EXTERNAL MODULE: external {"this":["wp","data"]}
       
   113 var external_this_wp_data_ = __webpack_require__(5);
       
   114 
       
   115 // CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/store/reducer.js
       
   116 /**
       
   117  * Reducer returning the viewport state, as keys of breakpoint queries with
       
   118  * boolean value representing whether query is matched.
       
   119  *
       
   120  * @param {Object} state  Current state.
       
   121  * @param {Object} action Dispatched action.
       
   122  *
       
   123  * @return {Object} Updated state.
       
   124  */
       
   125 function reducer() {
       
   126   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
       
   127   var action = arguments.length > 1 ? arguments[1] : undefined;
       
   128 
       
   129   switch (action.type) {
       
   130     case 'SET_IS_MATCHING':
       
   131       return action.values;
       
   132   }
       
   133 
       
   134   return state;
       
   135 }
       
   136 
       
   137 /* harmony default export */ var store_reducer = (reducer);
       
   138 
       
   139 // CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/store/actions.js
       
   140 /**
       
   141  * Returns an action object used in signalling that viewport queries have been
       
   142  * updated. Values are specified as an object of breakpoint query keys where
       
   143  * value represents whether query matches.
       
   144  *
       
   145  * @param {Object} values Breakpoint query matches.
       
   146  *
       
   147  * @return {Object} Action object.
       
   148  */
       
   149 function setIsMatching(values) {
       
   150   return {
       
   151     type: 'SET_IS_MATCHING',
       
   152     values: values
       
   153   };
       
   154 }
       
   155 
       
   156 // CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/store/selectors.js
       
   157 /**
       
   158  * Returns true if the viewport matches the given query, or false otherwise.
       
   159  *
       
   160  * @param {Object} state Viewport state object.
       
   161  * @param {string} query Query string. Includes operator and breakpoint name,
       
   162  *                       space separated. Operator defaults to >=.
       
   163  *
       
   164  * @example
       
   165  *
       
   166  * ```js
       
   167  * isViewportMatch( state, '< huge' );
       
   168  * isViewPortMatch( state, 'medium' );
       
   169  * ```
       
   170  *
       
   171  * @return {boolean} Whether viewport matches query.
       
   172  */
       
   173 function isViewportMatch(state, query) {
       
   174   // Default to `>=` if no operator is present.
       
   175   if (query.indexOf(' ') === -1) {
       
   176     query = '>= ' + query;
       
   177   }
       
   178 
       
   179   return !!state[query];
       
   180 }
       
   181 
       
   182 // CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/store/index.js
       
   183 /**
       
   184  * WordPress dependencies
       
   185  */
       
   186 
       
   187 /**
       
   188  * Internal dependencies
       
   189  */
       
   190 
       
   191 
       
   192 
       
   193 
       
   194 /* harmony default export */ var store = (Object(external_this_wp_data_["registerStore"])('core/viewport', {
       
   195   reducer: store_reducer,
       
   196   actions: actions_namespaceObject,
       
   197   selectors: selectors_namespaceObject
       
   198 }));
       
   199 
       
   200 // EXTERNAL MODULE: external {"this":["wp","compose"]}
       
   201 var external_this_wp_compose_ = __webpack_require__(6);
       
   202 
       
   203 // CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/with-viewport-match.js
       
   204 /**
       
   205  * External dependencies
       
   206  */
       
   207 
       
   208 /**
       
   209  * WordPress dependencies
       
   210  */
       
   211 
       
   212 
       
   213 
       
   214 /**
       
   215  * Higher-order component creator, creating a new component which renders with
       
   216  * the given prop names, where the value passed to the underlying component is
       
   217  * the result of the query assigned as the object's value.
       
   218  *
       
   219  * @see isViewportMatch
       
   220  *
       
   221  * @param {Object} queries  Object of prop name to viewport query.
       
   222  *
       
   223  * @example
       
   224  *
       
   225  * ```jsx
       
   226  * function MyComponent( { isMobile } ) {
       
   227  * 	return (
       
   228  * 		<div>Currently: { isMobile ? 'Mobile' : 'Not Mobile' }</div>
       
   229  * 	);
       
   230  * }
       
   231  *
       
   232  * MyComponent = withViewportMatch( { isMobile: '< small' } )( MyComponent );
       
   233  * ```
       
   234  *
       
   235  * @return {Function} Higher-order component.
       
   236  */
       
   237 
       
   238 var with_viewport_match_withViewportMatch = function withViewportMatch(queries) {
       
   239   return Object(external_this_wp_compose_["createHigherOrderComponent"])(Object(external_this_wp_data_["withSelect"])(function (select) {
       
   240     return Object(external_lodash_["mapValues"])(queries, function (query) {
       
   241       return select('core/viewport').isViewportMatch(query);
       
   242     });
       
   243   }), 'withViewportMatch');
       
   244 };
       
   245 
       
   246 /* harmony default export */ var with_viewport_match = (with_viewport_match_withViewportMatch);
       
   247 
       
   248 // CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/if-viewport-matches.js
       
   249 /**
       
   250  * WordPress dependencies
       
   251  */
       
   252 
       
   253 /**
       
   254  * Internal dependencies
       
   255  */
       
   256 
       
   257 
       
   258 /**
       
   259  * Higher-order component creator, creating a new component which renders if
       
   260  * the viewport query is satisfied.
       
   261  *
       
   262  * @see withViewportMatches
       
   263  *
       
   264  * @param {string} query Viewport query.
       
   265  *
       
   266  * @example
       
   267  *
       
   268  * ```jsx
       
   269  * function MyMobileComponent() {
       
   270  * 	return <div>I'm only rendered on mobile viewports!</div>;
       
   271  * }
       
   272  *
       
   273  * MyMobileComponent = ifViewportMatches( '< small' )( MyMobileComponent );
       
   274  * ```
       
   275  *
       
   276  * @return {Function} Higher-order component.
       
   277  */
       
   278 
       
   279 var if_viewport_matches_ifViewportMatches = function ifViewportMatches(query) {
       
   280   return Object(external_this_wp_compose_["createHigherOrderComponent"])(Object(external_this_wp_compose_["compose"])([with_viewport_match({
       
   281     isViewportMatch: query
       
   282   }), Object(external_this_wp_compose_["ifCondition"])(function (props) {
       
   283     return props.isViewportMatch;
       
   284   })]), 'ifViewportMatches');
       
   285 };
       
   286 
       
   287 /* harmony default export */ var if_viewport_matches = (if_viewport_matches_ifViewportMatches);
       
   288 
       
   289 // CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/index.js
       
   290 /* concated harmony reexport ifViewportMatches */__webpack_require__.d(__webpack_exports__, "ifViewportMatches", function() { return if_viewport_matches; });
       
   291 /* concated harmony reexport withViewportMatch */__webpack_require__.d(__webpack_exports__, "withViewportMatch", function() { return with_viewport_match; });
       
   292 /**
       
   293  * External dependencies
       
   294  */
       
   295 
       
   296 /**
       
   297  * WordPress dependencies
       
   298  */
       
   299 
       
   300 
       
   301 /**
       
   302  * Internal dependencies
       
   303  */
       
   304 
       
   305 
       
   306 
       
   307 
       
   308 /**
       
   309  * Hash of breakpoint names with pixel width at which it becomes effective.
       
   310  *
       
   311  * @see _breakpoints.scss
       
   312  *
       
   313  * @type {Object}
       
   314  */
       
   315 
       
   316 var BREAKPOINTS = {
       
   317   huge: 1440,
       
   318   wide: 1280,
       
   319   large: 960,
       
   320   medium: 782,
       
   321   small: 600,
       
   322   mobile: 480
       
   323 };
       
   324 /**
       
   325  * Hash of query operators with corresponding condition for media query.
       
   326  *
       
   327  * @type {Object}
       
   328  */
       
   329 
       
   330 var OPERATORS = {
       
   331   '<': 'max-width',
       
   332   '>=': 'min-width'
       
   333 };
       
   334 /**
       
   335  * Callback invoked when media query state should be updated. Is invoked a
       
   336  * maximum of one time per call stack.
       
   337  */
       
   338 
       
   339 var build_module_setIsMatching = Object(external_lodash_["debounce"])(function () {
       
   340   var values = Object(external_lodash_["mapValues"])(build_module_queries, function (query) {
       
   341     return query.matches;
       
   342   });
       
   343   Object(external_this_wp_data_["dispatch"])('core/viewport').setIsMatching(values);
       
   344 }, {
       
   345   leading: true
       
   346 });
       
   347 /**
       
   348  * Hash of breakpoint names with generated MediaQueryList for corresponding
       
   349  * media query.
       
   350  *
       
   351  * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia
       
   352  * @see https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList
       
   353  *
       
   354  * @type {Object<string,MediaQueryList>}
       
   355  */
       
   356 
       
   357 var build_module_queries = Object(external_lodash_["reduce"])(BREAKPOINTS, function (result, width, name) {
       
   358   Object(external_lodash_["forEach"])(OPERATORS, function (condition, operator) {
       
   359     var list = window.matchMedia("(".concat(condition, ": ").concat(width, "px)"));
       
   360     list.addListener(build_module_setIsMatching);
       
   361     var key = [operator, name].join(' ');
       
   362     result[key] = list;
       
   363   });
       
   364   return result;
       
   365 }, {});
       
   366 window.addEventListener('orientationchange', build_module_setIsMatching); // Set initial values
       
   367 
       
   368 build_module_setIsMatching();
       
   369 build_module_setIsMatching.flush();
       
   370 
       
   371 
       
   372 /***/ }),
       
   373 
       
   374 /***/ 5:
       
   375 /***/ (function(module, exports) {
       
   376 
       
   377 (function() { module.exports = this["wp"]["data"]; }());
       
   378 
       
   379 /***/ }),
       
   380 
       
   381 /***/ 6:
       
   382 /***/ (function(module, exports) {
       
   383 
       
   384 (function() { module.exports = this["wp"]["compose"]; }());
       
   385 
       
   386 /***/ })
       
   387 
       
   388 /******/ });