diff -r 3d4e9c994f10 -r a86126ab1dd4 wp/wp-includes/js/dist/components.js --- a/wp/wp-includes/js/dist/components.js Tue Oct 22 16:11:46 2019 +0200 +++ b/wp/wp-includes/js/dist/components.js Tue Dec 15 13:49:49 2020 +0100 @@ -82,7 +82,7 @@ /******/ /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 359); +/******/ return __webpack_require__(__webpack_require__.s = 260); /******/ }) /************************************************************************/ /******/ ([ @@ -104,156 +104,9 @@ (function() { module.exports = this["lodash"]; }()); /***/ }), -/* 3 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _assertThisInitialized; }); -function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return self; -} - -/***/ }), +/* 3 */, /* 4 */, -/* 5 */, -/* 6 */ -/***/ (function(module, exports) { - -(function() { module.exports = this["wp"]["compose"]; }()); - -/***/ }), -/* 7 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectSpread; }); -/* harmony import */ var _defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15); - -function _objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - var ownKeys = Object.keys(source); - - if (typeof Object.getOwnPropertySymbols === 'function') { - ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { - return Object.getOwnPropertyDescriptor(source, sym).enumerable; - })); - } - - ownKeys.forEach(function (key) { - Object(_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(target, key, source[key]); - }); - } - - return target; -} - -/***/ }), -/* 8 */, -/* 9 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _createClass; }); -function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } -} - -function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; -} - -/***/ }), -/* 10 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _classCallCheck; }); -function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} - -/***/ }), -/* 11 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _possibleConstructorReturn; }); -/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32); -/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); - - -function _possibleConstructorReturn(self, call) { - if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(call) === "object" || typeof call === "function")) { - return call; - } - - return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(self); -} - -/***/ }), -/* 12 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _getPrototypeOf; }); -function _getPrototypeOf(o) { - _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return _getPrototypeOf(o); -} - -/***/ }), -/* 13 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; - -// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js -function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - - return _setPrototypeOf(o, p); -} -// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _inherits; }); - -function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - if (superClass) _setPrototypeOf(subClass, superClass); -} - -/***/ }), -/* 14 */, -/* 15 */ +/* 5 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -274,7 +127,45 @@ } /***/ }), -/* 16 */ +/* 6 */ +/***/ (function(module, exports) { + +(function() { module.exports = this["wp"]["primitives"]; }()); + +/***/ }), +/* 7 */, +/* 8 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _extends; }); +function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); +} + +/***/ }), +/* 9 */ +/***/ (function(module, exports) { + +(function() { module.exports = this["wp"]["compose"]; }()); + +/***/ }), +/* 10 */, +/* 11 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -331,153 +222,40 @@ /***/ }), -/* 17 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; - -// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { - arr2[i] = arr[i]; - } - - return arr2; - } -} -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js -var iterableToArray = __webpack_require__(34); - -// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); -} -// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _toConsumableArray; }); - - - -function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || Object(iterableToArray["a" /* default */])(arr) || _nonIterableSpread(); -} - -/***/ }), -/* 18 */ -/***/ (function(module, exports) { - -(function() { module.exports = this["wp"]["keycodes"]; }()); - -/***/ }), -/* 19 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _extends; }); -function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); -} - -/***/ }), -/* 20 */ -/***/ (function(module, exports) { - -(function() { module.exports = this["wp"]["richText"]; }()); - -/***/ }), -/* 21 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; - -// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; -} -// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutProperties; }); - -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - var target = _objectWithoutPropertiesLoose(source, excluded); - var key, i; - - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } - } - - return target; -} - -/***/ }), -/* 22 */, -/* 23 */, -/* 24 */ -/***/ (function(module, exports) { - -(function() { module.exports = this["wp"]["dom"]; }()); - -/***/ }), -/* 25 */ -/***/ (function(module, exports) { - -(function() { module.exports = this["wp"]["url"]; }()); - -/***/ }), -/* 26 */ -/***/ (function(module, exports) { - -(function() { module.exports = this["wp"]["hooks"]; }()); - -/***/ }), -/* 27 */ +/* 12 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _assertThisInitialized; }); +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +/***/ }), +/* 13 */ /***/ (function(module, exports) { (function() { module.exports = this["React"]; }()); /***/ }), -/* 28 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; +/* 14 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _slicedToArray; }); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js -var arrayWithHoles = __webpack_require__(37); +var arrayWithHoles = __webpack_require__(38); // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; @@ -502,27 +280,338 @@ return _arr; } +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +var unsupportedIterableToArray = __webpack_require__(29); + // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js -var nonIterableRest = __webpack_require__(38); +var nonIterableRest = __webpack_require__(39); // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _slicedToArray; }); + function _slicedToArray(arr, i) { - return Object(arrayWithHoles["a" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(nonIterableRest["a" /* default */])(); -} - -/***/ }), -/* 29 */ + return Object(arrayWithHoles["a" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray["a" /* default */])(arr, i) || Object(nonIterableRest["a" /* default */])(); +} + +/***/ }), +/* 15 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutProperties; }); +/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41); + +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(source, excluded); + var key, i; + + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + + return target; +} + +/***/ }), +/* 16 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _getPrototypeOf; }); +function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} + +/***/ }), +/* 17 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutPropertiesLoose; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return _objectSpread2; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return _createForOfIteratorHelperLoose; }); +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} + +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; +} + +function _createForOfIteratorHelperLoose(o, allowArrayLike) { + var it; + + if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + return function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + it = o[Symbol.iterator](); + return it.next.bind(it); +} + + + + +/***/ }), +/* 18 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _toConsumableArray; }); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +var arrayLikeToArray = __webpack_require__(26); + +// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js + +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return Object(arrayLikeToArray["a" /* default */])(arr); +} +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js +var iterableToArray = __webpack_require__(35); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +var unsupportedIterableToArray = __webpack_require__(29); + +// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + + + + +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || Object(iterableToArray["a" /* default */])(arr) || Object(unsupportedIterableToArray["a" /* default */])(arr) || _nonIterableSpread(); +} + +/***/ }), +/* 19 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _createClass; }); +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +/***/ }), +/* 20 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _classCallCheck; }); +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +/***/ }), +/* 21 */ /***/ (function(module, exports) { -(function() { module.exports = this["moment"]; }()); - -/***/ }), -/* 30 */, -/* 31 */ +(function() { module.exports = this["wp"]["keycodes"]; }()); + +/***/ }), +/* 22 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _inherits; }); + +// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); +} +// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); +} + +/***/ }), +/* 23 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _possibleConstructorReturn; }); +/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40); +/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12); + + +function _possibleConstructorReturn(self, call) { + if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(call) === "object" || typeof call === "function")) { + return call; + } + + return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(self); +} + +/***/ }), +/* 24 */ +/***/ (function(module, exports) { + +(function() { module.exports = this["regeneratorRuntime"]; }()); + +/***/ }), +/* 25 */ +/***/ (function(module, exports) { + +(function() { module.exports = this["wp"]["richText"]; }()); + +/***/ }), +/* 26 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _arrayLikeToArray; }); +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + + return arr2; +} + +/***/ }), +/* 27 */, +/* 28 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -532,55 +621,215 @@ * LICENSE file in the root directory of this source tree. */ -if (false) { var throwOnDirectAccess, isValidElement, REACT_ELEMENT_TYPE; } else { +if (false) { var throwOnDirectAccess, ReactIs; } else { // By explicitly using `prop-types` you are opting into new production behavior. // http://fb.me/prop-types-in-prod - module.exports = __webpack_require__(89)(); -} - - -/***/ }), + module.exports = __webpack_require__(138)(); +} + + +/***/ }), +/* 29 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _unsupportedIterableToArray; }); +/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26); + +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(o, minLen); +} + +/***/ }), +/* 30 */ +/***/ (function(module, exports) { + +(function() { module.exports = this["wp"]["dom"]; }()); + +/***/ }), +/* 31 */, /* 32 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _typeof; }); -function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } - -function _typeof(obj) { - if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { - _typeof = function _typeof(obj) { - return _typeof2(obj); - }; - } else { - _typeof = function _typeof(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); - }; - } - - return _typeof(obj); -} - -/***/ }), -/* 33 */ /***/ (function(module, exports) { -(function() { module.exports = this["wp"]["apiFetch"]; }()); - -/***/ }), +(function() { module.exports = this["wp"]["hooks"]; }()); + +/***/ }), +/* 33 */, /* 34 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +/* unused harmony export Button */ +/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8); +/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2); +/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _wordpress_deprecated__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(37); +/* harmony import */ var _wordpress_deprecated__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_deprecated__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(86); +/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(88); + + + + +function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ + + + +var disabledEventsOnDisabledButton = ['onMouseDown', 'onClick']; +function Button(props, ref) { + var href = props.href, + target = props.target, + isPrimary = props.isPrimary, + isSmall = props.isSmall, + isTertiary = props.isTertiary, + isPressed = props.isPressed, + isBusy = props.isBusy, + isDefault = props.isDefault, + isSecondary = props.isSecondary, + isLink = props.isLink, + isDestructive = props.isDestructive, + className = props.className, + disabled = props.disabled, + icon = props.icon, + iconSize = props.iconSize, + showTooltip = props.showTooltip, + tooltipPosition = props.tooltipPosition, + shortcut = props.shortcut, + label = props.label, + children = props.children, + isFocusable = props.__experimentalIsFocusable, + additionalProps = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(props, ["href", "target", "isPrimary", "isSmall", "isTertiary", "isPressed", "isBusy", "isDefault", "isSecondary", "isLink", "isDestructive", "className", "disabled", "icon", "iconSize", "showTooltip", "tooltipPosition", "shortcut", "label", "children", "__experimentalIsFocusable"]); + + if (isDefault) { + _wordpress_deprecated__WEBPACK_IMPORTED_MODULE_5___default()('Button isDefault prop', { + alternative: 'isSecondary' + }); + } + + var classes = classnames__WEBPACK_IMPORTED_MODULE_3___default()('components-button', className, { + 'is-secondary': isDefault || isSecondary, + 'is-primary': isPrimary, + 'is-small': isSmall, + 'is-tertiary': isTertiary, + 'is-pressed': isPressed, + 'is-busy': isBusy, + 'is-link': isLink, + 'is-destructive': isDestructive, + 'has-text': !!icon && !!children, + 'has-icon': !!icon + }); + var trulyDisabled = disabled && !isFocusable; + var Tag = href !== undefined && !trulyDisabled ? 'a' : 'button'; + var tagProps = Tag === 'a' ? { + href: href, + target: target + } : { + type: 'button', + disabled: trulyDisabled, + 'aria-pressed': isPressed + }; + + if (disabled && isFocusable) { + // In this case, the button will be disabled, but still focusable and + // perceivable by screen reader users. + tagProps['aria-disabled'] = true; + + var _iterator = _createForOfIteratorHelper(disabledEventsOnDisabledButton), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var disabledEvent = _step.value; + + additionalProps[disabledEvent] = function (event) { + event.stopPropagation(); + event.preventDefault(); + }; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } // Should show the tooltip if... + + + var shouldShowTooltip = !trulyDisabled && ( // an explicit tooltip is passed or... + showTooltip && label || // there's a shortcut or... + shortcut || // there's a label and... + !!label && ( // the children are empty and... + !children || Object(lodash__WEBPACK_IMPORTED_MODULE_4__["isArray"])(children) && !children.length) && // the tooltip is not explicitly disabled. + false !== showTooltip); + var element = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(Tag, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({}, tagProps, additionalProps, { + className: classes, + "aria-label": additionalProps['aria-label'] || label, + ref: ref + }), icon && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(_icon__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"], { + icon: icon, + size: iconSize + }), children); + + if (!shouldShowTooltip) { + return element; + } + + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(_tooltip__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"], { + text: label, + shortcut: shortcut, + position: tooltipPosition + }, element); +} +/* harmony default export */ __webpack_exports__["a"] = (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["forwardRef"])(Button)); + + +/***/ }), +/* 35 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _iterableToArray; }); function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); -} - -/***/ }), -/* 35 */, + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); +} + +/***/ }), /* 36 */, /* 37 */ +/***/ (function(module, exports) { + +(function() { module.exports = this["wp"]["deprecated"]; }()); + +/***/ }), +/* 38 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -590,79 +839,2089 @@ } /***/ }), -/* 38 */ +/* 39 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _nonIterableRest; }); function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); -} - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var DISPLAY_FORMAT = exports.DISPLAY_FORMAT = 'L'; -var ISO_FORMAT = exports.ISO_FORMAT = 'YYYY-MM-DD'; -var ISO_MONTH_FORMAT = exports.ISO_MONTH_FORMAT = 'YYYY-MM'; - -var START_DATE = exports.START_DATE = 'startDate'; -var END_DATE = exports.END_DATE = 'endDate'; - -var HORIZONTAL_ORIENTATION = exports.HORIZONTAL_ORIENTATION = 'horizontal'; -var VERTICAL_ORIENTATION = exports.VERTICAL_ORIENTATION = 'vertical'; -var VERTICAL_SCROLLABLE = exports.VERTICAL_SCROLLABLE = 'verticalScrollable'; - -var ICON_BEFORE_POSITION = exports.ICON_BEFORE_POSITION = 'before'; -var ICON_AFTER_POSITION = exports.ICON_AFTER_POSITION = 'after'; - -var INFO_POSITION_TOP = exports.INFO_POSITION_TOP = 'top'; -var INFO_POSITION_BOTTOM = exports.INFO_POSITION_BOTTOM = 'bottom'; -var INFO_POSITION_BEFORE = exports.INFO_POSITION_BEFORE = 'before'; -var INFO_POSITION_AFTER = exports.INFO_POSITION_AFTER = 'after'; - -var ANCHOR_LEFT = exports.ANCHOR_LEFT = 'left'; -var ANCHOR_RIGHT = exports.ANCHOR_RIGHT = 'right'; - -var OPEN_DOWN = exports.OPEN_DOWN = 'down'; -var OPEN_UP = exports.OPEN_UP = 'up'; - -var DAY_SIZE = exports.DAY_SIZE = 39; -var BLOCKED_MODIFIER = exports.BLOCKED_MODIFIER = 'blocked'; -var WEEKDAYS = exports.WEEKDAYS = [0, 1, 2, 3, 4, 5, 6]; - -var FANG_WIDTH_PX = exports.FANG_WIDTH_PX = 20; -var FANG_HEIGHT_PX = exports.FANG_HEIGHT_PX = 10; -var DEFAULT_VERTICAL_SPACING = exports.DEFAULT_VERTICAL_SPACING = 22; - -var MODIFIER_KEY_NAMES = exports.MODIFIER_KEY_NAMES = new Set(['Shift', 'Control', 'Alt', 'Meta']); - -/***/ }), -/* 40 */, -/* 41 */, -/* 42 */ + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +/***/ }), +/* 40 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _typeof; }); +function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); +} + +/***/ }), +/* 41 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutPropertiesLoose; }); +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +/***/ }), +/* 42 */, +/* 43 */ +/***/ (function(module, exports) { + +(function() { module.exports = this["moment"]; }()); + +/***/ }), +/* 44 */, +/* 45 */, +/* 46 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useLiveRef; }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _useIsomorphicEffect_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59); + + + +/** + * A `React.Ref` that keeps track of the passed `value`. + */ + +function useLiveRef(value) { + var ref = Object(react__WEBPACK_IMPORTED_MODULE_0__["useRef"])(value); + Object(_useIsomorphicEffect_js__WEBPACK_IMPORTED_MODULE_1__[/* useIsomorphicEffect */ "a"])(function () { + ref.current = value; + }); + return ref; +} + + + + +/***/ }), +/* 47 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getDocument; }); +/** + * Returns `element.ownerDocument || window.document`. + */ +function getDocument(element) { + return element ? element.ownerDocument || element : window.document; +} + + + + +/***/ }), +/* 48 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ createHook; }); + +// EXTERNAL MODULE: external {"this":"React"} +var external_this_React_ = __webpack_require__(13); + +// EXTERNAL MODULE: ./node_modules/reakit-system/es/SystemContext.js +var SystemContext = __webpack_require__(74); + +// CONCATENATED MODULE: ./node_modules/reakit-system/es/useToken.js + + + +/** + * React custom hook that returns the value of any token defined in the + * SystemContext. It's mainly used internally in [`useOptions`](#useoptions) + * and [`useProps`](#useprops). + * + * @example + * import { SystemProvider, useToken } from "reakit-system"; + * + * const system = { + * token: "value", + * }; + * + * function Component(props) { + * const token = useToken("token", "default value"); + * return
{token}
; + * } + * + * function App() { + * return ( + * + * + * + * ); + * } + */ + +function useToken(token, defaultValue) { + Object(external_this_React_["useDebugValue"])(token); + var context = Object(external_this_React_["useContext"])(SystemContext["a" /* SystemContext */]); + return context[token] != null ? context[token] : defaultValue; +} + + + +// CONCATENATED MODULE: ./node_modules/reakit-system/es/useProps.js + + + + +/** + * React custom hook that returns the props returned by a given + * `use${name}Props` in the SystemContext. + * + * @example + * import { SystemProvider, useProps } from "reakit-system"; + * + * const system = { + * useAProps(options, htmlProps) { + * return { + * ...htmlProps, + * href: options.url, + * }; + * }, + * }; + * + * function A({ url, ...htmlProps }) { + * const props = useProps("A", { url }, htmlProps); + * return ; + * } + * + * function App() { + * return ( + * + * It will convert url into href in useAProps + * + * ); + * } + */ + +function useProps(name, options, htmlProps) { + if (options === void 0) { + options = {}; + } + + if (htmlProps === void 0) { + htmlProps = {}; + } + + var hookName = "use" + name + "Props"; + Object(external_this_React_["useDebugValue"])(hookName); + var useHook = useToken(hookName); + + if (useHook) { + return useHook(options, htmlProps); + } + + return htmlProps; +} + + + +// EXTERNAL MODULE: ./node_modules/reakit-system/es/_rollupPluginBabelHelpers-0c84a174.js +var _rollupPluginBabelHelpers_0c84a174 = __webpack_require__(55); + +// CONCATENATED MODULE: ./node_modules/reakit-system/es/useOptions.js + + + + + +/** + * React custom hook that returns the options returned by a given + * `use${name}Options` in the SystemContext. + * + * @example + * import React from "react"; + * import { SystemProvider, useOptions } from "reakit-system"; + * + * const system = { + * useAOptions(options, htmlProps) { + * return { + * ...options, + * url: htmlProps.href, + * }; + * }, + * }; + * + * function A({ url, ...htmlProps }) { + * const options = useOptions("A", { url }, htmlProps); + * return ; + * } + * + * function App() { + * return ( + * + * + * It will convert href into url in useAOptions and then url into href in A + * + * + * ); + * } + */ + +function useOptions(name, options, htmlProps) { + if (options === void 0) { + options = {}; + } + + if (htmlProps === void 0) { + htmlProps = {}; + } + + var hookName = "use" + name + "Options"; + Object(external_this_React_["useDebugValue"])(hookName); + var useHook = useToken(hookName); + + if (useHook) { + return Object(_rollupPluginBabelHelpers_0c84a174["a" /* _ */])(Object(_rollupPluginBabelHelpers_0c84a174["a" /* _ */])({}, options), useHook(options, htmlProps)); + } + + return options; +} + + + +// EXTERNAL MODULE: ./node_modules/reakit-utils/es/shallowEqual.js +var shallowEqual = __webpack_require__(56); + +// CONCATENATED MODULE: ./node_modules/reakit-utils/es/toArray.js +/** + * Transforms `arg` into an array if it's not already. + * + * @example + * import { toArray } from "reakit-utils"; + * + * toArray("a"); // ["a"] + * toArray(["a"]); // ["a"] + */ +function toArray(arg) { + if (Array.isArray(arg)) { + return arg; + } + + return typeof arg !== "undefined" ? [arg] : []; +} + + + +// CONCATENATED MODULE: ./node_modules/reakit-system/es/createHook.js + + + + + + + + + +/** + * Creates a React custom hook that will return component props. + * + * @example + * import { createHook } from "reakit-system"; + * + * const useA = createHook({ + * name: "A", + * keys: ["url"], // custom props/options keys + * useProps(options, htmlProps) { + * return { + * ...htmlProps, + * href: options.url, + * }; + * }, + * }); + * + * function A({ url, ...htmlProps }) { + * const props = useA({ url }, htmlProps); + * return ; + * } + * + * @param options + */ +function createHook(options) { + var _options$useState, _composedHooks$; + + var composedHooks = toArray(options.compose); + + var __useOptions = function __useOptions(hookOptions, htmlProps) { + // Call the current hook's useOptions first + if (options.useOptions) { + hookOptions = options.useOptions(hookOptions, htmlProps); + } // If there's name, call useOptions from the system context + + + if (options.name) { + hookOptions = useOptions(options.name, hookOptions, htmlProps); + } // Run composed hooks useOptions + + + if (options.compose) { + for (var _iterator = Object(_rollupPluginBabelHelpers_0c84a174["c" /* b */])(composedHooks), _step; !(_step = _iterator()).done;) { + var hook = _step.value; + hookOptions = hook.__useOptions(hookOptions, htmlProps); + } + } + + return hookOptions; + }; + + var useHook = function useHook(hookOptions, htmlProps, unstable_ignoreUseOptions) { + if (hookOptions === void 0) { + hookOptions = {}; + } + + if (htmlProps === void 0) { + htmlProps = {}; + } + + if (unstable_ignoreUseOptions === void 0) { + unstable_ignoreUseOptions = false; + } + + // This won't execute when useHook was called from within another useHook + if (!unstable_ignoreUseOptions) { + hookOptions = __useOptions(hookOptions, htmlProps); + } // Call the current hook's useProps + + + if (options.useProps) { + htmlProps = options.useProps(hookOptions, htmlProps); + } // If there's name, call useProps from the system context + + + if (options.name) { + htmlProps = useProps(options.name, hookOptions, htmlProps); + } + + if (options.compose) { + if (options.useComposeOptions) { + hookOptions = options.useComposeOptions(hookOptions, htmlProps); + } + + if (options.useComposeProps) { + htmlProps = options.useComposeProps(hookOptions, htmlProps); + } else { + for (var _iterator2 = Object(_rollupPluginBabelHelpers_0c84a174["c" /* b */])(composedHooks), _step2; !(_step2 = _iterator2()).done;) { + var hook = _step2.value; + htmlProps = hook(hookOptions, htmlProps, true); + } + } + } // Remove undefined values from htmlProps + + + var finalHTMLProps = {}; + var definedHTMLProps = htmlProps || {}; + + for (var prop in definedHTMLProps) { + if (definedHTMLProps[prop] !== undefined) { + finalHTMLProps[prop] = definedHTMLProps[prop]; + } + } + + return finalHTMLProps; + }; + + useHook.__useOptions = __useOptions; + var composedKeys = composedHooks.reduce(function (keys, hook) { + keys.push.apply(keys, hook.__keys || []); + return keys; + }, []); // It's used by createComponent to split option props (keys) and html props + + useHook.__keys = [].concat(composedKeys, ((_options$useState = options.useState) === null || _options$useState === void 0 ? void 0 : _options$useState.__keys) || [], options.keys || []); + useHook.unstable_propsAreEqual = options.propsAreEqual || ((_composedHooks$ = composedHooks[0]) === null || _composedHooks$ === void 0 ? void 0 : _composedHooks$.unstable_propsAreEqual) || shallowEqual["a" /* shallowEqual */]; + + if (false) {} + + return useHook; +} + + + + +/***/ }), +/* 49 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ createComponent; }); + +// EXTERNAL MODULE: external {"this":"React"} +var external_this_React_ = __webpack_require__(13); + +// EXTERNAL MODULE: ./node_modules/reakit-system/es/_rollupPluginBabelHelpers-0c84a174.js +var _rollupPluginBabelHelpers_0c84a174 = __webpack_require__(55); + +// EXTERNAL MODULE: ./node_modules/reakit-system/es/useCreateElement.js +var useCreateElement = __webpack_require__(78); + +// CONCATENATED MODULE: ./node_modules/reakit-utils/es/splitProps.js +/** + * Splits an object (`props`) into a tuple where the first item is an object + * with the passed `keys`, and the second item is an object with these keys + * omitted. + * + * @example + * import { splitProps } from "reakit-utils"; + * + * splitProps({ a: "a", b: "b" }, ["a"]); // [{ a: "a" }, { b: "b" }] + */ +function splitProps(props, keys) { + var propsKeys = Object.keys(props); + var picked = {}; + var omitted = {}; + + for (var _i = 0, _propsKeys = propsKeys; _i < _propsKeys.length; _i++) { + var key = _propsKeys[_i]; + + if (keys.indexOf(key) >= 0) { + picked[key] = props[key]; + } else { + omitted[key] = props[key]; + } + } + + return [picked, omitted]; +} + + + +// EXTERNAL MODULE: ./node_modules/reakit-utils/es/shallowEqual.js +var shallowEqual = __webpack_require__(56); + +// CONCATENATED MODULE: ./node_modules/reakit-system/es/createComponent.js + + + + + + + +function forwardRef(component) { + return /*#__PURE__*/Object(external_this_React_["forwardRef"])(component); +} + +function memo(component, propsAreEqual) { + return /*#__PURE__*/Object(external_this_React_["memo"])(component, propsAreEqual); +} + +/** + * Creates a React component. + * + * @example + * import { createComponent } from "reakit-system"; + * + * const A = createComponent({ as: "a" }); + * + * @param options + */ +function createComponent(_ref) { + var type = _ref.as, + useHook = _ref.useHook, + shouldMemo = _ref.memo, + _ref$propsAreEqual = _ref.propsAreEqual, + propsAreEqual = _ref$propsAreEqual === void 0 ? useHook === null || useHook === void 0 ? void 0 : useHook.unstable_propsAreEqual : _ref$propsAreEqual, + _ref$keys = _ref.keys, + keys = _ref$keys === void 0 ? (useHook === null || useHook === void 0 ? void 0 : useHook.__keys) || [] : _ref$keys, + _ref$useCreateElement = _ref.useCreateElement, + useCreateElement$1 = _ref$useCreateElement === void 0 ? useCreateElement["a" /* useCreateElement */] : _ref$useCreateElement; + + var Comp = function Comp(_ref2, ref) { + var _ref2$as = _ref2.as, + as = _ref2$as === void 0 ? type : _ref2$as, + props = Object(_rollupPluginBabelHelpers_0c84a174["b" /* a */])(_ref2, ["as"]); + + if (useHook) { + var _as$render; + + var _splitProps = splitProps(props, keys), + _options = _splitProps[0], + htmlProps = _splitProps[1]; + + var _useHook = useHook(_options, Object(_rollupPluginBabelHelpers_0c84a174["a" /* _ */])({ + ref: ref + }, htmlProps)), + wrapElement = _useHook.wrapElement, + elementProps = Object(_rollupPluginBabelHelpers_0c84a174["b" /* a */])(_useHook, ["wrapElement"]); // @ts-ignore + + + var asKeys = ((_as$render = as.render) === null || _as$render === void 0 ? void 0 : _as$render.__keys) || as.__keys; + var asOptions = asKeys && splitProps(props, asKeys)[0]; + var allProps = asOptions ? Object(_rollupPluginBabelHelpers_0c84a174["a" /* _ */])(Object(_rollupPluginBabelHelpers_0c84a174["a" /* _ */])({}, elementProps), asOptions) : elementProps; + + var _element = useCreateElement$1(as, allProps); + + if (wrapElement) { + return wrapElement(_element); + } + + return _element; + } + + return useCreateElement$1(as, Object(_rollupPluginBabelHelpers_0c84a174["a" /* _ */])({ + ref: ref + }, props)); + }; + + if (false) {} + + Comp = forwardRef(Comp); + + if (shouldMemo) { + Comp = memo(Comp, propsAreEqual); + } + + Comp.__keys = keys; + Comp.unstable_propsAreEqual = propsAreEqual || shallowEqual["a" /* shallowEqual */]; + return Comp; +} + + + + +/***/ }), +/* 50 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _asyncToGenerator; }); +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } +} + +function _asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + + function _next(value) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + + function _throw(err) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + + _next(undefined); + }); + }; +} + +/***/ }), +/* 51 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return findFirstEnabledItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return flatten; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return groupItems; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return findEnabledItemById; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getCurrentId; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return reverse; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return useCompositeState; }); +/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var reakit_utils_useIsomorphicEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59); +/* harmony import */ var reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(62); +/* harmony import */ var reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61); +/* harmony import */ var _Id_IdState_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65); + + + + + + + +function reverse(array) { + return array.slice().reverse(); +} + +function isElementPreceding(element1, element2) { + return Boolean(element2.compareDocumentPosition(element1) & Node.DOCUMENT_POSITION_PRECEDING); +} + +function findDOMIndex(items, item) { + return items.findIndex(function (currentItem) { + if (!currentItem.ref.current || !item.ref.current) { + return false; + } + + return isElementPreceding(item.ref.current, currentItem.ref.current); + }); +} + +function findFirstEnabledItem(items, excludeId) { + if (excludeId) { + return items.find(function (item) { + return !item.disabled && item.id !== excludeId; + }); + } + + return items.find(function (item) { + return !item.disabled; + }); +} + +function findEnabledItemById(items, id) { + if (!id) return undefined; + return items === null || items === void 0 ? void 0 : items.find(function (item) { + return item.id === id && !item.disabled; + }); +} + +function groupItems(items) { + var groups = [[]]; + + var _loop = function _loop() { + var item = _step.value; + var group = groups.find(function (g) { + return !g[0] || g[0].groupId === item.groupId; + }); + + if (group) { + group.push(item); + } else { + groups.push([item]); + } + }; + + for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ "c"])(items), _step; !(_step = _iterator()).done;) { + _loop(); + } + + return groups; +} + +function getMaxLength(rows) { + var maxLength = 0; + + for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ "c"])(rows), _step; !(_step = _iterator()).done;) { + var length = _step.value.length; + + if (length > maxLength) { + maxLength = length; + } + } + + return maxLength; +} + +/** + * Turns [row1, row1, row2, row2] into [row1, row2, row1, row2] + */ + +function verticalizeItems(items) { + var groups = groupItems(items); + var maxLength = getMaxLength(groups); + var verticalized = []; + + for (var i = 0; i < maxLength; i += 1) { + for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ "c"])(groups), _step; !(_step = _iterator()).done;) { + var group = _step.value; + + if (group[i]) { + verticalized.push(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, group[i]), {}, { + // If there's no groupId, it means that it's not a grid composite, + // but a single row instead. So, instead of verticalizing it, that + // is, assigning a different groupId based on the column index, we + // keep it undefined so they will be part of the same group. + // It's useful when using up/down on one-dimensional composites. + groupId: group[i].groupId ? "" + i : undefined + })); + } + } + } + + return verticalized; +} + +function flatten(grid) { + var flattened = []; + + for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ "c"])(grid), _step; !(_step = _iterator()).done;) { + var row = _step.value; + flattened.push.apply(flattened, row); + } + + return flattened; +} + +/** + * Turns [[row1, row1], [row2]] into [[row1, row1], [row2, row2]] + */ + +function fillGroups(groups) { + var maxLength = getMaxLength(groups); + + for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ "c"])(groups), _step; !(_step = _iterator()).done;) { + var group = _step.value; + + if (group.length < maxLength) { + for (var i = 0; i < maxLength; i += 1) { + if (!group[i]) { + group[i] = { + id: "__EMPTY_ITEM__", + disabled: true, + ref: { + current: null + }, + groupId: group[i - 1].groupId + }; + } + } + } + } + + return groups; +} + +function getCurrentId(options, passedId) { + var _findFirstEnabledItem; + + if (passedId || passedId === null) { + return passedId; + } + + if (options.currentId || options.currentId === null) { + return options.currentId; + } + + return (_findFirstEnabledItem = findFirstEnabledItem(options.items || [])) === null || _findFirstEnabledItem === void 0 ? void 0 : _findFirstEnabledItem.id; +} + +var nullItem = { + id: null, + ref: { + current: null + } +}; +function placeItemsAfter(items, id, shouldInsertNullItem) { + var index = items.findIndex(function (item) { + return item.id === id; + }); + return [].concat(items.slice(index + 1), shouldInsertNullItem ? [nullItem] : [], items.slice(0, index)); +} + +function getItemsInGroup(items, groupId) { + return items.filter(function (item) { + return item.groupId === groupId; + }); +} + +var map = { + horizontal: "vertical", + vertical: "horizontal" +}; +function getOppositeOrientation(orientation) { + return orientation && map[orientation]; +} + +function addItemAtIndex(array, item, index) { + if (!(index in array)) { + return [].concat(array, [item]); + } + + return [].concat(array.slice(0, index), [item], array.slice(index)); +} + +function sortBasedOnDOMPosition(items) { + var copy = items.slice(); + var isOrderDifferent = false; + copy.sort(function (a, b) { + var elementA = a.ref.current; + var elementB = b.ref.current; + + if (elementA && elementB && isElementPreceding(elementA, elementB)) { + isOrderDifferent = true; + return -1; + } + + return 0; + }); + + if (isOrderDifferent) { + return copy; + } + + return items; +} + +function reducer(state, action) { + var virtual = state.unstable_virtual, + rtl = state.rtl, + orientation = state.orientation, + items = state.items, + groups = state.groups, + currentId = state.currentId, + loop = state.loop, + wrap = state.wrap, + pastIds = state.pastIds, + moves = state.unstable_moves, + initialVirtual = state.initialVirtual, + initialRTL = state.initialRTL, + initialOrientation = state.initialOrientation, + initialCurrentId = state.initialCurrentId, + initialLoop = state.initialLoop, + initialWrap = state.initialWrap, + hasSetCurrentId = state.hasSetCurrentId; + + switch (action.type) { + case "registerGroup": + { + var _group = action.group; // If there are no groups yet, just add it as the first one + + if (groups.length === 0) { + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + groups: [_group] + }); + } // Finds the group index based on DOM position + + + var index = findDOMIndex(groups, _group); + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + groups: addItemAtIndex(groups, _group, index) + }); + } + + case "unregisterGroup": + { + var _id = action.id; + var nextGroups = groups.filter(function (group) { + return group.id !== _id; + }); // The group isn't registered, so do nothing + + if (nextGroups.length === groups.length) { + return state; + } + + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + groups: nextGroups + }); + } + + case "registerItem": + { + var _item = action.item; // Finds the item group based on the DOM hierarchy + + var _group2 = groups.find(function (r) { + var _r$ref$current; + + return (_r$ref$current = r.ref.current) === null || _r$ref$current === void 0 ? void 0 : _r$ref$current.contains(_item.ref.current); + }); // Group will be null if it's a one-dimensional composite + + + var nextItem = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({ + groupId: _group2 === null || _group2 === void 0 ? void 0 : _group2.id + }, _item); + + var _index = findDOMIndex(items, nextItem); + + var nextState = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + items: addItemAtIndex(items, nextItem, _index) + }); + + if (!hasSetCurrentId && !moves && initialCurrentId === undefined) { + var _findFirstEnabledItem; + + // Sets currentId to the first enabled item. This runs whenever an item + // is registered because the first enabled item may be registered + // asynchronously. + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, nextState), {}, { + currentId: (_findFirstEnabledItem = findFirstEnabledItem(nextState.items)) === null || _findFirstEnabledItem === void 0 ? void 0 : _findFirstEnabledItem.id + }); + } + + return nextState; + } + + case "unregisterItem": + { + var _id2 = action.id; + var nextItems = items.filter(function (item) { + return item.id !== _id2; + }); // The item isn't registered, so do nothing + + if (nextItems.length === items.length) { + return state; + } // Filters out the item that is being removed from the pastIds list + + + var nextPastIds = pastIds.filter(function (pastId) { + return pastId !== _id2; + }); + + var _nextState = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + pastIds: nextPastIds, + items: nextItems + }); // If the current item is the item that is being removed, focus pastId + + + if (currentId && currentId === _id2) { + var nextId = getCurrentId(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _nextState), {}, { + currentId: nextPastIds[0] + })); + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _nextState), {}, { + currentId: nextId + }); + } + + return _nextState; + } + + case "move": + { + var _id3 = action.id; // move() does nothing + + if (_id3 === undefined) { + return state; + } // Removes the current item and the item that is receiving focus from the + // pastIds list + + + var filteredPastIds = pastIds.filter(function (pastId) { + return pastId !== currentId && pastId !== _id3; + }); // If there's a currentId, add it to the pastIds list so it can be focused + // if the new item gets removed or disabled + + var _nextPastIds = currentId ? [currentId].concat(filteredPastIds) : filteredPastIds; + + var _nextState2 = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + pastIds: _nextPastIds + }); // move(null) will focus the composite element itself, not an item + + + if (_id3 === null) { + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _nextState2), {}, { + unstable_moves: moves + 1, + currentId: getCurrentId(_nextState2, _id3) + }); + } + + var _item2 = findEnabledItemById(items, _id3); + + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _nextState2), {}, { + unstable_moves: _item2 ? moves + 1 : moves, + currentId: getCurrentId(_nextState2, _item2 === null || _item2 === void 0 ? void 0 : _item2.id) + }); + } + + case "next": + { + // If there's no item focused, we just move the first one + if (currentId == null) { + return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, { + type: "first" + })); + } // RTL doesn't make sense on vertical navigation + + + var isHorizontal = orientation !== "vertical"; + var isRTL = rtl && isHorizontal; + var allItems = isRTL ? reverse(items) : items; + var currentItem = allItems.find(function (item) { + return item.id === currentId; + }); // If there's no item focused, we just move the first one + + if (!currentItem) { + return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, { + type: "first" + })); + } + + var isGrid = !!currentItem.groupId; + var currentIndex = allItems.indexOf(currentItem); + + var _nextItems = allItems.slice(currentIndex + 1); + + var nextItemsInGroup = getItemsInGroup(_nextItems, currentItem.groupId); // Home, End + + if (action.allTheWay) { + // We reverse so we can get the last enabled item in the group. If it's + // RTL, nextItems and nextItemsInGroup are already reversed and don't + // have the items before the current one anymore. So we have to get + // items in group again with allItems. + var _nextItem2 = findFirstEnabledItem(isRTL ? getItemsInGroup(allItems, currentItem.groupId) : reverse(nextItemsInGroup)); + + return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, { + type: "move", + id: _nextItem2 === null || _nextItem2 === void 0 ? void 0 : _nextItem2.id + })); + } + + var oppositeOrientation = getOppositeOrientation( // If it's a grid and orientation is not set, it's a next/previous + // call, which is inherently horizontal. up/down will call next with + // orientation set to vertical by default (see below on up/down cases). + isGrid ? orientation || "horizontal" : orientation); + var canLoop = loop && loop !== oppositeOrientation; + var canWrap = isGrid && wrap && wrap !== oppositeOrientation; + var hasNullItem = // `previous` and `up` will set action.hasNullItem, but when calling + // next directly, hasNullItem will only be true if it's not a grid and + // loop is set to true, which means that pressing right or down keys on + // grids will never focus the composite element. On one-dimensional + // composites that don't loop, pressing right or down keys also doesn't + // focus the composite element. + action.hasNullItem || !isGrid && canLoop && initialCurrentId === null; + + if (canLoop) { + var loopItems = canWrap && !hasNullItem ? allItems : getItemsInGroup(allItems, currentItem.groupId); // Turns [0, 1, current, 3, 4] into [3, 4, 0, 1] + + var sortedItems = placeItemsAfter(loopItems, currentId, hasNullItem); + + var _nextItem3 = findFirstEnabledItem(sortedItems, currentId); + + return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, { + type: "move", + id: _nextItem3 === null || _nextItem3 === void 0 ? void 0 : _nextItem3.id + })); + } + + if (canWrap) { + var _nextItem4 = findFirstEnabledItem( // We can use nextItems, which contains all the next items, including + // items from other groups, to wrap between groups. However, if there + // is a null item (the composite element), we'll only use the next + // items in the group. So moving next from the last item will focus + // the composite element (null). On grid composites, horizontal + // navigation never focuses the composite element, only vertical. + hasNullItem ? nextItemsInGroup : _nextItems, currentId); + + var _nextId = hasNullItem ? (_nextItem4 === null || _nextItem4 === void 0 ? void 0 : _nextItem4.id) || null : _nextItem4 === null || _nextItem4 === void 0 ? void 0 : _nextItem4.id; + + return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, { + type: "move", + id: _nextId + })); + } + + var _nextItem = findFirstEnabledItem(nextItemsInGroup, currentId); + + if (!_nextItem && hasNullItem) { + return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, { + type: "move", + id: null + })); + } + + return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, { + type: "move", + id: _nextItem === null || _nextItem === void 0 ? void 0 : _nextItem.id + })); + } + + case "previous": + { + // If currentId is initially set to null, the composite element will be + // focusable while navigating with arrow keys. But, if it's a grid, we + // don't want to focus the composite element with horizontal navigation. + var _isGrid = !!groups.length; + + var _hasNullItem = !_isGrid && initialCurrentId === null; + + var _nextState3 = reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + items: reverse(items) + }), Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, { + type: "next", + hasNullItem: _hasNullItem + })); + + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _nextState3), {}, { + items: items + }); + } + + case "down": + { + // First, we make sure groups have the same number of items by filling it + // with disabled fake items. Then, we reorganize the items list so + // [1-1, 1-2, 2-1, 2-2] becomes [1-1, 2-1, 1-2, 2-2]. + var verticalItems = verticalizeItems(flatten(fillGroups(groupItems(items)))); + + var _canLoop = loop && loop !== "horizontal"; // Pressing down arrow key will only focus the composite element if loop + // is true or vertical. + + + var _hasNullItem2 = _canLoop && initialCurrentId === null; + + var _nextState4 = reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + orientation: "vertical", + items: verticalItems + }), Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, { + type: "next", + hasNullItem: _hasNullItem2 + })); + + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _nextState4), {}, { + orientation: orientation, + items: items + }); + } + + case "up": + { + var _verticalItems = verticalizeItems(reverse(flatten(fillGroups(groupItems(items))))); // If currentId is initially set to null, we'll always focus the + // composite element when the up arrow key is pressed in the first row. + + + var _hasNullItem3 = initialCurrentId === null; + + var _nextState5 = reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + orientation: "vertical", + items: _verticalItems + }), Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, { + type: "next", + hasNullItem: _hasNullItem3 + })); + + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _nextState5), {}, { + orientation: orientation, + items: items + }); + } + + case "first": + { + var firstItem = findFirstEnabledItem(items); + return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, { + type: "move", + id: firstItem === null || firstItem === void 0 ? void 0 : firstItem.id + })); + } + + case "last": + { + var _nextState6 = reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + items: reverse(items) + }), Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, { + type: "first" + })); + + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _nextState6), {}, { + items: items + }); + } + + case "sort": + { + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + items: sortBasedOnDOMPosition(items), + groups: sortBasedOnDOMPosition(groups) + }); + } + + case "setVirtual": + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + unstable_virtual: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ "a"])(action.virtual, virtual) + }); + + case "setRTL": + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + rtl: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ "a"])(action.rtl, rtl) + }); + + case "setOrientation": + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + orientation: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ "a"])(action.orientation, orientation) + }); + + case "setCurrentId": + { + var nextCurrentId = getCurrentId(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + currentId: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ "a"])(action.currentId, currentId) + })); + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + currentId: nextCurrentId, + hasSetCurrentId: true + }); + } + + case "setLoop": + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + loop: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ "a"])(action.loop, loop) + }); + + case "setWrap": + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + wrap: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ "a"])(action.wrap, wrap) + }); + + case "reset": + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + unstable_virtual: initialVirtual, + rtl: initialRTL, + orientation: initialOrientation, + currentId: getCurrentId(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, { + currentId: initialCurrentId + })), + loop: initialLoop, + wrap: initialWrap, + unstable_moves: 0, + pastIds: [] + }); + + default: + throw new Error(); + } +} + +function useAction(fn) { + return Object(react__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(fn, []); +} + +function useIsUnmountedRef() { + var isUnmountedRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(false); + Object(reakit_utils_useIsomorphicEffect__WEBPACK_IMPORTED_MODULE_2__[/* useIsomorphicEffect */ "a"])(function () { + return function () { + isUnmountedRef.current = true; + }; + }, []); + return isUnmountedRef; +} + +function useCompositeState(initialState) { + if (initialState === void 0) { + initialState = {}; + } + + var _useSealedState = Object(reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_3__[/* useSealedState */ "a"])(initialState), + _useSealedState$unsta = _useSealedState.unstable_virtual, + virtual = _useSealedState$unsta === void 0 ? false : _useSealedState$unsta, + _useSealedState$rtl = _useSealedState.rtl, + rtl = _useSealedState$rtl === void 0 ? false : _useSealedState$rtl, + orientation = _useSealedState.orientation, + currentId = _useSealedState.currentId, + _useSealedState$loop = _useSealedState.loop, + loop = _useSealedState$loop === void 0 ? false : _useSealedState$loop, + _useSealedState$wrap = _useSealedState.wrap, + wrap = _useSealedState$wrap === void 0 ? false : _useSealedState$wrap, + sealed = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_useSealedState, ["unstable_virtual", "rtl", "orientation", "currentId", "loop", "wrap"]); + + var _React$useReducer = Object(react__WEBPACK_IMPORTED_MODULE_1__["useReducer"])(reducer, { + unstable_virtual: virtual, + rtl: rtl, + orientation: orientation, + items: [], + groups: [], + currentId: currentId, + loop: loop, + wrap: wrap, + unstable_moves: 0, + pastIds: [], + initialVirtual: virtual, + initialRTL: rtl, + initialOrientation: orientation, + initialCurrentId: currentId, + initialLoop: loop, + initialWrap: wrap + }), + _React$useReducer$ = _React$useReducer[0], + pastIds = _React$useReducer$.pastIds, + initialVirtual = _React$useReducer$.initialVirtual, + initialRTL = _React$useReducer$.initialRTL, + initialOrientation = _React$useReducer$.initialOrientation, + initialCurrentId = _React$useReducer$.initialCurrentId, + initialLoop = _React$useReducer$.initialLoop, + initialWrap = _React$useReducer$.initialWrap, + hasSetCurrentId = _React$useReducer$.hasSetCurrentId, + state = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_React$useReducer$, ["pastIds", "initialVirtual", "initialRTL", "initialOrientation", "initialCurrentId", "initialLoop", "initialWrap", "hasSetCurrentId"]), + dispatch = _React$useReducer[1]; + + var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(false), + hasActiveWidget = _React$useState[0], + setHasActiveWidget = _React$useState[1]; + + var idState = Object(_Id_IdState_js__WEBPACK_IMPORTED_MODULE_5__[/* unstable_useIdState */ "a"])(sealed); // register/unregister may be called when this component is unmounted. We + // store the unmounted state here so we don't update the state if it's true. + // This only happens in a very specific situation. + // See https://github.com/reakit/reakit/issues/650 + + var isUnmountedRef = useIsUnmountedRef(); + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, idState), state), {}, { + unstable_hasActiveWidget: hasActiveWidget, + unstable_setHasActiveWidget: setHasActiveWidget, + registerItem: useAction(function (item) { + if (isUnmountedRef.current) return; + dispatch({ + type: "registerItem", + item: item + }); + }), + unregisterItem: useAction(function (id) { + if (isUnmountedRef.current) return; + dispatch({ + type: "unregisterItem", + id: id + }); + }), + registerGroup: useAction(function (group) { + if (isUnmountedRef.current) return; + dispatch({ + type: "registerGroup", + group: group + }); + }), + unregisterGroup: useAction(function (id) { + if (isUnmountedRef.current) return; + dispatch({ + type: "unregisterGroup", + id: id + }); + }), + move: useAction(function (id) { + return dispatch({ + type: "move", + id: id + }); + }), + next: useAction(function (allTheWay) { + return dispatch({ + type: "next", + allTheWay: allTheWay + }); + }), + previous: useAction(function (allTheWay) { + return dispatch({ + type: "previous", + allTheWay: allTheWay + }); + }), + up: useAction(function (allTheWay) { + return dispatch({ + type: "up", + allTheWay: allTheWay + }); + }), + down: useAction(function (allTheWay) { + return dispatch({ + type: "down", + allTheWay: allTheWay + }); + }), + first: useAction(function () { + return dispatch({ + type: "first" + }); + }), + last: useAction(function () { + return dispatch({ + type: "last" + }); + }), + unstable_sort: useAction(function () { + return dispatch({ + type: "sort" + }); + }), + unstable_setVirtual: useAction(function (value) { + return dispatch({ + type: "setVirtual", + virtual: value + }); + }), + setRTL: useAction(function (value) { + return dispatch({ + type: "setRTL", + rtl: value + }); + }), + setOrientation: useAction(function (value) { + return dispatch({ + type: "setOrientation", + orientation: value + }); + }), + setCurrentId: useAction(function (value) { + return dispatch({ + type: "setCurrentId", + currentId: value + }); + }), + setLoop: useAction(function (value) { + return dispatch({ + type: "setLoop", + loop: value + }); + }), + setWrap: useAction(function (value) { + return dispatch({ + type: "setWrap", + wrap: value + }); + }), + reset: useAction(function () { + return dispatch({ + type: "reset" + }); + }) + }); +} +var keys = [].concat(_Id_IdState_js__WEBPACK_IMPORTED_MODULE_5__[/* unstable_useIdState */ "a"].__keys, ["unstable_virtual", "rtl", "orientation", "items", "groups", "currentId", "loop", "wrap", "unstable_moves", "unstable_hasActiveWidget", "registerItem", "unregisterItem", "registerGroup", "unregisterGroup", "move", "next", "previous", "up", "down", "first", "last", "unstable_sort", "unstable_setVirtual", "setRTL", "setOrientation", "setCurrentId", "setLoop", "setWrap", "reset", "unstable_setHasActiveWidget"]); +useCompositeState.__keys = keys; + + + + +/***/ }), +/* 52 */, +/* 53 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isSelfTarget; }); +/** + * Returns `true` if `event.target` and `event.currentTarget` are the same. + */ +function isSelfTarget(event) { + return event.target === event.currentTarget; +} + + + + +/***/ }), +/* 54 */ +/***/ (function(module, exports) { + +(function() { module.exports = this["wp"]["a11y"]; }()); + +/***/ }), +/* 55 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectSpread2; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return _objectWithoutPropertiesLoose; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return _createForOfIteratorHelperLoose; }); +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} + +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; +} + +function _createForOfIteratorHelperLoose(o, allowArrayLike) { + var it; + + if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + return function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + it = o[Symbol.iterator](); + return it.next.bind(it); +} + + + + +/***/ }), +/* 56 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return shallowEqual; }); +/** + * Compares two objects. + * + * @example + * import { shallowEqual } from "reakit-utils"; + * + * shallowEqual({ a: "a" }, {}); // false + * shallowEqual({ a: "a" }, { b: "b" }); // false + * shallowEqual({ a: "a" }, { a: "a" }); // true + * shallowEqual({ a: "a" }, { a: "a", b: "b" }); // false + */ +function shallowEqual(objA, objB) { + if (objA === objB) return true; + if (!objA) return false; + if (!objB) return false; + if (typeof objA !== "object") return false; + if (typeof objB !== "object") return false; + var aKeys = Object.keys(objA); + var bKeys = Object.keys(objB); + var length = aKeys.length; + if (bKeys.length !== length) return false; + + for (var _i = 0, _aKeys = aKeys; _i < _aKeys.length; _i++) { + var key = _aKeys[_i]; + + if (objA[key] !== objB[key]) { + return false; + } + } + + return true; +} + + + + +/***/ }), +/* 57 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getActiveElement; }); +/* harmony import */ var _getDocument_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(47); + + +/** + * Returns `element.ownerDocument.activeElement`. + */ + +function getActiveElement(element) { + return Object(_getDocument_js__WEBPACK_IMPORTED_MODULE_0__[/* getDocument */ "a"])(element).activeElement; +} + + + + +/***/ }), +/* 58 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/* globals + Atomics, + SharedArrayBuffer, +*/ + +var undefined; + +var $TypeError = TypeError; + +var $gOPD = Object.getOwnPropertyDescriptor; +if ($gOPD) { + try { + $gOPD({}, ''); + } catch (e) { + $gOPD = null; // this is IE 8, which has a broken gOPD + } +} + +var throwTypeError = function () { throw new $TypeError(); }; +var ThrowTypeError = $gOPD + ? (function () { + try { + // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties + arguments.callee; // IE 8 does not throw here + return throwTypeError; + } catch (calleeThrows) { + try { + // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '') + return $gOPD(arguments, 'callee').get; + } catch (gOPDthrows) { + return throwTypeError; + } + } + }()) + : throwTypeError; + +var hasSymbols = __webpack_require__(207)(); + +var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto + +var generator; // = function * () {}; +var generatorFunction = generator ? getProto(generator) : undefined; +var asyncFn; // async function() {}; +var asyncFunction = asyncFn ? asyncFn.constructor : undefined; +var asyncGen; // async function * () {}; +var asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined; +var asyncGenIterator = asyncGen ? asyncGen() : undefined; + +var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array); + +var INTRINSICS = { + '%Array%': Array, + '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, + '%ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype, + '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined, + '%ArrayPrototype%': Array.prototype, + '%ArrayProto_entries%': Array.prototype.entries, + '%ArrayProto_forEach%': Array.prototype.forEach, + '%ArrayProto_keys%': Array.prototype.keys, + '%ArrayProto_values%': Array.prototype.values, + '%AsyncFromSyncIteratorPrototype%': undefined, + '%AsyncFunction%': asyncFunction, + '%AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined, + '%AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined, + '%AsyncGeneratorFunction%': asyncGenFunction, + '%AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined, + '%AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined, + '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, + '%Boolean%': Boolean, + '%BooleanPrototype%': Boolean.prototype, + '%DataView%': typeof DataView === 'undefined' ? undefined : DataView, + '%DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype, + '%Date%': Date, + '%DatePrototype%': Date.prototype, + '%decodeURI%': decodeURI, + '%decodeURIComponent%': decodeURIComponent, + '%encodeURI%': encodeURI, + '%encodeURIComponent%': encodeURIComponent, + '%Error%': Error, + '%ErrorPrototype%': Error.prototype, + '%eval%': eval, // eslint-disable-line no-eval + '%EvalError%': EvalError, + '%EvalErrorPrototype%': EvalError.prototype, + '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, + '%Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype, + '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, + '%Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype, + '%Function%': Function, + '%FunctionPrototype%': Function.prototype, + '%Generator%': generator ? getProto(generator()) : undefined, + '%GeneratorFunction%': generatorFunction, + '%GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined, + '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, + '%Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype, + '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, + '%Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype, + '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, + '%Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype, + '%isFinite%': isFinite, + '%isNaN%': isNaN, + '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined, + '%JSON%': typeof JSON === 'object' ? JSON : undefined, + '%JSONParse%': typeof JSON === 'object' ? JSON.parse : undefined, + '%Map%': typeof Map === 'undefined' ? undefined : Map, + '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()), + '%MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype, + '%Math%': Math, + '%Number%': Number, + '%NumberPrototype%': Number.prototype, + '%Object%': Object, + '%ObjectPrototype%': Object.prototype, + '%ObjProto_toString%': Object.prototype.toString, + '%ObjProto_valueOf%': Object.prototype.valueOf, + '%parseFloat%': parseFloat, + '%parseInt%': parseInt, + '%Promise%': typeof Promise === 'undefined' ? undefined : Promise, + '%PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype, + '%PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then, + '%Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all, + '%Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject, + '%Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve, + '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, + '%RangeError%': RangeError, + '%RangeErrorPrototype%': RangeError.prototype, + '%ReferenceError%': ReferenceError, + '%ReferenceErrorPrototype%': ReferenceError.prototype, + '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, + '%RegExp%': RegExp, + '%RegExpPrototype%': RegExp.prototype, + '%Set%': typeof Set === 'undefined' ? undefined : Set, + '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()), + '%SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype, + '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, + '%SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype, + '%String%': String, + '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined, + '%StringPrototype%': String.prototype, + '%Symbol%': hasSymbols ? Symbol : undefined, + '%SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined, + '%SyntaxError%': SyntaxError, + '%SyntaxErrorPrototype%': SyntaxError.prototype, + '%ThrowTypeError%': ThrowTypeError, + '%TypedArray%': TypedArray, + '%TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined, + '%TypeError%': $TypeError, + '%TypeErrorPrototype%': $TypeError.prototype, + '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, + '%Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype, + '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, + '%Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype, + '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, + '%Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype, + '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, + '%Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype, + '%URIError%': URIError, + '%URIErrorPrototype%': URIError.prototype, + '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, + '%WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype, + '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet, + '%WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype +}; + +var bind = __webpack_require__(118); +var $replace = bind.call(Function.call, String.prototype.replace); + +/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */ +var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; +var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */ +var stringToPath = function stringToPath(string) { + var result = []; + $replace(string, rePropName, function (match, number, quote, subString) { + result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : (number || match); + }); + return result; +}; +/* end adaptation */ + +var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) { + if (!(name in INTRINSICS)) { + throw new SyntaxError('intrinsic ' + name + ' does not exist!'); + } + + // istanbul ignore if // hopefully this is impossible to test :-) + if (typeof INTRINSICS[name] === 'undefined' && !allowMissing) { + throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); + } + + return INTRINSICS[name]; +}; + +module.exports = function GetIntrinsic(name, allowMissing) { + if (typeof name !== 'string' || name.length === 0) { + throw new TypeError('intrinsic name must be a non-empty string'); + } + if (arguments.length > 1 && typeof allowMissing !== 'boolean') { + throw new TypeError('"allowMissing" argument must be a boolean'); + } + + var parts = stringToPath(name); + + var value = getBaseIntrinsic('%' + (parts.length > 0 ? parts[0] : '') + '%', allowMissing); + for (var i = 1; i < parts.length; i += 1) { + if (value != null) { + if ($gOPD && (i + 1) >= parts.length) { + var desc = $gOPD(value, parts[i]); + if (!allowMissing && !(parts[i] in value)) { + throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.'); + } + value = desc ? (desc.get || desc.value) : value[parts[i]]; + } else { + value = value[parts[i]]; + } + } + } + return value; +}; + + +/***/ }), +/* 59 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useIsomorphicEffect; }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + + +/** + * `React.useLayoutEffect` that fallbacks to `React.useEffect` on server side + * rendering. + */ + +var useIsomorphicEffect = typeof window === "undefined" ? react__WEBPACK_IMPORTED_MODULE_0__["useEffect"] : react__WEBPACK_IMPORTED_MODULE_0__["useLayoutEffect"]; + + + + +/***/ }), +/* 60 */, +/* 61 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return applyState; }); +function isUpdater(argument) { + return typeof argument === "function"; +} +/** + * Receives a `setState` argument and calls it with `currentValue` if it's a + * function. Otherwise return the argument as the new value. + * + * @example + * import { applyState } from "reakit-utils"; + * + * applyState((value) => value + 1, 1); // 2 + * applyState(2, 1); // 2 + */ + + +function applyState(argument, currentValue) { + if (isUpdater(argument)) { + return argument(currentValue); + } + + return argument; +} + + + + +/***/ }), +/* 62 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useSealedState; }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + + +/** + * React custom hook that returns the very first value passed to `initialState`, + * even if it changes between re-renders. + */ +function useSealedState(initialState) { + var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_0__["useState"])(initialState), + sealed = _React$useState[0]; + + return sealed; +} + + + + +/***/ }), +/* 63 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useForkRef; }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + + +// https://github.com/mui-org/material-ui/blob/2bcc874cf07b81202968f769cb9c2398c7c11311/packages/material-ui/src/utils/useForkRef.js + +function setRef(ref, value) { + if (value === void 0) { + value = null; + } + + if (!ref) return; + + if (typeof ref === "function") { + ref(value); + } else { + ref.current = value; + } +} +/** + * Merges up to two React Refs into a single memoized function React Ref so you + * can pass it to an element. + * + * @example + * import React from "react"; + * import { useForkRef } from "reakit-utils"; + * + * const Component = React.forwardRef((props, ref) => { + * const internalRef = React.useRef(); + * return
; + * }); + */ + + +function useForkRef(refA, refB) { + return Object(react__WEBPACK_IMPORTED_MODULE_0__["useMemo"])(function () { + if (refA == null && refB == null) { + return null; + } + + return function (value) { + setRef(refA, value); + setRef(refB, value); + }; + }, [refA, refB]); +} + + + + +/***/ }), +/* 64 */ /***/ (function(module, exports) { (function() { module.exports = this["wp"]["isShallowEqual"]; }()); /***/ }), -/* 43 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = true ? __webpack_require__(290) : undefined; - - - -/***/ }), -/* 44 */, -/* 45 */ +/* 65 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return unstable_useIdState; }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(62); +/* harmony import */ var _IdProvider_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(68); + + + + +function unstable_useIdState(initialState) { + if (initialState === void 0) { + initialState = {}; + } + + var _useSealedState = Object(reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_1__[/* useSealedState */ "a"])(initialState), + initialBaseId = _useSealedState.baseId; + + var generateId = Object(react__WEBPACK_IMPORTED_MODULE_0__["useContext"])(_IdProvider_js__WEBPACK_IMPORTED_MODULE_2__[/* unstable_IdContext */ "a"]); + var idCountRef = Object(react__WEBPACK_IMPORTED_MODULE_0__["useRef"])(0); + + var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_0__["useState"])(function () { + return initialBaseId || generateId(); + }), + baseId = _React$useState[0], + setBaseId = _React$useState[1]; + + return { + baseId: baseId, + unstable_setBaseId: setBaseId, + unstable_idCountRef: idCountRef + }; +} +var keys = ["baseId", "unstable_setBaseId", "unstable_idCountRef"]; +unstable_useIdState.__keys = keys; + + + + +/***/ }), +/* 66 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_RESULT__;// TinyColor v1.4.1 @@ -1862,17 +4121,1451 @@ /***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var defineProperties = __webpack_require__(73); - -var implementation = __webpack_require__(155); -var getPolyfill = __webpack_require__(156); -var shim = __webpack_require__(286); +/* 67 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* unused harmony export Box */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useBox; }); +/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17); +/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49); +/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48); +/* harmony import */ var reakit_utils_shallowEqual__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56); + + + + + +var useBox = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({ + name: "Box", + keys: ["unstable_system"], + propsAreEqual: function propsAreEqual(prev, next) { + var prevSystem = prev.unstable_system, + prevProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(prev, ["unstable_system"]); + + var nextSystem = next.unstable_system, + nextProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(next, ["unstable_system"]); + + if (prevSystem !== nextSystem && !Object(reakit_utils_shallowEqual__WEBPACK_IMPORTED_MODULE_3__[/* shallowEqual */ "a"])(prevSystem, nextSystem)) { + return false; + } + + return Object(reakit_utils_shallowEqual__WEBPACK_IMPORTED_MODULE_3__[/* shallowEqual */ "a"])(prevProps, nextProps); + } +}); +var Box = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({ + as: "div", + useHook: useBox +}); + + + + +/***/ }), +/* 68 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return unstable_IdContext; }); +/* unused harmony export unstable_IdProvider */ +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + + +var defaultPrefix = "id"; +function generateRandomString(prefix) { + if (prefix === void 0) { + prefix = defaultPrefix; + } + + return "" + (prefix ? prefix + "-" : "") + Math.random().toString(32).substr(2, 6); +} + +var unstable_IdContext = Object(react__WEBPACK_IMPORTED_MODULE_0__["createContext"])(generateRandomString); +function unstable_IdProvider(_ref) { + var children = _ref.children, + _ref$prefix = _ref.prefix, + prefix = _ref$prefix === void 0 ? defaultPrefix : _ref$prefix; + var count = Object(react__WEBPACK_IMPORTED_MODULE_0__["useRef"])(0); + var generateId = Object(react__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(function (localPrefix) { + if (localPrefix === void 0) { + localPrefix = prefix; + } + + return "" + (localPrefix ? localPrefix + "-" : "") + ++count.current; + }, [prefix]); + return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(unstable_IdContext.Provider, { + value: generateId + }, children); +} + + + + +/***/ }), +/* 69 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return hasFocusWithin; }); +/* harmony import */ var _getActiveElement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57); + + + +/** + * Checks if `element` has focus. + * + * @example + * import { hasFocusWithin } from "reakit-utils"; + * + * hasFocusWithin(document.getElementById("id")); + */ + +function hasFocusWithin(element) { + var activeElement = Object(_getActiveElement_js__WEBPACK_IMPORTED_MODULE_0__[/* getActiveElement */ "a"])(element); + if (!activeElement) return false; + if (element.contains(activeElement)) return true; + var activeDescendant = activeElement.getAttribute("aria-activedescendant"); + if (!activeDescendant) return false; + return activeDescendant === element.id || !!element.querySelector("#" + activeDescendant); +} + + + + +/***/ }), +/* 70 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isButton; }); +var buttonInputTypes = ["button", "color", "file", "image", "reset", "submit"]; +/** + * Checks whether `element` is a native HTML button element or not. + * + * @example + * import { isButton } from "reakit-utils"; + * + * isButton(document.querySelector("button")); // true + * isButton(document.querySelector("input[type='button']")); // true + * isButton(document.querySelector("div")); // false + * isButton(document.querySelector("input[type='text']")); // false + * + * @returns {boolean} + */ + +function isButton(element) { + if (element.tagName === "BUTTON") return true; + + if (element.tagName === "INPUT") { + var input = element; + return buttonInputTypes.indexOf(input.type) !== -1; + } + + return false; +} + + + + +/***/ }), +/* 71 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ ensureFocus; }); +__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ getClosestFocusable; }); + +// UNUSED EXPORTS: getAllFocusableIn, getAllTabbableIn, getFirstFocusableIn, getFirstTabbableIn, getLastTabbableIn, getNextTabbableIn, getPreviousTabbableIn, isFocusable, isTabbable + +// CONCATENATED MODULE: ./node_modules/reakit-utils/es/matches.js +/** + * Ponyfill for `Element.prototype.matches` + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/matches + */ +function matches(element, selectors) { + if ("matches" in element) return element.matches(selectors); + if ("msMatchesSelector" in element) return element.msMatchesSelector(selectors); + return element.webkitMatchesSelector(selectors); +} + + + +// CONCATENATED MODULE: ./node_modules/reakit-utils/es/closest.js + + +/** + * Ponyfill for `Element.prototype.closest` + * + * @example + * import { closest } from "reakit-utils"; + * + * closest(document.getElementById("id"), "div"); + * // same as + * document.getElementById("id").closest("div"); + */ +function closest(element, selectors) { + if ("closest" in element) return element.closest(selectors); + + do { + if (matches(element, selectors)) return element; + element = element.parentElement || element.parentNode; + } while (element !== null && element.nodeType === 1); + + return null; +} + + + +// EXTERNAL MODULE: ./node_modules/reakit-utils/es/getActiveElement.js +var getActiveElement = __webpack_require__(57); + +// CONCATENATED MODULE: ./node_modules/reakit-utils/es/tabbable.js + + + + + +/** @module tabbable */ +var selector = "input:not([type='hidden']):not([disabled]), select:not([disabled]), " + "textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], " + "iframe, object, embed, area[href], audio[controls], video[controls], " + "[contenteditable]:not([contenteditable='false'])"; + +function isVisible(element) { + return element.offsetWidth > 0 || element.offsetHeight > 0 || element.getClientRects().length > 0; +} + +function hasNegativeTabIndex(element) { + var tabIndex = parseInt(element.getAttribute("tabindex") || "0", 10); + return tabIndex < 0; +} +/** + * Checks whether `element` is focusable or not. + * + * @memberof tabbable + * + * @example + * import { isFocusable } from "reakit-utils"; + * + * isFocusable(document.querySelector("input")); // true + * isFocusable(document.querySelector("input[tabindex='-1']")); // true + * isFocusable(document.querySelector("input[hidden]")); // false + * isFocusable(document.querySelector("input:disabled")); // false + */ + + +function isFocusable(element) { + return matches(element, selector) && isVisible(element); +} +/** + * Checks whether `element` is tabbable or not. + * + * @memberof tabbable + * + * @example + * import { isTabbable } from "reakit-utils"; + * + * isTabbable(document.querySelector("input")); // true + * isTabbable(document.querySelector("input[tabindex='-1']")); // false + * isTabbable(document.querySelector("input[hidden]")); // false + * isTabbable(document.querySelector("input:disabled")); // false + */ + +function isTabbable(element) { + return isFocusable(element) && !hasNegativeTabIndex(element); +} +/** + * Returns all the focusable elements in `container`. + * + * @memberof tabbable + * + * @param {Element} container + * + * @returns {Element[]} + */ + +function getAllFocusableIn(container) { + var allFocusable = Array.from(container.querySelectorAll(selector)); + allFocusable.unshift(container); + return allFocusable.filter(isFocusable); +} +/** + * Returns the first focusable element in `container`. + * + * @memberof tabbable + * + * @param {Element} container + * + * @returns {Element|null} + */ + +function getFirstFocusableIn(container) { + var allFocusable = getAllFocusableIn(container); + return allFocusable.length ? allFocusable[0] : null; +} +/** + * Returns all the tabbable elements in `container`, including the container + * itself. + * + * @memberof tabbable + * + * @param {Element} container + * @param fallbackToFocusable If `true`, it'll return focusable elements if there are no tabbable ones. + * + * @returns {Element[]} + */ + +function getAllTabbableIn(container, fallbackToFocusable) { + var allFocusable = Array.from(container.querySelectorAll(selector)); + var allTabbable = allFocusable.filter(isTabbable); + + if (isTabbable(container)) { + allTabbable.unshift(container); + } + + if (!allTabbable.length && fallbackToFocusable) { + return allFocusable; + } + + return allTabbable; +} +/** + * Returns the first tabbable element in `container`, including the container + * itself if it's tabbable. + * + * @memberof tabbable + * + * @param {Element} container + * @param fallbackToFocusable If `true`, it'll return the first focusable element if there are no tabbable ones. + * + * @returns {Element|null} + */ + +function getFirstTabbableIn(container, fallbackToFocusable) { + var _getAllTabbableIn = getAllTabbableIn(container, fallbackToFocusable), + first = _getAllTabbableIn[0]; + + return first || null; +} +/** + * Returns the last tabbable element in `container`, including the container + * itself if it's tabbable. + * + * @memberof tabbable + * + * @param {Element} container + * @param fallbackToFocusable If `true`, it'll return the last focusable element if there are no tabbable ones. + * + * @returns {Element|null} + */ + +function getLastTabbableIn(container, fallbackToFocusable) { + var allTabbable = getAllTabbableIn(container, fallbackToFocusable); + return allTabbable[allTabbable.length - 1] || null; +} +/** + * Returns the next tabbable element in `container`. + * + * @memberof tabbable + * + * @param {Element} container + * @param fallbackToFocusable If `true`, it'll return the next focusable element if there are no tabbable ones. + * + * @returns {Element|null} + */ + +function getNextTabbableIn(container, fallbackToFocusable) { + var activeElement = Object(getActiveElement["a" /* getActiveElement */])(container); + var allFocusable = getAllFocusableIn(container); + var index = allFocusable.indexOf(activeElement); + var slice = allFocusable.slice(index + 1); + return slice.find(isTabbable) || allFocusable.find(isTabbable) || (fallbackToFocusable ? slice[0] : null); +} +/** + * Returns the previous tabbable element in `container`. + * + * @memberof tabbable + * + * @param {Element} container + * @param fallbackToFocusable If `true`, it'll return the previous focusable element if there are no tabbable ones. + * + * @returns {Element|null} + */ + +function getPreviousTabbableIn(container, fallbackToFocusable) { + var activeElement = Object(getActiveElement["a" /* getActiveElement */])(container); + var allFocusable = getAllFocusableIn(container).reverse(); + var index = allFocusable.indexOf(activeElement); + var slice = allFocusable.slice(index + 1); + return slice.find(isTabbable) || allFocusable.find(isTabbable) || (fallbackToFocusable ? slice[0] : null); +} +/** + * Returns the closest focusable element. + * + * @memberof tabbable + * + * @param {Element} container + * + * @returns {Element|null} + */ + +function getClosestFocusable(element) { + while (element && !isFocusable(element)) { + element = closest(element, selector); + } + + return element; +} + +function defaultIsActive(element) { + return Object(getActiveElement["a" /* getActiveElement */])(element) === element; +} + +/** + * Ensures `element` will receive focus if it's not already. + * + * @memberof tabbable + * + * @example + * import { ensureFocus } from "reakit-utils"; + * + * ensureFocus(document.activeElement); // does nothing + * + * const element = document.querySelector("input"); + * + * ensureFocus(element); // focuses element + * ensureFocus(element, { preventScroll: true }); // focuses element preventing scroll jump + * + * function isActive(el) { + * return el.dataset.active === "true"; + * } + * + * ensureFocus(document.querySelector("[data-active='true']"), { isActive }); // does nothing + * + * @returns {number} `requestAnimationFrame` call ID so it can be passed to `cancelAnimationFrame` if needed. + */ +function ensureFocus(element, _temp) { + var _ref = _temp === void 0 ? {} : _temp, + _ref$isActive = _ref.isActive, + isActive = _ref$isActive === void 0 ? defaultIsActive : _ref$isActive, + preventScroll = _ref.preventScroll; + + if (isActive(element)) return -1; + element.focus({ + preventScroll: preventScroll + }); + if (isActive(element)) return -1; + return requestAnimationFrame(function () { + element.focus({ + preventScroll: preventScroll + }); + }); +} + + + + +/***/ }), +/* 72 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ isPortalEvent; }); + +// CONCATENATED MODULE: ./node_modules/reakit-utils/es/contains.js +/** + * Similar to `Element.prototype.contains`. + */ +function contains(parent, child) { + return parent === child || parent.contains(child); +} + + + +// CONCATENATED MODULE: ./node_modules/reakit-utils/es/isPortalEvent.js + + +/** + * Returns `true` if `event` has been fired within a React Portal element. + */ + +function isPortalEvent(event) { + return !contains(event.currentTarget, event.target); +} + + + + +/***/ }), +/* 73 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* unused harmony export Tabbable */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useTabbable; }); +/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17); +/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49); +/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48); +/* harmony import */ var _Box_Box_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(63); +/* harmony import */ var reakit_utils_isButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(70); +/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80); +/* harmony import */ var reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(46); +/* harmony import */ var reakit_utils_useIsomorphicEffect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(59); +/* harmony import */ var reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(69); +/* harmony import */ var reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(72); +/* harmony import */ var reakit_utils_getActiveElement__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(57); +/* harmony import */ var reakit_utils_tabbable__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(71); + + + + + + + + + + + + + + + + +function isUA(string) { + if (typeof window === "undefined") return false; + return window.navigator.userAgent.indexOf(string) !== -1; +} + +var isSafariOrFirefoxOnMac = isUA("Mac") && !isUA("Chrome") && (isUA("Safari") || isUA("Firefox")); + +function focusIfNeeded(element) { + if (!Object(reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_10__[/* hasFocusWithin */ "a"])(element)) { + element.focus(); + } +} // Safari and Firefox on MacOS don't focus on buttons on mouse down like other +// browsers/platforms. Instead, they focus on the closest focusable ancestor +// element, which is ultimately the body element. So we make sure to give focus +// to the tabbable element on mouse down so it works consistently across +// browsers. +// istanbul ignore next + + +function useFocusOnMouseDown() { + if (!isSafariOrFirefoxOnMac) return undefined; + + var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_4__["useState"])(null), + tabbable = _React$useState[0], + scheduleFocus = _React$useState[1]; + + Object(react__WEBPACK_IMPORTED_MODULE_4__["useEffect"])(function () { + if (!tabbable) return; + focusIfNeeded(tabbable); + scheduleFocus(null); + }, [tabbable]); + var onMouseDown = Object(react__WEBPACK_IMPORTED_MODULE_4__["useCallback"])(function (event) { + var element = event.currentTarget; + if (Object(reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_11__[/* isPortalEvent */ "a"])(event)) return; + if (!Object(reakit_utils_isButton__WEBPACK_IMPORTED_MODULE_6__[/* isButton */ "a"])(element)) return; + var activeElement = Object(reakit_utils_getActiveElement__WEBPACK_IMPORTED_MODULE_12__[/* getActiveElement */ "a"])(element); + if (!activeElement) return; + var activeElementIsBody = activeElement.tagName === "BODY"; + var focusableAncestor = Object(reakit_utils_tabbable__WEBPACK_IMPORTED_MODULE_13__[/* getClosestFocusable */ "b"])(element.parentElement); + + if (activeElement === focusableAncestor || activeElementIsBody && !focusableAncestor) { + // When the active element is the focusable ancestor, it'll not emit + // focus/blur events. After all, it's already focused. So we can't + // listen to those events to focus this tabbable element. + // When the active element is body and there's no focusable ancestor, + // we also don't have any other event to listen to since body never + // emits focus/blur events on itself. + // In both of these cases, we have to schedule focus on this tabbable + // element. + scheduleFocus(element); + } else if (focusableAncestor) { + // Clicking (mouse down) on the tabbable element on Safari and Firefox + // on MacOS will fire focus on the focusable ancestor element if + // there's any and if it's not the current active element. So we wait + // for this event to happen before moving focus to this element. + // Instead of moving focus right away, we have to schedule it, + // otherwise it's gonna prevent drag events from happening. + var onFocus = function onFocus() { + return scheduleFocus(element); + }; + + focusableAncestor.addEventListener("focusin", onFocus, { + once: true + }); + } else { + // Finally, if there's no focsuable ancestor and there's another + // element with focus, we wait for that element to get blurred before + // focusing this one. + var onBlur = function onBlur() { + return focusIfNeeded(element); + }; + + activeElement.addEventListener("blur", onBlur, { + once: true + }); + } + }, []); + return onMouseDown; +} + +function isNativeTabbable(element) { + return element.tagName === "BUTTON" || element.tagName === "INPUT" || element.tagName === "SELECT" || element.tagName === "TEXTAREA" || element.tagName === "A" || element.tagName === "AUDIO" || element.tagName === "VIDEO"; +} + +var useTabbable = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({ + name: "Tabbable", + compose: _Box_Box_js__WEBPACK_IMPORTED_MODULE_3__[/* useBox */ "a"], + keys: ["disabled", "focusable"], + useOptions: function useOptions(options, _ref) { + var disabled = _ref.disabled; + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({ + disabled: disabled + }, options); + }, + useProps: function useProps(options, _ref2) { + var htmlRef = _ref2.ref, + htmlTabIndex = _ref2.tabIndex, + htmlOnClick = _ref2.onClick, + htmlOnMouseDown = _ref2.onMouseDown, + htmlStyle = _ref2.style, + htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_ref2, ["ref", "tabIndex", "onClick", "onMouseDown", "style"]); + + var ref = Object(react__WEBPACK_IMPORTED_MODULE_4__["useRef"])(null); + var onClickRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_8__[/* useLiveRef */ "a"])(htmlOnClick); + var onMouseDownRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_8__[/* useLiveRef */ "a"])(htmlOnMouseDown); + var trulyDisabled = options.disabled && !options.focusable; + + var _React$useState2 = Object(react__WEBPACK_IMPORTED_MODULE_4__["useState"])(true), + nativeTabbable = _React$useState2[0], + setNativeTabbable = _React$useState2[1]; + + var tabIndex = nativeTabbable ? htmlTabIndex : htmlTabIndex || 0; + var style = options.disabled ? Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({ + pointerEvents: "none" + }, htmlStyle) : htmlStyle; + var focusOnMouseDown = useFocusOnMouseDown(); + Object(reakit_utils_useIsomorphicEffect__WEBPACK_IMPORTED_MODULE_9__[/* useIsomorphicEffect */ "a"])(function () { + var tabbable = ref.current; + + if (!tabbable) { + false ? undefined : void 0; + return; + } + + if (!isNativeTabbable(tabbable)) { + setNativeTabbable(false); + } + }, []); + var onClick = Object(react__WEBPACK_IMPORTED_MODULE_4__["useCallback"])(function (event) { + var _onClickRef$current; + + if (options.disabled) { + event.stopPropagation(); + event.preventDefault(); + return; + } + + (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event); + }, [options.disabled]); + var onMouseDown = Object(react__WEBPACK_IMPORTED_MODULE_4__["useCallback"])(function (event) { + var _onMouseDownRef$curre; + + if (options.disabled) { + event.stopPropagation(); + event.preventDefault(); + return; + } + + (_onMouseDownRef$curre = onMouseDownRef.current) === null || _onMouseDownRef$curre === void 0 ? void 0 : _onMouseDownRef$curre.call(onMouseDownRef, event); + if (event.defaultPrevented) return; + focusOnMouseDown === null || focusOnMouseDown === void 0 ? void 0 : focusOnMouseDown(event); + }, [options.disabled, focusOnMouseDown]); + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({ + ref: Object(reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__[/* useForkRef */ "a"])(ref, htmlRef), + style: style, + tabIndex: !trulyDisabled ? tabIndex : undefined, + disabled: trulyDisabled && nativeTabbable ? true : undefined, + "aria-disabled": options.disabled ? true : undefined, + onClick: onClick, + onMouseDown: onMouseDown + }, htmlProps); + } +}); +var Tabbable = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({ + as: "div", + useHook: useTabbable +}); + + + + +/***/ }), +/* 74 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SystemContext; }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + + +var SystemContext = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_0__["createContext"])({}); + + + + +/***/ }), +/* 75 */, +/* 76 */, +/* 77 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var DISPLAY_FORMAT = exports.DISPLAY_FORMAT = 'L'; +var ISO_FORMAT = exports.ISO_FORMAT = 'YYYY-MM-DD'; +var ISO_MONTH_FORMAT = exports.ISO_MONTH_FORMAT = 'YYYY-MM'; + +var START_DATE = exports.START_DATE = 'startDate'; +var END_DATE = exports.END_DATE = 'endDate'; + +var HORIZONTAL_ORIENTATION = exports.HORIZONTAL_ORIENTATION = 'horizontal'; +var VERTICAL_ORIENTATION = exports.VERTICAL_ORIENTATION = 'vertical'; +var VERTICAL_SCROLLABLE = exports.VERTICAL_SCROLLABLE = 'verticalScrollable'; + +var ICON_BEFORE_POSITION = exports.ICON_BEFORE_POSITION = 'before'; +var ICON_AFTER_POSITION = exports.ICON_AFTER_POSITION = 'after'; + +var INFO_POSITION_TOP = exports.INFO_POSITION_TOP = 'top'; +var INFO_POSITION_BOTTOM = exports.INFO_POSITION_BOTTOM = 'bottom'; +var INFO_POSITION_BEFORE = exports.INFO_POSITION_BEFORE = 'before'; +var INFO_POSITION_AFTER = exports.INFO_POSITION_AFTER = 'after'; + +var ANCHOR_LEFT = exports.ANCHOR_LEFT = 'left'; +var ANCHOR_RIGHT = exports.ANCHOR_RIGHT = 'right'; + +var OPEN_DOWN = exports.OPEN_DOWN = 'down'; +var OPEN_UP = exports.OPEN_UP = 'up'; + +var DAY_SIZE = exports.DAY_SIZE = 39; +var BLOCKED_MODIFIER = exports.BLOCKED_MODIFIER = 'blocked'; +var WEEKDAYS = exports.WEEKDAYS = [0, 1, 2, 3, 4, 5, 6]; + +var FANG_WIDTH_PX = exports.FANG_WIDTH_PX = 20; +var FANG_HEIGHT_PX = exports.FANG_HEIGHT_PX = 10; +var DEFAULT_VERTICAL_SPACING = exports.DEFAULT_VERTICAL_SPACING = 22; + +var MODIFIER_KEY_NAMES = exports.MODIFIER_KEY_NAMES = new Set(['Shift', 'Control', 'Alt', 'Meta']); + +/***/ }), +/* 78 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useCreateElement; }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _SystemContext_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(74); +/* harmony import */ var _rollupPluginBabelHelpers_0c84a174_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55); + + + + +function isRenderProp(children) { + return typeof children === "function"; +} + +/** + * Custom hook that will call `children` if it's a function. If + * `useCreateElement` has been passed to the context, it'll be used instead. + * + * @example + * import React from "react"; + * import { SystemProvider, useCreateElement } from "reakit-system"; + * + * const system = { + * useCreateElement(type, props, children = props.children) { + * // very similar to what `useCreateElement` does already + * if (typeof children === "function") { + * const { children: _, ...rest } = props; + * return children(rest); + * } + * return React.createElement(type, props, children); + * }, + * }; + * + * function Component(props) { + * return useCreateElement("div", props); + * } + * + * function App() { + * return ( + * + * {({ url }) => link} + * + * ); + * } + */ + +var useCreateElement = function useCreateElement(type, props, children) { + if (children === void 0) { + children = props.children; + } + + var context = Object(react__WEBPACK_IMPORTED_MODULE_0__["useContext"])(_SystemContext_js__WEBPACK_IMPORTED_MODULE_1__[/* SystemContext */ "a"]); + + if (context.useCreateElement) { + return context.useCreateElement(type, props, children); + } + + if (typeof type === "string" && isRenderProp(children)) { + var _ = props.children, + rest = Object(_rollupPluginBabelHelpers_0c84a174_js__WEBPACK_IMPORTED_MODULE_2__[/* a */ "b"])(props, ["children"]); + + return children(rest); + } + + return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(type, props, children); +}; + + + + +/***/ }), +/* 79 */, +/* 80 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// UNUSED EXPORTS: warning, useWarning + +// EXTERNAL MODULE: ./node_modules/reakit-warning/es/warning.js +var warning = __webpack_require__(106); + +// EXTERNAL MODULE: external {"this":"React"} +var external_this_React_ = __webpack_require__(13); + +// CONCATENATED MODULE: ./node_modules/reakit-utils/es/isObject.js +/** + * Checks whether `arg` is an object or not. + * + * @returns {boolean} + */ +function isObject(arg) { + return typeof arg === "object" && arg != null; +} + + + +// CONCATENATED MODULE: ./node_modules/reakit-warning/es/useWarning.js + + + + + +function isRefObject(ref) { + return isObject(ref) && "current" in ref; +} +/** + * Logs `messages` to the console using `console.warn` based on a `condition`. + * This should be used inside components. + */ + + +function useWarning(condition) { + for (var _len = arguments.length, messages = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + messages[_key - 1] = arguments[_key]; + } + + if (false) {} +} + + + +// CONCATENATED MODULE: ./node_modules/reakit-warning/es/index.js + + + + + + + +/***/ }), +/* 81 */, +/* 82 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createOnKeyDown; }); +/** + * Returns an `onKeyDown` handler to be passed to a component. + * + * @param options + */ +function createOnKeyDown(_temp) { + var _ref = _temp === void 0 ? {} : _temp, + keyMap = _ref.keyMap, + onKey = _ref.onKey, + stopPropagation = _ref.stopPropagation, + onKeyDown = _ref.onKeyDown, + _ref$shouldKeyDown = _ref.shouldKeyDown, + shouldKeyDown = _ref$shouldKeyDown === void 0 ? function () { + return true; + } : _ref$shouldKeyDown, + _ref$preventDefault = _ref.preventDefault, + preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault; + + return function (event) { + if (!keyMap) return; + var finalKeyMap = typeof keyMap === "function" ? keyMap(event) : keyMap; + var shouldPreventDefault = typeof preventDefault === "function" ? preventDefault(event) : preventDefault; + var shouldStopPropagation = typeof stopPropagation === "function" ? stopPropagation(event) : stopPropagation; + + if (event.key in finalKeyMap) { + var action = finalKeyMap[event.key]; + + if (typeof action === "function" && shouldKeyDown(event)) { + if (shouldPreventDefault) event.preventDefault(); + if (shouldStopPropagation) event.stopPropagation(); + if (onKey) onKey(event); + action(event); // Prevent onKeyDown from being called twice for the same keys + + return; + } + } + + if (onKeyDown && "current" in onKeyDown) { + var _onKeyDown$current; + + (_onKeyDown$current = onKeyDown.current) === null || _onKeyDown$current === void 0 ? void 0 : _onKeyDown$current.call(onKeyDown, event); + } else { + onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event); + } + }; +} + + + + +/***/ }), +/* 83 */, +/* 84 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* unused harmony export Clickable */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useClickable; }); +/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17); +/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49); +/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var reakit_utils_isButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70); +/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(80); +/* harmony import */ var reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46); +/* harmony import */ var reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(53); +/* harmony import */ var _Tabbable_Tabbable_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(73); + + + + + + + + + + + + + + + + + + +function isNativeClick(event) { + var element = event.currentTarget; + if (!event.isTrusted) return false; // istanbul ignore next: can't test trusted events yet + + return Object(reakit_utils_isButton__WEBPACK_IMPORTED_MODULE_4__[/* isButton */ "a"])(element) || element.tagName === "INPUT" || element.tagName === "TEXTAREA" || element.tagName === "A" || element.tagName === "SELECT"; +} + +var useClickable = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({ + name: "Clickable", + compose: _Tabbable_Tabbable_js__WEBPACK_IMPORTED_MODULE_8__[/* useTabbable */ "a"], + keys: ["unstable_clickOnEnter", "unstable_clickOnSpace"], + useOptions: function useOptions(_ref) { + var _ref$unstable_clickOn = _ref.unstable_clickOnEnter, + unstable_clickOnEnter = _ref$unstable_clickOn === void 0 ? true : _ref$unstable_clickOn, + _ref$unstable_clickOn2 = _ref.unstable_clickOnSpace, + unstable_clickOnSpace = _ref$unstable_clickOn2 === void 0 ? true : _ref$unstable_clickOn2, + options = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_ref, ["unstable_clickOnEnter", "unstable_clickOnSpace"]); + + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({ + unstable_clickOnEnter: unstable_clickOnEnter, + unstable_clickOnSpace: unstable_clickOnSpace + }, options); + }, + useProps: function useProps(options, _ref2) { + var htmlOnKeyDown = _ref2.onKeyDown, + htmlOnKeyUp = _ref2.onKeyUp, + htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_ref2, ["onKeyDown", "onKeyUp"]); + + var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_3__["useState"])(false), + active = _React$useState[0], + setActive = _React$useState[1]; + + var onKeyDownRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnKeyDown); + var onKeyUpRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnKeyUp); + var onKeyDown = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) { + var _onKeyDownRef$current; + + (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event); + if (event.defaultPrevented) return; + if (options.disabled) return; + if (event.metaKey) return; + if (!Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ "a"])(event)) return; + var isEnter = options.unstable_clickOnEnter && event.key === "Enter"; + var isSpace = options.unstable_clickOnSpace && event.key === " "; + + if (isEnter || isSpace) { + if (isNativeClick(event)) return; + event.preventDefault(); + + if (isEnter) { + event.currentTarget.click(); + } else if (isSpace) { + setActive(true); + } + } + }, [options.disabled, options.unstable_clickOnEnter, options.unstable_clickOnSpace]); + var onKeyUp = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) { + var _onKeyUpRef$current; + + (_onKeyUpRef$current = onKeyUpRef.current) === null || _onKeyUpRef$current === void 0 ? void 0 : _onKeyUpRef$current.call(onKeyUpRef, event); + if (event.defaultPrevented) return; + if (options.disabled) return; + if (event.metaKey) return; + var isSpace = options.unstable_clickOnSpace && event.key === " "; + + if (active && isSpace) { + setActive(false); + event.currentTarget.click(); + } + }, [options.disabled, options.unstable_clickOnSpace, active]); + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({ + "data-active": active || undefined, + onKeyDown: onKeyDown, + onKeyUp: onKeyUp + }, htmlProps); + } +}); +var Clickable = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({ + as: "button", + memo: true, + useHook: useClickable +}); + + + + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = true ? __webpack_require__(356) : undefined; + + + +/***/ }), +/* 86 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20); +/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19); +/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23); +/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16); +/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2); +/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var _popover__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(112); +/* harmony import */ var _shortcut__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(166); + + + + + + + +function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, result); }; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +/** + * External dependencies + */ + +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + + +/** + * Time over children to wait before showing tooltip + * + * @type {number} + */ + +var TOOLTIP_DELAY = 700; + +var Tooltip = /*#__PURE__*/function (_Component) { + Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(Tooltip, _Component); + + var _super = _createSuper(Tooltip); + + function Tooltip() { + var _this; + + Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, Tooltip); + + _this = _super.apply(this, arguments); + _this.delayedSetIsOver = Object(lodash__WEBPACK_IMPORTED_MODULE_6__["debounce"])(function (isOver) { + return _this.setState({ + isOver: isOver + }); + }, TOOLTIP_DELAY); + /** + * Prebound `isInMouseDown` handler, created as a constant reference to + * assure ability to remove in component unmount. + * + * @type {Function} + */ + + _this.cancelIsMouseDown = _this.createSetIsMouseDown(false); + /** + * Whether a the mouse is currently pressed, used in determining whether + * to handle a focus event as displaying the tooltip immediately. + * + * @type {boolean} + */ + + _this.isInMouseDown = false; + _this.state = { + isOver: false + }; + return _this; + } + + Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(Tooltip, [{ + key: "componentWillUnmount", + value: function componentWillUnmount() { + this.delayedSetIsOver.cancel(); + document.removeEventListener('mouseup', this.cancelIsMouseDown); + } + }, { + key: "emitToChild", + value: function emitToChild(eventName, event) { + var children = this.props.children; + + if (_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["Children"].count(children) !== 1) { + return; + } + + var child = _wordpress_element__WEBPACK_IMPORTED_MODULE_5__["Children"].only(children); + + if (typeof child.props[eventName] === 'function') { + child.props[eventName](event); + } + } + }, { + key: "createToggleIsOver", + value: function createToggleIsOver(eventName, isDelayed) { + var _this2 = this; + + return function (event) { + // Preserve original child callback behavior + _this2.emitToChild(eventName, event); // Mouse events behave unreliably in React for disabled elements, + // firing on mouseenter but not mouseleave. Further, the default + // behavior for disabled elements in some browsers is to ignore + // mouse events. Don't bother trying to to handle them. + // + // See: https://github.com/facebook/react/issues/4251 + + + if (event.currentTarget.disabled) { + return; + } // A focus event will occur as a result of a mouse click, but it + // should be disambiguated between interacting with the button and + // using an explicit focus shift as a cue to display the tooltip. + + + if ('focus' === event.type && _this2.isInMouseDown) { + return; + } // Needed in case unsetting is over while delayed set pending, i.e. + // quickly blur/mouseleave before delayedSetIsOver is called + + + _this2.delayedSetIsOver.cancel(); + + var isOver = Object(lodash__WEBPACK_IMPORTED_MODULE_6__["includes"])(['focus', 'mouseenter'], event.type); + + if (isOver === _this2.state.isOver) { + return; + } + + if (isDelayed) { + _this2.delayedSetIsOver(isOver); + } else { + _this2.setState({ + isOver: isOver + }); + } + }; + } + /** + * Creates an event callback to handle assignment of the `isInMouseDown` + * instance property in response to a `mousedown` or `mouseup` event. + * + * @param {boolean} isMouseDown Whether handler is to be created for the + * `mousedown` event, as opposed to `mouseup`. + * + * @return {Function} Event callback handler. + */ + + }, { + key: "createSetIsMouseDown", + value: function createSetIsMouseDown(isMouseDown) { + var _this3 = this; + + return function (event) { + // Preserve original child callback behavior + _this3.emitToChild(isMouseDown ? 'onMouseDown' : 'onMouseUp', event); // On mouse down, the next `mouseup` should revert the value of the + // instance property and remove its own event handler. The bind is + // made on the document since the `mouseup` might not occur within + // the bounds of the element. + + + document[isMouseDown ? 'addEventListener' : 'removeEventListener']('mouseup', _this3.cancelIsMouseDown); + _this3.isInMouseDown = isMouseDown; + }; + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + children = _this$props.children, + position = _this$props.position, + text = _this$props.text, + shortcut = _this$props.shortcut; + + if (_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["Children"].count(children) !== 1) { + if (false) {} + + return children; + } + + var child = _wordpress_element__WEBPACK_IMPORTED_MODULE_5__["Children"].only(children); + var isOver = this.state.isOver; + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["cloneElement"])(child, { + onMouseEnter: this.createToggleIsOver('onMouseEnter', true), + onMouseLeave: this.createToggleIsOver('onMouseLeave'), + onClick: this.createToggleIsOver('onClick'), + onFocus: this.createToggleIsOver('onFocus'), + onBlur: this.createToggleIsOver('onBlur'), + onMouseDown: this.createSetIsMouseDown(true), + children: Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["concatChildren"])(child.props.children, isOver && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["createElement"])(_popover__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"], { + focusOnMount: false, + position: position, + className: "components-tooltip", + "aria-hidden": "true", + animate: false, + noArrow: true + }, text, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["createElement"])(_shortcut__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"], { + className: "components-tooltip__shortcut", + shortcut: shortcut + }))) + }); + } + }]); + + return Tooltip; +}(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["Component"]); + +/* harmony default export */ __webpack_exports__["a"] = (Tooltip); + + +/***/ }), +/* 87 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); +/** + * WordPress dependencies + */ + +var ToolbarContext = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createContext"])(); +/* harmony default export */ __webpack_exports__["a"] = (ToolbarContext); + + +/***/ }), +/* 88 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); +/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8); +/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6); +/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _dashicon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(148); + + + + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + + +function Icon(_ref) { + var _ref$icon = _ref.icon, + icon = _ref$icon === void 0 ? null : _ref$icon, + size = _ref.size, + additionalProps = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_ref, ["icon", "size"]); + + // Dashicons should be 20x20 by default. + var dashiconSize = size || 20; + + if ('string' === typeof icon) { + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["createElement"])(_dashicon__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])({ + icon: icon, + size: dashiconSize + }, additionalProps)); + } + + if (icon && _dashicon__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"] === icon.type) { + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["cloneElement"])(icon, _objectSpread({ + size: dashiconSize + }, additionalProps)); + } // Icons should be 24x24 by default. + + + var iconSize = size || 24; + + if ('function' === typeof icon) { + if (icon.prototype instanceof _wordpress_element__WEBPACK_IMPORTED_MODULE_3__["Component"]) { + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["createElement"])(icon, _objectSpread({ + size: iconSize + }, additionalProps)); + } + + return icon(_objectSpread({ + size: iconSize + }, additionalProps)); + } + + if (icon && (icon.type === 'svg' || icon.type === _wordpress_primitives__WEBPACK_IMPORTED_MODULE_4__["SVG"])) { + var appliedProps = _objectSpread({ + width: iconSize, + height: iconSize + }, icon.props, {}, additionalProps); + + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_4__["SVG"], appliedProps); + } + + if (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["isValidElement"])(icon)) { + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["cloneElement"])(icon, _objectSpread({ + size: iconSize + }, additionalProps)); + } + + return icon; +} + +/* harmony default export */ __webpack_exports__["a"] = (Icon); + + +/***/ }), +/* 89 */, +/* 90 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var ES5Type = __webpack_require__(317); + +// https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values + +module.exports = function Type(x) { + if (typeof x === 'symbol') { + return 'Symbol'; + } + return ES5Type(x); +}; + + +/***/ }), +/* 91 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var bind = __webpack_require__(118); + +module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); + + +/***/ }), +/* 92 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var defineProperties = __webpack_require__(101); + +var implementation = __webpack_require__(226); +var getPolyfill = __webpack_require__(227); +var shim = __webpack_require__(353); var polyfill = getPolyfill(); @@ -1886,7 +5579,334 @@ /***/ }), -/* 47 */ +/* 93 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* unused harmony export unstable_Id */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return unstable_useId; }); +/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17); +/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49); +/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _IdProvider_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(68); +/* harmony import */ var _IdState_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65); + + + + + + + + +var unstable_useId = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({ + useState: _IdState_js__WEBPACK_IMPORTED_MODULE_5__[/* unstable_useIdState */ "a"], + keys: ["id"], + useOptions: function useOptions(options, htmlProps) { + var generateId = Object(react__WEBPACK_IMPORTED_MODULE_3__["useContext"])(_IdProvider_js__WEBPACK_IMPORTED_MODULE_4__[/* unstable_IdContext */ "a"]); + + var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_3__["useState"])(function () { + // This comes from useIdState + if (options.unstable_idCountRef) { + options.unstable_idCountRef.current += 1; + return "-" + options.unstable_idCountRef.current; + } // If there's no useIdState, we check if `baseId` was passed (as a prop, + // not from useIdState). + + + if (options.baseId) { + return "-" + generateId(""); + } + + return ""; + }), + suffix = _React$useState[0]; // `baseId` will be the prop passed directly as a prop or via useIdState. + // If there's neither, then it'll fallback to Context's generateId. + // This generateId can result in a sequential ID (if there's a Provider) + // or a random string (without Provider). + + + var baseId = Object(react__WEBPACK_IMPORTED_MODULE_3__["useMemo"])(function () { + return options.baseId || generateId(); + }, [options.baseId, generateId]); + var id = htmlProps.id || options.id || "" + baseId + suffix; + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, options), {}, { + id: id + }); + }, + useProps: function useProps(options, htmlProps) { + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({ + id: options.id + }, htmlProps); + } +}); +var unstable_Id = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({ + as: "div", + useHook: unstable_useId +}); + + + + +/***/ }), +/* 94 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return fireEvent; }); +/* harmony import */ var _createEvent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(122); + + + +/** + * Creates and dispatches `Event` in a way that also works on IE 11. + * + * @example + * import { fireEvent } from "reakit-utils"; + * + * fireEvent(document.getElementById("id"), "blur", { + * bubbles: true, + * cancelable: true, + * }); + */ + +function fireEvent(element, type, eventInit) { + return element.dispatchEvent(Object(_createEvent_js__WEBPACK_IMPORTED_MODULE_0__[/* createEvent */ "a"])(element, type, eventInit)); +} + + + + +/***/ }), +/* 95 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isTextField; }); +/** + * Check whether the given element is a text field, where text field is defined + * by the ability to select within the input, or that it is contenteditable. + */ +function isTextField(element) { + try { + var isTextInput = element instanceof HTMLInputElement && element.selectionStart !== null; + var isTextArea = element.tagName === "TEXTAREA"; + var isContentEditable = element.contentEditable === "true"; + return isTextInput || isTextArea || isContentEditable || false; + } catch (error) { + // Safari throws an exception when trying to get `selectionStart` + // on non-text elements (which, understandably, don't + // have the text selection API). We catch this via a try/catch + // block, as opposed to a more explicit check of the element's + // input types, because of Safari's non-standard behavior. This + // also means we don't have to worry about the list of input + // types that support `selectionStart` changing as the HTML spec + // evolves over time. + return false; + } +} + + + + +/***/ }), +/* 96 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return setTextFieldValue; }); +function setTextFieldValue(element, value) { + element.value = value; +} + + + + +/***/ }), +/* 97 */, +/* 98 */, +/* 99 */, +/* 100 */, +/* 101 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var keys = __webpack_require__(181); +var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol'; + +var toStr = Object.prototype.toString; +var concat = Array.prototype.concat; +var origDefineProperty = Object.defineProperty; + +var isFunction = function (fn) { + return typeof fn === 'function' && toStr.call(fn) === '[object Function]'; +}; + +var arePropertyDescriptorsSupported = function () { + var obj = {}; + try { + origDefineProperty(obj, 'x', { enumerable: false, value: obj }); + // eslint-disable-next-line no-unused-vars, no-restricted-syntax + for (var _ in obj) { // jscs:ignore disallowUnusedVariables + return false; + } + return obj.x === obj; + } catch (e) { /* this is IE 8. */ + return false; + } +}; +var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported(); + +var defineProperty = function (object, name, value, predicate) { + if (name in object && (!isFunction(predicate) || !predicate())) { + return; + } + if (supportsDescriptors) { + origDefineProperty(object, name, { + configurable: true, + enumerable: false, + value: value, + writable: true + }); + } else { + object[name] = value; + } +}; + +var defineProperties = function (object, map) { + var predicates = arguments.length > 2 ? arguments[2] : {}; + var props = keys(map); + if (hasSymbols) { + props = concat.call(props, Object.getOwnPropertySymbols(map)); + } + for (var i = 0; i < props.length; i += 1) { + defineProperty(object, props[i], map[props[i]], predicates[props[i]]); + } +}; + +defineProperties.supportsDescriptors = !!supportsDescriptors; + +module.exports = defineProperties; + + +/***/ }), +/* 102 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ fireKeyboardEvent; }); + +// EXTERNAL MODULE: ./node_modules/reakit-utils/es/getDocument.js +var getDocument = __webpack_require__(47); + +// CONCATENATED MODULE: ./node_modules/reakit-utils/es/getDefaultView.js + + +/** + * Returns `element.ownerDocument.defaultView || window`. + */ + +function getDefaultView(element) { + return Object(getDocument["a" /* getDocument */])(element).defaultView || window; +} + + + +// CONCATENATED MODULE: ./node_modules/reakit-utils/es/createKeyboardEvent.js + + + +/** + * Creates a `KeyboardEvent` in a way that also works on IE 11. + * + * @example + * import { createKeyboardEvent } from "reakit-utils"; + * + * const el = document.getElementById("id"); + * el.dispatchEvent(createKeyboardEvent(el, "keydown", { key: "ArrowDown" })); + */ + +function createKeyboardEvent(element, type, eventInit) { + if (eventInit === void 0) { + eventInit = {}; + } + + if (typeof KeyboardEvent === "function") { + return new KeyboardEvent(type, eventInit); + } // IE 11 doesn't support Event constructors + + + var event = Object(getDocument["a" /* getDocument */])(element).createEvent("KeyboardEvent"); + event.initKeyboardEvent(type, eventInit.bubbles, eventInit.cancelable, getDefaultView(element), eventInit.key, eventInit.location, eventInit.ctrlKey, eventInit.altKey, eventInit.shiftKey, eventInit.metaKey); + return event; +} + + + +// CONCATENATED MODULE: ./node_modules/reakit-utils/es/fireKeyboardEvent.js + + + + +/** + * Creates and dispatches `KeyboardEvent` in a way that also works on IE 11. + * + * @example + * import { fireKeyboardEvent } from "reakit-utils"; + * + * fireKeyboardEvent(document.getElementById("id"), "keydown", { + * key: "ArrowDown", + * shiftKey: true, + * }); + */ + +function fireKeyboardEvent(element, type, eventInit) { + return element.dispatchEvent(createKeyboardEvent(element, type, eventInit)); +} + + + + +/***/ }), +/* 103 */, +/* 104 */ +/***/ (function(module, exports) { + +(function() { module.exports = this["wp"]["warning"]; }()); + +/***/ }), +/* 105 */, +/* 106 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* unused harmony export warning */ + + +/** + * Logs `messages` to the console using `console.warn` based on a `condition`. + * + * @example + * import { warning } from "reakit-warning"; + * + * warning(true, "a", "b"); // console.warn("a", "\n", "b") + * warning(false, "a", "b"); // does nothing + */ + +function warning(condition) { + if (false) { var warns, _len, messages, _key, _console; } +} + + + + +/***/ }), +/* 107 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2105,15 +6125,7 @@ }; /***/ }), -/* 48 */ -/***/ (function(module, exports) { - -(function() { module.exports = this["wp"]["a11y"]; }()); - -/***/ }), -/* 49 */, -/* 50 */, -/* 51 */ +/* 108 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2124,11 +6136,11 @@ }); exports['default'] = getPhrasePropTypes; -var _object = __webpack_require__(46); +var _object = __webpack_require__(92); var _object2 = _interopRequireDefault(_object); -var _propTypes = __webpack_require__(31); +var _propTypes = __webpack_require__(28); var _propTypes2 = _interopRequireDefault(_propTypes); @@ -2143,17 +6155,11 @@ } /***/ }), -/* 52 */ -/***/ (function(module, exports) { - -(function() { module.exports = this["ReactDOM"]; }()); - -/***/ }), -/* 53 */, -/* 54 */, -/* 55 */, -/* 56 */ -/***/ (function(module, exports, __webpack_require__) { +/* 109 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + Object.defineProperty(exports, "__esModule", { value: true @@ -2166,29 +6172,29 @@ exports.withStyles = withStyles; -var _react = __webpack_require__(27); +var _object = __webpack_require__(92); + +var _object2 = _interopRequireDefault(_object); + +var _react = __webpack_require__(13); var _react2 = _interopRequireDefault(_react); -var _propTypes = __webpack_require__(31); +var _propTypes = __webpack_require__(28); var _propTypes2 = _interopRequireDefault(_propTypes); -var _hoistNonReactStatics = __webpack_require__(140); +var _hoistNonReactStatics = __webpack_require__(370); var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics); -var _deepmerge = __webpack_require__(291); - -var _deepmerge2 = _interopRequireDefault(_deepmerge); - -var _constants = __webpack_require__(292); - -var _brcast = __webpack_require__(293); +var _constants = __webpack_require__(373); + +var _brcast = __webpack_require__(374); var _brcast2 = _interopRequireDefault(_brcast); -var _ThemedStyleSheet = __webpack_require__(153); +var _ThemedStyleSheet = __webpack_require__(224); var _ThemedStyleSheet2 = _interopRequireDefault(_ThemedStyleSheet); @@ -2200,7 +6206,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /* eslint react/forbid-foreign-prop-types: off */ // Add some named exports to assist in upgrading and for convenience var css = exports.css = _ThemedStyleSheet2['default'].resolveLTR; @@ -2215,6 +6221,9 @@ return EMPTY_STYLES; }; +var START_MARK = 'react-with-styles.createStyles.start'; +var END_MARK = 'react-with-styles.createStyles.end'; + function baseClass(pureComponent) { if (pureComponent) { if (!_react2['default'].PureComponent) { @@ -2287,7 +6296,7 @@ styleDef = styleDefLTR; } - if (false) {} + if (false) { var measureName; } return styleDef; } @@ -2383,13 +6392,13 @@ WithStyles.displayName = 'withStyles(' + String(wrappedComponentName) + ')'; WithStyles.contextTypes = contextTypes; if (WrappedComponent.propTypes) { - WithStyles.propTypes = (0, _deepmerge2['default'])({}, WrappedComponent.propTypes); + WithStyles.propTypes = (0, _object2['default'])({}, WrappedComponent.propTypes); delete WithStyles.propTypes[stylesPropName]; delete WithStyles.propTypes[themePropName]; delete WithStyles.propTypes[cssPropName]; } if (WrappedComponent.defaultProps) { - WithStyles.defaultProps = (0, _deepmerge2['default'])({}, WrappedComponent.defaultProps); + WithStyles.defaultProps = (0, _object2['default'])({}, WrappedComponent.defaultProps); } return (0, _hoistNonReactStatics2['default'])(WithStyles, WrappedComponent); @@ -2400,9 +6409,5414 @@ } /***/ }), -/* 57 */, -/* 58 */, -/* 59 */ +/* 110 */, +/* 111 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8); +/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20); +/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19); +/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12); +/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23); +/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16); +/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(22); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(2); +/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(9); +/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_9__); + + + + + + + + + +function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(this, result); }; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +/** + * External dependencies + */ + +/** + * WordPress dependencies + */ + + + +/** + * Input types which are classified as button types, for use in considering + * whether element is a (focus-normalized) button. + * + * @type {string[]} + */ + +var INPUT_BUTTON_TYPES = ['button', 'submit']; +/** + * Returns true if the given element is a button element subject to focus + * normalization, or false otherwise. + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus + * + * @param {Element} element Element to test. + * + * @return {boolean} Whether element is a button. + */ + +function isFocusNormalizedButton(element) { + switch (element.nodeName) { + case 'A': + case 'BUTTON': + return true; + + case 'INPUT': + return Object(lodash__WEBPACK_IMPORTED_MODULE_8__["includes"])(INPUT_BUTTON_TYPES, element.type); + } + + return false; +} + +/* harmony default export */ __webpack_exports__["a"] = (Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_9__["createHigherOrderComponent"])(function (WrappedComponent) { + return /*#__PURE__*/function (_Component) { + Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(_class, _Component); + + var _super = _createSuper(_class); + + function _class() { + var _this; + + Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(this, _class); + + _this = _super.apply(this, arguments); + _this.bindNode = _this.bindNode.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(_this)); + _this.cancelBlurCheck = _this.cancelBlurCheck.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(_this)); + _this.queueBlurCheck = _this.queueBlurCheck.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(_this)); + _this.normalizeButtonFocus = _this.normalizeButtonFocus.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(_this)); + return _this; + } + + Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_class, [{ + key: "componentWillUnmount", + value: function componentWillUnmount() { + this.cancelBlurCheck(); + } + }, { + key: "bindNode", + value: function bindNode(node) { + if (node) { + this.node = node; + } else { + delete this.node; + this.cancelBlurCheck(); + } + } + }, { + key: "queueBlurCheck", + value: function queueBlurCheck(event) { + var _this2 = this; + + // React does not allow using an event reference asynchronously + // due to recycling behavior, except when explicitly persisted. + event.persist(); // Skip blur check if clicking button. See `normalizeButtonFocus`. + + if (this.preventBlurCheck) { + return; + } + + this.blurCheckTimeout = setTimeout(function () { + // If document is not focused then focus should remain + // inside the wrapped component and therefore we cancel + // this blur event thereby leaving focus in place. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/hasFocus. + if (!document.hasFocus()) { + event.preventDefault(); + return; + } + + if ('function' === typeof _this2.node.handleFocusOutside) { + _this2.node.handleFocusOutside(event); + } + }, 0); + } + }, { + key: "cancelBlurCheck", + value: function cancelBlurCheck() { + clearTimeout(this.blurCheckTimeout); + } + /** + * Handles a mousedown or mouseup event to respectively assign and + * unassign a flag for preventing blur check on button elements. Some + * browsers, namely Firefox and Safari, do not emit a focus event on + * button elements when clicked, while others do. The logic here + * intends to normalize this as treating click on buttons as focus. + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus + * + * @param {MouseEvent} event Event for mousedown or mouseup. + */ + + }, { + key: "normalizeButtonFocus", + value: function normalizeButtonFocus(event) { + var type = event.type, + target = event.target; + var isInteractionEnd = Object(lodash__WEBPACK_IMPORTED_MODULE_8__["includes"])(['mouseup', 'touchend'], type); + + if (isInteractionEnd) { + this.preventBlurCheck = false; + } else if (isFocusNormalizedButton(target)) { + this.preventBlurCheck = true; + } + } + }, { + key: "render", + value: function render() { + // Disable reason: See `normalizeButtonFocus` for browser-specific + // focus event normalization. + + /* eslint-disable jsx-a11y/no-static-element-interactions */ + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["createElement"])("div", { + onFocus: this.cancelBlurCheck, + onMouseDown: this.normalizeButtonFocus, + onMouseUp: this.normalizeButtonFocus, + onTouchStart: this.normalizeButtonFocus, + onTouchEnd: this.normalizeButtonFocus, + onBlur: this.queueBlurCheck + }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["createElement"])(WrappedComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({ + ref: this.bindNode + }, this.props))); + /* eslint-enable jsx-a11y/no-static-element-interactions */ + } + }]); + + return _class; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["Component"]); +}, 'withFocusOutside')); + + +/***/ }), +/* 112 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js +var esm_extends = __webpack_require__(8); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules +var slicedToArray = __webpack_require__(14); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +var objectWithoutProperties = __webpack_require__(15); + +// EXTERNAL MODULE: external {"this":["wp","element"]} +var external_this_wp_element_ = __webpack_require__(0); + +// EXTERNAL MODULE: ./node_modules/classnames/index.js +var classnames = __webpack_require__(11); +var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames); + +// EXTERNAL MODULE: external {"this":["wp","dom"]} +var external_this_wp_dom_ = __webpack_require__(30); + +// EXTERNAL MODULE: external {"this":["wp","keycodes"]} +var external_this_wp_keycodes_ = __webpack_require__(21); + +// EXTERNAL MODULE: external {"this":["wp","deprecated"]} +var external_this_wp_deprecated_ = __webpack_require__(37); +var external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_); + +// EXTERNAL MODULE: external {"this":["wp","compose"]} +var external_this_wp_compose_ = __webpack_require__(9); + +// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js +var library_close = __webpack_require__(154); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js +var defineProperty = __webpack_require__(5); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/utils.js + + + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +/** + * WordPress dependencies + */ + +/** + * Module constants + */ + +var HEIGHT_OFFSET = 10; // used by the arrow and a bit of empty space + +/** + * Utility used to compute the popover position over the xAxis + * + * @param {Object} anchorRect Anchor Rect. + * @param {Object} contentSize Content Size. + * @param {string} xAxis Desired xAxis. + * @param {string} corner Desired corner. + * @param {boolean} sticky Whether or not to stick the popover to the + * scroll container edge when part of the anchor + * leaves view. + * @param {string} chosenYAxis yAxis to be used. + * @param {Element} boundaryElement Boundary element. + * + * @return {Object} Popover xAxis position and constraints. + */ + +function computePopoverXAxisPosition(anchorRect, contentSize, xAxis, corner, sticky, chosenYAxis, boundaryElement) { + var width = contentSize.width; + var isRTL = document.documentElement.dir === 'rtl'; // Correct xAxis for RTL support + + if (xAxis === 'left' && isRTL) { + xAxis = 'right'; + } else if (xAxis === 'right' && isRTL) { + xAxis = 'left'; + } + + if (corner === 'left' && isRTL) { + corner = 'right'; + } else if (corner === 'right' && isRTL) { + corner = 'left'; + } // x axis alignment choices + + + var anchorMidPoint = Math.round(anchorRect.left + anchorRect.width / 2); + var centerAlignment = { + popoverLeft: anchorMidPoint, + contentWidth: (anchorMidPoint - width / 2 > 0 ? width / 2 : anchorMidPoint) + (anchorMidPoint + width / 2 > window.innerWidth ? window.innerWidth - anchorMidPoint : width / 2) + }; + var leftAlignmentX = anchorRect.left; + + if (corner === 'right') { + leftAlignmentX = anchorRect.right; + } else if (chosenYAxis !== 'middle') { + leftAlignmentX = anchorMidPoint; + } + + var rightAlignmentX = anchorRect.right; + + if (corner === 'left') { + rightAlignmentX = anchorRect.left; + } else if (chosenYAxis !== 'middle') { + rightAlignmentX = anchorMidPoint; + } + + var leftAlignment = { + popoverLeft: leftAlignmentX, + contentWidth: leftAlignmentX - width > 0 ? width : leftAlignmentX + }; + var rightAlignment = { + popoverLeft: rightAlignmentX, + contentWidth: rightAlignmentX + width > window.innerWidth ? window.innerWidth - rightAlignmentX : width + }; // Choosing the x axis + + var chosenXAxis = xAxis; + var contentWidth = null; + + if (!sticky) { + if (xAxis === 'center' && centerAlignment.contentWidth === width) { + chosenXAxis = 'center'; + } else if (xAxis === 'left' && leftAlignment.contentWidth === width) { + chosenXAxis = 'left'; + } else if (xAxis === 'right' && rightAlignment.contentWidth === width) { + chosenXAxis = 'right'; + } else { + chosenXAxis = leftAlignment.contentWidth > rightAlignment.contentWidth ? 'left' : 'right'; + var chosenWidth = chosenXAxis === 'left' ? leftAlignment.contentWidth : rightAlignment.contentWidth; + contentWidth = chosenWidth !== width ? chosenWidth : null; + } + } + + var popoverLeft; + + if (chosenXAxis === 'center') { + popoverLeft = centerAlignment.popoverLeft; + } else if (chosenXAxis === 'left') { + popoverLeft = leftAlignment.popoverLeft; + } else { + popoverLeft = rightAlignment.popoverLeft; + } + + if (boundaryElement) { + var boundaryRect = boundaryElement.getBoundingClientRect(); + popoverLeft = Math.min(popoverLeft, boundaryRect.right - width); + } + + return { + xAxis: chosenXAxis, + popoverLeft: popoverLeft, + contentWidth: contentWidth + }; +} +/** + * Utility used to compute the popover position over the yAxis + * + * @param {Object} anchorRect Anchor Rect. + * @param {Object} contentSize Content Size. + * @param {string} yAxis Desired yAxis. + * @param {string} corner Desired corner. + * @param {boolean} sticky Whether or not to stick the popover to the + * scroll container edge when part of the + * anchor leaves view. + * @param {Element} anchorRef The anchor element. + * @param {Element} relativeOffsetTop If applicable, top offset of the relative + * positioned parent container. + * + * @return {Object} Popover xAxis position and constraints. + */ + +function computePopoverYAxisPosition(anchorRect, contentSize, yAxis, corner, sticky, anchorRef, relativeOffsetTop) { + var height = contentSize.height; + + if (sticky) { + var scrollContainerEl = Object(external_this_wp_dom_["getScrollContainer"])(anchorRef) || document.body; + var scrollRect = scrollContainerEl.getBoundingClientRect(); + var stickyPosition = scrollRect.top + height - relativeOffsetTop; + + if (anchorRect.top <= stickyPosition) { + return { + yAxis: yAxis, + popoverTop: Math.min(anchorRect.bottom, stickyPosition) + }; + } + } // y axis alignment choices + + + var anchorMidPoint = anchorRect.top + anchorRect.height / 2; + + if (corner === 'bottom') { + anchorMidPoint = anchorRect.bottom; + } else if (corner === 'top') { + anchorMidPoint = anchorRect.top; + } + + var middleAlignment = { + popoverTop: anchorMidPoint, + contentHeight: (anchorMidPoint - height / 2 > 0 ? height / 2 : anchorMidPoint) + (anchorMidPoint + height / 2 > window.innerHeight ? window.innerHeight - anchorMidPoint : height / 2) + }; + var topAlignment = { + popoverTop: anchorRect.top, + contentHeight: anchorRect.top - HEIGHT_OFFSET - height > 0 ? height : anchorRect.top - HEIGHT_OFFSET + }; + var bottomAlignment = { + popoverTop: anchorRect.bottom, + contentHeight: anchorRect.bottom + HEIGHT_OFFSET + height > window.innerHeight ? window.innerHeight - HEIGHT_OFFSET - anchorRect.bottom : height + }; // Choosing the y axis + + var chosenYAxis = yAxis; + var contentHeight = null; + + if (!sticky) { + if (yAxis === 'middle' && middleAlignment.contentHeight === height) { + chosenYAxis = 'middle'; + } else if (yAxis === 'top' && topAlignment.contentHeight === height) { + chosenYAxis = 'top'; + } else if (yAxis === 'bottom' && bottomAlignment.contentHeight === height) { + chosenYAxis = 'bottom'; + } else { + chosenYAxis = topAlignment.contentHeight > bottomAlignment.contentHeight ? 'top' : 'bottom'; + var chosenHeight = chosenYAxis === 'top' ? topAlignment.contentHeight : bottomAlignment.contentHeight; + contentHeight = chosenHeight !== height ? chosenHeight : null; + } + } + + var popoverTop; + + if (chosenYAxis === 'middle') { + popoverTop = middleAlignment.popoverTop; + } else if (chosenYAxis === 'top') { + popoverTop = topAlignment.popoverTop; + } else { + popoverTop = bottomAlignment.popoverTop; + } + + return { + yAxis: chosenYAxis, + popoverTop: popoverTop, + contentHeight: contentHeight + }; +} +/** + * Utility used to compute the popover position and the content max width/height + * for a popover given its anchor rect and its content size. + * + * @param {Object} anchorRect Anchor Rect. + * @param {Object} contentSize Content Size. + * @param {string} position Position. + * @param {boolean} sticky Whether or not to stick the popover to the + * scroll container edge when part of the + * anchor leaves view. + * @param {Element} anchorRef The anchor element. + * @param {number} relativeOffsetTop If applicable, top offset of the relative + * positioned parent container. + * @param {Element} boundaryElement Boundary element. + * + * @return {Object} Popover position and constraints. + */ + +function computePopoverPosition(anchorRect, contentSize) { + var position = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'top'; + var sticky = arguments.length > 3 ? arguments[3] : undefined; + var anchorRef = arguments.length > 4 ? arguments[4] : undefined; + var relativeOffsetTop = arguments.length > 5 ? arguments[5] : undefined; + var boundaryElement = arguments.length > 6 ? arguments[6] : undefined; + + var _position$split = position.split(' '), + _position$split2 = Object(slicedToArray["a" /* default */])(_position$split, 3), + yAxis = _position$split2[0], + _position$split2$ = _position$split2[1], + xAxis = _position$split2$ === void 0 ? 'center' : _position$split2$, + corner = _position$split2[2]; + + var yAxisPosition = computePopoverYAxisPosition(anchorRect, contentSize, yAxis, corner, sticky, anchorRef, relativeOffsetTop); + var xAxisPosition = computePopoverXAxisPosition(anchorRect, contentSize, xAxis, corner, sticky, yAxisPosition.yAxis, boundaryElement); + return _objectSpread({}, xAxisPosition, {}, yAxisPosition); +} + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-return/index.js +var with_focus_return = __webpack_require__(130); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-constrained-tabbing/index.js +var with_constrained_tabbing = __webpack_require__(129); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js +var classCallCheck = __webpack_require__(20); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js +var createClass = __webpack_require__(19); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +var possibleConstructorReturn = __webpack_require__(23); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +var getPrototypeOf = __webpack_require__(16); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules +var inherits = __webpack_require__(22); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-outside/index.js +var with_focus_outside = __webpack_require__(111); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/detect-outside.js + + + + + + +function _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +/** + * WordPress dependencies + */ + +/** + * Internal dependencies + */ + + + +var detect_outside_PopoverDetectOutside = /*#__PURE__*/function (_Component) { + Object(inherits["a" /* default */])(PopoverDetectOutside, _Component); + + var _super = _createSuper(PopoverDetectOutside); + + function PopoverDetectOutside() { + Object(classCallCheck["a" /* default */])(this, PopoverDetectOutside); + + return _super.apply(this, arguments); + } + + Object(createClass["a" /* default */])(PopoverDetectOutside, [{ + key: "handleFocusOutside", + value: function handleFocusOutside(event) { + this.props.onFocusOutside(event); + } + }, { + key: "render", + value: function render() { + return this.props.children; + } + }]); + + return PopoverDetectOutside; +}(external_this_wp_element_["Component"]); + +/* harmony default export */ var detect_outside = (Object(with_focus_outside["a" /* default */])(detect_outside_PopoverDetectOutside)); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/button/index.js +var build_module_button = __webpack_require__(34); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/scroll-lock/index.js +var scroll_lock = __webpack_require__(161); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/isolated-event-container/index.js +var isolated_event_container = __webpack_require__(131); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/use-slot.js +var use_slot = __webpack_require__(159); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/index.js + 6 modules +var slot_fill = __webpack_require__(121); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/animate/index.js +var build_module_animate = __webpack_require__(160); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/index.js + + + + + +/** + * External dependencies + */ + +/** + * WordPress dependencies + */ + + + + + + + +/** + * Internal dependencies + */ + + + + + + + + + + +var FocusManaged = Object(with_constrained_tabbing["a" /* default */])(Object(with_focus_return["a" /* default */])(function (_ref) { + var children = _ref.children; + return children; +})); +/** + * Name of slot in which popover should fill. + * + * @type {string} + */ + +var SLOT_NAME = 'Popover'; + +function computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect) { + var anchorRef = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + var shouldAnchorIncludePadding = arguments.length > 4 ? arguments[4] : undefined; + + if (anchorRect) { + return anchorRect; + } + + if (getAnchorRect) { + if (!anchorRefFallback.current) { + return; + } + + return getAnchorRect(anchorRefFallback.current); + } + + if (anchorRef !== false) { + if (!anchorRef || !window.Range || !window.Element || !window.DOMRect) { + return; + } + + if (anchorRef instanceof window.Range) { + return Object(external_this_wp_dom_["getRectangleFromRange"])(anchorRef); + } + + if (anchorRef instanceof window.Element) { + var _rect2 = anchorRef.getBoundingClientRect(); + + if (shouldAnchorIncludePadding) { + return _rect2; + } + + return withoutPadding(_rect2, anchorRef); + } + + var top = anchorRef.top, + bottom = anchorRef.bottom; + var topRect = top.getBoundingClientRect(); + var bottomRect = bottom.getBoundingClientRect(); + + var _rect = new window.DOMRect(topRect.left, topRect.top, topRect.width, bottomRect.bottom - topRect.top); + + if (shouldAnchorIncludePadding) { + return _rect; + } + + return withoutPadding(_rect, anchorRef); + } + + if (!anchorRefFallback.current) { + return; + } + + var parentNode = anchorRefFallback.current.parentNode; + var rect = parentNode.getBoundingClientRect(); + + if (shouldAnchorIncludePadding) { + return rect; + } + + return withoutPadding(rect, parentNode); +} + +function withoutPadding(rect, element) { + var _window$getComputedSt = window.getComputedStyle(element), + paddingTop = _window$getComputedSt.paddingTop, + paddingBottom = _window$getComputedSt.paddingBottom, + paddingLeft = _window$getComputedSt.paddingLeft, + paddingRight = _window$getComputedSt.paddingRight; + + var top = paddingTop ? parseInt(paddingTop, 10) : 0; + var bottom = paddingBottom ? parseInt(paddingBottom, 10) : 0; + var left = paddingLeft ? parseInt(paddingLeft, 10) : 0; + var right = paddingRight ? parseInt(paddingRight, 10) : 0; + return { + x: rect.left + left, + y: rect.top + top, + width: rect.width - left - right, + height: rect.height - top - bottom, + left: rect.left + left, + right: rect.right - right, + top: rect.top + top, + bottom: rect.bottom - bottom + }; +} +/** + * Hook used to focus the first tabbable element on mount. + * + * @param {boolean|string} focusOnMount Focus on mount mode. + * @param {Object} contentRef Reference to the popover content element. + */ + + +function useFocusContentOnMount(focusOnMount, contentRef) { + // Focus handling + Object(external_this_wp_element_["useEffect"])(function () { + /* + * Without the setTimeout, the dom node is not being focused. Related: + * https://stackoverflow.com/questions/35522220/react-ref-with-focus-doesnt-work-without-settimeout-my-example + * + * TODO: Treat the cause, not the symptom. + */ + var focusTimeout = setTimeout(function () { + if (!focusOnMount || !contentRef.current) { + return; + } + + if (focusOnMount === 'firstElement') { + // Find first tabbable node within content and shift focus, falling + // back to the popover panel itself. + var firstTabbable = external_this_wp_dom_["focus"].tabbable.find(contentRef.current)[0]; + + if (firstTabbable) { + firstTabbable.focus(); + } else { + contentRef.current.focus(); + } + + return; + } + + if (focusOnMount === 'container') { + // Focus the popover panel itself so items in the popover are easily + // accessed via keyboard navigation. + contentRef.current.focus(); + } + }, 0); + return function () { + return clearTimeout(focusTimeout); + }; + }, []); +} +/** + * Sets or removes an element attribute. + * + * @param {Element} element The element to modify. + * @param {string} name The attribute name to set or remove. + * @param {?string} value The value to set. A falsy value will remove the + * attribute. + */ + + +function setAttribute(element, name, value) { + if (!value) { + if (element.hasAttribute(name)) { + element.removeAttribute(name); + } + } else if (element.getAttribute(name) !== value) { + element.setAttribute(name, value); + } +} +/** + * Sets or removes an element style property. + * + * @param {Element} element The element to modify. + * @param {string} property The property to set or remove. + * @param {?string} value The value to set. A falsy value will remove the + * property. + */ + + +function setStyle(element, property) { + var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; + + if (element.style[property] !== value) { + element.style[property] = value; + } +} +/** + * Sets or removes an element class. + * + * @param {Element} element The element to modify. + * @param {string} name The class to set or remove. + * @param {boolean} toggle True to set the class, false to remove. + */ + + +function setClass(element, name, toggle) { + if (toggle) { + if (!element.classList.contains(name)) { + element.classList.add(name); + } + } else if (element.classList.contains(name)) { + element.classList.remove(name); + } +} + +var popover_Popover = function Popover(_ref2) { + var headerTitle = _ref2.headerTitle, + onClose = _ref2.onClose, + onKeyDown = _ref2.onKeyDown, + children = _ref2.children, + className = _ref2.className, + _ref2$noArrow = _ref2.noArrow, + noArrow = _ref2$noArrow === void 0 ? true : _ref2$noArrow, + isAlternate = _ref2.isAlternate, + _ref2$position = _ref2.position, + position = _ref2$position === void 0 ? 'bottom right' : _ref2$position, + range = _ref2.range, + _ref2$focusOnMount = _ref2.focusOnMount, + focusOnMount = _ref2$focusOnMount === void 0 ? 'firstElement' : _ref2$focusOnMount, + anchorRef = _ref2.anchorRef, + shouldAnchorIncludePadding = _ref2.shouldAnchorIncludePadding, + anchorRect = _ref2.anchorRect, + getAnchorRect = _ref2.getAnchorRect, + expandOnMobile = _ref2.expandOnMobile, + _ref2$animate = _ref2.animate, + animate = _ref2$animate === void 0 ? true : _ref2$animate, + onClickOutside = _ref2.onClickOutside, + onFocusOutside = _ref2.onFocusOutside, + __unstableSticky = _ref2.__unstableSticky, + _ref2$__unstableSlotN = _ref2.__unstableSlotName, + __unstableSlotName = _ref2$__unstableSlotN === void 0 ? SLOT_NAME : _ref2$__unstableSlotN, + __unstableObserveElement = _ref2.__unstableObserveElement, + __unstableBoundaryParent = _ref2.__unstableBoundaryParent, + contentProps = Object(objectWithoutProperties["a" /* default */])(_ref2, ["headerTitle", "onClose", "onKeyDown", "children", "className", "noArrow", "isAlternate", "position", "range", "focusOnMount", "anchorRef", "shouldAnchorIncludePadding", "anchorRect", "getAnchorRect", "expandOnMobile", "animate", "onClickOutside", "onFocusOutside", "__unstableSticky", "__unstableSlotName", "__unstableObserveElement", "__unstableBoundaryParent"]); + + var anchorRefFallback = Object(external_this_wp_element_["useRef"])(null); + var contentRef = Object(external_this_wp_element_["useRef"])(null); + var containerRef = Object(external_this_wp_element_["useRef"])(); + var isMobileViewport = Object(external_this_wp_compose_["useViewportMatch"])('medium', '<'); + + var _useState = Object(external_this_wp_element_["useState"])(), + _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2), + animateOrigin = _useState2[0], + setAnimateOrigin = _useState2[1]; + + var slot = Object(use_slot["a" /* default */])(__unstableSlotName); + var isExpanded = expandOnMobile && isMobileViewport; + + var _useResizeObserver = Object(external_this_wp_compose_["useResizeObserver"])(), + _useResizeObserver2 = Object(slicedToArray["a" /* default */])(_useResizeObserver, 2), + containerResizeListener = _useResizeObserver2[0], + contentSize = _useResizeObserver2[1]; + + noArrow = isExpanded || noArrow; + Object(external_this_wp_element_["useLayoutEffect"])(function () { + if (isExpanded) { + setClass(containerRef.current, 'is-without-arrow', noArrow); + setClass(containerRef.current, 'is-alternate', isAlternate); + setAttribute(containerRef.current, 'data-x-axis'); + setAttribute(containerRef.current, 'data-y-axis'); + setStyle(containerRef.current, 'top'); + setStyle(containerRef.current, 'left'); + setStyle(contentRef.current, 'maxHeight'); + setStyle(contentRef.current, 'maxWidth'); + return; + } + + var refresh = function refresh() { + if (!containerRef.current || !contentRef.current) { + return; + } + + var anchor = computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect, anchorRef, shouldAnchorIncludePadding); + + if (!anchor) { + return; + } + + var _containerRef$current = containerRef.current, + offsetParent = _containerRef$current.offsetParent, + ownerDocument = _containerRef$current.ownerDocument; + var relativeOffsetTop = 0; // If there is a positioned ancestor element that is not the body, + // subtract the position from the anchor rect. If the position of + // the popover is fixed, the offset parent is null or the body + // element, in which case the position is relative to the viewport. + // See https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent + + if (offsetParent && offsetParent !== ownerDocument.body) { + var offsetParentRect = offsetParent.getBoundingClientRect(); + relativeOffsetTop = offsetParentRect.top; + anchor = new window.DOMRect(anchor.left - offsetParentRect.left, anchor.top - offsetParentRect.top, anchor.width, anchor.height); + } + + var boundaryElement; + + if (__unstableBoundaryParent) { + var _containerRef$current2; + + boundaryElement = (_containerRef$current2 = containerRef.current.closest('.popover-slot')) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.parentNode; + } + + var usedContentSize = !contentSize.height ? contentRef.current.getBoundingClientRect() : contentSize; + + var _computePopoverPositi = computePopoverPosition(anchor, usedContentSize, position, __unstableSticky, containerRef.current, relativeOffsetTop, boundaryElement), + popoverTop = _computePopoverPositi.popoverTop, + popoverLeft = _computePopoverPositi.popoverLeft, + xAxis = _computePopoverPositi.xAxis, + yAxis = _computePopoverPositi.yAxis, + contentHeight = _computePopoverPositi.contentHeight, + contentWidth = _computePopoverPositi.contentWidth; + + if (typeof popoverTop === 'number' && typeof popoverLeft === 'number') { + setStyle(containerRef.current, 'top', popoverTop + 'px'); + setStyle(containerRef.current, 'left', popoverLeft + 'px'); + } + + setClass(containerRef.current, 'is-without-arrow', noArrow || xAxis === 'center' && yAxis === 'middle'); + setClass(containerRef.current, 'is-alternate', isAlternate); + setAttribute(containerRef.current, 'data-x-axis', xAxis); + setAttribute(containerRef.current, 'data-y-axis', yAxis); + setStyle(contentRef.current, 'maxHeight', typeof contentHeight === 'number' ? contentHeight + 'px' : ''); + setStyle(contentRef.current, 'maxWidth', typeof contentWidth === 'number' ? contentWidth + 'px' : ''); // Compute the animation position + + var yAxisMapping = { + top: 'bottom', + bottom: 'top' + }; + var xAxisMapping = { + left: 'right', + right: 'left' + }; + var animateYAxis = yAxisMapping[yAxis] || 'middle'; + var animateXAxis = xAxisMapping[xAxis] || 'center'; + setAnimateOrigin(animateXAxis + ' ' + animateYAxis); + }; + + refresh(); + /* + * There are sometimes we need to reposition or resize the popover that + * are not handled by the resize/scroll window events (i.e. CSS changes + * in the layout that changes the position of the anchor). + * + * For these situations, we refresh the popover every 0.5s + */ + + var intervalHandle = window.setInterval(refresh, 500); + var rafId; + + var refreshOnAnimationFrame = function refreshOnAnimationFrame() { + window.cancelAnimationFrame(rafId); + rafId = window.requestAnimationFrame(refresh); + }; // Sometimes a click trigger a layout change that affects the popover + // position. This is an opportunity to immediately refresh rather than + // at the interval. + + + window.addEventListener('click', refreshOnAnimationFrame); + window.addEventListener('resize', refresh); + window.addEventListener('scroll', refresh, true); + var observer; + + if (__unstableObserveElement) { + observer = new window.MutationObserver(refresh); + observer.observe(__unstableObserveElement, { + attributes: true + }); + } + + return function () { + window.clearInterval(intervalHandle); + window.removeEventListener('resize', refresh); + window.removeEventListener('scroll', refresh, true); + window.removeEventListener('click', refreshOnAnimationFrame); + window.cancelAnimationFrame(rafId); + + if (observer) { + observer.disconnect(); + } + }; + }, [isExpanded, anchorRect, getAnchorRect, anchorRef, shouldAnchorIncludePadding, position, contentSize, __unstableSticky, __unstableObserveElement, __unstableBoundaryParent]); + useFocusContentOnMount(focusOnMount, contentRef); // Event handlers + + var maybeClose = function maybeClose(event) { + // Close on escape + if (event.keyCode === external_this_wp_keycodes_["ESCAPE"] && onClose) { + event.stopPropagation(); + onClose(); + } // Preserve original content prop behavior + + + if (onKeyDown) { + onKeyDown(event); + } + }; + /** + * Shims an onFocusOutside callback to be compatible with a deprecated + * onClickOutside prop function, if provided. + * + * @param {FocusEvent} event Focus event from onFocusOutside. + */ + + + function handleOnFocusOutside(event) { + // Defer to given `onFocusOutside` if specified. Call `onClose` only if + // both `onFocusOutside` and `onClickOutside` are unspecified. Doing so + // assures backwards-compatibility for prior `onClickOutside` default. + if (onFocusOutside) { + onFocusOutside(event); + return; + } else if (!onClickOutside) { + if (onClose) { + onClose(); + } + + return; + } // Simulate MouseEvent using FocusEvent#relatedTarget as emulated click + // target. MouseEvent constructor is unsupported in Internet Explorer. + + + var clickEvent; + + try { + clickEvent = new window.MouseEvent('click'); + } catch (error) { + clickEvent = document.createEvent('MouseEvent'); + clickEvent.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + } + + Object.defineProperty(clickEvent, 'target', { + get: function get() { + return event.relatedTarget; + } + }); + external_this_wp_deprecated_default()('Popover onClickOutside prop', { + alternative: 'onFocusOutside' + }); + onClickOutside(clickEvent); + } // Disable reason: We care to capture the _bubbled_ events from inputs + // within popover as inferring close intent. + + + var content = Object(external_this_wp_element_["createElement"])(detect_outside, { + onFocusOutside: handleOnFocusOutside + }, Object(external_this_wp_element_["createElement"])(build_module_animate["a" /* default */], { + type: animate && animateOrigin ? 'appear' : null, + options: { + origin: animateOrigin + } + }, function (_ref3) { + var animateClassName = _ref3.className; + return Object(external_this_wp_element_["createElement"])(isolated_event_container["a" /* default */], Object(esm_extends["a" /* default */])({ + className: classnames_default()('components-popover', className, animateClassName, { + 'is-expanded': isExpanded, + 'is-without-arrow': noArrow, + 'is-alternate': isAlternate + }) + }, contentProps, { + onKeyDown: maybeClose, + ref: containerRef + }), isExpanded && Object(external_this_wp_element_["createElement"])(scroll_lock["a" /* default */], null), isExpanded && Object(external_this_wp_element_["createElement"])("div", { + className: "components-popover__header" + }, Object(external_this_wp_element_["createElement"])("span", { + className: "components-popover__header-title" + }, headerTitle), Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], { + className: "components-popover__close", + icon: library_close["a" /* default */], + onClick: onClose + })), Object(external_this_wp_element_["createElement"])("div", { + ref: contentRef, + className: "components-popover__content", + tabIndex: "-1" + }, Object(external_this_wp_element_["createElement"])("div", { + style: { + position: 'relative' + } + }, containerResizeListener, children))); + })); // Apply focus to element as long as focusOnMount is truthy; false is + // the only "disabled" value. + + if (focusOnMount) { + content = Object(external_this_wp_element_["createElement"])(FocusManaged, null, content); + } + + if (slot.ref) { + content = Object(external_this_wp_element_["createElement"])(slot_fill["a" /* Fill */], { + name: __unstableSlotName + }, content); + } + + if (anchorRef || anchorRect) { + return content; + } + + return Object(external_this_wp_element_["createElement"])("span", { + ref: anchorRefFallback + }, content); +}; + +var PopoverContainer = popover_Popover; + +PopoverContainer.Slot = function (_ref4) { + var _ref4$name = _ref4.name, + name = _ref4$name === void 0 ? SLOT_NAME : _ref4$name; + return Object(external_this_wp_element_["createElement"])(slot_fill["b" /* Slot */], { + bubblesVirtually: true, + name: name, + className: "popover-slot" + }); +}; + +/* harmony default export */ var popover = __webpack_exports__["a"] = (PopoverContainer); + + +/***/ }), +/* 113 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var _extends = _interopDefault(__webpack_require__(170)); +var _objectWithoutPropertiesLoose = _interopDefault(__webpack_require__(171)); +var React = __webpack_require__(13); +var React__default = _interopDefault(React); +var _inheritsLoose = _interopDefault(__webpack_require__(145)); +var _assertThisInitialized = _interopDefault(__webpack_require__(172)); + +var is = { + arr: Array.isArray, + obj: function obj(a) { + return Object.prototype.toString.call(a) === '[object Object]'; + }, + fun: function fun(a) { + return typeof a === 'function'; + }, + str: function str(a) { + return typeof a === 'string'; + }, + num: function num(a) { + return typeof a === 'number'; + }, + und: function und(a) { + return a === void 0; + }, + nul: function nul(a) { + return a === null; + }, + set: function set(a) { + return a instanceof Set; + }, + map: function map(a) { + return a instanceof Map; + }, + equ: function equ(a, b) { + if (typeof a !== typeof b) return false; + if (is.str(a) || is.num(a)) return a === b; + if (is.obj(a) && is.obj(b) && Object.keys(a).length + Object.keys(b).length === 0) return true; + var i; + + for (i in a) { + if (!(i in b)) return false; + } + + for (i in b) { + if (a[i] !== b[i]) return false; + } + + return is.und(i) ? a === b : true; + } +}; +function merge(target, lowercase) { + if (lowercase === void 0) { + lowercase = true; + } + + return function (object) { + return (is.arr(object) ? object : Object.keys(object)).reduce(function (acc, element) { + var key = lowercase ? element[0].toLowerCase() + element.substring(1) : element; + acc[key] = target(key); + return acc; + }, target); + }; +} +function useForceUpdate() { + var _useState = React.useState(false), + f = _useState[1]; + + var forceUpdate = React.useCallback(function () { + return f(function (v) { + return !v; + }); + }, []); + return forceUpdate; +} +function withDefault(value, defaultValue) { + return is.und(value) || is.nul(value) ? defaultValue : value; +} +function toArray(a) { + return !is.und(a) ? is.arr(a) ? a : [a] : []; +} +function callProp(obj) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + return is.fun(obj) ? obj.apply(void 0, args) : obj; +} + +function getForwardProps(props) { + var to = props.to, + from = props.from, + config = props.config, + onStart = props.onStart, + onRest = props.onRest, + onFrame = props.onFrame, + children = props.children, + reset = props.reset, + reverse = props.reverse, + force = props.force, + immediate = props.immediate, + delay = props.delay, + attach = props.attach, + destroyed = props.destroyed, + interpolateTo = props.interpolateTo, + ref = props.ref, + lazy = props.lazy, + forward = _objectWithoutPropertiesLoose(props, ["to", "from", "config", "onStart", "onRest", "onFrame", "children", "reset", "reverse", "force", "immediate", "delay", "attach", "destroyed", "interpolateTo", "ref", "lazy"]); + + return forward; +} + +function interpolateTo(props) { + var forward = getForwardProps(props); + if (is.und(forward)) return _extends({ + to: forward + }, props); + var rest = Object.keys(props).reduce(function (a, k) { + var _extends2; + + return !is.und(forward[k]) ? a : _extends({}, a, (_extends2 = {}, _extends2[k] = props[k], _extends2)); + }, {}); + return _extends({ + to: forward + }, rest); +} +function handleRef(ref, forward) { + if (forward) { + // If it's a function, assume it's a ref callback + if (is.fun(forward)) forward(ref);else if (is.obj(forward)) { + forward.current = ref; + } + } + + return ref; +} + +var Animated = +/*#__PURE__*/ +function () { + function Animated() { + this.payload = void 0; + this.children = []; + } + + var _proto = Animated.prototype; + + _proto.getAnimatedValue = function getAnimatedValue() { + return this.getValue(); + }; + + _proto.getPayload = function getPayload() { + return this.payload || this; + }; + + _proto.attach = function attach() {}; + + _proto.detach = function detach() {}; + + _proto.getChildren = function getChildren() { + return this.children; + }; + + _proto.addChild = function addChild(child) { + if (this.children.length === 0) this.attach(); + this.children.push(child); + }; + + _proto.removeChild = function removeChild(child) { + var index = this.children.indexOf(child); + this.children.splice(index, 1); + if (this.children.length === 0) this.detach(); + }; + + return Animated; +}(); +var AnimatedArray = +/*#__PURE__*/ +function (_Animated) { + _inheritsLoose(AnimatedArray, _Animated); + + function AnimatedArray() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _Animated.call.apply(_Animated, [this].concat(args)) || this; + _this.payload = []; + + _this.attach = function () { + return _this.payload.forEach(function (p) { + return p instanceof Animated && p.addChild(_assertThisInitialized(_this)); + }); + }; + + _this.detach = function () { + return _this.payload.forEach(function (p) { + return p instanceof Animated && p.removeChild(_assertThisInitialized(_this)); + }); + }; + + return _this; + } + + return AnimatedArray; +}(Animated); +var AnimatedObject = +/*#__PURE__*/ +function (_Animated2) { + _inheritsLoose(AnimatedObject, _Animated2); + + function AnimatedObject() { + var _this2; + + for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { + args[_key3] = arguments[_key3]; + } + + _this2 = _Animated2.call.apply(_Animated2, [this].concat(args)) || this; + _this2.payload = {}; + + _this2.attach = function () { + return Object.values(_this2.payload).forEach(function (s) { + return s instanceof Animated && s.addChild(_assertThisInitialized(_this2)); + }); + }; + + _this2.detach = function () { + return Object.values(_this2.payload).forEach(function (s) { + return s instanceof Animated && s.removeChild(_assertThisInitialized(_this2)); + }); + }; + + return _this2; + } + + var _proto2 = AnimatedObject.prototype; + + _proto2.getValue = function getValue(animated) { + if (animated === void 0) { + animated = false; + } + + var payload = {}; + + for (var _key4 in this.payload) { + var value = this.payload[_key4]; + if (animated && !(value instanceof Animated)) continue; + payload[_key4] = value instanceof Animated ? value[animated ? 'getAnimatedValue' : 'getValue']() : value; + } + + return payload; + }; + + _proto2.getAnimatedValue = function getAnimatedValue() { + return this.getValue(true); + }; + + return AnimatedObject; +}(Animated); + +var applyAnimatedValues; +function injectApplyAnimatedValues(fn, transform) { + applyAnimatedValues = { + fn: fn, + transform: transform + }; +} +var colorNames; +function injectColorNames(names) { + colorNames = names; +} +var requestFrame = function requestFrame(cb) { + return typeof window !== 'undefined' ? window.requestAnimationFrame(cb) : -1; +}; +var cancelFrame = function cancelFrame(id) { + typeof window !== 'undefined' && window.cancelAnimationFrame(id); +}; +function injectFrame(raf, caf) { + requestFrame = raf; + cancelFrame = caf; +} +var interpolation; +function injectStringInterpolator(fn) { + interpolation = fn; +} +var now = function now() { + return Date.now(); +}; +function injectNow(nowFn) { + now = nowFn; +} +var defaultElement; +function injectDefaultElement(el) { + defaultElement = el; +} +var animatedApi = function animatedApi(node) { + return node.current; +}; +function injectAnimatedApi(fn) { + animatedApi = fn; +} +var createAnimatedStyle; +function injectCreateAnimatedStyle(factory) { + createAnimatedStyle = factory; +} +var manualFrameloop; +function injectManualFrameloop(callback) { + manualFrameloop = callback; +} + +var Globals = /*#__PURE__*/Object.freeze({ + get applyAnimatedValues () { return applyAnimatedValues; }, + injectApplyAnimatedValues: injectApplyAnimatedValues, + get colorNames () { return colorNames; }, + injectColorNames: injectColorNames, + get requestFrame () { return requestFrame; }, + get cancelFrame () { return cancelFrame; }, + injectFrame: injectFrame, + get interpolation () { return interpolation; }, + injectStringInterpolator: injectStringInterpolator, + get now () { return now; }, + injectNow: injectNow, + get defaultElement () { return defaultElement; }, + injectDefaultElement: injectDefaultElement, + get animatedApi () { return animatedApi; }, + injectAnimatedApi: injectAnimatedApi, + get createAnimatedStyle () { return createAnimatedStyle; }, + injectCreateAnimatedStyle: injectCreateAnimatedStyle, + get manualFrameloop () { return manualFrameloop; }, + injectManualFrameloop: injectManualFrameloop +}); + +/** + * Wraps the `style` property with `AnimatedStyle`. + */ + +var AnimatedProps = +/*#__PURE__*/ +function (_AnimatedObject) { + _inheritsLoose(AnimatedProps, _AnimatedObject); + + function AnimatedProps(props, callback) { + var _this; + + _this = _AnimatedObject.call(this) || this; + _this.update = void 0; + _this.payload = !props.style ? props : _extends({}, props, { + style: createAnimatedStyle(props.style) + }); + _this.update = callback; + + _this.attach(); + + return _this; + } + + return AnimatedProps; +}(AnimatedObject); + +var isFunctionComponent = function isFunctionComponent(val) { + return is.fun(val) && !(val.prototype instanceof React__default.Component); +}; + +var createAnimatedComponent = function createAnimatedComponent(Component) { + var AnimatedComponent = React.forwardRef(function (props, ref) { + var forceUpdate = useForceUpdate(); + var mounted = React.useRef(true); + var propsAnimated = React.useRef(null); + var node = React.useRef(null); + var attachProps = React.useCallback(function (props) { + var oldPropsAnimated = propsAnimated.current; + + var callback = function callback() { + var didUpdate = false; + + if (node.current) { + didUpdate = applyAnimatedValues.fn(node.current, propsAnimated.current.getAnimatedValue()); + } + + if (!node.current || didUpdate === false) { + // If no referenced node has been found, or the update target didn't have a + // native-responder, then forceUpdate the animation ... + forceUpdate(); + } + }; + + propsAnimated.current = new AnimatedProps(props, callback); + oldPropsAnimated && oldPropsAnimated.detach(); + }, []); + React.useEffect(function () { + return function () { + mounted.current = false; + propsAnimated.current && propsAnimated.current.detach(); + }; + }, []); + React.useImperativeHandle(ref, function () { + return animatedApi(node, mounted, forceUpdate); + }); + attachProps(props); + + var _getValue = propsAnimated.current.getValue(), + scrollTop = _getValue.scrollTop, + scrollLeft = _getValue.scrollLeft, + animatedProps = _objectWithoutPropertiesLoose(_getValue, ["scrollTop", "scrollLeft"]); // Functions cannot have refs, see: + // See: https://github.com/react-spring/react-spring/issues/569 + + + var refFn = isFunctionComponent(Component) ? undefined : function (childRef) { + return node.current = handleRef(childRef, ref); + }; + return React__default.createElement(Component, _extends({}, animatedProps, { + ref: refFn + })); + }); + return AnimatedComponent; +}; + +var active = false; +var controllers = new Set(); + +var update = function update() { + if (!active) return false; + var time = now(); + + for (var _iterator = controllers, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var controller = _ref; + var isActive = false; + + for (var configIdx = 0; configIdx < controller.configs.length; configIdx++) { + var config = controller.configs[configIdx]; + var endOfAnimation = void 0, + lastTime = void 0; + + for (var valIdx = 0; valIdx < config.animatedValues.length; valIdx++) { + var animation = config.animatedValues[valIdx]; // If an animation is done, skip, until all of them conclude + + if (animation.done) continue; + var from = config.fromValues[valIdx]; + var to = config.toValues[valIdx]; + var position = animation.lastPosition; + var isAnimated = to instanceof Animated; + var velocity = Array.isArray(config.initialVelocity) ? config.initialVelocity[valIdx] : config.initialVelocity; + if (isAnimated) to = to.getValue(); // Conclude animation if it's either immediate, or from-values match end-state + + if (config.immediate) { + animation.setValue(to); + animation.done = true; + continue; + } // Break animation when string values are involved + + + if (typeof from === 'string' || typeof to === 'string') { + animation.setValue(to); + animation.done = true; + continue; + } + + if (config.duration !== void 0) { + /** Duration easing */ + position = from + config.easing((time - animation.startTime) / config.duration) * (to - from); + endOfAnimation = time >= animation.startTime + config.duration; + } else if (config.decay) { + /** Decay easing */ + position = from + velocity / (1 - 0.998) * (1 - Math.exp(-(1 - 0.998) * (time - animation.startTime))); + endOfAnimation = Math.abs(animation.lastPosition - position) < 0.1; + if (endOfAnimation) to = position; + } else { + /** Spring easing */ + lastTime = animation.lastTime !== void 0 ? animation.lastTime : time; + velocity = animation.lastVelocity !== void 0 ? animation.lastVelocity : config.initialVelocity; // If we lost a lot of frames just jump to the end. + + if (time > lastTime + 64) lastTime = time; // http://gafferongames.com/game-physics/fix-your-timestep/ + + var numSteps = Math.floor(time - lastTime); + + for (var i = 0; i < numSteps; ++i) { + var force = -config.tension * (position - to); + var damping = -config.friction * velocity; + var acceleration = (force + damping) / config.mass; + velocity = velocity + acceleration * 1 / 1000; + position = position + velocity * 1 / 1000; + } // Conditions for stopping the spring animation + + + var isOvershooting = config.clamp && config.tension !== 0 ? from < to ? position > to : position < to : false; + var isVelocity = Math.abs(velocity) <= config.precision; + var isDisplacement = config.tension !== 0 ? Math.abs(to - position) <= config.precision : true; + endOfAnimation = isOvershooting || isVelocity && isDisplacement; + animation.lastVelocity = velocity; + animation.lastTime = time; + } // Trails aren't done until their parents conclude + + + if (isAnimated && !config.toValues[valIdx].done) endOfAnimation = false; + + if (endOfAnimation) { + // Ensure that we end up with a round value + if (animation.value !== to) position = to; + animation.done = true; + } else isActive = true; + + animation.setValue(position); + animation.lastPosition = position; + } // Keep track of updated values only when necessary + + + if (controller.props.onFrame) controller.values[config.name] = config.interpolation.getValue(); + } // Update callbacks in the end of the frame + + + if (controller.props.onFrame) controller.props.onFrame(controller.values); // Either call onEnd or next frame + + if (!isActive) { + controllers.delete(controller); + controller.stop(true); + } + } // Loop over as long as there are controllers ... + + + if (controllers.size) { + if (manualFrameloop) manualFrameloop();else requestFrame(update); + } else { + active = false; + } + + return active; +}; + +var start = function start(controller) { + if (!controllers.has(controller)) controllers.add(controller); + + if (!active) { + active = true; + if (manualFrameloop) requestFrame(manualFrameloop);else requestFrame(update); + } +}; + +var stop = function stop(controller) { + if (controllers.has(controller)) controllers.delete(controller); +}; + +function createInterpolator(range, output, extrapolate) { + if (typeof range === 'function') { + return range; + } + + if (Array.isArray(range)) { + return createInterpolator({ + range: range, + output: output, + extrapolate: extrapolate + }); + } + + if (interpolation && typeof range.output[0] === 'string') { + return interpolation(range); + } + + var config = range; + var outputRange = config.output; + var inputRange = config.range || [0, 1]; + var extrapolateLeft = config.extrapolateLeft || config.extrapolate || 'extend'; + var extrapolateRight = config.extrapolateRight || config.extrapolate || 'extend'; + + var easing = config.easing || function (t) { + return t; + }; + + return function (input) { + var range = findRange(input, inputRange); + return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map); + }; +} + +function interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) { + var result = map ? map(input) : input; // Extrapolate + + if (result < inputMin) { + if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin; + } + + if (result > inputMax) { + if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax; + } + + if (outputMin === outputMax) return outputMin; + if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax; // Input Range + + if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin); // Easing + + result = easing(result); // Output Range + + if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin; + return result; +} + +function findRange(input, inputRange) { + for (var i = 1; i < inputRange.length - 1; ++i) { + if (inputRange[i] >= input) break; + } + + return i - 1; +} + +var AnimatedInterpolation = +/*#__PURE__*/ +function (_AnimatedArray) { + _inheritsLoose(AnimatedInterpolation, _AnimatedArray); + + function AnimatedInterpolation(parents, range, output, extrapolate) { + var _this; + + _this = _AnimatedArray.call(this) || this; + _this.calc = void 0; + _this.payload = parents instanceof AnimatedArray && !(parents instanceof AnimatedInterpolation) ? parents.getPayload() : Array.isArray(parents) ? parents : [parents]; + _this.calc = createInterpolator(range, output, extrapolate); + return _this; + } + + var _proto = AnimatedInterpolation.prototype; + + _proto.getValue = function getValue() { + return this.calc.apply(this, this.payload.map(function (value) { + return value.getValue(); + })); + }; + + _proto.updateConfig = function updateConfig(range, output, extrapolate) { + this.calc = createInterpolator(range, output, extrapolate); + }; + + _proto.interpolate = function interpolate(range, output, extrapolate) { + return new AnimatedInterpolation(this, range, output, extrapolate); + }; + + return AnimatedInterpolation; +}(AnimatedArray); + +var interpolate$1 = function interpolate(parents, range, output) { + return parents && new AnimatedInterpolation(parents, range, output); +}; + +var config = { + default: { + tension: 170, + friction: 26 + }, + gentle: { + tension: 120, + friction: 14 + }, + wobbly: { + tension: 180, + friction: 12 + }, + stiff: { + tension: 210, + friction: 20 + }, + slow: { + tension: 280, + friction: 60 + }, + molasses: { + tension: 280, + friction: 120 + } +}; + +/** API + * useChain(references, timeSteps, timeFrame) + */ + +function useChain(refs, timeSteps, timeFrame) { + if (timeFrame === void 0) { + timeFrame = 1000; + } + + var previous = React.useRef(); + React.useEffect(function () { + if (is.equ(refs, previous.current)) refs.forEach(function (_ref) { + var current = _ref.current; + return current && current.start(); + });else if (timeSteps) { + refs.forEach(function (_ref2, index) { + var current = _ref2.current; + + if (current) { + var ctrls = current.controllers; + + if (ctrls.length) { + var t = timeFrame * timeSteps[index]; + ctrls.forEach(function (ctrl) { + ctrl.queue = ctrl.queue.map(function (e) { + return _extends({}, e, { + delay: e.delay + t + }); + }); + ctrl.start(); + }); + } + } + }); + } else refs.reduce(function (q, _ref3, rI) { + var current = _ref3.current; + return q = q.then(function () { + return current.start(); + }); + }, Promise.resolve()); + previous.current = refs; + }); +} + +/** + * Animated works by building a directed acyclic graph of dependencies + * transparently when you render your Animated components. + * + * new Animated.Value(0) + * .interpolate() .interpolate() new Animated.Value(1) + * opacity translateY scale + * style transform + * View#234 style + * View#123 + * + * A) Top Down phase + * When an AnimatedValue is updated, we recursively go down through this + * graph in order to find leaf nodes: the views that we flag as needing + * an update. + * + * B) Bottom Up phase + * When a view is flagged as needing an update, we recursively go back up + * in order to build the new value that it needs. The reason why we need + * this two-phases process is to deal with composite props such as + * transform which can receive values from multiple parents. + */ +function addAnimatedStyles(node, styles) { + if ('update' in node) { + styles.add(node); + } else { + node.getChildren().forEach(function (child) { + return addAnimatedStyles(child, styles); + }); + } +} + +var AnimatedValue = +/*#__PURE__*/ +function (_Animated) { + _inheritsLoose(AnimatedValue, _Animated); + + function AnimatedValue(_value) { + var _this; + + _this = _Animated.call(this) || this; + _this.animatedStyles = new Set(); + _this.value = void 0; + _this.startPosition = void 0; + _this.lastPosition = void 0; + _this.lastVelocity = void 0; + _this.startTime = void 0; + _this.lastTime = void 0; + _this.done = false; + + _this.setValue = function (value, flush) { + if (flush === void 0) { + flush = true; + } + + _this.value = value; + if (flush) _this.flush(); + }; + + _this.value = _value; + _this.startPosition = _value; + _this.lastPosition = _value; + return _this; + } + + var _proto = AnimatedValue.prototype; + + _proto.flush = function flush() { + if (this.animatedStyles.size === 0) { + addAnimatedStyles(this, this.animatedStyles); + } + + this.animatedStyles.forEach(function (animatedStyle) { + return animatedStyle.update(); + }); + }; + + _proto.clearStyles = function clearStyles() { + this.animatedStyles.clear(); + }; + + _proto.getValue = function getValue() { + return this.value; + }; + + _proto.interpolate = function interpolate(range, output, extrapolate) { + return new AnimatedInterpolation(this, range, output, extrapolate); + }; + + return AnimatedValue; +}(Animated); + +var AnimatedValueArray = +/*#__PURE__*/ +function (_AnimatedArray) { + _inheritsLoose(AnimatedValueArray, _AnimatedArray); + + function AnimatedValueArray(values) { + var _this; + + _this = _AnimatedArray.call(this) || this; + _this.payload = values.map(function (n) { + return new AnimatedValue(n); + }); + return _this; + } + + var _proto = AnimatedValueArray.prototype; + + _proto.setValue = function setValue(value, flush) { + var _this2 = this; + + if (flush === void 0) { + flush = true; + } + + if (Array.isArray(value)) { + if (value.length === this.payload.length) { + value.forEach(function (v, i) { + return _this2.payload[i].setValue(v, flush); + }); + } + } else { + this.payload.forEach(function (p) { + return p.setValue(value, flush); + }); + } + }; + + _proto.getValue = function getValue() { + return this.payload.map(function (v) { + return v.getValue(); + }); + }; + + _proto.interpolate = function interpolate(range, output) { + return new AnimatedInterpolation(this, range, output); + }; + + return AnimatedValueArray; +}(AnimatedArray); + +var G = 0; + +var Controller = +/*#__PURE__*/ +function () { + function Controller() { + var _this = this; + + this.id = void 0; + this.idle = true; + this.hasChanged = false; + this.guid = 0; + this.local = 0; + this.props = {}; + this.merged = {}; + this.animations = {}; + this.interpolations = {}; + this.values = {}; + this.configs = []; + this.listeners = []; + this.queue = []; + this.localQueue = void 0; + + this.getValues = function () { + return _this.interpolations; + }; + + this.id = G++; + } + /** update(props) + * This function filters input props and creates an array of tasks which are executed in .start() + * Each task is allowed to carry a delay, which means it can execute asnychroneously */ + + + var _proto = Controller.prototype; + + _proto.update = function update$$1(args) { + //this._id = n + this.id + if (!args) return this; // Extract delay and the to-prop from props + + var _ref = interpolateTo(args), + _ref$delay = _ref.delay, + delay = _ref$delay === void 0 ? 0 : _ref$delay, + to = _ref.to, + props = _objectWithoutPropertiesLoose(_ref, ["delay", "to"]); + + if (is.arr(to) || is.fun(to)) { + // If config is either a function or an array queue it up as is + this.queue.push(_extends({}, props, { + delay: delay, + to: to + })); + } else if (to) { + // Otherwise go through each key since it could be delayed individually + var ops = {}; + Object.entries(to).forEach(function (_ref2) { + var _to; + + var k = _ref2[0], + v = _ref2[1]; + + // Fetch delay and create an entry, consisting of the to-props, the delay, and basic props + var entry = _extends({ + to: (_to = {}, _to[k] = v, _to), + delay: callProp(delay, k) + }, props); + + var previous = ops[entry.delay] && ops[entry.delay].to; + ops[entry.delay] = _extends({}, ops[entry.delay], entry, { + to: _extends({}, previous, entry.to) + }); + }); + this.queue = Object.values(ops); + } // Sort queue, so that async calls go last + + + this.queue = this.queue.sort(function (a, b) { + return a.delay - b.delay; + }); // Diff the reduced props immediately (they'll contain the from-prop and some config) + + this.diff(props); + return this; + } + /** start(onEnd) + * This function either executes a queue, if present, or starts the frameloop, which animates */ + ; + + _proto.start = function start$$1(onEnd) { + var _this2 = this; + + // If a queue is present we must excecute it + if (this.queue.length) { + this.idle = false; // Updates can interrupt trailing queues, in that case we just merge values + + if (this.localQueue) { + this.localQueue.forEach(function (_ref3) { + var _ref3$from = _ref3.from, + from = _ref3$from === void 0 ? {} : _ref3$from, + _ref3$to = _ref3.to, + to = _ref3$to === void 0 ? {} : _ref3$to; + if (is.obj(from)) _this2.merged = _extends({}, from, _this2.merged); + if (is.obj(to)) _this2.merged = _extends({}, _this2.merged, to); + }); + } // The guid helps us tracking frames, a new queue over an old one means an override + // We discard async calls in that caseÍ + + + var local = this.local = ++this.guid; + var queue = this.localQueue = this.queue; + this.queue = []; // Go through each entry and execute it + + queue.forEach(function (_ref4, index) { + var delay = _ref4.delay, + props = _objectWithoutPropertiesLoose(_ref4, ["delay"]); + + var cb = function cb(finished) { + if (index === queue.length - 1 && local === _this2.guid && finished) { + _this2.idle = true; + if (_this2.props.onRest) _this2.props.onRest(_this2.merged); + } + + if (onEnd) onEnd(); + }; // Entries can be delayed, ansyc or immediate + + + var async = is.arr(props.to) || is.fun(props.to); + + if (delay) { + setTimeout(function () { + if (local === _this2.guid) { + if (async) _this2.runAsync(props, cb);else _this2.diff(props).start(cb); + } + }, delay); + } else if (async) _this2.runAsync(props, cb);else _this2.diff(props).start(cb); + }); + } // Otherwise we kick of the frameloop + else { + if (is.fun(onEnd)) this.listeners.push(onEnd); + if (this.props.onStart) this.props.onStart(); + + start(this); + } + + return this; + }; + + _proto.stop = function stop$$1(finished) { + this.listeners.forEach(function (onEnd) { + return onEnd(finished); + }); + this.listeners = []; + return this; + } + /** Pause sets onEnd listeners free, but also removes the controller from the frameloop */ + ; + + _proto.pause = function pause(finished) { + this.stop(true); + if (finished) stop(this); + return this; + }; + + _proto.runAsync = function runAsync(_ref5, onEnd) { + var _this3 = this; + + var delay = _ref5.delay, + props = _objectWithoutPropertiesLoose(_ref5, ["delay"]); + + var local = this.local; // If "to" is either a function or an array it will be processed async, therefor "to" should be empty right now + // If the view relies on certain values "from" has to be present + + var queue = Promise.resolve(undefined); + + if (is.arr(props.to)) { + var _loop = function _loop(i) { + var index = i; + + var fresh = _extends({}, props, interpolateTo(props.to[index])); + + if (is.arr(fresh.config)) fresh.config = fresh.config[index]; + queue = queue.then(function () { + //this.stop() + if (local === _this3.guid) return new Promise(function (r) { + return _this3.diff(fresh).start(r); + }); + }); + }; + + for (var i = 0; i < props.to.length; i++) { + _loop(i); + } + } else if (is.fun(props.to)) { + var index = 0; + var last; + queue = queue.then(function () { + return props.to( // next(props) + function (p) { + var fresh = _extends({}, props, interpolateTo(p)); + + if (is.arr(fresh.config)) fresh.config = fresh.config[index]; + index++; //this.stop() + + if (local === _this3.guid) return last = new Promise(function (r) { + return _this3.diff(fresh).start(r); + }); + return; + }, // cancel() + function (finished) { + if (finished === void 0) { + finished = true; + } + + return _this3.stop(finished); + }).then(function () { + return last; + }); + }); + } + + queue.then(onEnd); + }; + + _proto.diff = function diff(props) { + var _this4 = this; + + this.props = _extends({}, this.props, props); + var _this$props = this.props, + _this$props$from = _this$props.from, + from = _this$props$from === void 0 ? {} : _this$props$from, + _this$props$to = _this$props.to, + to = _this$props$to === void 0 ? {} : _this$props$to, + _this$props$config = _this$props.config, + config = _this$props$config === void 0 ? {} : _this$props$config, + reverse = _this$props.reverse, + attach = _this$props.attach, + reset = _this$props.reset, + immediate = _this$props.immediate; // Reverse values when requested + + if (reverse) { + var _ref6 = [to, from]; + from = _ref6[0]; + to = _ref6[1]; + } // This will collect all props that were ever set, reset merged props when necessary + + + this.merged = _extends({}, from, this.merged, to); + this.hasChanged = false; // Attachment handling, trailed springs can "attach" themselves to a previous spring + + var target = attach && attach(this); // Reduces input { name: value } pairs into animated values + + this.animations = Object.entries(this.merged).reduce(function (acc, _ref7) { + var name = _ref7[0], + value = _ref7[1]; + // Issue cached entries, except on reset + var entry = acc[name] || {}; // Figure out what the value is supposed to be + + var isNumber = is.num(value); + var isString = is.str(value) && !value.startsWith('#') && !/\d/.test(value) && !colorNames[value]; + var isArray = is.arr(value); + var isInterpolation = !isNumber && !isArray && !isString; + var fromValue = !is.und(from[name]) ? from[name] : value; + var toValue = isNumber || isArray ? value : isString ? value : 1; + var toConfig = callProp(config, name); + if (target) toValue = target.animations[name].parent; + var parent = entry.parent, + interpolation$$1 = entry.interpolation, + toValues = toArray(target ? toValue.getPayload() : toValue), + animatedValues; + var newValue = value; + if (isInterpolation) newValue = interpolation({ + range: [0, 1], + output: [value, value] + })(1); + var currentValue = interpolation$$1 && interpolation$$1.getValue(); // Change detection flags + + var isFirst = is.und(parent); + var isActive = !isFirst && entry.animatedValues.some(function (v) { + return !v.done; + }); + var currentValueDiffersFromGoal = !is.equ(newValue, currentValue); + var hasNewGoal = !is.equ(newValue, entry.previous); + var hasNewConfig = !is.equ(toConfig, entry.config); // Change animation props when props indicate a new goal (new value differs from previous one) + // and current values differ from it. Config changes trigger a new update as well (though probably shouldn't?) + + if (reset || hasNewGoal && currentValueDiffersFromGoal || hasNewConfig) { + var _extends2; + + // Convert regular values into animated values, ALWAYS re-use if possible + if (isNumber || isString) parent = interpolation$$1 = entry.parent || new AnimatedValue(fromValue);else if (isArray) parent = interpolation$$1 = entry.parent || new AnimatedValueArray(fromValue);else if (isInterpolation) { + var prev = entry.interpolation && entry.interpolation.calc(entry.parent.value); + prev = prev !== void 0 && !reset ? prev : fromValue; + + if (entry.parent) { + parent = entry.parent; + parent.setValue(0, false); + } else parent = new AnimatedValue(0); + + var range = { + output: [prev, value] + }; + + if (entry.interpolation) { + interpolation$$1 = entry.interpolation; + entry.interpolation.updateConfig(range); + } else interpolation$$1 = parent.interpolate(range); + } + toValues = toArray(target ? toValue.getPayload() : toValue); + animatedValues = toArray(parent.getPayload()); + if (reset && !isInterpolation) parent.setValue(fromValue, false); + _this4.hasChanged = true; // Reset animated values + + animatedValues.forEach(function (value) { + value.startPosition = value.value; + value.lastPosition = value.value; + value.lastVelocity = isActive ? value.lastVelocity : undefined; + value.lastTime = isActive ? value.lastTime : undefined; + value.startTime = now(); + value.done = false; + value.animatedStyles.clear(); + }); // Set immediate values + + if (callProp(immediate, name)) { + parent.setValue(isInterpolation ? toValue : value, false); + } + + return _extends({}, acc, (_extends2 = {}, _extends2[name] = _extends({}, entry, { + name: name, + parent: parent, + interpolation: interpolation$$1, + animatedValues: animatedValues, + toValues: toValues, + previous: newValue, + config: toConfig, + fromValues: toArray(parent.getValue()), + immediate: callProp(immediate, name), + initialVelocity: withDefault(toConfig.velocity, 0), + clamp: withDefault(toConfig.clamp, false), + precision: withDefault(toConfig.precision, 0.01), + tension: withDefault(toConfig.tension, 170), + friction: withDefault(toConfig.friction, 26), + mass: withDefault(toConfig.mass, 1), + duration: toConfig.duration, + easing: withDefault(toConfig.easing, function (t) { + return t; + }), + decay: toConfig.decay + }), _extends2)); + } else { + if (!currentValueDiffersFromGoal) { + var _extends3; + + // So ... the current target value (newValue) appears to be different from the previous value, + // which normally constitutes an update, but the actual value (currentValue) matches the target! + // In order to resolve this without causing an animation update we silently flag the animation as done, + // which it technically is. Interpolations also needs a config update with their target set to 1. + if (isInterpolation) { + parent.setValue(1, false); + interpolation$$1.updateConfig({ + output: [newValue, newValue] + }); + } + + parent.done = true; + _this4.hasChanged = true; + return _extends({}, acc, (_extends3 = {}, _extends3[name] = _extends({}, acc[name], { + previous: newValue + }), _extends3)); + } + + return acc; + } + }, this.animations); + + if (this.hasChanged) { + // Make animations available to frameloop + this.configs = Object.values(this.animations); + this.values = {}; + this.interpolations = {}; + + for (var key in this.animations) { + this.interpolations[key] = this.animations[key].interpolation; + this.values[key] = this.animations[key].interpolation.getValue(); + } + } + + return this; + }; + + _proto.destroy = function destroy() { + this.stop(); + this.props = {}; + this.merged = {}; + this.animations = {}; + this.interpolations = {}; + this.values = {}; + this.configs = []; + this.local = 0; + }; + + return Controller; +}(); + +/** API + * const props = useSprings(number, [{ ... }, { ... }, ...]) + * const [props, set] = useSprings(number, (i, controller) => ({ ... })) + */ + +var useSprings = function useSprings(length, props) { + var mounted = React.useRef(false); + var ctrl = React.useRef(); + var isFn = is.fun(props); // The controller maintains the animation values, starts and stops animations + + var _useMemo = React.useMemo(function () { + // Remove old controllers + if (ctrl.current) { + ctrl.current.map(function (c) { + return c.destroy(); + }); + ctrl.current = undefined; + } + + var ref; + return [new Array(length).fill().map(function (_, i) { + var ctrl = new Controller(); + var newProps = isFn ? callProp(props, i, ctrl) : props[i]; + if (i === 0) ref = newProps.ref; + ctrl.update(newProps); + if (!ref) ctrl.start(); + return ctrl; + }), ref]; + }, [length]), + controllers = _useMemo[0], + ref = _useMemo[1]; + + ctrl.current = controllers; // The hooks reference api gets defined here ... + + var api = React.useImperativeHandle(ref, function () { + return { + start: function start() { + return Promise.all(ctrl.current.map(function (c) { + return new Promise(function (r) { + return c.start(r); + }); + })); + }, + stop: function stop(finished) { + return ctrl.current.forEach(function (c) { + return c.stop(finished); + }); + }, + + get controllers() { + return ctrl.current; + } + + }; + }); // This function updates the controllers + + var updateCtrl = React.useMemo(function () { + return function (updateProps) { + return ctrl.current.map(function (c, i) { + c.update(isFn ? callProp(updateProps, i, c) : updateProps[i]); + if (!ref) c.start(); + }); + }; + }, [length]); // Update controller if props aren't functional + + React.useEffect(function () { + if (mounted.current) { + if (!isFn) updateCtrl(props); + } else if (!ref) ctrl.current.forEach(function (c) { + return c.start(); + }); + }); // Update mounted flag and destroy controller on unmount + + React.useEffect(function () { + return mounted.current = true, function () { + return ctrl.current.forEach(function (c) { + return c.destroy(); + }); + }; + }, []); // Return animated props, or, anim-props + the update-setter above + + var propValues = ctrl.current.map(function (c) { + return c.getValues(); + }); + return isFn ? [propValues, updateCtrl, function (finished) { + return ctrl.current.forEach(function (c) { + return c.pause(finished); + }); + }] : propValues; +}; + +/** API + * const props = useSpring({ ... }) + * const [props, set] = useSpring(() => ({ ... })) + */ + +var useSpring = function useSpring(props) { + var isFn = is.fun(props); + + var _useSprings = useSprings(1, isFn ? props : [props]), + result = _useSprings[0], + set = _useSprings[1], + pause = _useSprings[2]; + + return isFn ? [result[0], set, pause] : result; +}; + +/** API + * const trails = useTrail(number, { ... }) + * const [trails, set] = useTrail(number, () => ({ ... })) + */ + +var useTrail = function useTrail(length, props) { + var mounted = React.useRef(false); + var isFn = is.fun(props); + var updateProps = callProp(props); + var instances = React.useRef(); + + var _useSprings = useSprings(length, function (i, ctrl) { + if (i === 0) instances.current = []; + instances.current.push(ctrl); + return _extends({}, updateProps, { + config: callProp(updateProps.config, i), + attach: i > 0 && function () { + return instances.current[i - 1]; + } + }); + }), + result = _useSprings[0], + set = _useSprings[1], + pause = _useSprings[2]; // Set up function to update controller + + + var updateCtrl = React.useMemo(function () { + return function (props) { + return set(function (i, ctrl) { + var last = props.reverse ? i === 0 : length - 1 === i; + var attachIdx = props.reverse ? i + 1 : i - 1; + var attachController = instances.current[attachIdx]; + return _extends({}, props, { + config: callProp(props.config || updateProps.config, i), + attach: attachController && function () { + return attachController; + } + }); + }); + }; + }, [length, updateProps.reverse]); // Update controller if props aren't functional + + React.useEffect(function () { + return void (mounted.current && !isFn && updateCtrl(props)); + }); // Update mounted flag and destroy controller on unmount + + React.useEffect(function () { + return void (mounted.current = true); + }, []); + return isFn ? [result, updateCtrl, pause] : result; +}; + +/** API + * const transitions = useTransition(items, itemKeys, { ... }) + * const [transitions, update] = useTransition(items, itemKeys, () => ({ ... })) + */ + +var guid = 0; +var ENTER = 'enter'; +var LEAVE = 'leave'; +var UPDATE = 'update'; + +var mapKeys = function mapKeys(items, keys) { + return (typeof keys === 'function' ? items.map(keys) : toArray(keys)).map(String); +}; + +var get = function get(props) { + var items = props.items, + _props$keys = props.keys, + keys = _props$keys === void 0 ? function (item) { + return item; + } : _props$keys, + rest = _objectWithoutPropertiesLoose(props, ["items", "keys"]); + + items = toArray(items !== void 0 ? items : null); + return _extends({ + items: items, + keys: mapKeys(items, keys) + }, rest); +}; + +function useTransition(input, keyTransform, config) { + var props = _extends({ + items: input, + keys: keyTransform || function (i) { + return i; + } + }, config); + + var _get = get(props), + _get$lazy = _get.lazy, + lazy = _get$lazy === void 0 ? false : _get$lazy, + _get$unique = _get.unique, + _get$reset = _get.reset, + reset = _get$reset === void 0 ? false : _get$reset, + enter = _get.enter, + leave = _get.leave, + update = _get.update, + onDestroyed = _get.onDestroyed, + keys = _get.keys, + items = _get.items, + onFrame = _get.onFrame, + _onRest = _get.onRest, + onStart = _get.onStart, + ref = _get.ref, + extra = _objectWithoutPropertiesLoose(_get, ["lazy", "unique", "reset", "enter", "leave", "update", "onDestroyed", "keys", "items", "onFrame", "onRest", "onStart", "ref"]); + + var forceUpdate = useForceUpdate(); + var mounted = React.useRef(false); + var state = React.useRef({ + mounted: false, + first: true, + deleted: [], + current: {}, + transitions: [], + prevProps: {}, + paused: !!props.ref, + instances: !mounted.current && new Map(), + forceUpdate: forceUpdate + }); + React.useImperativeHandle(props.ref, function () { + return { + start: function start() { + return Promise.all(Array.from(state.current.instances).map(function (_ref) { + var c = _ref[1]; + return new Promise(function (r) { + return c.start(r); + }); + })); + }, + stop: function stop(finished) { + return Array.from(state.current.instances).forEach(function (_ref2) { + var c = _ref2[1]; + return c.stop(finished); + }); + }, + + get controllers() { + return Array.from(state.current.instances).map(function (_ref3) { + var c = _ref3[1]; + return c; + }); + } + + }; + }); // Update state + + state.current = diffItems(state.current, props); + + if (state.current.changed) { + // Update state + state.current.transitions.forEach(function (transition) { + var slot = transition.slot, + from = transition.from, + to = transition.to, + config = transition.config, + trail = transition.trail, + key = transition.key, + item = transition.item; + if (!state.current.instances.has(key)) state.current.instances.set(key, new Controller()); // update the map object + + var ctrl = state.current.instances.get(key); + + var newProps = _extends({}, extra, { + to: to, + from: from, + config: config, + ref: ref, + onRest: function onRest(values) { + if (state.current.mounted) { + if (transition.destroyed) { + // If no ref is given delete destroyed items immediately + if (!ref && !lazy) cleanUp(state, key); + if (onDestroyed) onDestroyed(item); + } // A transition comes to rest once all its springs conclude + + + var curInstances = Array.from(state.current.instances); + var active = curInstances.some(function (_ref4) { + var c = _ref4[1]; + return !c.idle; + }); + if (!active && (ref || lazy) && state.current.deleted.length > 0) cleanUp(state); + if (_onRest) _onRest(item, slot, values); + } + }, + onStart: onStart && function () { + return onStart(item, slot); + }, + onFrame: onFrame && function (values) { + return onFrame(item, slot, values); + }, + delay: trail, + reset: reset && slot === ENTER // Update controller + + }); + + ctrl.update(newProps); + if (!state.current.paused) ctrl.start(); + }); + } + + React.useEffect(function () { + state.current.mounted = mounted.current = true; + return function () { + state.current.mounted = mounted.current = false; + Array.from(state.current.instances).map(function (_ref5) { + var c = _ref5[1]; + return c.destroy(); + }); + state.current.instances.clear(); + }; + }, []); + return state.current.transitions.map(function (_ref6) { + var item = _ref6.item, + slot = _ref6.slot, + key = _ref6.key; + return { + item: item, + key: key, + state: slot, + props: state.current.instances.get(key).getValues() + }; + }); +} + +function cleanUp(state, filterKey) { + var deleted = state.current.deleted; + + var _loop = function _loop() { + if (_isArray) { + if (_i >= _iterator.length) return "break"; + _ref8 = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) return "break"; + _ref8 = _i.value; + } + + var _ref7 = _ref8; + var key = _ref7.key; + + var filter = function filter(t) { + return t.key !== key; + }; + + if (is.und(filterKey) || filterKey === key) { + state.current.instances.delete(key); + state.current.transitions = state.current.transitions.filter(filter); + state.current.deleted = state.current.deleted.filter(filter); + } + }; + + for (var _iterator = deleted, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref8; + + var _ret = _loop(); + + if (_ret === "break") break; + } + + state.current.forceUpdate(); +} + +function diffItems(_ref9, props) { + var first = _ref9.first, + prevProps = _ref9.prevProps, + state = _objectWithoutPropertiesLoose(_ref9, ["first", "prevProps"]); + + var _get2 = get(props), + items = _get2.items, + keys = _get2.keys, + initial = _get2.initial, + from = _get2.from, + enter = _get2.enter, + leave = _get2.leave, + update = _get2.update, + _get2$trail = _get2.trail, + trail = _get2$trail === void 0 ? 0 : _get2$trail, + unique = _get2.unique, + config = _get2.config, + _get2$order = _get2.order, + order = _get2$order === void 0 ? [ENTER, LEAVE, UPDATE] : _get2$order; + + var _get3 = get(prevProps), + _keys = _get3.keys, + _items = _get3.items; + + var current = _extends({}, state.current); + + var deleted = [].concat(state.deleted); // Compare next keys with current keys + + var currentKeys = Object.keys(current); + var currentSet = new Set(currentKeys); + var nextSet = new Set(keys); + var added = keys.filter(function (item) { + return !currentSet.has(item); + }); + var removed = state.transitions.filter(function (item) { + return !item.destroyed && !nextSet.has(item.originalKey); + }).map(function (i) { + return i.originalKey; + }); + var updated = keys.filter(function (item) { + return currentSet.has(item); + }); + var delay = -trail; + + while (order.length) { + var changeType = order.shift(); + + switch (changeType) { + case ENTER: + { + added.forEach(function (key, index) { + // In unique mode, remove fading out transitions if their key comes in again + if (unique && deleted.find(function (d) { + return d.originalKey === key; + })) deleted = deleted.filter(function (t) { + return t.originalKey !== key; + }); + var keyIndex = keys.indexOf(key); + var item = items[keyIndex]; + var slot = first && initial !== void 0 ? 'initial' : ENTER; + current[key] = { + slot: slot, + originalKey: key, + key: unique ? String(key) : guid++, + item: item, + trail: delay = delay + trail, + config: callProp(config, item, slot), + from: callProp(first ? initial !== void 0 ? initial || {} : from : from, item), + to: callProp(enter, item) + }; + }); + break; + } + + case LEAVE: + { + removed.forEach(function (key) { + var keyIndex = _keys.indexOf(key); + + var item = _items[keyIndex]; + var slot = LEAVE; + deleted.unshift(_extends({}, current[key], { + slot: slot, + destroyed: true, + left: _keys[Math.max(0, keyIndex - 1)], + right: _keys[Math.min(_keys.length, keyIndex + 1)], + trail: delay = delay + trail, + config: callProp(config, item, slot), + to: callProp(leave, item) + })); + delete current[key]; + }); + break; + } + + case UPDATE: + { + updated.forEach(function (key) { + var keyIndex = keys.indexOf(key); + var item = items[keyIndex]; + var slot = UPDATE; + current[key] = _extends({}, current[key], { + item: item, + slot: slot, + trail: delay = delay + trail, + config: callProp(config, item, slot), + to: callProp(update, item) + }); + }); + break; + } + } + } + + var out = keys.map(function (key) { + return current[key]; + }); // This tries to restore order for deleted items by finding their last known siblings + // only using the left sibling to keep order placement consistent for all deleted items + + deleted.forEach(function (_ref10) { + var left = _ref10.left, + right = _ref10.right, + item = _objectWithoutPropertiesLoose(_ref10, ["left", "right"]); + + var pos; // Was it the element on the left, if yes, move there ... + + if ((pos = out.findIndex(function (t) { + return t.originalKey === left; + })) !== -1) pos += 1; // And if nothing else helps, move it to the start ¯\_(ツ)_/¯ + + pos = Math.max(0, pos); + out = [].concat(out.slice(0, pos), [item], out.slice(pos)); + }); + return _extends({}, state, { + changed: added.length || removed.length || updated.length, + first: first && added.length === 0, + transitions: out, + current: current, + deleted: deleted, + prevProps: props + }); +} + +var AnimatedStyle = +/*#__PURE__*/ +function (_AnimatedObject) { + _inheritsLoose(AnimatedStyle, _AnimatedObject); + + function AnimatedStyle(style) { + var _this; + + if (style === void 0) { + style = {}; + } + + _this = _AnimatedObject.call(this) || this; + + if (style.transform && !(style.transform instanceof Animated)) { + style = applyAnimatedValues.transform(style); + } + + _this.payload = style; + return _this; + } + + return AnimatedStyle; +}(AnimatedObject); + +// http://www.w3.org/TR/css3-color/#svg-color +var colors = { + transparent: 0x00000000, + aliceblue: 0xf0f8ffff, + antiquewhite: 0xfaebd7ff, + aqua: 0x00ffffff, + aquamarine: 0x7fffd4ff, + azure: 0xf0ffffff, + beige: 0xf5f5dcff, + bisque: 0xffe4c4ff, + black: 0x000000ff, + blanchedalmond: 0xffebcdff, + blue: 0x0000ffff, + blueviolet: 0x8a2be2ff, + brown: 0xa52a2aff, + burlywood: 0xdeb887ff, + burntsienna: 0xea7e5dff, + cadetblue: 0x5f9ea0ff, + chartreuse: 0x7fff00ff, + chocolate: 0xd2691eff, + coral: 0xff7f50ff, + cornflowerblue: 0x6495edff, + cornsilk: 0xfff8dcff, + crimson: 0xdc143cff, + cyan: 0x00ffffff, + darkblue: 0x00008bff, + darkcyan: 0x008b8bff, + darkgoldenrod: 0xb8860bff, + darkgray: 0xa9a9a9ff, + darkgreen: 0x006400ff, + darkgrey: 0xa9a9a9ff, + darkkhaki: 0xbdb76bff, + darkmagenta: 0x8b008bff, + darkolivegreen: 0x556b2fff, + darkorange: 0xff8c00ff, + darkorchid: 0x9932ccff, + darkred: 0x8b0000ff, + darksalmon: 0xe9967aff, + darkseagreen: 0x8fbc8fff, + darkslateblue: 0x483d8bff, + darkslategray: 0x2f4f4fff, + darkslategrey: 0x2f4f4fff, + darkturquoise: 0x00ced1ff, + darkviolet: 0x9400d3ff, + deeppink: 0xff1493ff, + deepskyblue: 0x00bfffff, + dimgray: 0x696969ff, + dimgrey: 0x696969ff, + dodgerblue: 0x1e90ffff, + firebrick: 0xb22222ff, + floralwhite: 0xfffaf0ff, + forestgreen: 0x228b22ff, + fuchsia: 0xff00ffff, + gainsboro: 0xdcdcdcff, + ghostwhite: 0xf8f8ffff, + gold: 0xffd700ff, + goldenrod: 0xdaa520ff, + gray: 0x808080ff, + green: 0x008000ff, + greenyellow: 0xadff2fff, + grey: 0x808080ff, + honeydew: 0xf0fff0ff, + hotpink: 0xff69b4ff, + indianred: 0xcd5c5cff, + indigo: 0x4b0082ff, + ivory: 0xfffff0ff, + khaki: 0xf0e68cff, + lavender: 0xe6e6faff, + lavenderblush: 0xfff0f5ff, + lawngreen: 0x7cfc00ff, + lemonchiffon: 0xfffacdff, + lightblue: 0xadd8e6ff, + lightcoral: 0xf08080ff, + lightcyan: 0xe0ffffff, + lightgoldenrodyellow: 0xfafad2ff, + lightgray: 0xd3d3d3ff, + lightgreen: 0x90ee90ff, + lightgrey: 0xd3d3d3ff, + lightpink: 0xffb6c1ff, + lightsalmon: 0xffa07aff, + lightseagreen: 0x20b2aaff, + lightskyblue: 0x87cefaff, + lightslategray: 0x778899ff, + lightslategrey: 0x778899ff, + lightsteelblue: 0xb0c4deff, + lightyellow: 0xffffe0ff, + lime: 0x00ff00ff, + limegreen: 0x32cd32ff, + linen: 0xfaf0e6ff, + magenta: 0xff00ffff, + maroon: 0x800000ff, + mediumaquamarine: 0x66cdaaff, + mediumblue: 0x0000cdff, + mediumorchid: 0xba55d3ff, + mediumpurple: 0x9370dbff, + mediumseagreen: 0x3cb371ff, + mediumslateblue: 0x7b68eeff, + mediumspringgreen: 0x00fa9aff, + mediumturquoise: 0x48d1ccff, + mediumvioletred: 0xc71585ff, + midnightblue: 0x191970ff, + mintcream: 0xf5fffaff, + mistyrose: 0xffe4e1ff, + moccasin: 0xffe4b5ff, + navajowhite: 0xffdeadff, + navy: 0x000080ff, + oldlace: 0xfdf5e6ff, + olive: 0x808000ff, + olivedrab: 0x6b8e23ff, + orange: 0xffa500ff, + orangered: 0xff4500ff, + orchid: 0xda70d6ff, + palegoldenrod: 0xeee8aaff, + palegreen: 0x98fb98ff, + paleturquoise: 0xafeeeeff, + palevioletred: 0xdb7093ff, + papayawhip: 0xffefd5ff, + peachpuff: 0xffdab9ff, + peru: 0xcd853fff, + pink: 0xffc0cbff, + plum: 0xdda0ddff, + powderblue: 0xb0e0e6ff, + purple: 0x800080ff, + rebeccapurple: 0x663399ff, + red: 0xff0000ff, + rosybrown: 0xbc8f8fff, + royalblue: 0x4169e1ff, + saddlebrown: 0x8b4513ff, + salmon: 0xfa8072ff, + sandybrown: 0xf4a460ff, + seagreen: 0x2e8b57ff, + seashell: 0xfff5eeff, + sienna: 0xa0522dff, + silver: 0xc0c0c0ff, + skyblue: 0x87ceebff, + slateblue: 0x6a5acdff, + slategray: 0x708090ff, + slategrey: 0x708090ff, + snow: 0xfffafaff, + springgreen: 0x00ff7fff, + steelblue: 0x4682b4ff, + tan: 0xd2b48cff, + teal: 0x008080ff, + thistle: 0xd8bfd8ff, + tomato: 0xff6347ff, + turquoise: 0x40e0d0ff, + violet: 0xee82eeff, + wheat: 0xf5deb3ff, + white: 0xffffffff, + whitesmoke: 0xf5f5f5ff, + yellow: 0xffff00ff, + yellowgreen: 0x9acd32ff +}; + +// const INTEGER = '[-+]?\\d+'; +var NUMBER = '[-+]?\\d*\\.?\\d+'; +var PERCENTAGE = NUMBER + '%'; + +function call() { + for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) { + parts[_key] = arguments[_key]; + } + + return '\\(\\s*(' + parts.join(')\\s*,\\s*(') + ')\\s*\\)'; +} + +var rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)); +var rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)); +var hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)); +var hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)); +var hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/; +var hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/; +var hex6 = /^#([0-9a-fA-F]{6})$/; +var hex8 = /^#([0-9a-fA-F]{8})$/; + +/* +https://github.com/react-community/normalize-css-color + +BSD 3-Clause License + +Copyright (c) 2016, React Community +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +function normalizeColor(color) { + var match; + + if (typeof color === 'number') { + return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null; + } // Ordered based on occurrences on Facebook codebase + + + if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0; + if (colors.hasOwnProperty(color)) return colors[color]; + + if (match = rgb.exec(color)) { + return (parse255(match[1]) << 24 | // r + parse255(match[2]) << 16 | // g + parse255(match[3]) << 8 | // b + 0x000000ff) >>> // a + 0; + } + + if (match = rgba.exec(color)) { + return (parse255(match[1]) << 24 | // r + parse255(match[2]) << 16 | // g + parse255(match[3]) << 8 | // b + parse1(match[4])) >>> // a + 0; + } + + if (match = hex3.exec(color)) { + return parseInt(match[1] + match[1] + // r + match[2] + match[2] + // g + match[3] + match[3] + // b + 'ff', // a + 16) >>> 0; + } // https://drafts.csswg.org/css-color-4/#hex-notation + + + if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0; + + if (match = hex4.exec(color)) { + return parseInt(match[1] + match[1] + // r + match[2] + match[2] + // g + match[3] + match[3] + // b + match[4] + match[4], // a + 16) >>> 0; + } + + if (match = hsl.exec(color)) { + return (hslToRgb(parse360(match[1]), // h + parsePercentage(match[2]), // s + parsePercentage(match[3]) // l + ) | 0x000000ff) >>> // a + 0; + } + + if (match = hsla.exec(color)) { + return (hslToRgb(parse360(match[1]), // h + parsePercentage(match[2]), // s + parsePercentage(match[3]) // l + ) | parse1(match[4])) >>> // a + 0; + } + + return null; +} + +function hue2rgb(p, q, t) { + if (t < 0) t += 1; + if (t > 1) t -= 1; + if (t < 1 / 6) return p + (q - p) * 6 * t; + if (t < 1 / 2) return q; + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; + return p; +} + +function hslToRgb(h, s, l) { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + var r = hue2rgb(p, q, h + 1 / 3); + var g = hue2rgb(p, q, h); + var b = hue2rgb(p, q, h - 1 / 3); + return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8; +} + +function parse255(str) { + var int = parseInt(str, 10); + if (int < 0) return 0; + if (int > 255) return 255; + return int; +} + +function parse360(str) { + var int = parseFloat(str); + return (int % 360 + 360) % 360 / 360; +} + +function parse1(str) { + var num = parseFloat(str); + if (num < 0) return 0; + if (num > 1) return 255; + return Math.round(num * 255); +} + +function parsePercentage(str) { + // parseFloat conveniently ignores the final % + var int = parseFloat(str); + if (int < 0) return 0; + if (int > 100) return 1; + return int / 100; +} + +function colorToRgba(input) { + var int32Color = normalizeColor(input); + if (int32Color === null) return input; + int32Color = int32Color || 0; + var r = (int32Color & 0xff000000) >>> 24; + var g = (int32Color & 0x00ff0000) >>> 16; + var b = (int32Color & 0x0000ff00) >>> 8; + var a = (int32Color & 0x000000ff) / 255; + return "rgba(" + r + ", " + g + ", " + b + ", " + a + ")"; +} // Problem: https://github.com/animatedjs/animated/pull/102 +// Solution: https://stackoverflow.com/questions/638565/parsing-scientific-notation-sensibly/658662 + + +var stringShapeRegex = /[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g; // Covers rgb, rgba, hsl, hsla +// Taken from https://gist.github.com/olmokramer/82ccce673f86db7cda5e + +var colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi; // Covers color names (transparent, blue, etc.) + +var colorNamesRegex = new RegExp("(" + Object.keys(colors).join('|') + ")", 'g'); +/** + * Supports string shapes by extracting numbers so new values can be computed, + * and recombines those values into new strings of the same shape. Supports + * things like: + * + * rgba(123, 42, 99, 0.36) // colors + * -45deg // values with units + * 0 2px 2px 0px rgba(0, 0, 0, 0.12) // box shadows + */ + +var createStringInterpolator = function createStringInterpolator(config) { + // Replace colors with rgba + var outputRange = config.output.map(function (rangeValue) { + return rangeValue.replace(colorRegex, colorToRgba); + }).map(function (rangeValue) { + return rangeValue.replace(colorNamesRegex, colorToRgba); + }); + var outputRanges = outputRange[0].match(stringShapeRegex).map(function () { + return []; + }); + outputRange.forEach(function (value) { + value.match(stringShapeRegex).forEach(function (number, i) { + return outputRanges[i].push(+number); + }); + }); + var interpolations = outputRange[0].match(stringShapeRegex).map(function (_value, i) { + return createInterpolator(_extends({}, config, { + output: outputRanges[i] + })); + }); + return function (input) { + var i = 0; + return outputRange[0] // 'rgba(0, 100, 200, 0)' + // -> + // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...' + .replace(stringShapeRegex, function () { + return interpolations[i++](input); + }) // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to + // round the opacity (4th column). + .replace(/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi, function (_, p1, p2, p3, p4) { + return "rgba(" + Math.round(p1) + ", " + Math.round(p2) + ", " + Math.round(p3) + ", " + p4 + ")"; + }); + }; +}; + +var isUnitlessNumber = { + animationIterationCount: true, + borderImageOutset: true, + borderImageSlice: true, + borderImageWidth: true, + boxFlex: true, + boxFlexGroup: true, + boxOrdinalGroup: true, + columnCount: true, + columns: true, + flex: true, + flexGrow: true, + flexPositive: true, + flexShrink: true, + flexNegative: true, + flexOrder: true, + gridRow: true, + gridRowEnd: true, + gridRowSpan: true, + gridRowStart: true, + gridColumn: true, + gridColumnEnd: true, + gridColumnSpan: true, + gridColumnStart: true, + fontWeight: true, + lineClamp: true, + lineHeight: true, + opacity: true, + order: true, + orphans: true, + tabSize: true, + widows: true, + zIndex: true, + zoom: true, + // SVG-related properties + fillOpacity: true, + floodOpacity: true, + stopOpacity: true, + strokeDasharray: true, + strokeDashoffset: true, + strokeMiterlimit: true, + strokeOpacity: true, + strokeWidth: true +}; + +var prefixKey = function prefixKey(prefix, key) { + return prefix + key.charAt(0).toUpperCase() + key.substring(1); +}; + +var prefixes = ['Webkit', 'Ms', 'Moz', 'O']; +isUnitlessNumber = Object.keys(isUnitlessNumber).reduce(function (acc, prop) { + prefixes.forEach(function (prefix) { + return acc[prefixKey(prefix, prop)] = acc[prop]; + }); + return acc; +}, isUnitlessNumber); + +function dangerousStyleValue(name, value, isCustomProperty) { + if (value == null || typeof value === 'boolean' || value === '') return ''; + if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers + + return ('' + value).trim(); +} + +var attributeCache = {}; +injectCreateAnimatedStyle(function (style) { + return new AnimatedStyle(style); +}); +injectDefaultElement('div'); +injectStringInterpolator(createStringInterpolator); +injectColorNames(colors); +injectApplyAnimatedValues(function (instance, props) { + if (instance.nodeType && instance.setAttribute !== undefined) { + var style = props.style, + children = props.children, + scrollTop = props.scrollTop, + scrollLeft = props.scrollLeft, + attributes = _objectWithoutPropertiesLoose(props, ["style", "children", "scrollTop", "scrollLeft"]); + + var filter = instance.nodeName === 'filter' || instance.parentNode && instance.parentNode.nodeName === 'filter'; + if (scrollTop !== void 0) instance.scrollTop = scrollTop; + if (scrollLeft !== void 0) instance.scrollLeft = scrollLeft; // Set textContent, if children is an animatable value + + if (children !== void 0) instance.textContent = children; // Set styles ... + + for (var styleName in style) { + if (!style.hasOwnProperty(styleName)) continue; + var isCustomProperty = styleName.indexOf('--') === 0; + var styleValue = dangerousStyleValue(styleName, style[styleName], isCustomProperty); + if (styleName === 'float') styleName = 'cssFloat'; + if (isCustomProperty) instance.style.setProperty(styleName, styleValue);else instance.style[styleName] = styleValue; + } // Set attributes ... + + + for (var name in attributes) { + // Attributes are written in dash case + var dashCase = filter ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, function (n) { + return '-' + n.toLowerCase(); + })); + if (typeof instance.getAttribute(dashCase) !== 'undefined') instance.setAttribute(dashCase, attributes[name]); + } + + return; + } else return false; +}, function (style) { + return style; +}); + +var domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG +'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan']; +// Extend animated with all the available THREE elements +var apply = merge(createAnimatedComponent, false); +var extendedAnimated = apply(domElements); + +exports.apply = apply; +exports.config = config; +exports.update = update; +exports.animated = extendedAnimated; +exports.a = extendedAnimated; +exports.interpolate = interpolate$1; +exports.Globals = Globals; +exports.useSpring = useSpring; +exports.useTrail = useTrail; +exports.useTransition = useTransition; +exports.useChain = useChain; +exports.useSprings = useSprings; + + +/***/ }), +/* 114 */, +/* 115 */, +/* 116 */ +/***/ (function(module, exports) { + +// +// Main +// + +function memoize (fn, options) { + var cache = options && options.cache + ? options.cache + : cacheDefault + + var serializer = options && options.serializer + ? options.serializer + : serializerDefault + + var strategy = options && options.strategy + ? options.strategy + : strategyDefault + + return strategy(fn, { + cache: cache, + serializer: serializer + }) +} + +// +// Strategy +// + +function isPrimitive (value) { + return value == null || typeof value === 'number' || typeof value === 'boolean' // || typeof value === "string" 'unsafe' primitive for our needs +} + +function monadic (fn, cache, serializer, arg) { + var cacheKey = isPrimitive(arg) ? arg : serializer(arg) + + var computedValue = cache.get(cacheKey) + if (typeof computedValue === 'undefined') { + computedValue = fn.call(this, arg) + cache.set(cacheKey, computedValue) + } + + return computedValue +} + +function variadic (fn, cache, serializer) { + var args = Array.prototype.slice.call(arguments, 3) + var cacheKey = serializer(args) + + var computedValue = cache.get(cacheKey) + if (typeof computedValue === 'undefined') { + computedValue = fn.apply(this, args) + cache.set(cacheKey, computedValue) + } + + return computedValue +} + +function assemble (fn, context, strategy, cache, serialize) { + return strategy.bind( + context, + fn, + cache, + serialize + ) +} + +function strategyDefault (fn, options) { + var strategy = fn.length === 1 ? monadic : variadic + + return assemble( + fn, + this, + strategy, + options.cache.create(), + options.serializer + ) +} + +function strategyVariadic (fn, options) { + var strategy = variadic + + return assemble( + fn, + this, + strategy, + options.cache.create(), + options.serializer + ) +} + +function strategyMonadic (fn, options) { + var strategy = monadic + + return assemble( + fn, + this, + strategy, + options.cache.create(), + options.serializer + ) +} + +// +// Serializer +// + +function serializerDefault () { + return JSON.stringify(arguments) +} + +// +// Cache +// + +function ObjectWithoutPrototypeCache () { + this.cache = Object.create(null) +} + +ObjectWithoutPrototypeCache.prototype.has = function (key) { + return (key in this.cache) +} + +ObjectWithoutPrototypeCache.prototype.get = function (key) { + return this.cache[key] +} + +ObjectWithoutPrototypeCache.prototype.set = function (key, value) { + this.cache[key] = value +} + +var cacheDefault = { + create: function create () { + return new ObjectWithoutPrototypeCache() + } +} + +// +// API +// + +module.exports = memoize +module.exports.strategies = { + variadic: strategyVariadic, + monadic: strategyMonadic +} + + +/***/ }), +/* 117 */ +/***/ (function(module, exports) { + +// shim for using process in browser +var process = module.exports = {}; + +// cached from whatever global is present so that test runners that stub it +// don't break things. But we need to wrap it in a try catch in case it is +// wrapped in strict mode code which doesn't define any globals. It's inside a +// function because try/catches deoptimize in certain engines. + +var cachedSetTimeout; +var cachedClearTimeout; + +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); +} +(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } +} ()) +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; + +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} + +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} + +process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { return [] } + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + + +/***/ }), +/* 118 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var implementation = __webpack_require__(312); + +module.exports = Function.prototype.bind || implementation; + + +/***/ }), +/* 119 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Composite; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return useComposite; }); +/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17); +/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49); +/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48); +/* harmony import */ var _Box_Box_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(63); +/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(80); +/* harmony import */ var reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(46); +/* harmony import */ var reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(53); +/* harmony import */ var reakit_utils_getActiveElement__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(57); +/* harmony import */ var _Tabbable_Tabbable_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(73); +/* harmony import */ var reakit_system_useCreateElement__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(78); +/* harmony import */ var reakit_utils_createOnKeyDown__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(82); +/* harmony import */ var reakit_utils_getDocument__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(47); +/* harmony import */ var reakit_utils_fireEvent__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(94); +/* harmony import */ var reakit_utils_fireKeyboardEvent__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(102); +/* harmony import */ var _CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(51); + + + + + + + + + + + + + + + + + + + + + + + + + + + + +var isIE11 = typeof window !== "undefined" && "msCrypto" in window; +function getNextActiveElementOnBlur(event) { + // IE 11 doesn't support event.relatedTarget on blur. + // document.activeElement points the the next active element. + // On modern browsers, document.activeElement points to the current target. + if (isIE11) { + var activeElement = Object(reakit_utils_getActiveElement__WEBPACK_IMPORTED_MODULE_9__[/* getActiveElement */ "a"])(event.target); + return activeElement; + } + + return event.relatedTarget; +} + +var validCompositeRoles = ["combobox", "grid", "tablist", "listbox", "menu", "menubar", "toolbar", "radiogroup", "tree", "treegrid"]; +var isIE11$1 = typeof window !== "undefined" && "msCrypto" in window; + +function canProxyKeyboardEvent(event) { + if (!Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_8__[/* isSelfTarget */ "a"])(event)) return false; + if (event.metaKey) return false; + if (event.key === "Tab") return false; + return true; +} + +function useKeyboardEventProxy(virtual, currentItem, htmlEventHandler) { + var eventHandlerRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_7__[/* useLiveRef */ "a"])(htmlEventHandler); + return Object(react__WEBPACK_IMPORTED_MODULE_4__["useCallback"])(function (event) { + var _eventHandlerRef$curr; + + if (virtual && canProxyKeyboardEvent(event)) { + var currentElement = currentItem === null || currentItem === void 0 ? void 0 : currentItem.ref.current; + + if (currentElement) { + Object(reakit_utils_fireKeyboardEvent__WEBPACK_IMPORTED_MODULE_15__[/* fireKeyboardEvent */ "a"])(currentElement, event.type, event); // The event will be triggered on the composite item and then + // propagated up to this composite element again, so we can pretend + // that it wasn't called on this component in the first place. + + if (event.currentTarget.contains(currentElement)) { + event.stopPropagation(); + event.preventDefault(); + return; + } + } + } + + (_eventHandlerRef$curr = eventHandlerRef.current) === null || _eventHandlerRef$curr === void 0 ? void 0 : _eventHandlerRef$curr.call(eventHandlerRef, event); + }, [virtual, currentItem]); +} // istanbul ignore next + + +function useActiveElementRef(elementRef) { + var activeElementRef = Object(react__WEBPACK_IMPORTED_MODULE_4__["useRef"])(null); + Object(react__WEBPACK_IMPORTED_MODULE_4__["useEffect"])(function () { + var document = Object(reakit_utils_getDocument__WEBPACK_IMPORTED_MODULE_13__[/* getDocument */ "a"])(elementRef.current); + + var onFocus = function onFocus(event) { + var target = event.target; + activeElementRef.current = target; + }; + + document.addEventListener("focus", onFocus, true); + return function () { + document.removeEventListener("focus", onFocus, true); + }; + }, []); + return activeElementRef; +} + +function findFirstEnabledItemInTheLastRow(items) { + return Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__["a"])(Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__["b"])(Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__[/* r */ "f"])(Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__["c"])(items)))); +} + +function isItem(items, element) { + return items === null || items === void 0 ? void 0 : items.some(function (item) { + return !!element && item.ref.current === element; + }); +} + +var useComposite = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({ + name: "Composite", + compose: [_Tabbable_Tabbable_js__WEBPACK_IMPORTED_MODULE_10__[/* useTabbable */ "a"]], + useState: _CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__[/* u */ "g"], + useOptions: function useOptions(options) { + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, options), {}, { + currentId: Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__[/* g */ "e"])(options) + }); + }, + useProps: function useProps(options, _ref) { + var htmlRef = _ref.ref, + htmlOnFocus = _ref.onFocus, + htmlOnBlur = _ref.onBlur, + htmlOnKeyDown = _ref.onKeyDown, + htmlOnKeyUp = _ref.onKeyUp, + htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_ref, ["ref", "onFocus", "onBlur", "onKeyDown", "onKeyUp"]); + + var ref = Object(react__WEBPACK_IMPORTED_MODULE_4__["useRef"])(null); + var currentItem = Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__[/* f */ "d"])(options.items, options.currentId); + var previousItem = Object(react__WEBPACK_IMPORTED_MODULE_4__["useRef"])(undefined); + var onFocusRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_7__[/* useLiveRef */ "a"])(htmlOnFocus); + var onBlurRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_7__[/* useLiveRef */ "a"])(htmlOnBlur); // IE 11 doesn't support event.relatedTarget, so we use the active element + // ref instead. + + var activeElementRef = isIE11$1 ? useActiveElementRef(ref) : undefined; + Object(react__WEBPACK_IMPORTED_MODULE_4__["useEffect"])(function () { + var element = ref.current; + + if (!element) { + false ? undefined : void 0; + return; + } + + if (options.unstable_moves && !currentItem) { + // If composite.move(null) has been called, the composite container + // will receive focus. + element.focus(); + } + }, [options.unstable_moves, currentItem]); + var onKeyDown = useKeyboardEventProxy(options.unstable_virtual, currentItem, htmlOnKeyDown); + var onKeyUp = useKeyboardEventProxy(options.unstable_virtual, currentItem, htmlOnKeyUp); + var onFocus = Object(react__WEBPACK_IMPORTED_MODULE_4__["useCallback"])(function (event) { + var _onFocusRef$current2; + + if (options.unstable_virtual) { + // IE11 doesn't support event.relatedTarget, so we use the active + // element ref instead. + var previousActiveElement = (activeElementRef === null || activeElementRef === void 0 ? void 0 : activeElementRef.current) || event.relatedTarget; + var previousActiveElementWasItem = isItem(options.items, previousActiveElement); + + if (Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_8__[/* isSelfTarget */ "a"])(event) && !previousActiveElementWasItem) { + var _onFocusRef$current, _currentItem$ref$curr; + + // This means that the composite element has been focused while the + // composite item has not. For example, by clicking on the + // composite element without touching any item, or by tabbing into + // the composite element. In this case, we want to trigger focus on + // the item, just like it would happen with roving tabindex. + // When it receives focus, the composite item will put focus back + // on the composite element, in which case hasItemWithFocus will be + // true. + (_onFocusRef$current = onFocusRef.current) === null || _onFocusRef$current === void 0 ? void 0 : _onFocusRef$current.call(onFocusRef, event); + currentItem === null || currentItem === void 0 ? void 0 : (_currentItem$ref$curr = currentItem.ref.current) === null || _currentItem$ref$curr === void 0 ? void 0 : _currentItem$ref$curr.focus(); + return; + } + + if (previousActiveElementWasItem) { + // Composite has been focused as a result of an item receiving + // focus. The composite item will move focus back to the composite + // container. In this case, we don't want to propagate this + // additional event nor call the onFocus handler passed to + // (htmlOnFocus). Unless users add DOM + // event handlers to the composite element directly, this will be + // like this event has never existed. + event.stopPropagation(); + return; + } + } else if (Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_8__[/* isSelfTarget */ "a"])(event)) { + var _options$setCurrentId; + + // When the roving tabindex composite gets intentionally focused (for + // example, by clicking directly on it, and not on an item), we make + // sure to set the current id to null (which means the composite + // itself is focused). + (_options$setCurrentId = options.setCurrentId) === null || _options$setCurrentId === void 0 ? void 0 : _options$setCurrentId.call(options, null); + } + + (_onFocusRef$current2 = onFocusRef.current) === null || _onFocusRef$current2 === void 0 ? void 0 : _onFocusRef$current2.call(onFocusRef, event); + }, [options.unstable_virtual, options.items, currentItem, options.setCurrentId]); + var onBlur = Object(react__WEBPACK_IMPORTED_MODULE_4__["useCallback"])(function (event) { + var _onBlurRef$current; + + // When virtual is set to true, we move focus from the composite + // container (this component) to the composite item that is being + // selected. Then we move focus back to the composite container. This + // is so we can provide the same API as the roving tabindex method, + // which means people can attach onFocus/onBlur handlers on the + // CompositeItem component regardless of whether it's virtual or not. + // This sequence of blurring and focusing items and composite may be + // confusing, so we ignore intermediate focus and blurs by stopping its + // propagation and not calling the passed onBlur handler (htmlOnBlur). + if (options.unstable_virtual) { + var targetIsItem = isItem(options.items, event.target); + var nextActiveElement = getNextActiveElementOnBlur(event); + var nextActiveElementIsItem = isItem(options.items, nextActiveElement); + + if (Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_8__[/* isSelfTarget */ "a"])(event) && nextActiveElementIsItem) { + var _previousItem$current; + + // This is an intermediate blur event: blurring the composite + // container to focus an item (nextActiveElement). We ignore this + // event. + if ((_previousItem$current = previousItem.current) === null || _previousItem$current === void 0 ? void 0 : _previousItem$current.ref.current) { + // If there's a previous active item we fire a blur event on it + // so it will work just like if it had DOM focus before (like when + // using roving tabindex). + Object(reakit_utils_fireEvent__WEBPACK_IMPORTED_MODULE_14__[/* fireEvent */ "a"])(previousItem.current.ref.current, "blur", event); + } + + previousItem.current = currentItem; + event.stopPropagation(); + return; + } + + if (!targetIsItem) { + // If target is another thing (probably something outside of the + // composite container), we don't ignore the event, but we should + // reset the previousItem reference. + if (currentItem === null || currentItem === void 0 ? void 0 : currentItem.ref.current) { + Object(reakit_utils_fireEvent__WEBPACK_IMPORTED_MODULE_14__[/* fireEvent */ "a"])(currentItem.ref.current, "blur", event); + } + + previousItem.current = undefined; + } else { + previousItem.current = currentItem; + } + } + + (_onBlurRef$current = onBlurRef.current) === null || _onBlurRef$current === void 0 ? void 0 : _onBlurRef$current.call(onBlurRef, event); + }, [options.unstable_virtual, options.items, currentItem]); + var onMove = Object(react__WEBPACK_IMPORTED_MODULE_4__["useMemo"])(function () { + return Object(reakit_utils_createOnKeyDown__WEBPACK_IMPORTED_MODULE_12__[/* createOnKeyDown */ "a"])({ + onKeyDown: onKeyDown, + stopPropagation: true, + shouldKeyDown: function shouldKeyDown(event) { + return Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_8__[/* isSelfTarget */ "a"])(event) && options.currentId === null; + }, + keyMap: function keyMap() { + var _options$groups; + + var isVertical = options.orientation !== "horizontal"; + var isHorizontal = options.orientation !== "vertical"; + var isGrid = !!((_options$groups = options.groups) === null || _options$groups === void 0 ? void 0 : _options$groups.length); + + var up = function up() { + if (isGrid) { + var item = findFirstEnabledItemInTheLastRow(options.items); + + if (item === null || item === void 0 ? void 0 : item.id) { + var _options$move; + + (_options$move = options.move) === null || _options$move === void 0 ? void 0 : _options$move.call(options, item.id); + } + } else { + var _options$last; + + (_options$last = options.last) === null || _options$last === void 0 ? void 0 : _options$last.call(options); + } + }; + + var first = options.first && function () { + return options.first(); + }; + + var last = options.last && function () { + return options.last(); + }; + + return { + ArrowUp: (isGrid || isVertical) && up, + ArrowRight: (isGrid || isHorizontal) && first, + ArrowDown: (isGrid || isVertical) && first, + ArrowLeft: (isGrid || isHorizontal) && last, + Home: first, + End: last, + PageUp: first, + PageDown: last + }; + } + }); + }, [onKeyDown, options.currentId, options.orientation, options.groups, options.items, options.move, options.last, options.first]); + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({ + ref: Object(reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__[/* useForkRef */ "a"])(ref, htmlRef), + id: options.baseId, + onFocus: onFocus, + onBlur: onBlur, + onKeyDown: onMove, + onKeyUp: onKeyUp, + "aria-activedescendant": options.unstable_virtual ? (currentItem === null || currentItem === void 0 ? void 0 : currentItem.id) || undefined : undefined + }, htmlProps); + }, + useComposeProps: function useComposeProps(options, htmlProps) { + htmlProps = Object(_Box_Box_js__WEBPACK_IMPORTED_MODULE_3__[/* useBox */ "a"])(options, htmlProps, true); + var tabbableHTMLProps = Object(_Tabbable_Tabbable_js__WEBPACK_IMPORTED_MODULE_10__[/* useTabbable */ "a"])(options, htmlProps, true); + + if (options.unstable_virtual || options.currentId === null) { + // Composite will only be tabbable by default if the focus is managed + // using aria-activedescendant, which requires DOM focus on the container + // element (the composite) + return tabbableHTMLProps; + } + + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, htmlProps), {}, { + ref: tabbableHTMLProps.ref + }); + } +}); +var Composite = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({ + as: "div", + useHook: useComposite, + useCreateElement: function useCreateElement$1(type, props, children) { + false ? undefined : void 0; + false ? undefined : void 0; + return Object(reakit_system_useCreateElement__WEBPACK_IMPORTED_MODULE_11__[/* useCreateElement */ "a"])(type, props, children); + } +}); + + + + +/***/ }), +/* 120 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CompositeItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return useCompositeItem; }); +/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17); +/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49); +/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(63); +/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(80); +/* harmony import */ var reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46); +/* harmony import */ var reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(53); +/* harmony import */ var reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(69); +/* harmony import */ var reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(72); +/* harmony import */ var reakit_utils_tabbable__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(71); +/* harmony import */ var _Clickable_Clickable_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84); +/* harmony import */ var reakit_utils_createOnKeyDown__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(82); +/* harmony import */ var reakit_utils_getDocument__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(47); +/* harmony import */ var _CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(51); +/* harmony import */ var _Id_Id_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(93); +/* harmony import */ var reakit_utils_isTextField__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(95); +/* harmony import */ var _setTextFieldValue_78ab5d56_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(96); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +function getWidget(itemElement) { + return itemElement.querySelector("[data-composite-item-widget]"); +} + +function useItem(options) { + return Object(react__WEBPACK_IMPORTED_MODULE_3__["useMemo"])(function () { + var _options$items; + + return (_options$items = options.items) === null || _options$items === void 0 ? void 0 : _options$items.find(function (item) { + return options.id && item.id === options.id; + }); + }, [options.items, options.id]); +} + +function targetIsAnotherItem(event, items) { + if (Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ "a"])(event)) return false; + + for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ "c"])(items), _step; !(_step = _iterator()).done;) { + var item = _step.value; + + if (item.ref.current === event.target) { + return true; + } + } + + return false; +} + +var useCompositeItem = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({ + name: "CompositeItem", + compose: [_Clickable_Clickable_js__WEBPACK_IMPORTED_MODULE_11__[/* useClickable */ "a"], _Id_Id_js__WEBPACK_IMPORTED_MODULE_15__[/* unstable_useId */ "a"]], + useState: _CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_14__[/* u */ "g"], + propsAreEqual: function propsAreEqual(prev, next) { + if (!next.id || prev.id !== next.id) { + return _Clickable_Clickable_js__WEBPACK_IMPORTED_MODULE_11__[/* useClickable */ "a"].unstable_propsAreEqual(prev, next); + } + + var prevCurrentId = prev.currentId, + prevMoves = prev.unstable_moves, + prevProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(prev, ["currentId", "unstable_moves"]); + + var nextCurrentId = next.currentId, + nextMoves = next.unstable_moves, + nextProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(next, ["currentId", "unstable_moves"]); + + if (nextCurrentId !== prevCurrentId) { + if (next.id === nextCurrentId || next.id === prevCurrentId) { + return false; + } + } else if (prevMoves !== nextMoves) { + return false; + } + + return _Clickable_Clickable_js__WEBPACK_IMPORTED_MODULE_11__[/* useClickable */ "a"].unstable_propsAreEqual(prevProps, nextProps); + }, + useOptions: function useOptions(options) { + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, options), {}, { + id: options.id, + currentId: Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_14__[/* g */ "e"])(options), + unstable_clickOnSpace: options.unstable_hasActiveWidget ? false : options.unstable_clickOnSpace + }); + }, + useProps: function useProps(options, _ref) { + var _options$items2; + + var htmlRef = _ref.ref, + _ref$tabIndex = _ref.tabIndex, + htmlTabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex, + htmlOnFocus = _ref.onFocus, + htmlOnBlur = _ref.onBlur, + htmlOnKeyDown = _ref.onKeyDown, + htmlOnClick = _ref.onClick, + htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_ref, ["ref", "tabIndex", "onFocus", "onBlur", "onKeyDown", "onClick"]); + + var ref = Object(react__WEBPACK_IMPORTED_MODULE_3__["useRef"])(null); + var id = options.id; + var trulyDisabled = options.disabled && !options.focusable; + var isCurrentItem = options.currentId === id; + var isCurrentItemRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(isCurrentItem); + var hasFocusedComposite = Object(react__WEBPACK_IMPORTED_MODULE_3__["useRef"])(false); + var item = useItem(options); + var onFocusRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnFocus); + var onBlurRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnBlur); + var onKeyDownRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnKeyDown); + var onClickRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnClick); + var shouldTabIndex = !options.unstable_virtual && !options.unstable_hasActiveWidget && isCurrentItem || // We don't want to set tabIndex="-1" when using CompositeItem as a + // standalone component, without state props. + !((_options$items2 = options.items) === null || _options$items2 === void 0 ? void 0 : _options$items2.length); + Object(react__WEBPACK_IMPORTED_MODULE_3__["useEffect"])(function () { + var _options$registerItem; + + if (!id) return undefined; + (_options$registerItem = options.registerItem) === null || _options$registerItem === void 0 ? void 0 : _options$registerItem.call(options, { + id: id, + ref: ref, + disabled: !!trulyDisabled + }); + return function () { + var _options$unregisterIt; + + (_options$unregisterIt = options.unregisterItem) === null || _options$unregisterIt === void 0 ? void 0 : _options$unregisterIt.call(options, id); + }; + }, [id, trulyDisabled, options.registerItem, options.unregisterItem]); + Object(react__WEBPACK_IMPORTED_MODULE_3__["useEffect"])(function () { + var element = ref.current; + + if (!element) { + false ? undefined : void 0; + return; + } // `moves` will be incremented whenever next, previous, up, down, first, + // last or move have been called. This means that the composite item will + // be focused whenever some of these functions are called. We're using + // isCurrentItemRef instead of isCurrentItem because we don't want to + // focus the item if isCurrentItem changes (and options.moves doesn't). + + + if (options.unstable_moves && isCurrentItemRef.current) { + element.focus(); + } + }, [options.unstable_moves]); + var onFocus = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) { + var _onFocusRef$current, _options$setCurrentId; + + (_onFocusRef$current = onFocusRef.current) === null || _onFocusRef$current === void 0 ? void 0 : _onFocusRef$current.call(onFocusRef, event); + if (event.defaultPrevented) return; + if (Object(reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_9__[/* isPortalEvent */ "a"])(event)) return; + if (!id) return; + if (targetIsAnotherItem(event, options.items)) return; + (_options$setCurrentId = options.setCurrentId) === null || _options$setCurrentId === void 0 ? void 0 : _options$setCurrentId.call(options, id); // When using aria-activedescendant, we want to make sure that the + // composite container receives focus, not the composite item. + // But we don't want to do this if the target is another focusable + // element inside the composite item, such as CompositeItemWidget. + + if (options.unstable_virtual && options.baseId && Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ "a"])(event)) { + var target = event.target; + var composite = Object(reakit_utils_getDocument__WEBPACK_IMPORTED_MODULE_13__[/* getDocument */ "a"])(target).getElementById(options.baseId); + + if (composite) { + hasFocusedComposite.current = true; + Object(reakit_utils_tabbable__WEBPACK_IMPORTED_MODULE_10__[/* ensureFocus */ "a"])(composite); + } + } + }, [id, options.items, options.setCurrentId, options.unstable_virtual, options.baseId]); + var onBlur = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) { + var _onBlurRef$current; + + if (options.unstable_virtual) { + if (hasFocusedComposite.current) { + // When hasFocusedComposite is true, composite has been focused + // right after focusing this item. This is an intermediate blur + // event, so we ignore it. + hasFocusedComposite.current = false; + event.preventDefault(); + event.stopPropagation(); + return; + } + } + + (_onBlurRef$current = onBlurRef.current) === null || _onBlurRef$current === void 0 ? void 0 : _onBlurRef$current.call(onBlurRef, event); + }, [options.unstable_virtual]); + var onCharacterKeyDown = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) { + var _onKeyDownRef$current; + + (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event); + if (!Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ "a"])(event)) return; + + if (event.key.length === 1 && event.key !== " ") { + var widget = getWidget(event.currentTarget); + + if (widget && Object(reakit_utils_isTextField__WEBPACK_IMPORTED_MODULE_16__[/* isTextField */ "a"])(widget)) { + widget.focus(); + var key = event.key; // Using RAF here because otherwise the key will be added twice + // to the input when using roving tabindex + + window.requestAnimationFrame(function () { + Object(_setTextFieldValue_78ab5d56_js__WEBPACK_IMPORTED_MODULE_17__[/* s */ "a"])(widget, key); + }); + } + } + }, []); + var onKeyDown = Object(react__WEBPACK_IMPORTED_MODULE_3__["useMemo"])(function () { + return Object(reakit_utils_createOnKeyDown__WEBPACK_IMPORTED_MODULE_12__[/* createOnKeyDown */ "a"])({ + onKeyDown: onCharacterKeyDown, + stopPropagation: true, + // We don't want to listen to focusable elements inside the composite + // item, such as a CompositeItemWidget. + shouldKeyDown: reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ "a"], + keyMap: function keyMap() { + // `options.orientation` can also be undefined, which means that + // both `isVertical` and `isHorizontal` will be `true`. + var isVertical = options.orientation !== "horizontal"; + var isHorizontal = options.orientation !== "vertical"; + var isGrid = !!(item === null || item === void 0 ? void 0 : item.groupId); + + var Delete = function Delete(event) { + var widget = getWidget(event.currentTarget); + + if (widget && Object(reakit_utils_isTextField__WEBPACK_IMPORTED_MODULE_16__[/* isTextField */ "a"])(widget)) { + Object(_setTextFieldValue_78ab5d56_js__WEBPACK_IMPORTED_MODULE_17__[/* s */ "a"])(widget, ""); + } + }; + + var up = options.up && function () { + return options.up(); + }; + + var next = options.next && function () { + return options.next(); + }; + + var down = options.down && function () { + return options.down(); + }; + + var previous = options.previous && function () { + return options.previous(); + }; + + return { + Delete: Delete, + Backspace: Delete, + ArrowUp: (isGrid || isVertical) && up, + ArrowRight: (isGrid || isHorizontal) && next, + ArrowDown: (isGrid || isVertical) && down, + ArrowLeft: (isGrid || isHorizontal) && previous, + Home: function Home(event) { + if (!isGrid || event.ctrlKey) { + var _options$first; + + (_options$first = options.first) === null || _options$first === void 0 ? void 0 : _options$first.call(options); + } else { + var _options$previous; + + (_options$previous = options.previous) === null || _options$previous === void 0 ? void 0 : _options$previous.call(options, true); + } + }, + End: function End(event) { + if (!isGrid || event.ctrlKey) { + var _options$last; + + (_options$last = options.last) === null || _options$last === void 0 ? void 0 : _options$last.call(options); + } else { + var _options$next; + + (_options$next = options.next) === null || _options$next === void 0 ? void 0 : _options$next.call(options, true); + } + }, + PageUp: function PageUp() { + if (isGrid) { + var _options$up; + + (_options$up = options.up) === null || _options$up === void 0 ? void 0 : _options$up.call(options, true); + } else { + var _options$first2; + + (_options$first2 = options.first) === null || _options$first2 === void 0 ? void 0 : _options$first2.call(options); + } + }, + PageDown: function PageDown() { + if (isGrid) { + var _options$down; + + (_options$down = options.down) === null || _options$down === void 0 ? void 0 : _options$down.call(options, true); + } else { + var _options$last2; + + (_options$last2 = options.last) === null || _options$last2 === void 0 ? void 0 : _options$last2.call(options); + } + } + }; + } + }); + }, [onCharacterKeyDown, options.orientation, item, options.up, options.next, options.down, options.previous, options.first, options.last]); + var onClick = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) { + var _onClickRef$current; + + (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event); + if (event.defaultPrevented) return; + var element = event.currentTarget; + var widget = getWidget(element); + + if (widget && !Object(reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_8__[/* hasFocusWithin */ "a"])(widget)) { + // If there's a widget inside the composite item, we make sure it's + // focused when pressing enter, space or clicking on the composite item. + widget.focus(); + } + }, []); + return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({ + ref: Object(reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_4__[/* useForkRef */ "a"])(ref, htmlRef), + id: id, + tabIndex: shouldTabIndex ? htmlTabIndex : -1, + "aria-selected": options.unstable_virtual && isCurrentItem ? true : undefined, + onFocus: onFocus, + onBlur: onBlur, + onKeyDown: onKeyDown, + onClick: onClick + }, htmlProps); + } +}); +var CompositeItem = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({ + as: "button", + memo: true, + useHook: useCompositeItem +}); + + + + +/***/ }), +/* 121 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ slot_fill_Slot; }); +__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ slot_fill_Fill; }); +__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ createSlotFill; }); + +// UNUSED EXPORTS: useSlot, Provider + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js +var esm_extends = __webpack_require__(8); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +var objectWithoutProperties = __webpack_require__(15); + +// EXTERNAL MODULE: external {"this":["wp","element"]} +var external_this_wp_element_ = __webpack_require__(0); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js +var classCallCheck = __webpack_require__(20); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js +var createClass = __webpack_require__(19); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +var assertThisInitialized = __webpack_require__(12); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +var getPrototypeOf = __webpack_require__(16); + +// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/superPropBase.js + +function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = Object(getPrototypeOf["a" /* default */])(object); + if (object === null) break; + } + + return object; +} +// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/get.js + +function get_get(target, property, receiver) { + if (typeof Reflect !== "undefined" && Reflect.get) { + get_get = Reflect.get; + } else { + get_get = function _get(target, property, receiver) { + var base = _superPropBase(target, property); + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.get) { + return desc.get.call(receiver); + } + + return desc.value; + }; + } + + return get_get(target, property, receiver || target); +} +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +var possibleConstructorReturn = __webpack_require__(23); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules +var inherits = __webpack_require__(22); + +// EXTERNAL MODULE: external {"this":"lodash"} +var external_this_lodash_ = __webpack_require__(2); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/context.js + 1 modules +var context = __webpack_require__(124); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/slot.js + + + + + + + + + + +function _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +/** + * External dependencies + */ + +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + + +var slot_SlotComponent = /*#__PURE__*/function (_Component) { + Object(inherits["a" /* default */])(SlotComponent, _Component); + + var _super = _createSuper(SlotComponent); + + function SlotComponent() { + var _this; + + Object(classCallCheck["a" /* default */])(this, SlotComponent); + + _this = _super.apply(this, arguments); + _this.isUnmounted = false; + _this.bindNode = _this.bindNode.bind(Object(assertThisInitialized["a" /* default */])(_this)); + return _this; + } + + Object(createClass["a" /* default */])(SlotComponent, [{ + key: "componentDidMount", + value: function componentDidMount() { + var registerSlot = this.props.registerSlot; + registerSlot(this.props.name, this); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + var unregisterSlot = this.props.unregisterSlot; + this.isUnmounted = true; + unregisterSlot(this.props.name, this); + } + }, { + key: "componentDidUpdate", + value: function componentDidUpdate(prevProps) { + var _this$props = this.props, + name = _this$props.name, + unregisterSlot = _this$props.unregisterSlot, + registerSlot = _this$props.registerSlot; + + if (prevProps.name !== name) { + unregisterSlot(prevProps.name); + registerSlot(name, this); + } + } + }, { + key: "bindNode", + value: function bindNode(node) { + this.node = node; + } + }, { + key: "forceUpdate", + value: function forceUpdate() { + if (this.isUnmounted) { + return; + } + + get_get(Object(getPrototypeOf["a" /* default */])(SlotComponent.prototype), "forceUpdate", this).call(this); + } + }, { + key: "render", + value: function render() { + var _this$props2 = this.props, + children = _this$props2.children, + name = _this$props2.name, + _this$props2$fillProp = _this$props2.fillProps, + fillProps = _this$props2$fillProp === void 0 ? {} : _this$props2$fillProp, + getFills = _this$props2.getFills; + var fills = Object(external_this_lodash_["map"])(getFills(name, this), function (fill) { + var fillKey = fill.occurrence; + var fillChildren = Object(external_this_lodash_["isFunction"])(fill.children) ? fill.children(fillProps) : fill.children; + return external_this_wp_element_["Children"].map(fillChildren, function (child, childIndex) { + if (!child || Object(external_this_lodash_["isString"])(child)) { + return child; + } + + var childKey = "".concat(fillKey, "---").concat(child.key || childIndex); + return Object(external_this_wp_element_["cloneElement"])(child, { + key: childKey + }); + }); + }).filter( // In some cases fills are rendered only when some conditions apply. + // This ensures that we only use non-empty fills when rendering, i.e., + // it allows us to render wrappers only when the fills are actually present. + Object(external_this_lodash_["negate"])(external_this_wp_element_["isEmptyElement"])); + return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_lodash_["isFunction"])(children) ? children(fills) : fills); + } + }]); + + return SlotComponent; +}(external_this_wp_element_["Component"]); + +var slot_Slot = function Slot(props) { + return Object(external_this_wp_element_["createElement"])(context["a" /* Consumer */], null, function (_ref) { + var registerSlot = _ref.registerSlot, + unregisterSlot = _ref.unregisterSlot, + getFills = _ref.getFills; + return Object(external_this_wp_element_["createElement"])(slot_SlotComponent, Object(esm_extends["a" /* default */])({}, props, { + registerSlot: registerSlot, + unregisterSlot: unregisterSlot, + getFills: getFills + })); + }); +}; + +/* harmony default export */ var slot_fill_slot = (slot_Slot); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/fill.js + + + +/** + * External dependencies + */ + +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + +var occurrences = 0; + +function fill_FillComponent(_ref) { + var name = _ref.name, + children = _ref.children, + registerFill = _ref.registerFill, + unregisterFill = _ref.unregisterFill; + var slot = Object(context["c" /* useSlot */])(name); + var ref = Object(external_this_wp_element_["useRef"])({ + name: name, + children: children + }); + + if (!ref.current.occurrence) { + ref.current.occurrence = ++occurrences; + } + + Object(external_this_wp_element_["useLayoutEffect"])(function () { + registerFill(name, ref.current); + return function () { + return unregisterFill(name, ref.current); + }; + }, []); + Object(external_this_wp_element_["useLayoutEffect"])(function () { + ref.current.children = children; + + if (slot) { + slot.forceUpdate(); + } + }, [children]); + Object(external_this_wp_element_["useLayoutEffect"])(function () { + if (name === ref.current.name) { + // ignore initial effect + return; + } + + unregisterFill(ref.current.name, ref.current); + ref.current.name = name; + registerFill(name, ref.current); + }, [name]); + + if (!slot || !slot.node) { + return null; + } // If a function is passed as a child, provide it with the fillProps. + + + if (Object(external_this_lodash_["isFunction"])(children)) { + children = children(slot.props.fillProps); + } + + return Object(external_this_wp_element_["createPortal"])(children, slot.node); +} + +var fill_Fill = function Fill(props) { + return Object(external_this_wp_element_["createElement"])(context["a" /* Consumer */], null, function (_ref2) { + var registerFill = _ref2.registerFill, + unregisterFill = _ref2.unregisterFill; + return Object(external_this_wp_element_["createElement"])(fill_FillComponent, Object(esm_extends["a" /* default */])({}, props, { + registerFill: registerFill, + unregisterFill: unregisterFill + })); + }); +}; + +/* harmony default export */ var slot_fill_fill = (fill_Fill); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot-fill-context.js +var slot_fill_context = __webpack_require__(133); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot.js + + + + +/** + * WordPress dependencies + */ + +/** + * Internal dependencies + */ + + +function bubbles_virtually_slot_Slot(_ref) { + var name = _ref.name, + _ref$fillProps = _ref.fillProps, + fillProps = _ref$fillProps === void 0 ? {} : _ref$fillProps, + _ref$as = _ref.as, + Component = _ref$as === void 0 ? 'div' : _ref$as, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["name", "fillProps", "as"]); + + var registry = Object(external_this_wp_element_["useContext"])(slot_fill_context["a" /* default */]); + var ref = Object(external_this_wp_element_["useRef"])(); + Object(external_this_wp_element_["useLayoutEffect"])(function () { + registry.registerSlot(name, ref, fillProps); + return function () { + registry.unregisterSlot(name, ref); + }; // We are not including fillProps in the deps because we don't want to + // unregister and register the slot whenever fillProps change, which would + // cause the fill to be re-mounted. We are only considering the initial value + // of fillProps. + }, [registry.registerSlot, registry.unregisterSlot, name]); // fillProps may be an update that interacts with the layout, so we + // useLayoutEffect + + Object(external_this_wp_element_["useLayoutEffect"])(function () { + registry.updateSlot(name, fillProps); + }); + return Object(external_this_wp_element_["createElement"])(Component, Object(esm_extends["a" /* default */])({ + ref: ref + }, props)); +} + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules +var slicedToArray = __webpack_require__(14); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/use-slot.js +var use_slot = __webpack_require__(159); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/fill.js + + +/** + * WordPress dependencies + */ + +/** + * Internal dependencies + */ + + + +function useForceUpdate() { + var _useState = Object(external_this_wp_element_["useState"])({}), + _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2), + setState = _useState2[1]; + + return function () { + return setState({}); + }; +} + +function bubbles_virtually_fill_Fill(_ref) { + var name = _ref.name, + children = _ref.children; + var slot = Object(use_slot["a" /* default */])(name); + var ref = Object(external_this_wp_element_["useRef"])({ + rerender: useForceUpdate() + }); + Object(external_this_wp_element_["useEffect"])(function () { + // We register fills so we can keep track of their existance. + // Some Slot implementations need to know if there're already fills + // registered so they can choose to render themselves or not. + slot.registerFill(ref); + return function () { + slot.unregisterFill(ref); + }; + }, [slot.registerFill, slot.unregisterFill]); + + if (!slot.ref || !slot.ref.current) { + return null; + } + + if (typeof children === 'function') { + children = children(slot.fillProps); + } + + return Object(external_this_wp_element_["createPortal"])(children, slot.ref.current); +} + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/index.js + + + + +/** + * Internal dependencies + */ + + + + + + +function slot_fill_Slot(_ref) { + var bubblesVirtually = _ref.bubblesVirtually, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["bubblesVirtually"]); + + if (bubblesVirtually) { + return Object(external_this_wp_element_["createElement"])(bubbles_virtually_slot_Slot, props); + } + + return Object(external_this_wp_element_["createElement"])(slot_fill_slot, props); +} +function slot_fill_Fill(props) { + // We're adding both Fills here so they can register themselves before + // their respective slot has been registered. Only the Fill that has a slot + // will render. The other one will return null. + return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_wp_element_["createElement"])(slot_fill_fill, props), Object(external_this_wp_element_["createElement"])(bubbles_virtually_fill_Fill, props)); +} +function createSlotFill(name) { + var FillComponent = function FillComponent(props) { + return Object(external_this_wp_element_["createElement"])(slot_fill_Fill, Object(esm_extends["a" /* default */])({ + name: name + }, props)); + }; + + FillComponent.displayName = name + 'Fill'; + + var SlotComponent = function SlotComponent(props) { + return Object(external_this_wp_element_["createElement"])(slot_fill_Slot, Object(esm_extends["a" /* default */])({ + name: name + }, props)); + }; + + SlotComponent.displayName = name + 'Slot'; + return { + Fill: FillComponent, + Slot: SlotComponent + }; +} + + + +/***/ }), +/* 122 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createEvent; }); +/* harmony import */ var _getDocument_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(47); + + +/** + * Creates an `Event` in a way that also works on IE 11. + * + * @example + * import { createEvent } from "reakit-utils"; + * + * const el = document.getElementById("id"); + * el.dispatchEvent(createEvent(el, "blur", { bubbles: false })); + */ + +function createEvent(element, type, eventInit) { + var _eventInit, _eventInit2; + + if (eventInit === void 0) { + eventInit = {}; + } + + if (typeof Event === "function") { + return new Event(type, eventInit); + } // IE 11 doesn't support Event constructors + + + var event = Object(_getDocument_js__WEBPACK_IMPORTED_MODULE_0__[/* getDocument */ "a"])(element).createEvent("Event"); + event.initEvent(type, (_eventInit = eventInit) === null || _eventInit === void 0 ? void 0 : _eventInit.bubbles, (_eventInit2 = eventInit) === null || _eventInit2 === void 0 ? void 0 : _eventInit2.cancelable); + return event; +} + + + + +/***/ }), +/* 123 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = __webpack_require__(178); + +/***/ }), +/* 124 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ context_useSlot; }); +__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ Consumer; }); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules +var slicedToArray = __webpack_require__(14); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules +var toConsumableArray = __webpack_require__(18); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js +var classCallCheck = __webpack_require__(20); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js +var createClass = __webpack_require__(19); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +var assertThisInitialized = __webpack_require__(12); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +var possibleConstructorReturn = __webpack_require__(23); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +var getPrototypeOf = __webpack_require__(16); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules +var inherits = __webpack_require__(22); + +// EXTERNAL MODULE: external {"this":["wp","element"]} +var external_this_wp_element_ = __webpack_require__(0); + +// EXTERNAL MODULE: external {"this":"lodash"} +var external_this_lodash_ = __webpack_require__(2); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js +var esm_typeof = __webpack_require__(40); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +var objectWithoutProperties = __webpack_require__(15); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js +var defineProperty = __webpack_require__(5); + +// EXTERNAL MODULE: external {"this":["wp","isShallowEqual"]} +var external_this_wp_isShallowEqual_ = __webpack_require__(64); +var external_this_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_isShallowEqual_); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot-fill-context.js +var slot_fill_context = __webpack_require__(133); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js + + + + + + + +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return Object(esm_typeof["a" /* default */])(key) === "symbol" ? key : String(key); } + +function _toPrimitive(input, hint) { if (Object(esm_typeof["a" /* default */])(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (Object(esm_typeof["a" /* default */])(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + + +function useSlotRegistry() { + var _useState = Object(external_this_wp_element_["useState"])({}), + _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2), + slots = _useState2[0], + setSlots = _useState2[1]; + + var _useState3 = Object(external_this_wp_element_["useState"])({}), + _useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2), + fills = _useState4[0], + setFills = _useState4[1]; + + var registerSlot = Object(external_this_wp_element_["useCallback"])(function (name, ref, fillProps) { + setSlots(function (prevSlots) { + var slot = prevSlots[name] || {}; + return _objectSpread({}, prevSlots, Object(defineProperty["a" /* default */])({}, name, _objectSpread({}, slot, { + ref: ref || slot.ref, + fillProps: fillProps || slot.fillProps || {} + }))); + }); + }, []); + var unregisterSlot = Object(external_this_wp_element_["useCallback"])(function (name, ref) { + setSlots(function (prevSlots) { + var slot = prevSlots[name], + nextSlots = Object(objectWithoutProperties["a" /* default */])(prevSlots, [name].map(_toPropertyKey)); // Make sure we're not unregistering a slot registered by another element + // See https://github.com/WordPress/gutenberg/pull/19242#issuecomment-590295412 + + + if ((slot === null || slot === void 0 ? void 0 : slot.ref) === ref) { + return nextSlots; + } + + return prevSlots; + }); + }, []); + var updateSlot = Object(external_this_wp_element_["useCallback"])(function (name, fillProps) { + var slot = slots[name]; + + if (!slot) { + return; + } + + if (!external_this_wp_isShallowEqual_default()(slot.fillProps, fillProps)) { + slot.fillProps = fillProps; + var slotFills = fills[name]; + + if (slotFills) { + // Force update fills + slotFills.map(function (fill) { + return fill.current.rerender(); + }); + } + } + }, [slots, fills]); + var registerFill = Object(external_this_wp_element_["useCallback"])(function (name, ref) { + setFills(function (prevFills) { + return _objectSpread({}, prevFills, Object(defineProperty["a" /* default */])({}, name, [].concat(Object(toConsumableArray["a" /* default */])(prevFills[name] || []), [ref]))); + }); + }, []); + var unregisterFill = Object(external_this_wp_element_["useCallback"])(function (name, ref) { + setFills(function (prevFills) { + if (prevFills[name]) { + return _objectSpread({}, prevFills, Object(defineProperty["a" /* default */])({}, name, prevFills[name].filter(function (fillRef) { + return fillRef !== ref; + }))); + } + + return prevFills; + }); + }, []); // Memoizing the return value so it can be directly passed to Provider value + + var registry = Object(external_this_wp_element_["useMemo"])(function () { + return { + slots: slots, + fills: fills, + registerSlot: registerSlot, + updateSlot: updateSlot, + unregisterSlot: unregisterSlot, + registerFill: registerFill, + unregisterFill: unregisterFill + }; + }, [slots, fills, registerSlot, updateSlot, unregisterSlot, registerFill, unregisterFill]); + return registry; +} + +function slot_fill_provider_SlotFillProvider(_ref) { + var children = _ref.children; + var registry = useSlotRegistry(); + return Object(external_this_wp_element_["createElement"])(slot_fill_context["a" /* default */].Provider, { + value: registry + }, children); +} + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/context.js + + + + + + + + + + +function _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +/** + * External dependencies + */ + +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + +var SlotFillContext = Object(external_this_wp_element_["createContext"])({ + registerSlot: function registerSlot() {}, + unregisterSlot: function unregisterSlot() {}, + registerFill: function registerFill() {}, + unregisterFill: function unregisterFill() {}, + getSlot: function getSlot() {}, + getFills: function getFills() {}, + subscribe: function subscribe() {} +}); +var Provider = SlotFillContext.Provider, + Consumer = SlotFillContext.Consumer; + +var context_SlotFillProvider = /*#__PURE__*/function (_Component) { + Object(inherits["a" /* default */])(SlotFillProvider, _Component); + + var _super = _createSuper(SlotFillProvider); + + function SlotFillProvider() { + var _this; + + Object(classCallCheck["a" /* default */])(this, SlotFillProvider); + + _this = _super.apply(this, arguments); + _this.registerSlot = _this.registerSlot.bind(Object(assertThisInitialized["a" /* default */])(_this)); + _this.registerFill = _this.registerFill.bind(Object(assertThisInitialized["a" /* default */])(_this)); + _this.unregisterSlot = _this.unregisterSlot.bind(Object(assertThisInitialized["a" /* default */])(_this)); + _this.unregisterFill = _this.unregisterFill.bind(Object(assertThisInitialized["a" /* default */])(_this)); + _this.getSlot = _this.getSlot.bind(Object(assertThisInitialized["a" /* default */])(_this)); + _this.getFills = _this.getFills.bind(Object(assertThisInitialized["a" /* default */])(_this)); + _this.hasFills = _this.hasFills.bind(Object(assertThisInitialized["a" /* default */])(_this)); + _this.subscribe = _this.subscribe.bind(Object(assertThisInitialized["a" /* default */])(_this)); + _this.slots = {}; + _this.fills = {}; + _this.listeners = []; + _this.contextValue = { + registerSlot: _this.registerSlot, + unregisterSlot: _this.unregisterSlot, + registerFill: _this.registerFill, + unregisterFill: _this.unregisterFill, + getSlot: _this.getSlot, + getFills: _this.getFills, + hasFills: _this.hasFills, + subscribe: _this.subscribe + }; + return _this; + } + + Object(createClass["a" /* default */])(SlotFillProvider, [{ + key: "registerSlot", + value: function registerSlot(name, slot) { + var previousSlot = this.slots[name]; + this.slots[name] = slot; + this.triggerListeners(); // Sometimes the fills are registered after the initial render of slot + // But before the registerSlot call, we need to rerender the slot + + this.forceUpdateSlot(name); // If a new instance of a slot is being mounted while another with the + // same name exists, force its update _after_ the new slot has been + // assigned into the instance, such that its own rendering of children + // will be empty (the new Slot will subsume all fills for this name). + + if (previousSlot) { + previousSlot.forceUpdate(); + } + } + }, { + key: "registerFill", + value: function registerFill(name, instance) { + this.fills[name] = [].concat(Object(toConsumableArray["a" /* default */])(this.fills[name] || []), [instance]); + this.forceUpdateSlot(name); + } + }, { + key: "unregisterSlot", + value: function unregisterSlot(name, instance) { + // If a previous instance of a Slot by this name unmounts, do nothing, + // as the slot and its fills should only be removed for the current + // known instance. + if (this.slots[name] !== instance) { + return; + } + + delete this.slots[name]; + this.triggerListeners(); + } + }, { + key: "unregisterFill", + value: function unregisterFill(name, instance) { + this.fills[name] = Object(external_this_lodash_["without"])(this.fills[name], instance); + this.resetFillOccurrence(name); + this.forceUpdateSlot(name); + } + }, { + key: "getSlot", + value: function getSlot(name) { + return this.slots[name]; + } + }, { + key: "getFills", + value: function getFills(name, slotInstance) { + // Fills should only be returned for the current instance of the slot + // in which they occupy. + if (this.slots[name] !== slotInstance) { + return []; + } + + return Object(external_this_lodash_["sortBy"])(this.fills[name], 'occurrence'); + } + }, { + key: "hasFills", + value: function hasFills(name) { + return this.fills[name] && !!this.fills[name].length; + } + }, { + key: "resetFillOccurrence", + value: function resetFillOccurrence(name) { + Object(external_this_lodash_["forEach"])(this.fills[name], function (instance) { + instance.occurrence = undefined; + }); + } + }, { + key: "forceUpdateSlot", + value: function forceUpdateSlot(name) { + var slot = this.getSlot(name); + + if (slot) { + slot.forceUpdate(); + } + } + }, { + key: "triggerListeners", + value: function triggerListeners() { + this.listeners.forEach(function (listener) { + return listener(); + }); + } + }, { + key: "subscribe", + value: function subscribe(listener) { + var _this2 = this; + + this.listeners.push(listener); + return function () { + _this2.listeners = Object(external_this_lodash_["without"])(_this2.listeners, listener); + }; + } + }, { + key: "render", + value: function render() { + return Object(external_this_wp_element_["createElement"])(Provider, { + value: this.contextValue + }, Object(external_this_wp_element_["createElement"])(slot_fill_provider_SlotFillProvider, null, this.props.children)); + } + }]); + + return SlotFillProvider; +}(external_this_wp_element_["Component"]); +/** + * React hook returning the active slot given a name. + * + * @param {string} name Slot name. + * @return {Object} Slot object. + */ + + +var context_useSlot = function useSlot(name) { + var _useContext = Object(external_this_wp_element_["useContext"])(SlotFillContext), + getSlot = _useContext.getSlot, + subscribe = _useContext.subscribe; + + var _useState = Object(external_this_wp_element_["useState"])(getSlot(name)), + _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2), + slot = _useState2[0], + setSlot = _useState2[1]; + + Object(external_this_wp_element_["useEffect"])(function () { + setSlot(getSlot(name)); + var unsubscribe = subscribe(function () { + setSlot(getSlot(name)); + }); + return unsubscribe; + }, [name]); + return slot; +}; +/* harmony default export */ var context = __webpack_exports__["b"] = (context_SlotFillProvider); + + + +/***/ }), +/* 125 */, +/* 126 */, +/* 127 */ /***/ (function(module, exports) { var g; @@ -2428,484 +11842,492 @@ /***/ }), -/* 60 */, -/* 61 */, -/* 62 */, -/* 63 */, -/* 64 */ -/***/ (function(module, exports, __webpack_require__) { - -var moment = __webpack_require__(29); -var momentValidationWrapper = __webpack_require__(288); -var core = __webpack_require__(289); - -module.exports = { - - momentObj : core.createMomentChecker( - 'object', - function(obj) { - return typeof obj === 'object'; - }, - function isValid(value) { - return momentValidationWrapper.isValidMoment(value); - }, - 'Moment' - ), - - momentString : core.createMomentChecker( - 'string', - function(str) { - return typeof str === 'string'; - }, - function isValid(value) { - return momentValidationWrapper.isValidMoment(moment(value)); - }, - 'Moment' - ), - - momentDurationObj : core.createMomentChecker( - 'object', - function(obj) { - return typeof obj === 'object'; - }, - function isValid(value) { - return moment.isDuration(value); - }, - 'Duration' - ), - -}; - - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __webpack_require__) { - -var rng = __webpack_require__(87); -var bytesToUuid = __webpack_require__(88); - -function v4(options, buf, offset) { - var i = buf && offset || 0; - - if (typeof(options) == 'string') { - buf = options === 'binary' ? new Array(16) : null; - options = null; - } - options = options || {}; - - var rnds = options.random || (options.rng || rng)(); - - // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - rnds[6] = (rnds[6] & 0x0f) | 0x40; - rnds[8] = (rnds[8] & 0x3f) | 0x80; - - // Copy bytes to buffer, if provided - if (buf) { - for (var ii = 0; ii < 16; ++ii) { - buf[i + ii] = rnds[ii]; - } - } - - return buf || bytesToUuid(rnds); -} - -module.exports = v4; - - -/***/ }), -/* 66 */, -/* 67 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = __webpack_require__(115); - -/***/ }), -/* 68 */, -/* 69 */, -/* 70 */, -/* 71 */, -/* 72 */, -/* 73 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var keys = __webpack_require__(141); -var foreach = __webpack_require__(267); -var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol'; - -var toStr = Object.prototype.toString; - -var isFunction = function (fn) { - return typeof fn === 'function' && toStr.call(fn) === '[object Function]'; -}; - -var arePropertyDescriptorsSupported = function () { - var obj = {}; - try { - Object.defineProperty(obj, 'x', { enumerable: false, value: obj }); - /* eslint-disable no-unused-vars, no-restricted-syntax */ - for (var _ in obj) { return false; } - /* eslint-enable no-unused-vars, no-restricted-syntax */ - return obj.x === obj; - } catch (e) { /* this is IE 8. */ - return false; - } -}; -var supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported(); - -var defineProperty = function (object, name, value, predicate) { - if (name in object && (!isFunction(predicate) || !predicate())) { - return; - } - if (supportsDescriptors) { - Object.defineProperty(object, name, { - configurable: true, - enumerable: false, - value: value, - writable: true - }); - } else { - object[name] = value; - } -}; - -var defineProperties = function (object, map) { - var predicates = arguments.length > 2 ? arguments[2] : {}; - var props = keys(map); - if (hasSymbols) { - props = props.concat(Object.getOwnPropertySymbols(map)); - } - foreach(props, function (name) { - defineProperty(object, name, map[name], predicates[name]); - }); -}; - -defineProperties.supportsDescriptors = !!supportsDescriptors; - -module.exports = defineProperties; - - -/***/ }), -/* 74 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var implementation = __webpack_require__(268); - -module.exports = Function.prototype.bind || implementation; - - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = _propTypes2['default'].oneOf(_constants.WEEKDAYS); - -/***/ }), -/* 76 */, -/* 77 */, -/* 78 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @providesModule shallowCompare - */ - - - -var shallowEqual = __webpack_require__(287); - -/** - * Does a shallow comparison for props and state. - * See ReactComponentWithPureRenderMixin - * See also https://facebook.github.io/react/docs/shallow-compare.html - */ -function shallowCompare(instance, nextProps, nextState) { - return ( - !shallowEqual(instance.props, nextProps) || - !shallowEqual(instance.state, nextState) - ); -} - -module.exports = shallowCompare; - - -/***/ }), -/* 79 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = isSameDay; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function isSameDay(a, b) { - if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false; - // Compare least significant, most likely to change units first - // Moment's isSame clones moment inputs and is a tad slow - return a.date() === b.date() && a.month() === b.month() && a.year() === b.year(); -} - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = toMomentObject; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function toMomentObject(dateString, customFormat) { - var dateFormats = customFormat ? [customFormat, _constants.DISPLAY_FORMAT, _constants.ISO_FORMAT] : [_constants.DISPLAY_FORMAT, _constants.ISO_FORMAT]; - - var date = (0, _moment2['default'])(dateString, dateFormats, true); - return date.isValid() ? date.hour(12) : null; -} - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = _propTypes2['default'].oneOf([_constants.HORIZONTAL_ORIENTATION, _constants.VERTICAL_ORIENTATION, _constants.VERTICAL_SCROLLABLE]); - -/***/ }), -/* 82 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = isTouchDevice; -function isTouchDevice() { - return !!(typeof window !== 'undefined' && ('ontouchstart' in window || window.DocumentTouch && typeof document !== 'undefined' && document instanceof window.DocumentTouch)) || !!(typeof navigator !== 'undefined' && (navigator.maxTouchPoints || navigator.msMaxTouchPoints)); -} -module.exports = exports['default']; - -/***/ }), -/* 83 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = _propTypes2['default'].oneOf([_constants.OPEN_DOWN, _constants.OPEN_UP]); - -/***/ }), -/* 84 */, -/* 85 */, -/* 86 */, -/* 87 */ -/***/ (function(module, exports) { - -// Unique ID creation requires a high quality random # generator. In the -// browser this is a little complicated due to unknown quality of Math.random() -// and inconsistent support for the `crypto` API. We do the best we can via -// feature-detection - -// getRandomValues needs to be invoked in a context where "this" is a Crypto -// implementation. Also, find the complete implementation of crypto on IE11. -var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || - (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); - -if (getRandomValues) { - // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto - var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef - - module.exports = function whatwgRNG() { - getRandomValues(rnds8); - return rnds8; - }; -} else { - // Math.random()-based (RNG) - // - // If all else fails, use Math.random(). It's fast, but is of unspecified - // quality. - var rnds = new Array(16); - - module.exports = function mathRNG() { - for (var i = 0, r; i < 16; i++) { - if ((i & 0x03) === 0) r = Math.random() * 0x100000000; - rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; - } - - return rnds; - }; -} - - -/***/ }), -/* 88 */ -/***/ (function(module, exports) { - -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -var byteToHex = []; -for (var i = 0; i < 256; ++i) { - byteToHex[i] = (i + 0x100).toString(16).substr(1); -} - -function bytesToUuid(buf, offset) { - var i = offset || 0; - var bth = byteToHex; - // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 - return ([bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]]]).join(''); -} - -module.exports = bytesToUuid; - - -/***/ }), -/* 89 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var ReactPropTypesSecret = __webpack_require__(90); - -function emptyFunction() {} - -module.exports = function() { - function shim(props, propName, componentName, location, propFullName, secret) { - if (secret === ReactPropTypesSecret) { - // It is still safe when called from React. - return; - } - var err = new Error( - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use PropTypes.checkPropTypes() to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - err.name = 'Invariant Violation'; - throw err; - }; - shim.isRequired = shim; - function getShim() { - return shim; - }; - // Important! - // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. - var ReactPropTypes = { - array: shim, - bool: shim, - func: shim, - number: shim, - object: shim, - string: shim, - symbol: shim, - - any: shim, - arrayOf: getShim, - element: shim, - instanceOf: getShim, - node: shim, - objectOf: getShim, - oneOf: getShim, - oneOfType: getShim, - shape: getShim, - exact: getShim - }; - - ReactPropTypes.checkPropTypes = emptyFunction; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; -}; - - -/***/ }), -/* 90 */ +/* 128 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +// https://www.ecma-international.org/ecma-262/6.0/#sec-ispropertykey + +module.exports = function IsPropertyKey(argument) { + return typeof argument === 'string' || typeof argument === 'symbol'; +}; + + +/***/ }), +/* 129 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20); +/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19); +/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12); +/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23); +/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16); +/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(22); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(9); +/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21); +/* harmony import */ var _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_keycodes__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var _wordpress_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(30); +/* harmony import */ var _wordpress_dom__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_wordpress_dom__WEBPACK_IMPORTED_MODULE_9__); + + + + + + + + +function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(this, result); }; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +/** + * WordPress dependencies + */ + + + + +var withConstrainedTabbing = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_7__["createHigherOrderComponent"])(function (WrappedComponent) { + return /*#__PURE__*/function (_Component) { + Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(_class, _Component); + + var _super = _createSuper(_class); + + function _class() { + var _this; + + Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, _class); + + _this = _super.apply(this, arguments); + _this.focusContainRef = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["createRef"])(); + _this.handleTabBehaviour = _this.handleTabBehaviour.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_this)); + return _this; + } + + Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_class, [{ + key: "handleTabBehaviour", + value: function handleTabBehaviour(event) { + if (event.keyCode !== _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_8__["TAB"]) { + return; + } + + var tabbables = _wordpress_dom__WEBPACK_IMPORTED_MODULE_9__["focus"].tabbable.find(this.focusContainRef.current); + + if (!tabbables.length) { + return; + } + + var firstTabbable = tabbables[0]; + var lastTabbable = tabbables[tabbables.length - 1]; + + if (event.shiftKey && event.target === firstTabbable) { + event.preventDefault(); + lastTabbable.focus(); + } else if (!event.shiftKey && event.target === lastTabbable) { + event.preventDefault(); + firstTabbable.focus(); + /* + * When pressing Tab and none of the tabbables has focus, the keydown + * event happens on the wrapper div: move focus on the first tabbable. + */ + } else if (!tabbables.includes(event.target)) { + event.preventDefault(); + firstTabbable.focus(); + } + } + }, { + key: "render", + value: function render() { + // Disable reason: this component is non-interactive, but must capture + // events from the wrapped component to determine when the Tab key is used. + + /* eslint-disable jsx-a11y/no-static-element-interactions */ + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["createElement"])("div", { + onKeyDown: this.handleTabBehaviour, + ref: this.focusContainRef, + tabIndex: "-1" + }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["createElement"])(WrappedComponent, this.props)); + /* eslint-enable jsx-a11y/no-static-element-interactions */ + } + }]); + + return _class; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["Component"]); +}, 'withConstrainedTabbing'); +/* harmony default export */ __webpack_exports__["a"] = (withConstrainedTabbing); + + +/***/ }), +/* 130 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(18); +/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20); +/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19); +/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23); +/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16); +/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(22); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(2); +/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9); +/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(193); + + + + + + + + +function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(this, result); }; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +/** + * External dependencies + */ + +/** + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ + + +/** + * Returns true if the given object is component-like. An object is component- + * like if it is an instance of wp.element.Component, or is a function. + * + * @param {*} object Object to test. + * + * @return {boolean} Whether object is component-like. + */ + +function isComponentLike(object) { + return object instanceof _wordpress_element__WEBPACK_IMPORTED_MODULE_6__["Component"] || typeof object === 'function'; +} +/** + * Higher Order Component used to be used to wrap disposable elements like + * sidebars, modals, dropdowns. When mounting the wrapped component, we track a + * reference to the current active element so we know where to restore focus + * when the component is unmounted. + * + * @param {(WPComponent|Object)} options The component to be enhanced with + * focus return behavior, or an object + * describing the component and the + * focus return characteristics. + * + * @return {WPComponent} Component with the focus restauration behaviour. + */ + + +function withFocusReturn(options) { + // Normalize as overloaded form `withFocusReturn( options )( Component )` + // or as `withFocusReturn( Component )`. + if (isComponentLike(options)) { + var WrappedComponent = options; + return withFocusReturn({})(WrappedComponent); + } + + var _options$onFocusRetur = options.onFocusReturn, + onFocusReturn = _options$onFocusRetur === void 0 ? lodash__WEBPACK_IMPORTED_MODULE_7__["stubTrue"] : _options$onFocusRetur; + return function (WrappedComponent) { + var FocusReturn = /*#__PURE__*/function (_Component) { + Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(FocusReturn, _Component); + + var _super = _createSuper(FocusReturn); + + function FocusReturn() { + var _this; + + Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(this, FocusReturn); + + _this = _super.apply(this, arguments); + _this.ownFocusedElements = new Set(); + _this.activeElementOnMount = document.activeElement; + + _this.setIsFocusedFalse = function () { + return _this.isFocused = false; + }; + + _this.setIsFocusedTrue = function (event) { + _this.ownFocusedElements.add(event.target); + + _this.isFocused = true; + }; + + return _this; + } + + Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(FocusReturn, [{ + key: "componentWillUnmount", + value: function componentWillUnmount() { + var activeElementOnMount = this.activeElementOnMount, + isFocused = this.isFocused, + ownFocusedElements = this.ownFocusedElements; + + if (!isFocused) { + return; + } // Defer to the component's own explicit focus return behavior, + // if specified. The function should return `false` to prevent + // the default behavior otherwise occurring here. This allows + // for support that the `onFocusReturn` decides to allow the + // default behavior to occur under some conditions. + + + if (onFocusReturn() === false) { + return; + } + + var stack = [].concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(lodash__WEBPACK_IMPORTED_MODULE_7__["without"].apply(void 0, [this.props.focus.focusHistory].concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(ownFocusedElements)))), [activeElementOnMount]); + var candidate; + + while (candidate = stack.pop()) { + if (document.body.contains(candidate)) { + candidate.focus(); + return; + } + } + } + }, { + key: "render", + value: function render() { + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["createElement"])("div", { + onFocus: this.setIsFocusedTrue, + onBlur: this.setIsFocusedFalse + }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["createElement"])(WrappedComponent, this.props.childProps)); + } + }]); + + return FocusReturn; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["Component"]); + + return function (props) { + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["createElement"])(_context__WEBPACK_IMPORTED_MODULE_9__[/* Consumer */ "a"], null, function (context) { + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["createElement"])(FocusReturn, { + childProps: props, + focus: context + }); + }); + }; + }; +} + +/* harmony default export */ __webpack_exports__["a"] = (Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_8__["createHigherOrderComponent"])(withFocusReturn, 'withFocusReturn')); + + + +/***/ }), +/* 131 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8); +/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__); + + + + +/** + * WordPress dependencies + */ + + +function stopPropagation(event) { + event.stopPropagation(); +} + +/* harmony default export */ __webpack_exports__["a"] = (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["forwardRef"])(function (_ref, ref) { + var children = _ref.children, + props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_ref, ["children"]); + + // Disable reason: this stops certain events from propagating outside of the component. + // - onMouseDown is disabled as this can cause interactions with other DOM elements + + /* eslint-disable jsx-a11y/no-static-element-interactions */ + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])("div", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({}, props, { + ref: ref, + onMouseDown: stopPropagation + }), children); + /* eslint-enable jsx-a11y/no-static-element-interactions */ +})); + + +/***/ }), +/* 132 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8); +/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5); +/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var reakit_Toolbar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(469); +/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(104); +/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_warning__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _toolbar_context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(87); + + + + + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +/** + * External dependencies + */ + +/** + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ + + + +function ToolbarItem(_ref, ref) { + var children = _ref.children, + Component = _ref.as, + props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_ref, ["children", "as"]); + + var accessibleToolbarState = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["useContext"])(_toolbar_context__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"]); + + if (typeof children !== 'function' && !Component) { + typeof process !== "undefined" && process.env && "production" !== "production" ? _wordpress_warning__WEBPACK_IMPORTED_MODULE_5___default()('`ToolbarItem` is a generic headless component. You must pass either a `children` prop as a function or an `as` prop as a component.') : void 0; + return null; + } + + var allProps = _objectSpread({}, props, { + ref: ref, + 'data-experimental-toolbar-item': true + }); + + if (!accessibleToolbarState) { + if (Component) { + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["createElement"])(Component, allProps, children); + } + + return children(allProps); + } + + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["createElement"])(reakit_Toolbar__WEBPACK_IMPORTED_MODULE_4__[/* ToolbarItem */ "a"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({}, accessibleToolbarState, allProps, { + as: Component + }), children); +} + +/* harmony default export */ __webpack_exports__["a"] = (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["forwardRef"])(ToolbarItem)); + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(117))) + +/***/ }), +/* 133 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(104); +/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_warning__WEBPACK_IMPORTED_MODULE_1__); +/** + * WordPress dependencies + */ + + +var SlotFillContext = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createContext"])({ + slots: {}, + fills: {}, + registerSlot: function registerSlot() { + typeof process !== "undefined" && process.env && "production" !== "production" ? _wordpress_warning__WEBPACK_IMPORTED_MODULE_1___default()('Components must be wrapped within `SlotFillProvider`. ' + 'See https://developer.wordpress.org/block-editor/components/slot-fill/') : void 0; + }, + updateSlot: function updateSlot() {}, + unregisterSlot: function unregisterSlot() {}, + registerFill: function registerFill() {}, + unregisterFill: function unregisterFill() {} +}); +/* harmony default export */ __webpack_exports__["a"] = (SlotFillContext); + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(117))) + +/***/ }), +/* 134 */, +/* 135 */, +/* 136 */, +/* 137 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); +/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__); + + + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +/** + * WordPress dependencies + */ + // Disable reason: JSDoc linter doesn't seem to parse the union (`&`) correctly. + +/* eslint-disable jsdoc/valid-types */ + +/** @typedef {{icon: JSX.Element, size?: number} & import('react').ComponentPropsWithoutRef<'SVG'>} IconProps */ + +/* eslint-enable jsdoc/valid-types */ + +/** + * Return an SVG icon. + * + * @param {IconProps} props icon is the SVG component to render + * size is a number specifiying the icon size in pixels + * Other props will be passed to wrapped SVG component + * + * @return {JSX.Element} Icon component + */ + +function Icon(_ref) { + var icon = _ref.icon, + _ref$size = _ref.size, + size = _ref$size === void 0 ? 24 : _ref$size, + props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_ref, ["icon", "size"]); + + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["cloneElement"])(icon, _objectSpread({ + width: size, + height: size + }, props)); +} + +/* harmony default export */ __webpack_exports__["a"] = (Icon); + + +/***/ }), +/* 138 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2918,17930 +12340,7 @@ -var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - -module.exports = ReactPropTypesSecret; - - -/***/ }), -/* 91 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var bind = __webpack_require__(74); - -module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); - - -/***/ }), -/* 92 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = _propTypes2['default'].oneOf([_constants.ICON_BEFORE_POSITION, _constants.ICON_AFTER_POSITION]); - -/***/ }), -/* 93 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = _propTypes2['default'].oneOf([_constants.INFO_POSITION_TOP, _constants.INFO_POSITION_BOTTOM, _constants.INFO_POSITION_BEFORE, _constants.INFO_POSITION_AFTER]); - -/***/ }), -/* 94 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = isInclusivelyAfterDay; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _isBeforeDay = __webpack_require__(95); - -var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function isInclusivelyAfterDay(a, b) { - if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false; - return !(0, _isBeforeDay2['default'])(a, b); -} - -/***/ }), -/* 95 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = isBeforeDay; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function isBeforeDay(a, b) { - if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false; - - var aYear = a.year(); - var aMonth = a.month(); - - var bYear = b.year(); - var bMonth = b.month(); - - var isSameYear = aYear === bYear; - var isSameMonth = aMonth === bMonth; - - if (isSameYear && isSameMonth) return a.date() < b.date(); - if (isSameYear) return aMonth < bMonth; - return aYear < bYear; -} - -/***/ }), -/* 96 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var CloseButton = function () { - function CloseButton(props) { - return _react2['default'].createElement( - 'svg', - props, - _react2['default'].createElement('path', { - fillRule: 'evenodd', - d: 'M11.53.47a.75.75 0 0 0-1.061 0l-4.47 4.47L1.529.47A.75.75 0 1 0 .468 1.531l4.47 4.47-4.47 4.47a.75.75 0 1 0 1.061 1.061l4.47-4.47 4.47 4.47a.75.75 0 1 0 1.061-1.061l-4.47-4.47 4.47-4.47a.75.75 0 0 0 0-1.061z' - }) - ); - } - - return CloseButton; -}(); - -CloseButton.defaultProps = { - viewBox: '0 0 12 12' -}; -exports['default'] = CloseButton; - -/***/ }), -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _airbnbPropTypes = __webpack_require__(43); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -exports['default'] = (0, _airbnbPropTypes.and)([_propTypes2['default'].instanceOf(Set), function () { - function modifiers(props, propName) { - for (var _len = arguments.length, rest = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { - rest[_key - 2] = arguments[_key]; - } - - var propValue = props[propName]; - - var firstError = void 0; - [].concat(_toConsumableArray(propValue)).some(function (v, i) { - var _PropTypes$string; - - var fakePropName = String(propName) + ': index ' + String(i); - firstError = (_PropTypes$string = _propTypes2['default'].string).isRequired.apply(_PropTypes$string, [_defineProperty({}, fakePropName, v), fakePropName].concat(rest)); - return firstError != null; - }); - return firstError == null ? null : firstError; - } - - return modifiers; -}()], 'Modifiers (Set of Strings)'); - -/***/ }), -/* 102 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = toISODateString; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _toMomentObject = __webpack_require__(80); - -var _toMomentObject2 = _interopRequireDefault(_toMomentObject); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function toISODateString(date, currentFormat) { - var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat); - if (!dateObj) return null; - - return dateObj.format(_constants.ISO_FORMAT); -} - -/***/ }), -/* 103 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addEventListener", function() { return addEventListener; }); -var CAN_USE_DOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); - -// Adapted from Modernizr -// https://github.com/Modernizr/Modernizr/blob/acb3f0d9/feature-detects/dom/passiveeventlisteners.js#L26-L37 -function testPassiveEventListeners() { - if (!CAN_USE_DOM) { - return false; - } - - if (!window.addEventListener || !window.removeEventListener || !Object.defineProperty) { - return false; - } - - var supportsPassiveOption = false; - try { - var opts = Object.defineProperty({}, 'passive', { - // eslint-disable-next-line getter-return - get: function () { - function get() { - supportsPassiveOption = true; - } - - return get; - }() - }); - var noop = function noop() {}; - window.addEventListener('testPassiveEventSupport', noop, opts); - window.removeEventListener('testPassiveEventSupport', noop, opts); - } catch (e) { - // do nothing - } - - return supportsPassiveOption; -} - -var memoized = void 0; - -function canUsePassiveEventListeners() { - if (memoized === undefined) { - memoized = testPassiveEventListeners(); - } - return memoized; -} - -function normalizeEventOptions(eventOptions) { - if (!eventOptions) { - return undefined; - } - - if (!canUsePassiveEventListeners()) { - // If the browser does not support the passive option, then it is expecting - // a boolean for the options argument to specify whether it should use - // capture or not. In more modern browsers, this is passed via the `capture` - // option, so let's just hoist that value up. - return !!eventOptions.capture; - } - - return eventOptions; -} - -/* eslint-disable no-bitwise */ - -/** - * Generate a unique key for any set of event options - */ -function eventOptionsKey(normalizedEventOptions) { - if (!normalizedEventOptions) { - return 0; - } - - // If the browser does not support passive event listeners, the normalized - // event options will be a boolean. - if (normalizedEventOptions === true) { - return 100; - } - - // At this point, the browser supports passive event listeners, so we expect - // the event options to be an object with possible properties of capture, - // passive, and once. - // - // We want to consistently return the same value, regardless of the order of - // these properties, so let's use binary maths to assign each property to a - // bit, and then add those together (with an offset to account for the - // booleans at the beginning of this function). - var capture = normalizedEventOptions.capture << 0; - var passive = normalizedEventOptions.passive << 1; - var once = normalizedEventOptions.once << 2; - return capture + passive + once; -} - -function ensureCanMutateNextEventHandlers(eventHandlers) { - if (eventHandlers.handlers === eventHandlers.nextHandlers) { - // eslint-disable-next-line no-param-reassign - eventHandlers.nextHandlers = eventHandlers.handlers.slice(); - } -} - -function TargetEventHandlers(target) { - this.target = target; - this.events = {}; -} - -TargetEventHandlers.prototype.getEventHandlers = function () { - function getEventHandlers(eventName, options) { - var key = String(eventName) + ' ' + String(eventOptionsKey(options)); - - if (!this.events[key]) { - this.events[key] = { - handlers: [], - handleEvent: undefined - }; - this.events[key].nextHandlers = this.events[key].handlers; - } - - return this.events[key]; - } - - return getEventHandlers; -}(); - -TargetEventHandlers.prototype.handleEvent = function () { - function handleEvent(eventName, options, event) { - var eventHandlers = this.getEventHandlers(eventName, options); - eventHandlers.handlers = eventHandlers.nextHandlers; - eventHandlers.handlers.forEach(function (handler) { - if (handler) { - // We need to check for presence here because a handler function may - // cause later handlers to get removed. This can happen if you for - // instance have a waypoint that unmounts another waypoint as part of an - // onEnter/onLeave handler. - handler(event); - } - }); - } - - return handleEvent; -}(); - -TargetEventHandlers.prototype.add = function () { - function add(eventName, listener, options) { - var _this = this; - - // options has already been normalized at this point. - var eventHandlers = this.getEventHandlers(eventName, options); - - ensureCanMutateNextEventHandlers(eventHandlers); - - if (eventHandlers.nextHandlers.length === 0) { - eventHandlers.handleEvent = this.handleEvent.bind(this, eventName, options); - - this.target.addEventListener(eventName, eventHandlers.handleEvent, options); - } - - eventHandlers.nextHandlers.push(listener); - - var isSubscribed = true; - var unsubscribe = function () { - function unsubscribe() { - if (!isSubscribed) { - return; - } - - isSubscribed = false; - - ensureCanMutateNextEventHandlers(eventHandlers); - var index = eventHandlers.nextHandlers.indexOf(listener); - eventHandlers.nextHandlers.splice(index, 1); - - if (eventHandlers.nextHandlers.length === 0) { - // All event handlers have been removed, so we want to remove the event - // listener from the target node. - - if (_this.target) { - // There can be a race condition where the target may no longer exist - // when this function is called, e.g. when a React component is - // unmounting. Guarding against this prevents the following error: - // - // Cannot read property 'removeEventListener' of undefined - _this.target.removeEventListener(eventName, eventHandlers.handleEvent, options); - } - - eventHandlers.handleEvent = undefined; - } - } - - return unsubscribe; - }(); - return unsubscribe; - } - - return add; -}(); - -var EVENT_HANDLERS_KEY = '__consolidated_events_handlers__'; - -// eslint-disable-next-line import/prefer-default-export -function addEventListener(target, eventName, listener, options) { - if (!target[EVENT_HANDLERS_KEY]) { - // eslint-disable-next-line no-param-reassign - target[EVENT_HANDLERS_KEY] = new TargetEventHandlers(target); - } - var normalizedEventOptions = normalizeEventOptions(options); - return target[EVENT_HANDLERS_KEY].add(eventName, listener, normalizedEventOptions); -} - - - - -/***/ }), -/* 104 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = toISOMonthString; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _toMomentObject = __webpack_require__(80); - -var _toMomentObject2 = _interopRequireDefault(_toMomentObject); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function toISOMonthString(date, currentFormat) { - var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat); - if (!dateObj) return null; - - return dateObj.format(_constants.ISO_MONTH_FORMAT); -} - -/***/ }), -/* 105 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].oneOf([_constants.START_DATE, _constants.END_DATE])]); - -/***/ }), -/* 106 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = isAfterDay; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _isBeforeDay = __webpack_require__(95); - -var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay); - -var _isSameDay = __webpack_require__(79); - -var _isSameDay2 = _interopRequireDefault(_isSameDay); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function isAfterDay(a, b) { - if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false; - return !(0, _isBeforeDay2['default'])(a, b) && !(0, _isSameDay2['default'])(a, b); -} - -/***/ }), -/* 107 */, -/* 108 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var hoistNonReactStatic = __webpack_require__(140); -var React = __webpack_require__(27); -var ReactDOM = __webpack_require__(52); - -module.exports = function enhanceWithClickOutside(WrappedComponent) { - var componentName = WrappedComponent.displayName || WrappedComponent.name; - - var EnhancedComponent = function (_React$Component) { - _inherits(EnhancedComponent, _React$Component); - - function EnhancedComponent(props) { - _classCallCheck(this, EnhancedComponent); - - var _this = _possibleConstructorReturn(this, (EnhancedComponent.__proto__ || Object.getPrototypeOf(EnhancedComponent)).call(this, props)); - - _this.handleClickOutside = _this.handleClickOutside.bind(_this); - return _this; - } - - _createClass(EnhancedComponent, [{ - key: 'componentDidMount', - value: function componentDidMount() { - document.addEventListener('click', this.handleClickOutside, true); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - document.removeEventListener('click', this.handleClickOutside, true); - } - }, { - key: 'handleClickOutside', - value: function handleClickOutside(e) { - var domNode = this.__domNode; - if ((!domNode || !domNode.contains(e.target)) && this.__wrappedInstance && typeof this.__wrappedInstance.handleClickOutside === 'function') { - this.__wrappedInstance.handleClickOutside(e); - } - } - }, { - key: 'render', - value: function render() { - var _this2 = this; - - var _props = this.props, - wrappedRef = _props.wrappedRef, - rest = _objectWithoutProperties(_props, ['wrappedRef']); - - return React.createElement(WrappedComponent, _extends({}, rest, { - ref: function ref(c) { - _this2.__wrappedInstance = c; - _this2.__domNode = ReactDOM.findDOMNode(c); - wrappedRef && wrappedRef(c); - } - })); - } - }]); - - return EnhancedComponent; - }(React.Component); - - EnhancedComponent.displayName = 'clickOutside(' + componentName + ')'; - - return hoistNonReactStatic(EnhancedComponent, WrappedComponent); -}; - -/***/ }), -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(116); - -function scrollIntoView(elem, container, config) { - config = config || {}; - // document 归一化到 window - if (container.nodeType === 9) { - container = util.getWindow(container); - } - - var allowHorizontalScroll = config.allowHorizontalScroll; - var onlyScrollIfNeeded = config.onlyScrollIfNeeded; - var alignWithTop = config.alignWithTop; - var alignWithLeft = config.alignWithLeft; - var offsetTop = config.offsetTop || 0; - var offsetLeft = config.offsetLeft || 0; - var offsetBottom = config.offsetBottom || 0; - var offsetRight = config.offsetRight || 0; - - allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll; - - var isWin = util.isWindow(container); - var elemOffset = util.offset(elem); - var eh = util.outerHeight(elem); - var ew = util.outerWidth(elem); - var containerOffset = undefined; - var ch = undefined; - var cw = undefined; - var containerScroll = undefined; - var diffTop = undefined; - var diffBottom = undefined; - var win = undefined; - var winScroll = undefined; - var ww = undefined; - var wh = undefined; - - if (isWin) { - win = container; - wh = util.height(win); - ww = util.width(win); - winScroll = { - left: util.scrollLeft(win), - top: util.scrollTop(win) - }; - // elem 相对 container 可视视窗的距离 - diffTop = { - left: elemOffset.left - winScroll.left - offsetLeft, - top: elemOffset.top - winScroll.top - offsetTop - }; - diffBottom = { - left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight, - top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom - }; - containerScroll = winScroll; - } else { - containerOffset = util.offset(container); - ch = container.clientHeight; - cw = container.clientWidth; - containerScroll = { - left: container.scrollLeft, - top: container.scrollTop - }; - // elem 相对 container 可视视窗的距离 - // 注意边框, offset 是边框到根节点 - diffTop = { - left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft, - top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop - }; - diffBottom = { - left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight, - top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom - }; - } - - if (diffTop.top < 0 || diffBottom.top > 0) { - // 强制向上 - if (alignWithTop === true) { - util.scrollTop(container, containerScroll.top + diffTop.top); - } else if (alignWithTop === false) { - util.scrollTop(container, containerScroll.top + diffBottom.top); - } else { - // 自动调整 - if (diffTop.top < 0) { - util.scrollTop(container, containerScroll.top + diffTop.top); - } else { - util.scrollTop(container, containerScroll.top + diffBottom.top); - } - } - } else { - if (!onlyScrollIfNeeded) { - alignWithTop = alignWithTop === undefined ? true : !!alignWithTop; - if (alignWithTop) { - util.scrollTop(container, containerScroll.top + diffTop.top); - } else { - util.scrollTop(container, containerScroll.top + diffBottom.top); - } - } - } - - if (allowHorizontalScroll) { - if (diffTop.left < 0 || diffBottom.left > 0) { - // 强制向上 - if (alignWithLeft === true) { - util.scrollLeft(container, containerScroll.left + diffTop.left); - } else if (alignWithLeft === false) { - util.scrollLeft(container, containerScroll.left + diffBottom.left); - } else { - // 自动调整 - if (diffTop.left < 0) { - util.scrollLeft(container, containerScroll.left + diffTop.left); - } else { - util.scrollLeft(container, containerScroll.left + diffBottom.left); - } - } - } else { - if (!onlyScrollIfNeeded) { - alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft; - if (alignWithLeft) { - util.scrollLeft(container, containerScroll.left + diffTop.left); - } else { - util.scrollLeft(container, containerScroll.left + diffBottom.left); - } - } - } - } -} - -module.exports = scrollIntoView; - -/***/ }), -/* 116 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - -var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source; - -function getClientPosition(elem) { - var box = undefined; - var x = undefined; - var y = undefined; - var doc = elem.ownerDocument; - var body = doc.body; - var docElem = doc && doc.documentElement; - // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式 - box = elem.getBoundingClientRect(); - - // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop - // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确 - // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin - - x = box.left; - y = box.top; - - // In IE, most of the time, 2 extra pixels are added to the top and left - // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and - // IE6 standards mode, this border can be overridden by setting the - // document element's border to zero -- thus, we cannot rely on the - // offset always being 2 pixels. - - // In quirks mode, the offset can be determined by querying the body's - // clientLeft/clientTop, but in standards mode, it is found by querying - // the document element's clientLeft/clientTop. Since we already called - // getClientBoundingRect we have already forced a reflow, so it is not - // too expensive just to query them all. - - // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的 - // 窗口边框标准是设 documentElement ,quirks 时设置 body - // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去 - // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置 - // 标准 ie 下 docElem.clientTop 就是 border-top - // ie7 html 即窗口边框改变不了。永远为 2 - // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0 - - x -= docElem.clientLeft || body.clientLeft || 0; - y -= docElem.clientTop || body.clientTop || 0; - - return { - left: x, - top: y - }; -} - -function getScroll(w, top) { - var ret = w['page' + (top ? 'Y' : 'X') + 'Offset']; - var method = 'scroll' + (top ? 'Top' : 'Left'); - if (typeof ret !== 'number') { - var d = w.document; - // ie6,7,8 standard mode - ret = d.documentElement[method]; - if (typeof ret !== 'number') { - // quirks mode - ret = d.body[method]; - } - } - return ret; -} - -function getScrollLeft(w) { - return getScroll(w); -} - -function getScrollTop(w) { - return getScroll(w, true); -} - -function getOffset(el) { - var pos = getClientPosition(el); - var doc = el.ownerDocument; - var w = doc.defaultView || doc.parentWindow; - pos.left += getScrollLeft(w); - pos.top += getScrollTop(w); - return pos; -} -function _getComputedStyle(elem, name, computedStyle_) { - var val = ''; - var d = elem.ownerDocument; - var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null); - - // https://github.com/kissyteam/kissy/issues/61 - if (computedStyle) { - val = computedStyle.getPropertyValue(name) || computedStyle[name]; - } - - return val; -} - -var _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i'); -var RE_POS = /^(top|right|bottom|left)$/; -var CURRENT_STYLE = 'currentStyle'; -var RUNTIME_STYLE = 'runtimeStyle'; -var LEFT = 'left'; -var PX = 'px'; - -function _getComputedStyleIE(elem, name) { - // currentStyle maybe null - // http://msdn.microsoft.com/en-us/library/ms535231.aspx - var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; - - // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值 - // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19 - // 在 ie 下不对,需要直接用 offset 方式 - // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了 - - // From the awesome hack by Dean Edwards - // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 - // If we're not dealing with a regular pixel number - // but a number that has a weird ending, we need to convert it to pixels - // exclude left right for relativity - if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) { - // Remember the original values - var style = elem.style; - var left = style[LEFT]; - var rsLeft = elem[RUNTIME_STYLE][LEFT]; - - // prevent flashing of content - elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; - - // Put in the new values to get a computed value out - style[LEFT] = name === 'fontSize' ? '1em' : ret || 0; - ret = style.pixelLeft + PX; - - // Revert the changed values - style[LEFT] = left; - - elem[RUNTIME_STYLE][LEFT] = rsLeft; - } - return ret === '' ? 'auto' : ret; -} - -var getComputedStyleX = undefined; -if (typeof window !== 'undefined') { - getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE; -} - -function each(arr, fn) { - for (var i = 0; i < arr.length; i++) { - fn(arr[i]); - } -} - -function isBorderBoxFn(elem) { - return getComputedStyleX(elem, 'boxSizing') === 'border-box'; -} - -var BOX_MODELS = ['margin', 'border', 'padding']; -var CONTENT_INDEX = -1; -var PADDING_INDEX = 2; -var BORDER_INDEX = 1; -var MARGIN_INDEX = 0; - -function swap(elem, options, callback) { - var old = {}; - var style = elem.style; - var name = undefined; - - // Remember the old values, and insert the new ones - for (name in options) { - if (options.hasOwnProperty(name)) { - old[name] = style[name]; - style[name] = options[name]; - } - } - - callback.call(elem); - - // Revert the old values - for (name in options) { - if (options.hasOwnProperty(name)) { - style[name] = old[name]; - } - } -} - -function getPBMWidth(elem, props, which) { - var value = 0; - var prop = undefined; - var j = undefined; - var i = undefined; - for (j = 0; j < props.length; j++) { - prop = props[j]; - if (prop) { - for (i = 0; i < which.length; i++) { - var cssProp = undefined; - if (prop === 'border') { - cssProp = prop + which[i] + 'Width'; - } else { - cssProp = prop + which[i]; - } - value += parseFloat(getComputedStyleX(elem, cssProp)) || 0; - } - } - } - return value; -} - -/** - * A crude way of determining if an object is a window - * @member util - */ -function isWindow(obj) { - // must use == for ie8 - /* eslint eqeqeq:0 */ - return obj != null && obj == obj.window; -} - -var domUtils = {}; - -each(['Width', 'Height'], function (name) { - domUtils['doc' + name] = function (refWin) { - var d = refWin.document; - return Math.max( - // firefox chrome documentElement.scrollHeight< body.scrollHeight - // ie standard mode : documentElement.scrollHeight> body.scrollHeight - d.documentElement['scroll' + name], - // quirks : documentElement.scrollHeight 最大等于可视窗口多一点? - d.body['scroll' + name], domUtils['viewport' + name](d)); - }; - - domUtils['viewport' + name] = function (win) { - // pc browser includes scrollbar in window.innerWidth - var prop = 'client' + name; - var doc = win.document; - var body = doc.body; - var documentElement = doc.documentElement; - var documentElementProp = documentElement[prop]; - // 标准模式取 documentElement - // backcompat 取 body - return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp; - }; -}); - -/* - 得到元素的大小信息 - @param elem - @param name - @param {String} [extra] 'padding' : (css width) + padding - 'border' : (css width) + padding + border - 'margin' : (css width) + padding + border + margin - */ -function getWH(elem, name, extra) { - if (isWindow(elem)) { - return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem); - } else if (elem.nodeType === 9) { - return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem); - } - var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom']; - var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight; - var computedStyle = getComputedStyleX(elem); - var isBorderBox = isBorderBoxFn(elem, computedStyle); - var cssBoxValue = 0; - if (borderBoxValue == null || borderBoxValue <= 0) { - borderBoxValue = undefined; - // Fall back to computed then un computed css if necessary - cssBoxValue = getComputedStyleX(elem, name); - if (cssBoxValue == null || Number(cssBoxValue) < 0) { - cssBoxValue = elem.style[name] || 0; - } - // Normalize '', auto, and prepare for extra - cssBoxValue = parseFloat(cssBoxValue) || 0; - } - if (extra === undefined) { - extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX; - } - var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox; - var val = borderBoxValue || cssBoxValue; - if (extra === CONTENT_INDEX) { - if (borderBoxValueOrIsBorderBox) { - return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle); - } - return cssBoxValue; - } - if (borderBoxValueOrIsBorderBox) { - var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle); - return val + (extra === BORDER_INDEX ? 0 : padding); - } - return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle); -} - -var cssShow = { - position: 'absolute', - visibility: 'hidden', - display: 'block' -}; - -// fix #119 : https://github.com/kissyteam/kissy/issues/119 -function getWHIgnoreDisplay(elem) { - var val = undefined; - var args = arguments; - // in case elem is window - // elem.offsetWidth === undefined - if (elem.offsetWidth !== 0) { - val = getWH.apply(undefined, args); - } else { - swap(elem, cssShow, function () { - val = getWH.apply(undefined, args); - }); - } - return val; -} - -function css(el, name, v) { - var value = v; - if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') { - for (var i in name) { - if (name.hasOwnProperty(i)) { - css(el, i, name[i]); - } - } - return undefined; - } - if (typeof value !== 'undefined') { - if (typeof value === 'number') { - value += 'px'; - } - el.style[name] = value; - return undefined; - } - return getComputedStyleX(el, name); -} - -each(['width', 'height'], function (name) { - var first = name.charAt(0).toUpperCase() + name.slice(1); - domUtils['outer' + first] = function (el, includeMargin) { - return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX); - }; - var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom']; - - domUtils[name] = function (elem, val) { - if (val !== undefined) { - if (elem) { - var computedStyle = getComputedStyleX(elem); - var isBorderBox = isBorderBoxFn(elem); - if (isBorderBox) { - val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle); - } - return css(elem, name, val); - } - return undefined; - } - return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX); - }; -}); - -// 设置 elem 相对 elem.ownerDocument 的坐标 -function setOffset(elem, offset) { - // set position first, in-case top/left are set even on static elem - if (css(elem, 'position') === 'static') { - elem.style.position = 'relative'; - } - - var old = getOffset(elem); - var ret = {}; - var current = undefined; - var key = undefined; - - for (key in offset) { - if (offset.hasOwnProperty(key)) { - current = parseFloat(css(elem, key)) || 0; - ret[key] = current + offset[key] - old[key]; - } - } - css(elem, ret); -} - -module.exports = _extends({ - getWindow: function getWindow(node) { - var doc = node.ownerDocument || node; - return doc.defaultView || doc.parentWindow; - }, - offset: function offset(el, value) { - if (typeof value !== 'undefined') { - setOffset(el, value); - } else { - return getOffset(el); - } - }, - - isWindow: isWindow, - each: each, - css: css, - clone: function clone(obj) { - var ret = {}; - for (var i in obj) { - if (obj.hasOwnProperty(i)) { - ret[i] = obj[i]; - } - } - var overflow = obj.overflow; - if (overflow) { - for (var i in obj) { - if (obj.hasOwnProperty(i)) { - ret.overflow[i] = obj.overflow[i]; - } - } - } - return ret; - }, - scrollLeft: function scrollLeft(w, v) { - if (isWindow(w)) { - if (v === undefined) { - return getScrollLeft(w); - } - window.scrollTo(v, getScrollTop(w)); - } else { - if (v === undefined) { - return w.scrollLeft; - } - w.scrollLeft = v; - } - }, - scrollTop: function scrollTop(w, v) { - if (isWindow(w)) { - if (v === undefined) { - return getScrollTop(w); - } - window.scrollTo(getScrollLeft(w), v); - } else { - if (v === undefined) { - return w.scrollTop; - } - w.scrollTop = v; - } - }, - - viewportWidth: 0, - viewportHeight: 0 -}, domUtils); - -/***/ }), -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var fnToStr = Function.prototype.toString; - -var constructorRegex = /^\s*class\b/; -var isES6ClassFn = function isES6ClassFunction(value) { - try { - var fnStr = fnToStr.call(value); - return constructorRegex.test(fnStr); - } catch (e) { - return false; // not a function - } -}; - -var tryFunctionObject = function tryFunctionToStr(value) { - try { - if (isES6ClassFn(value)) { return false; } - fnToStr.call(value); - return true; - } catch (e) { - return false; - } -}; -var toStr = Object.prototype.toString; -var fnClass = '[object Function]'; -var genClass = '[object GeneratorFunction]'; -var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; - -module.exports = function isCallable(value) { - if (!value) { return false; } - if (typeof value !== 'function' && typeof value !== 'object') { return false; } - if (typeof value === 'function' && !value.prototype) { return true; } - if (hasToStringTag) { return tryFunctionObject(value); } - if (isES6ClassFn(value)) { return false; } - var strClass = toStr.call(value); - return strClass === fnClass || strClass === genClass; -}; - - -/***/ }), -/* 124 */ -/***/ (function(module, exports, __webpack_require__) { - -var bind = __webpack_require__(74); -var has = bind.call(Function.call, Object.prototype.hasOwnProperty); - -var $assign = Object.assign; - -module.exports = function assign(target, source) { - if ($assign) { - return $assign(target, source); - } - - for (var key in source) { - if (has(source, key)) { - target[key] = source[key]; - } - } - return target; -}; - - -/***/ }), -/* 125 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.PureCalendarDay = undefined; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactAddonsShallowCompare = __webpack_require__(78); - -var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare); - -var _reactMomentProptypes = __webpack_require__(64); - -var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _reactWithStyles = __webpack_require__(56); - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _defaultPhrases = __webpack_require__(47); - -var _getPhrasePropTypes = __webpack_require__(51); - -var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); - -var _getCalendarDaySettings = __webpack_require__(157); - -var _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings); - -var _ModifiersShape = __webpack_require__(101); - -var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, { - day: _reactMomentProptypes2['default'].momentObj, - daySize: _airbnbPropTypes.nonNegativeInteger, - isOutsideDay: _propTypes2['default'].bool, - modifiers: _ModifiersShape2['default'], - isFocused: _propTypes2['default'].bool, - tabIndex: _propTypes2['default'].oneOf([0, -1]), - onDayClick: _propTypes2['default'].func, - onDayMouseEnter: _propTypes2['default'].func, - onDayMouseLeave: _propTypes2['default'].func, - renderDayContents: _propTypes2['default'].func, - ariaLabelFormat: _propTypes2['default'].string, - - // internationalization - phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)) -})); - -var defaultProps = { - day: (0, _moment2['default'])(), - daySize: _constants.DAY_SIZE, - isOutsideDay: false, - modifiers: new Set(), - isFocused: false, - tabIndex: -1, - onDayClick: function () { - function onDayClick() {} - - return onDayClick; - }(), - onDayMouseEnter: function () { - function onDayMouseEnter() {} - - return onDayMouseEnter; - }(), - onDayMouseLeave: function () { - function onDayMouseLeave() {} - - return onDayMouseLeave; - }(), - - renderDayContents: null, - ariaLabelFormat: 'dddd, LL', - - // internationalization - phrases: _defaultPhrases.CalendarDayPhrases -}; - -var CalendarDay = function (_React$Component) { - _inherits(CalendarDay, _React$Component); - - function CalendarDay() { - var _ref; - - _classCallCheck(this, CalendarDay); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - var _this = _possibleConstructorReturn(this, (_ref = CalendarDay.__proto__ || Object.getPrototypeOf(CalendarDay)).call.apply(_ref, [this].concat(args))); - - _this.setButtonRef = _this.setButtonRef.bind(_this); - return _this; - } - - _createClass(CalendarDay, [{ - key: 'shouldComponentUpdate', - value: function () { - function shouldComponentUpdate(nextProps, nextState) { - return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState); - } - - return shouldComponentUpdate; - }() - }, { - key: 'componentDidUpdate', - value: function () { - function componentDidUpdate(prevProps) { - var _props = this.props, - isFocused = _props.isFocused, - tabIndex = _props.tabIndex; - - if (tabIndex === 0) { - if (isFocused || tabIndex !== prevProps.tabIndex) { - this.buttonRef.focus(); - } - } - } - - return componentDidUpdate; - }() - }, { - key: 'onDayClick', - value: function () { - function onDayClick(day, e) { - var onDayClick = this.props.onDayClick; - - onDayClick(day, e); - } - - return onDayClick; - }() - }, { - key: 'onDayMouseEnter', - value: function () { - function onDayMouseEnter(day, e) { - var onDayMouseEnter = this.props.onDayMouseEnter; - - onDayMouseEnter(day, e); - } - - return onDayMouseEnter; - }() - }, { - key: 'onDayMouseLeave', - value: function () { - function onDayMouseLeave(day, e) { - var onDayMouseLeave = this.props.onDayMouseLeave; - - onDayMouseLeave(day, e); - } - - return onDayMouseLeave; - }() - }, { - key: 'onKeyDown', - value: function () { - function onKeyDown(day, e) { - var onDayClick = this.props.onDayClick; - var key = e.key; - - if (key === 'Enter' || key === ' ') { - onDayClick(day, e); - } - } - - return onKeyDown; - }() - }, { - key: 'setButtonRef', - value: function () { - function setButtonRef(ref) { - this.buttonRef = ref; - } - - return setButtonRef; - }() - }, { - key: 'render', - value: function () { - function render() { - var _this2 = this; - - var _props2 = this.props, - day = _props2.day, - ariaLabelFormat = _props2.ariaLabelFormat, - daySize = _props2.daySize, - isOutsideDay = _props2.isOutsideDay, - modifiers = _props2.modifiers, - renderDayContents = _props2.renderDayContents, - tabIndex = _props2.tabIndex, - styles = _props2.styles, - phrases = _props2.phrases; - - - if (!day) return _react2['default'].createElement('td', null); - - var _getCalendarDaySettin = (0, _getCalendarDaySettings2['default'])(day, ariaLabelFormat, daySize, modifiers, phrases), - daySizeStyles = _getCalendarDaySettin.daySizeStyles, - useDefaultCursor = _getCalendarDaySettin.useDefaultCursor, - selected = _getCalendarDaySettin.selected, - hoveredSpan = _getCalendarDaySettin.hoveredSpan, - isOutsideRange = _getCalendarDaySettin.isOutsideRange, - ariaLabel = _getCalendarDaySettin.ariaLabel; - - return _react2['default'].createElement( - 'td', - _extends({}, (0, _reactWithStyles.css)(styles.CalendarDay, useDefaultCursor && styles.CalendarDay__defaultCursor, styles.CalendarDay__default, isOutsideDay && styles.CalendarDay__outside, modifiers.has('today') && styles.CalendarDay__today, modifiers.has('first-day-of-week') && styles.CalendarDay__firstDayOfWeek, modifiers.has('last-day-of-week') && styles.CalendarDay__lastDayOfWeek, modifiers.has('hovered-offset') && styles.CalendarDay__hovered_offset, modifiers.has('highlighted-calendar') && styles.CalendarDay__highlighted_calendar, modifiers.has('blocked-minimum-nights') && styles.CalendarDay__blocked_minimum_nights, modifiers.has('blocked-calendar') && styles.CalendarDay__blocked_calendar, hoveredSpan && styles.CalendarDay__hovered_span, modifiers.has('selected-span') && styles.CalendarDay__selected_span, modifiers.has('last-in-range') && styles.CalendarDay__last_in_range, modifiers.has('selected-start') && styles.CalendarDay__selected_start, modifiers.has('selected-end') && styles.CalendarDay__selected_end, selected && styles.CalendarDay__selected, isOutsideRange && styles.CalendarDay__blocked_out_of_range, daySizeStyles), { - role: 'button' // eslint-disable-line jsx-a11y/no-noninteractive-element-to-interactive-role - , ref: this.setButtonRef, - 'aria-label': ariaLabel, - onMouseEnter: function () { - function onMouseEnter(e) { - _this2.onDayMouseEnter(day, e); - } - - return onMouseEnter; - }(), - onMouseLeave: function () { - function onMouseLeave(e) { - _this2.onDayMouseLeave(day, e); - } - - return onMouseLeave; - }(), - onMouseUp: function () { - function onMouseUp(e) { - e.currentTarget.blur(); - } - - return onMouseUp; - }(), - onClick: function () { - function onClick(e) { - _this2.onDayClick(day, e); - } - - return onClick; - }(), - onKeyDown: function () { - function onKeyDown(e) { - _this2.onKeyDown(day, e); - } - - return onKeyDown; - }(), - tabIndex: tabIndex - }), - renderDayContents ? renderDayContents(day, modifiers) : day.format('D') - ); - } - - return render; - }() - }]); - - return CalendarDay; -}(_react2['default'].Component); - -CalendarDay.propTypes = propTypes; -CalendarDay.defaultProps = defaultProps; - -exports.PureCalendarDay = CalendarDay; -exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) { - var _ref2$reactDates = _ref2.reactDates, - color = _ref2$reactDates.color, - font = _ref2$reactDates.font; - return { - CalendarDay: { - boxSizing: 'border-box', - cursor: 'pointer', - fontSize: font.size, - textAlign: 'center', - - ':active': { - outline: 0 - } - }, - - CalendarDay__defaultCursor: { - cursor: 'default' - }, - - CalendarDay__default: { - border: '1px solid ' + String(color.core.borderLight), - color: color.text, - background: color.background, - - ':hover': { - background: color.core.borderLight, - border: '1px double ' + String(color.core.borderLight), - color: 'inherit' - } - }, - - CalendarDay__hovered_offset: { - background: color.core.borderBright, - border: '1px double ' + String(color.core.borderLight), - color: 'inherit' - }, - - CalendarDay__outside: { - border: 0, - background: color.outside.backgroundColor, - color: color.outside.color, - - ':hover': { - border: 0 - } - }, - - CalendarDay__blocked_minimum_nights: { - background: color.minimumNights.backgroundColor, - border: '1px solid ' + String(color.minimumNights.borderColor), - color: color.minimumNights.color, - - ':hover': { - background: color.minimumNights.backgroundColor_hover, - color: color.minimumNights.color_active - }, - - ':active': { - background: color.minimumNights.backgroundColor_active, - color: color.minimumNights.color_active - } - }, - - CalendarDay__highlighted_calendar: { - background: color.highlighted.backgroundColor, - color: color.highlighted.color, - - ':hover': { - background: color.highlighted.backgroundColor_hover, - color: color.highlighted.color_active - }, - - ':active': { - background: color.highlighted.backgroundColor_active, - color: color.highlighted.color_active - } - }, - - CalendarDay__selected_span: { - background: color.selectedSpan.backgroundColor, - border: '1px solid ' + String(color.selectedSpan.borderColor), - color: color.selectedSpan.color, - - ':hover': { - background: color.selectedSpan.backgroundColor_hover, - border: '1px solid ' + String(color.selectedSpan.borderColor), - color: color.selectedSpan.color_active - }, - - ':active': { - background: color.selectedSpan.backgroundColor_active, - border: '1px solid ' + String(color.selectedSpan.borderColor), - color: color.selectedSpan.color_active - } - }, - - CalendarDay__last_in_range: { - borderRight: color.core.primary - }, - - CalendarDay__selected: { - background: color.selected.backgroundColor, - border: '1px solid ' + String(color.selected.borderColor), - color: color.selected.color, - - ':hover': { - background: color.selected.backgroundColor_hover, - border: '1px solid ' + String(color.selected.borderColor), - color: color.selected.color_active - }, - - ':active': { - background: color.selected.backgroundColor_active, - border: '1px solid ' + String(color.selected.borderColor), - color: color.selected.color_active - } - }, - - CalendarDay__hovered_span: { - background: color.hoveredSpan.backgroundColor, - border: '1px solid ' + String(color.hoveredSpan.borderColor), - color: color.hoveredSpan.color, - - ':hover': { - background: color.hoveredSpan.backgroundColor_hover, - border: '1px solid ' + String(color.hoveredSpan.borderColor), - color: color.hoveredSpan.color_active - }, - - ':active': { - background: color.hoveredSpan.backgroundColor_active, - border: '1px solid ' + String(color.hoveredSpan.borderColor), - color: color.hoveredSpan.color_active - } - }, - - CalendarDay__blocked_calendar: { - background: color.blocked_calendar.backgroundColor, - border: '1px solid ' + String(color.blocked_calendar.borderColor), - color: color.blocked_calendar.color, - - ':hover': { - background: color.blocked_calendar.backgroundColor_hover, - border: '1px solid ' + String(color.blocked_calendar.borderColor), - color: color.blocked_calendar.color_active - }, - - ':active': { - background: color.blocked_calendar.backgroundColor_active, - border: '1px solid ' + String(color.blocked_calendar.borderColor), - color: color.blocked_calendar.color_active - } - }, - - CalendarDay__blocked_out_of_range: { - background: color.blocked_out_of_range.backgroundColor, - border: '1px solid ' + String(color.blocked_out_of_range.borderColor), - color: color.blocked_out_of_range.color, - - ':hover': { - background: color.blocked_out_of_range.backgroundColor_hover, - border: '1px solid ' + String(color.blocked_out_of_range.borderColor), - color: color.blocked_out_of_range.color_active - }, - - ':active': { - background: color.blocked_out_of_range.backgroundColor_active, - border: '1px solid ' + String(color.blocked_out_of_range.borderColor), - color: color.blocked_out_of_range.color_active - } - }, - - CalendarDay__selected_start: {}, - CalendarDay__selected_end: {}, - CalendarDay__today: {}, - CalendarDay__firstDayOfWeek: {}, - CalendarDay__lastDayOfWeek: {} - }; -})(CalendarDay); - -/***/ }), -/* 126 */ -/***/ (function(module, exports, __webpack_require__) { - -// eslint-disable-next-line import/no-unresolved -module.exports = __webpack_require__(303); - - -/***/ }), -/* 127 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = getInputHeight; -/* eslint-disable camelcase */ - -function getPadding(vertical, top, bottom) { - var isTopDefined = typeof top === 'number'; - var isBottomDefined = typeof bottom === 'number'; - var isVerticalDefined = typeof vertical === 'number'; - - if (isTopDefined && isBottomDefined) { - return top + bottom; - } - - if (isTopDefined && isVerticalDefined) { - return top + vertical; - } - - if (isTopDefined) { - return top; - } - - if (isBottomDefined && isVerticalDefined) { - return bottom + vertical; - } - - if (isBottomDefined) { - return bottom; - } - - if (isVerticalDefined) { - return 2 * vertical; - } - - return 0; -} - -function getInputHeight(_ref, small) { - var _ref$font$input = _ref.font.input, - lineHeight = _ref$font$input.lineHeight, - lineHeight_small = _ref$font$input.lineHeight_small, - _ref$spacing = _ref.spacing, - inputPadding = _ref$spacing.inputPadding, - displayTextPaddingVertical = _ref$spacing.displayTextPaddingVertical, - displayTextPaddingTop = _ref$spacing.displayTextPaddingTop, - displayTextPaddingBottom = _ref$spacing.displayTextPaddingBottom, - displayTextPaddingVertical_small = _ref$spacing.displayTextPaddingVertical_small, - displayTextPaddingTop_small = _ref$spacing.displayTextPaddingTop_small, - displayTextPaddingBottom_small = _ref$spacing.displayTextPaddingBottom_small; - - var calcLineHeight = small ? lineHeight_small : lineHeight; - - var padding = small ? getPadding(displayTextPaddingVertical_small, displayTextPaddingTop_small, displayTextPaddingBottom_small) : getPadding(displayTextPaddingVertical, displayTextPaddingTop, displayTextPaddingBottom); - - return parseInt(calcLineHeight, 10) + 2 * inputPadding + padding; -} - -/***/ }), -/* 128 */ -/***/ (function(module, exports) { - -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); -} - -module.exports = isObject; - - -/***/ }), -/* 129 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = toLocalizedDateString; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _toMomentObject = __webpack_require__(80); - -var _toMomentObject2 = _interopRequireDefault(_toMomentObject); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function toLocalizedDateString(date, currentFormat) { - var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat); - if (!dateObj) return null; - - return dateObj.format(_constants.DISPLAY_FORMAT); -} - -/***/ }), -/* 130 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = isDayVisible; - -var _isBeforeDay = __webpack_require__(95); - -var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay); - -var _isAfterDay = __webpack_require__(106); - -var _isAfterDay2 = _interopRequireDefault(_isAfterDay); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function isDayVisible(day, month, numberOfMonths, enableOutsideDays) { - var firstDayOfFirstMonth = month.clone().startOf('month'); - if (enableOutsideDays) firstDayOfFirstMonth = firstDayOfFirstMonth.startOf('week'); - if ((0, _isBeforeDay2['default'])(day, firstDayOfFirstMonth)) return false; - - var lastDayOfLastMonth = month.clone().add(numberOfMonths - 1, 'months').endOf('month'); - if (enableOutsideDays) lastDayOfLastMonth = lastDayOfLastMonth.endOf('week'); - return !(0, _isAfterDay2['default'])(day, lastDayOfLastMonth); -} - -/***/ }), -/* 131 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.PureDayPicker = exports.defaultProps = undefined; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactAddonsShallowCompare = __webpack_require__(78); - -var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare); - -var _airbnbPropTypes = __webpack_require__(43); - -var _reactWithStyles = __webpack_require__(56); - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _throttle = __webpack_require__(182); - -var _throttle2 = _interopRequireDefault(_throttle); - -var _isTouchDevice = __webpack_require__(82); - -var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice); - -var _reactOutsideClickHandler = __webpack_require__(126); - -var _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler); - -var _defaultPhrases = __webpack_require__(47); - -var _getPhrasePropTypes = __webpack_require__(51); - -var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); - -var _CalendarMonthGrid = __webpack_require__(160); - -var _CalendarMonthGrid2 = _interopRequireDefault(_CalendarMonthGrid); - -var _DayPickerNavigation = __webpack_require__(326); - -var _DayPickerNavigation2 = _interopRequireDefault(_DayPickerNavigation); - -var _DayPickerKeyboardShortcuts = __webpack_require__(329); - -var _DayPickerKeyboardShortcuts2 = _interopRequireDefault(_DayPickerKeyboardShortcuts); - -var _getNumberOfCalendarMonthWeeks = __webpack_require__(331); - -var _getNumberOfCalendarMonthWeeks2 = _interopRequireDefault(_getNumberOfCalendarMonthWeeks); - -var _getCalendarMonthWidth = __webpack_require__(161); - -var _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth); - -var _calculateDimension = __webpack_require__(159); - -var _calculateDimension2 = _interopRequireDefault(_calculateDimension); - -var _getActiveElement = __webpack_require__(332); - -var _getActiveElement2 = _interopRequireDefault(_getActiveElement); - -var _isDayVisible = __webpack_require__(130); - -var _isDayVisible2 = _interopRequireDefault(_isDayVisible); - -var _ModifiersShape = __webpack_require__(101); - -var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape); - -var _ScrollableOrientationShape = __webpack_require__(81); - -var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape); - -var _DayOfWeekShape = __webpack_require__(75); - -var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape); - -var _CalendarInfoPositionShape = __webpack_require__(93); - -var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var MONTH_PADDING = 23; -var PREV_TRANSITION = 'prev'; -var NEXT_TRANSITION = 'next'; -var MONTH_SELECTION_TRANSITION = 'month_selection'; -var YEAR_SELECTION_TRANSITION = 'year_selection'; - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, { - - // calendar presentation props - enableOutsideDays: _propTypes2['default'].bool, - numberOfMonths: _propTypes2['default'].number, - orientation: _ScrollableOrientationShape2['default'], - withPortal: _propTypes2['default'].bool, - onOutsideClick: _propTypes2['default'].func, - hidden: _propTypes2['default'].bool, - initialVisibleMonth: _propTypes2['default'].func, - firstDayOfWeek: _DayOfWeekShape2['default'], - renderCalendarInfo: _propTypes2['default'].func, - calendarInfoPosition: _CalendarInfoPositionShape2['default'], - hideKeyboardShortcutsPanel: _propTypes2['default'].bool, - daySize: _airbnbPropTypes.nonNegativeInteger, - isRTL: _propTypes2['default'].bool, - verticalHeight: _airbnbPropTypes.nonNegativeInteger, - noBorder: _propTypes2['default'].bool, - transitionDuration: _airbnbPropTypes.nonNegativeInteger, - verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger, - horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger, - - // navigation props - navPrev: _propTypes2['default'].node, - navNext: _propTypes2['default'].node, - noNavButtons: _propTypes2['default'].bool, - onPrevMonthClick: _propTypes2['default'].func, - onNextMonthClick: _propTypes2['default'].func, - onMonthChange: _propTypes2['default'].func, - onYearChange: _propTypes2['default'].func, - onMultiplyScrollableMonths: _propTypes2['default'].func, // VERTICAL_SCROLLABLE daypickers only - - // month props - renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'), - renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'), - - // day props - modifiers: _propTypes2['default'].objectOf(_propTypes2['default'].objectOf(_ModifiersShape2['default'])), - renderCalendarDay: _propTypes2['default'].func, - renderDayContents: _propTypes2['default'].func, - onDayClick: _propTypes2['default'].func, - onDayMouseEnter: _propTypes2['default'].func, - onDayMouseLeave: _propTypes2['default'].func, - - // accessibility props - isFocused: _propTypes2['default'].bool, - getFirstFocusableDay: _propTypes2['default'].func, - onBlur: _propTypes2['default'].func, - showKeyboardShortcuts: _propTypes2['default'].bool, - - // internationalization - monthFormat: _propTypes2['default'].string, - weekDayFormat: _propTypes2['default'].string, - phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)), - dayAriaLabelFormat: _propTypes2['default'].string -})); - -var defaultProps = exports.defaultProps = { - // calendar presentation props - enableOutsideDays: false, - numberOfMonths: 2, - orientation: _constants.HORIZONTAL_ORIENTATION, - withPortal: false, - onOutsideClick: function () { - function onOutsideClick() {} - - return onOutsideClick; - }(), - - hidden: false, - initialVisibleMonth: function () { - function initialVisibleMonth() { - return (0, _moment2['default'])(); - } - - return initialVisibleMonth; - }(), - firstDayOfWeek: null, - renderCalendarInfo: null, - calendarInfoPosition: _constants.INFO_POSITION_BOTTOM, - hideKeyboardShortcutsPanel: false, - daySize: _constants.DAY_SIZE, - isRTL: false, - verticalHeight: null, - noBorder: false, - transitionDuration: undefined, - verticalBorderSpacing: undefined, - horizontalMonthPadding: 13, - - // navigation props - navPrev: null, - navNext: null, - noNavButtons: false, - onPrevMonthClick: function () { - function onPrevMonthClick() {} - - return onPrevMonthClick; - }(), - onNextMonthClick: function () { - function onNextMonthClick() {} - - return onNextMonthClick; - }(), - onMonthChange: function () { - function onMonthChange() {} - - return onMonthChange; - }(), - onYearChange: function () { - function onYearChange() {} - - return onYearChange; - }(), - onMultiplyScrollableMonths: function () { - function onMultiplyScrollableMonths() {} - - return onMultiplyScrollableMonths; - }(), - - - // month props - renderMonthText: null, - renderMonthElement: null, - - // day props - modifiers: {}, - renderCalendarDay: undefined, - renderDayContents: null, - onDayClick: function () { - function onDayClick() {} - - return onDayClick; - }(), - onDayMouseEnter: function () { - function onDayMouseEnter() {} - - return onDayMouseEnter; - }(), - onDayMouseLeave: function () { - function onDayMouseLeave() {} - - return onDayMouseLeave; - }(), - - - // accessibility props - isFocused: false, - getFirstFocusableDay: null, - onBlur: function () { - function onBlur() {} - - return onBlur; - }(), - - showKeyboardShortcuts: false, - - // internationalization - monthFormat: 'MMMM YYYY', - weekDayFormat: 'dd', - phrases: _defaultPhrases.DayPickerPhrases, - dayAriaLabelFormat: undefined -}; - -var DayPicker = function (_React$Component) { - _inherits(DayPicker, _React$Component); - - function DayPicker(props) { - _classCallCheck(this, DayPicker); - - var _this = _possibleConstructorReturn(this, (DayPicker.__proto__ || Object.getPrototypeOf(DayPicker)).call(this, props)); - - var currentMonth = props.hidden ? (0, _moment2['default'])() : props.initialVisibleMonth(); - - var focusedDate = currentMonth.clone().startOf('month'); - if (props.getFirstFocusableDay) { - focusedDate = props.getFirstFocusableDay(currentMonth); - } - - var horizontalMonthPadding = props.horizontalMonthPadding; - - - var translationValue = props.isRTL && _this.isHorizontal() ? -(0, _getCalendarMonthWidth2['default'])(props.daySize, horizontalMonthPadding) : 0; - - _this.hasSetInitialVisibleMonth = !props.hidden; - _this.state = { - currentMonth: currentMonth, - monthTransition: null, - translationValue: translationValue, - scrollableMonthMultiple: 1, - calendarMonthWidth: (0, _getCalendarMonthWidth2['default'])(props.daySize, horizontalMonthPadding), - focusedDate: !props.hidden || props.isFocused ? focusedDate : null, - nextFocusedDate: null, - showKeyboardShortcuts: props.showKeyboardShortcuts, - onKeyboardShortcutsPanelClose: function () { - function onKeyboardShortcutsPanelClose() {} - - return onKeyboardShortcutsPanelClose; - }(), - - isTouchDevice: (0, _isTouchDevice2['default'])(), - withMouseInteractions: true, - calendarInfoWidth: 0, - monthTitleHeight: null, - hasSetHeight: false - }; - - _this.setCalendarMonthWeeks(currentMonth); - - _this.calendarMonthGridHeight = 0; - _this.setCalendarInfoWidthTimeout = null; - - _this.onKeyDown = _this.onKeyDown.bind(_this); - _this.throttledKeyDown = (0, _throttle2['default'])(_this.onFinalKeyDown, 200, { trailing: false }); - _this.onPrevMonthClick = _this.onPrevMonthClick.bind(_this); - _this.onNextMonthClick = _this.onNextMonthClick.bind(_this); - _this.onMonthChange = _this.onMonthChange.bind(_this); - _this.onYearChange = _this.onYearChange.bind(_this); - - _this.multiplyScrollableMonths = _this.multiplyScrollableMonths.bind(_this); - _this.updateStateAfterMonthTransition = _this.updateStateAfterMonthTransition.bind(_this); - - _this.openKeyboardShortcutsPanel = _this.openKeyboardShortcutsPanel.bind(_this); - _this.closeKeyboardShortcutsPanel = _this.closeKeyboardShortcutsPanel.bind(_this); - - _this.setCalendarInfoRef = _this.setCalendarInfoRef.bind(_this); - _this.setContainerRef = _this.setContainerRef.bind(_this); - _this.setTransitionContainerRef = _this.setTransitionContainerRef.bind(_this); - _this.setMonthTitleHeight = _this.setMonthTitleHeight.bind(_this); - return _this; - } - - _createClass(DayPicker, [{ - key: 'componentDidMount', - value: function () { - function componentDidMount() { - var currentMonth = this.state.currentMonth; - - if (this.calendarInfo) { - this.setState({ - isTouchDevice: (0, _isTouchDevice2['default'])(), - calendarInfoWidth: (0, _calculateDimension2['default'])(this.calendarInfo, 'width', true, true) - }); - } else { - this.setState({ isTouchDevice: (0, _isTouchDevice2['default'])() }); - } - - this.setCalendarMonthWeeks(currentMonth); - } - - return componentDidMount; - }() - }, { - key: 'componentWillReceiveProps', - value: function () { - function componentWillReceiveProps(nextProps) { - var hidden = nextProps.hidden, - isFocused = nextProps.isFocused, - showKeyboardShortcuts = nextProps.showKeyboardShortcuts, - onBlur = nextProps.onBlur, - renderMonthText = nextProps.renderMonthText, - horizontalMonthPadding = nextProps.horizontalMonthPadding; - var currentMonth = this.state.currentMonth; - - - if (!hidden) { - if (!this.hasSetInitialVisibleMonth) { - this.hasSetInitialVisibleMonth = true; - this.setState({ - currentMonth: nextProps.initialVisibleMonth() - }); - } - } - - var _props = this.props, - daySize = _props.daySize, - prevIsFocused = _props.isFocused, - prevRenderMonthText = _props.renderMonthText; - - - if (nextProps.daySize !== daySize) { - this.setState({ - calendarMonthWidth: (0, _getCalendarMonthWidth2['default'])(nextProps.daySize, horizontalMonthPadding) - }); - } - - if (isFocused !== prevIsFocused) { - if (isFocused) { - var focusedDate = this.getFocusedDay(currentMonth); - - var onKeyboardShortcutsPanelClose = this.state.onKeyboardShortcutsPanelClose; - - if (nextProps.showKeyboardShortcuts) { - // the ? shortcut came from the input and we should return input there once it is close - onKeyboardShortcutsPanelClose = onBlur; - } - - this.setState({ - showKeyboardShortcuts: showKeyboardShortcuts, - onKeyboardShortcutsPanelClose: onKeyboardShortcutsPanelClose, - focusedDate: focusedDate, - withMouseInteractions: false - }); - } else { - this.setState({ focusedDate: null }); - } - } - - if (renderMonthText !== prevRenderMonthText) { - this.setState({ - monthTitleHeight: null - }); - } - } - - return componentWillReceiveProps; - }() - }, { - key: 'shouldComponentUpdate', - value: function () { - function shouldComponentUpdate(nextProps, nextState) { - return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState); - } - - return shouldComponentUpdate; - }() - }, { - key: 'componentWillUpdate', - value: function () { - function componentWillUpdate() { - var _this2 = this; - - var transitionDuration = this.props.transitionDuration; - - // Calculating the dimensions trigger a DOM repaint which - // breaks the CSS transition. - // The setTimeout will wait until the transition ends. - - if (this.calendarInfo) { - this.setCalendarInfoWidthTimeout = setTimeout(function () { - var calendarInfoWidth = _this2.state.calendarInfoWidth; - - var calendarInfoPanelWidth = (0, _calculateDimension2['default'])(_this2.calendarInfo, 'width', true, true); - if (calendarInfoWidth !== calendarInfoPanelWidth) { - _this2.setState({ - calendarInfoWidth: calendarInfoPanelWidth - }); - } - }, transitionDuration); - } - } - - return componentWillUpdate; - }() - }, { - key: 'componentDidUpdate', - value: function () { - function componentDidUpdate(prevProps) { - var _props2 = this.props, - orientation = _props2.orientation, - daySize = _props2.daySize, - isFocused = _props2.isFocused, - numberOfMonths = _props2.numberOfMonths; - var _state = this.state, - focusedDate = _state.focusedDate, - monthTitleHeight = _state.monthTitleHeight; - - - if (this.isHorizontal() && (orientation !== prevProps.orientation || daySize !== prevProps.daySize)) { - var visibleCalendarWeeks = this.calendarMonthWeeks.slice(1, numberOfMonths + 1); - var calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1); - var newMonthHeight = monthTitleHeight + calendarMonthWeeksHeight + 1; - this.adjustDayPickerHeight(newMonthHeight); - } - - if (!prevProps.isFocused && isFocused && !focusedDate) { - this.container.focus(); - } - } - - return componentDidUpdate; - }() - }, { - key: 'componentWillUnmount', - value: function () { - function componentWillUnmount() { - clearTimeout(this.setCalendarInfoWidthTimeout); - } - - return componentWillUnmount; - }() - }, { - key: 'onKeyDown', - value: function () { - function onKeyDown(e) { - e.stopPropagation(); - if (!_constants.MODIFIER_KEY_NAMES.has(e.key)) { - this.throttledKeyDown(e); - } - } - - return onKeyDown; - }() - }, { - key: 'onFinalKeyDown', - value: function () { - function onFinalKeyDown(e) { - this.setState({ withMouseInteractions: false }); - - var _props3 = this.props, - onBlur = _props3.onBlur, - isRTL = _props3.isRTL; - var _state2 = this.state, - focusedDate = _state2.focusedDate, - showKeyboardShortcuts = _state2.showKeyboardShortcuts; - - if (!focusedDate) return; - - var newFocusedDate = focusedDate.clone(); - - var didTransitionMonth = false; - - // focus might be anywhere when the keyboard shortcuts panel is opened so we want to - // return it to wherever it was before when the panel was opened - var activeElement = (0, _getActiveElement2['default'])(); - var onKeyboardShortcutsPanelClose = function () { - function onKeyboardShortcutsPanelClose() { - if (activeElement) activeElement.focus(); - } - - return onKeyboardShortcutsPanelClose; - }(); - - switch (e.key) { - case 'ArrowUp': - e.preventDefault(); - newFocusedDate.subtract(1, 'week'); - didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate); - break; - case 'ArrowLeft': - e.preventDefault(); - if (isRTL) { - newFocusedDate.add(1, 'day'); - } else { - newFocusedDate.subtract(1, 'day'); - } - didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate); - break; - case 'Home': - e.preventDefault(); - newFocusedDate.startOf('week'); - didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate); - break; - case 'PageUp': - e.preventDefault(); - newFocusedDate.subtract(1, 'month'); - didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate); - break; - - case 'ArrowDown': - e.preventDefault(); - newFocusedDate.add(1, 'week'); - didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate); - break; - case 'ArrowRight': - e.preventDefault(); - if (isRTL) { - newFocusedDate.subtract(1, 'day'); - } else { - newFocusedDate.add(1, 'day'); - } - didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate); - break; - case 'End': - e.preventDefault(); - newFocusedDate.endOf('week'); - didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate); - break; - case 'PageDown': - e.preventDefault(); - newFocusedDate.add(1, 'month'); - didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate); - break; - - case '?': - this.openKeyboardShortcutsPanel(onKeyboardShortcutsPanelClose); - break; - - case 'Escape': - if (showKeyboardShortcuts) { - this.closeKeyboardShortcutsPanel(); - } else { - onBlur(); - } - break; - - default: - break; - } - - // If there was a month transition, do not update the focused date until the transition has - // completed. Otherwise, attempting to focus on a DOM node may interrupt the CSS animation. If - // didTransitionMonth is true, the focusedDate gets updated in #updateStateAfterMonthTransition - if (!didTransitionMonth) { - this.setState({ - focusedDate: newFocusedDate - }); - } - } - - return onFinalKeyDown; - }() - }, { - key: 'onPrevMonthClick', - value: function () { - function onPrevMonthClick(nextFocusedDate, e) { - var _props4 = this.props, - daySize = _props4.daySize, - isRTL = _props4.isRTL, - numberOfMonths = _props4.numberOfMonths; - var _state3 = this.state, - calendarMonthWidth = _state3.calendarMonthWidth, - monthTitleHeight = _state3.monthTitleHeight; - - - if (e) e.preventDefault(); - - var translationValue = void 0; - if (this.isVertical()) { - var calendarMonthWeeksHeight = this.calendarMonthWeeks[0] * (daySize - 1); - translationValue = monthTitleHeight + calendarMonthWeeksHeight + 1; - } else if (this.isHorizontal()) { - translationValue = calendarMonthWidth; - if (isRTL) { - translationValue = -2 * calendarMonthWidth; - } - - var visibleCalendarWeeks = this.calendarMonthWeeks.slice(0, numberOfMonths); - var _calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1); - var newMonthHeight = monthTitleHeight + _calendarMonthWeeksHeight + 1; - this.adjustDayPickerHeight(newMonthHeight); - } - - this.setState({ - monthTransition: PREV_TRANSITION, - translationValue: translationValue, - focusedDate: null, - nextFocusedDate: nextFocusedDate - }); - } - - return onPrevMonthClick; - }() - }, { - key: 'onMonthChange', - value: function () { - function onMonthChange(currentMonth) { - this.setCalendarMonthWeeks(currentMonth); - this.calculateAndSetDayPickerHeight(); - - // Translation value is a hack to force an invisible transition that - // properly rerenders the CalendarMonthGrid - this.setState({ - monthTransition: MONTH_SELECTION_TRANSITION, - translationValue: 0.00001, - focusedDate: null, - nextFocusedDate: currentMonth, - currentMonth: currentMonth - }); - } - - return onMonthChange; - }() - }, { - key: 'onYearChange', - value: function () { - function onYearChange(currentMonth) { - this.setCalendarMonthWeeks(currentMonth); - this.calculateAndSetDayPickerHeight(); - - // Translation value is a hack to force an invisible transition that - // properly rerenders the CalendarMonthGrid - this.setState({ - monthTransition: YEAR_SELECTION_TRANSITION, - translationValue: 0.0001, - focusedDate: null, - nextFocusedDate: currentMonth, - currentMonth: currentMonth - }); - } - - return onYearChange; - }() - }, { - key: 'onNextMonthClick', - value: function () { - function onNextMonthClick(nextFocusedDate, e) { - var _props5 = this.props, - isRTL = _props5.isRTL, - numberOfMonths = _props5.numberOfMonths, - daySize = _props5.daySize; - var _state4 = this.state, - calendarMonthWidth = _state4.calendarMonthWidth, - monthTitleHeight = _state4.monthTitleHeight; - - - if (e) e.preventDefault(); - - var translationValue = void 0; - - if (this.isVertical()) { - var firstVisibleMonthWeeks = this.calendarMonthWeeks[1]; - var calendarMonthWeeksHeight = firstVisibleMonthWeeks * (daySize - 1); - translationValue = -(monthTitleHeight + calendarMonthWeeksHeight + 1); - } - - if (this.isHorizontal()) { - translationValue = -calendarMonthWidth; - if (isRTL) { - translationValue = 0; - } - - var visibleCalendarWeeks = this.calendarMonthWeeks.slice(2, numberOfMonths + 2); - var _calendarMonthWeeksHeight2 = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1); - var newMonthHeight = monthTitleHeight + _calendarMonthWeeksHeight2 + 1; - this.adjustDayPickerHeight(newMonthHeight); - } - - this.setState({ - monthTransition: NEXT_TRANSITION, - translationValue: translationValue, - focusedDate: null, - nextFocusedDate: nextFocusedDate - }); - } - - return onNextMonthClick; - }() - }, { - key: 'getFirstDayOfWeek', - value: function () { - function getFirstDayOfWeek() { - var firstDayOfWeek = this.props.firstDayOfWeek; - - if (firstDayOfWeek == null) { - return _moment2['default'].localeData().firstDayOfWeek(); - } - - return firstDayOfWeek; - } - - return getFirstDayOfWeek; - }() - }, { - key: 'getFirstVisibleIndex', - value: function () { - function getFirstVisibleIndex() { - var orientation = this.props.orientation; - var monthTransition = this.state.monthTransition; - - - if (orientation === _constants.VERTICAL_SCROLLABLE) return 0; - - var firstVisibleMonthIndex = 1; - if (monthTransition === PREV_TRANSITION) { - firstVisibleMonthIndex -= 1; - } else if (monthTransition === NEXT_TRANSITION) { - firstVisibleMonthIndex += 1; - } - - return firstVisibleMonthIndex; - } - - return getFirstVisibleIndex; - }() - }, { - key: 'getFocusedDay', - value: function () { - function getFocusedDay(newMonth) { - var _props6 = this.props, - getFirstFocusableDay = _props6.getFirstFocusableDay, - numberOfMonths = _props6.numberOfMonths; - - - var focusedDate = void 0; - if (getFirstFocusableDay) { - focusedDate = getFirstFocusableDay(newMonth); - } - - if (newMonth && (!focusedDate || !(0, _isDayVisible2['default'])(focusedDate, newMonth, numberOfMonths))) { - focusedDate = newMonth.clone().startOf('month'); - } - - return focusedDate; - } - - return getFocusedDay; - }() - }, { - key: 'setMonthTitleHeight', - value: function () { - function setMonthTitleHeight(monthTitleHeight) { - var _this3 = this; - - this.setState({ - monthTitleHeight: monthTitleHeight - }, function () { - _this3.calculateAndSetDayPickerHeight(); - }); - } - - return setMonthTitleHeight; - }() - }, { - key: 'setCalendarMonthWeeks', - value: function () { - function setCalendarMonthWeeks(currentMonth) { - var numberOfMonths = this.props.numberOfMonths; - - - this.calendarMonthWeeks = []; - var month = currentMonth.clone().subtract(1, 'months'); - var firstDayOfWeek = this.getFirstDayOfWeek(); - for (var i = 0; i < numberOfMonths + 2; i += 1) { - var numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(month, firstDayOfWeek); - this.calendarMonthWeeks.push(numberOfWeeks); - month = month.add(1, 'months'); - } - } - - return setCalendarMonthWeeks; - }() - }, { - key: 'setContainerRef', - value: function () { - function setContainerRef(ref) { - this.container = ref; - } - - return setContainerRef; - }() - }, { - key: 'setCalendarInfoRef', - value: function () { - function setCalendarInfoRef(ref) { - this.calendarInfo = ref; - } - - return setCalendarInfoRef; - }() - }, { - key: 'setTransitionContainerRef', - value: function () { - function setTransitionContainerRef(ref) { - this.transitionContainer = ref; - } - - return setTransitionContainerRef; - }() - }, { - key: 'maybeTransitionNextMonth', - value: function () { - function maybeTransitionNextMonth(newFocusedDate) { - var numberOfMonths = this.props.numberOfMonths; - var _state5 = this.state, - currentMonth = _state5.currentMonth, - focusedDate = _state5.focusedDate; - - - var newFocusedDateMonth = newFocusedDate.month(); - var focusedDateMonth = focusedDate.month(); - var isNewFocusedDateVisible = (0, _isDayVisible2['default'])(newFocusedDate, currentMonth, numberOfMonths); - if (newFocusedDateMonth !== focusedDateMonth && !isNewFocusedDateVisible) { - this.onNextMonthClick(newFocusedDate); - return true; - } - - return false; - } - - return maybeTransitionNextMonth; - }() - }, { - key: 'maybeTransitionPrevMonth', - value: function () { - function maybeTransitionPrevMonth(newFocusedDate) { - var numberOfMonths = this.props.numberOfMonths; - var _state6 = this.state, - currentMonth = _state6.currentMonth, - focusedDate = _state6.focusedDate; - - - var newFocusedDateMonth = newFocusedDate.month(); - var focusedDateMonth = focusedDate.month(); - var isNewFocusedDateVisible = (0, _isDayVisible2['default'])(newFocusedDate, currentMonth, numberOfMonths); - if (newFocusedDateMonth !== focusedDateMonth && !isNewFocusedDateVisible) { - this.onPrevMonthClick(newFocusedDate); - return true; - } - - return false; - } - - return maybeTransitionPrevMonth; - }() - }, { - key: 'multiplyScrollableMonths', - value: function () { - function multiplyScrollableMonths(e) { - var onMultiplyScrollableMonths = this.props.onMultiplyScrollableMonths; - - if (e) e.preventDefault(); - - if (onMultiplyScrollableMonths) onMultiplyScrollableMonths(e); - - this.setState(function (_ref) { - var scrollableMonthMultiple = _ref.scrollableMonthMultiple; - return { - scrollableMonthMultiple: scrollableMonthMultiple + 1 - }; - }); - } - - return multiplyScrollableMonths; - }() - }, { - key: 'isHorizontal', - value: function () { - function isHorizontal() { - var orientation = this.props.orientation; - - return orientation === _constants.HORIZONTAL_ORIENTATION; - } - - return isHorizontal; - }() - }, { - key: 'isVertical', - value: function () { - function isVertical() { - var orientation = this.props.orientation; - - return orientation === _constants.VERTICAL_ORIENTATION || orientation === _constants.VERTICAL_SCROLLABLE; - } - - return isVertical; - }() - }, { - key: 'updateStateAfterMonthTransition', - value: function () { - function updateStateAfterMonthTransition() { - var _this4 = this; - - var _props7 = this.props, - onPrevMonthClick = _props7.onPrevMonthClick, - onNextMonthClick = _props7.onNextMonthClick, - numberOfMonths = _props7.numberOfMonths, - onMonthChange = _props7.onMonthChange, - onYearChange = _props7.onYearChange, - isRTL = _props7.isRTL; - var _state7 = this.state, - currentMonth = _state7.currentMonth, - monthTransition = _state7.monthTransition, - focusedDate = _state7.focusedDate, - nextFocusedDate = _state7.nextFocusedDate, - withMouseInteractions = _state7.withMouseInteractions, - calendarMonthWidth = _state7.calendarMonthWidth; - - - if (!monthTransition) return; - - var newMonth = currentMonth.clone(); - var firstDayOfWeek = this.getFirstDayOfWeek(); - if (monthTransition === PREV_TRANSITION) { - newMonth.subtract(1, 'month'); - if (onPrevMonthClick) onPrevMonthClick(newMonth); - var newInvisibleMonth = newMonth.clone().subtract(1, 'month'); - var numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(newInvisibleMonth, firstDayOfWeek); - this.calendarMonthWeeks = [numberOfWeeks].concat(_toConsumableArray(this.calendarMonthWeeks.slice(0, -1))); - } else if (monthTransition === NEXT_TRANSITION) { - newMonth.add(1, 'month'); - if (onNextMonthClick) onNextMonthClick(newMonth); - var _newInvisibleMonth = newMonth.clone().add(numberOfMonths, 'month'); - var _numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(_newInvisibleMonth, firstDayOfWeek); - this.calendarMonthWeeks = [].concat(_toConsumableArray(this.calendarMonthWeeks.slice(1)), [_numberOfWeeks]); - } else if (monthTransition === MONTH_SELECTION_TRANSITION) { - if (onMonthChange) onMonthChange(newMonth); - } else if (monthTransition === YEAR_SELECTION_TRANSITION) { - if (onYearChange) onYearChange(newMonth); - } - - var newFocusedDate = null; - if (nextFocusedDate) { - newFocusedDate = nextFocusedDate; - } else if (!focusedDate && !withMouseInteractions) { - newFocusedDate = this.getFocusedDay(newMonth); - } - - this.setState({ - currentMonth: newMonth, - monthTransition: null, - translationValue: isRTL && this.isHorizontal() ? -calendarMonthWidth : 0, - nextFocusedDate: null, - focusedDate: newFocusedDate - }, function () { - // we don't want to focus on the relevant calendar day after a month transition - // if the user is navigating around using a mouse - if (withMouseInteractions) { - var activeElement = (0, _getActiveElement2['default'])(); - if (activeElement && activeElement !== document.body && _this4.container.contains(activeElement)) { - activeElement.blur(); - } - } - }); - } - - return updateStateAfterMonthTransition; - }() - }, { - key: 'adjustDayPickerHeight', - value: function () { - function adjustDayPickerHeight(newMonthHeight) { - var _this5 = this; - - var monthHeight = newMonthHeight + MONTH_PADDING; - if (monthHeight !== this.calendarMonthGridHeight) { - this.transitionContainer.style.height = String(monthHeight) + 'px'; - if (!this.calendarMonthGridHeight) { - setTimeout(function () { - _this5.setState({ hasSetHeight: true }); - }, 0); - } - this.calendarMonthGridHeight = monthHeight; - } - } - - return adjustDayPickerHeight; - }() - }, { - key: 'calculateAndSetDayPickerHeight', - value: function () { - function calculateAndSetDayPickerHeight() { - var _props8 = this.props, - daySize = _props8.daySize, - numberOfMonths = _props8.numberOfMonths; - var monthTitleHeight = this.state.monthTitleHeight; - - - var visibleCalendarWeeks = this.calendarMonthWeeks.slice(1, numberOfMonths + 1); - var calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1); - var newMonthHeight = monthTitleHeight + calendarMonthWeeksHeight + 1; - - if (this.isHorizontal()) { - this.adjustDayPickerHeight(newMonthHeight); - } - } - - return calculateAndSetDayPickerHeight; - }() - }, { - key: 'openKeyboardShortcutsPanel', - value: function () { - function openKeyboardShortcutsPanel(onCloseCallBack) { - this.setState({ - showKeyboardShortcuts: true, - onKeyboardShortcutsPanelClose: onCloseCallBack - }); - } - - return openKeyboardShortcutsPanel; - }() - }, { - key: 'closeKeyboardShortcutsPanel', - value: function () { - function closeKeyboardShortcutsPanel() { - var onKeyboardShortcutsPanelClose = this.state.onKeyboardShortcutsPanelClose; - - - if (onKeyboardShortcutsPanelClose) { - onKeyboardShortcutsPanelClose(); - } - - this.setState({ - onKeyboardShortcutsPanelClose: null, - showKeyboardShortcuts: false - }); - } - - return closeKeyboardShortcutsPanel; - }() - }, { - key: 'renderNavigation', - value: function () { - function renderNavigation() { - var _this6 = this; - - var _props9 = this.props, - navPrev = _props9.navPrev, - navNext = _props9.navNext, - noNavButtons = _props9.noNavButtons, - orientation = _props9.orientation, - phrases = _props9.phrases, - isRTL = _props9.isRTL; - - - if (noNavButtons) { - return null; - } - - var onNextMonthClick = void 0; - if (orientation === _constants.VERTICAL_SCROLLABLE) { - onNextMonthClick = this.multiplyScrollableMonths; - } else { - onNextMonthClick = function () { - function onNextMonthClick(e) { - _this6.onNextMonthClick(null, e); - } - - return onNextMonthClick; - }(); - } - - return _react2['default'].createElement(_DayPickerNavigation2['default'], { - onPrevMonthClick: function () { - function onPrevMonthClick(e) { - _this6.onPrevMonthClick(null, e); - } - - return onPrevMonthClick; - }(), - onNextMonthClick: onNextMonthClick, - navPrev: navPrev, - navNext: navNext, - orientation: orientation, - phrases: phrases, - isRTL: isRTL - }); - } - - return renderNavigation; - }() - }, { - key: 'renderWeekHeader', - value: function () { - function renderWeekHeader(index) { - var _props10 = this.props, - daySize = _props10.daySize, - horizontalMonthPadding = _props10.horizontalMonthPadding, - orientation = _props10.orientation, - weekDayFormat = _props10.weekDayFormat, - styles = _props10.styles; - var calendarMonthWidth = this.state.calendarMonthWidth; - - var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE; - var horizontalStyle = { - left: index * calendarMonthWidth - }; - var verticalStyle = { - marginLeft: -calendarMonthWidth / 2 - }; - - var weekHeaderStyle = {}; // no styles applied to the vertical-scrollable orientation - if (this.isHorizontal()) { - weekHeaderStyle = horizontalStyle; - } else if (this.isVertical() && !verticalScrollable) { - weekHeaderStyle = verticalStyle; - } - - var firstDayOfWeek = this.getFirstDayOfWeek(); - - var header = []; - for (var i = 0; i < 7; i += 1) { - header.push(_react2['default'].createElement( - 'li', - _extends({ key: i }, (0, _reactWithStyles.css)(styles.DayPicker_weekHeader_li, { width: daySize })), - _react2['default'].createElement( - 'small', - null, - (0, _moment2['default'])().day((i + firstDayOfWeek) % 7).format(weekDayFormat) - ) - )); - } - - return _react2['default'].createElement( - 'div', - _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_weekHeader, this.isVertical() && styles.DayPicker_weekHeader__vertical, verticalScrollable && styles.DayPicker_weekHeader__verticalScrollable, weekHeaderStyle, { padding: '0 ' + String(horizontalMonthPadding) + 'px' }), { - key: 'week-' + String(index) - }), - _react2['default'].createElement( - 'ul', - (0, _reactWithStyles.css)(styles.DayPicker_weekHeader_ul), - header - ) - ); - } - - return renderWeekHeader; - }() - }, { - key: 'render', - value: function () { - function render() { - var _this7 = this; - - var _state8 = this.state, - calendarMonthWidth = _state8.calendarMonthWidth, - currentMonth = _state8.currentMonth, - monthTransition = _state8.monthTransition, - translationValue = _state8.translationValue, - scrollableMonthMultiple = _state8.scrollableMonthMultiple, - focusedDate = _state8.focusedDate, - showKeyboardShortcuts = _state8.showKeyboardShortcuts, - isTouch = _state8.isTouchDevice, - hasSetHeight = _state8.hasSetHeight, - calendarInfoWidth = _state8.calendarInfoWidth, - monthTitleHeight = _state8.monthTitleHeight; - var _props11 = this.props, - enableOutsideDays = _props11.enableOutsideDays, - numberOfMonths = _props11.numberOfMonths, - orientation = _props11.orientation, - modifiers = _props11.modifiers, - withPortal = _props11.withPortal, - onDayClick = _props11.onDayClick, - onDayMouseEnter = _props11.onDayMouseEnter, - onDayMouseLeave = _props11.onDayMouseLeave, - firstDayOfWeek = _props11.firstDayOfWeek, - renderMonthText = _props11.renderMonthText, - renderCalendarDay = _props11.renderCalendarDay, - renderDayContents = _props11.renderDayContents, - renderCalendarInfo = _props11.renderCalendarInfo, - renderMonthElement = _props11.renderMonthElement, - calendarInfoPosition = _props11.calendarInfoPosition, - hideKeyboardShortcutsPanel = _props11.hideKeyboardShortcutsPanel, - onOutsideClick = _props11.onOutsideClick, - monthFormat = _props11.monthFormat, - daySize = _props11.daySize, - isFocused = _props11.isFocused, - isRTL = _props11.isRTL, - styles = _props11.styles, - theme = _props11.theme, - phrases = _props11.phrases, - verticalHeight = _props11.verticalHeight, - dayAriaLabelFormat = _props11.dayAriaLabelFormat, - noBorder = _props11.noBorder, - transitionDuration = _props11.transitionDuration, - verticalBorderSpacing = _props11.verticalBorderSpacing, - horizontalMonthPadding = _props11.horizontalMonthPadding; - var dayPickerHorizontalPadding = theme.reactDates.spacing.dayPickerHorizontalPadding; - - - var isHorizontal = this.isHorizontal(); - - var numOfWeekHeaders = this.isVertical() ? 1 : numberOfMonths; - var weekHeaders = []; - for (var i = 0; i < numOfWeekHeaders; i += 1) { - weekHeaders.push(this.renderWeekHeader(i)); - } - - var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE; - var height = void 0; - if (isHorizontal) { - height = this.calendarMonthGridHeight; - } else if (this.isVertical() && !verticalScrollable && !withPortal) { - // If the user doesn't set a desired height, - // we default back to this kind of made-up value that generally looks good - height = verticalHeight || 1.75 * calendarMonthWidth; - } - - var isCalendarMonthGridAnimating = monthTransition !== null; - - var shouldFocusDate = !isCalendarMonthGridAnimating && isFocused; - - var keyboardShortcutButtonLocation = _DayPickerKeyboardShortcuts.BOTTOM_RIGHT; - if (this.isVertical()) { - keyboardShortcutButtonLocation = withPortal ? _DayPickerKeyboardShortcuts.TOP_LEFT : _DayPickerKeyboardShortcuts.TOP_RIGHT; - } - - var shouldAnimateHeight = isHorizontal && hasSetHeight; - - var calendarInfoPositionTop = calendarInfoPosition === _constants.INFO_POSITION_TOP; - var calendarInfoPositionBottom = calendarInfoPosition === _constants.INFO_POSITION_BOTTOM; - var calendarInfoPositionBefore = calendarInfoPosition === _constants.INFO_POSITION_BEFORE; - var calendarInfoPositionAfter = calendarInfoPosition === _constants.INFO_POSITION_AFTER; - var calendarInfoIsInline = calendarInfoPositionBefore || calendarInfoPositionAfter; - - var calendarInfo = renderCalendarInfo && _react2['default'].createElement( - 'div', - _extends({ - ref: this.setCalendarInfoRef - }, (0, _reactWithStyles.css)(calendarInfoIsInline && styles.DayPicker_calendarInfo__horizontal)), - renderCalendarInfo() - ); - - var calendarInfoPanelWidth = renderCalendarInfo && calendarInfoIsInline ? calendarInfoWidth : 0; - - var firstVisibleMonthIndex = this.getFirstVisibleIndex(); - var wrapperHorizontalWidth = calendarMonthWidth * numberOfMonths + 2 * dayPickerHorizontalPadding; - // Adding `1px` because of whitespace between 2 inline-block - var fullHorizontalWidth = wrapperHorizontalWidth + calendarInfoPanelWidth + 1; - - var transitionContainerStyle = { - width: isHorizontal && wrapperHorizontalWidth, - height: height - }; - - var dayPickerWrapperStyle = { - width: isHorizontal && wrapperHorizontalWidth - }; - - var dayPickerStyle = { - width: isHorizontal && fullHorizontalWidth, - - // These values are to center the datepicker (approximately) on the page - marginLeft: isHorizontal && withPortal ? -fullHorizontalWidth / 2 : null, - marginTop: isHorizontal && withPortal ? -calendarMonthWidth / 2 : null - }; - - return _react2['default'].createElement( - 'div', - _extends({ - role: 'application', - 'aria-label': phrases.calendarLabel - }, (0, _reactWithStyles.css)(styles.DayPicker, isHorizontal && styles.DayPicker__horizontal, verticalScrollable && styles.DayPicker__verticalScrollable, isHorizontal && withPortal && styles.DayPicker_portal__horizontal, this.isVertical() && withPortal && styles.DayPicker_portal__vertical, dayPickerStyle, !monthTitleHeight && styles.DayPicker__hidden, !noBorder && styles.DayPicker__withBorder)), - _react2['default'].createElement( - _reactOutsideClickHandler2['default'], - { onOutsideClick: onOutsideClick }, - (calendarInfoPositionTop || calendarInfoPositionBefore) && calendarInfo, - _react2['default'].createElement( - 'div', - (0, _reactWithStyles.css)(dayPickerWrapperStyle, calendarInfoIsInline && isHorizontal && styles.DayPicker_wrapper__horizontal), - _react2['default'].createElement( - 'div', - _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_weekHeaders, isHorizontal && styles.DayPicker_weekHeaders__horizontal), { - 'aria-hidden': 'true', - role: 'presentation' - }), - weekHeaders - ), - _react2['default'].createElement( - 'div', - _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_focusRegion), { - ref: this.setContainerRef, - onClick: function () { - function onClick(e) { - e.stopPropagation(); - } - - return onClick; - }(), - onKeyDown: this.onKeyDown, - onMouseUp: function () { - function onMouseUp() { - _this7.setState({ withMouseInteractions: true }); - } - - return onMouseUp; - }(), - role: 'region', - tabIndex: -1 - }), - !verticalScrollable && this.renderNavigation(), - _react2['default'].createElement( - 'div', - _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_transitionContainer, shouldAnimateHeight && styles.DayPicker_transitionContainer__horizontal, this.isVertical() && styles.DayPicker_transitionContainer__vertical, verticalScrollable && styles.DayPicker_transitionContainer__verticalScrollable, transitionContainerStyle), { - ref: this.setTransitionContainerRef - }), - _react2['default'].createElement(_CalendarMonthGrid2['default'], { - setMonthTitleHeight: !monthTitleHeight ? this.setMonthTitleHeight : undefined, - translationValue: translationValue, - enableOutsideDays: enableOutsideDays, - firstVisibleMonthIndex: firstVisibleMonthIndex, - initialMonth: currentMonth, - isAnimating: isCalendarMonthGridAnimating, - modifiers: modifiers, - orientation: orientation, - numberOfMonths: numberOfMonths * scrollableMonthMultiple, - onDayClick: onDayClick, - onDayMouseEnter: onDayMouseEnter, - onDayMouseLeave: onDayMouseLeave, - onMonthChange: this.onMonthChange, - onYearChange: this.onYearChange, - renderMonthText: renderMonthText, - renderCalendarDay: renderCalendarDay, - renderDayContents: renderDayContents, - renderMonthElement: renderMonthElement, - onMonthTransitionEnd: this.updateStateAfterMonthTransition, - monthFormat: monthFormat, - daySize: daySize, - firstDayOfWeek: firstDayOfWeek, - isFocused: shouldFocusDate, - focusedDate: focusedDate, - phrases: phrases, - isRTL: isRTL, - dayAriaLabelFormat: dayAriaLabelFormat, - transitionDuration: transitionDuration, - verticalBorderSpacing: verticalBorderSpacing, - horizontalMonthPadding: horizontalMonthPadding - }), - verticalScrollable && this.renderNavigation() - ), - !isTouch && !hideKeyboardShortcutsPanel && _react2['default'].createElement(_DayPickerKeyboardShortcuts2['default'], { - block: this.isVertical() && !withPortal, - buttonLocation: keyboardShortcutButtonLocation, - showKeyboardShortcutsPanel: showKeyboardShortcuts, - openKeyboardShortcutsPanel: this.openKeyboardShortcutsPanel, - closeKeyboardShortcutsPanel: this.closeKeyboardShortcutsPanel, - phrases: phrases - }) - ) - ), - (calendarInfoPositionBottom || calendarInfoPositionAfter) && calendarInfo - ) - ); - } - - return render; - }() - }]); - - return DayPicker; -}(_react2['default'].Component); - -DayPicker.propTypes = propTypes; -DayPicker.defaultProps = defaultProps; - -exports.PureDayPicker = DayPicker; -exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) { - var _ref2$reactDates = _ref2.reactDates, - color = _ref2$reactDates.color, - font = _ref2$reactDates.font, - noScrollBarOnVerticalScrollable = _ref2$reactDates.noScrollBarOnVerticalScrollable, - spacing = _ref2$reactDates.spacing, - zIndex = _ref2$reactDates.zIndex; - return { - DayPicker: { - background: color.background, - position: 'relative', - textAlign: 'left' - }, - - DayPicker__horizontal: { - background: color.background - }, - - DayPicker__verticalScrollable: { - height: '100%' - }, - - DayPicker__hidden: { - visibility: 'hidden' - }, - - DayPicker__withBorder: { - boxShadow: '0 2px 6px rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.07)', - borderRadius: 3 - }, - - DayPicker_portal__horizontal: { - boxShadow: 'none', - position: 'absolute', - left: '50%', - top: '50%' - }, - - DayPicker_portal__vertical: { - position: 'initial' - }, - - DayPicker_focusRegion: { - outline: 'none' - }, - - DayPicker_calendarInfo__horizontal: { - display: 'inline-block', - verticalAlign: 'top' - }, - - DayPicker_wrapper__horizontal: { - display: 'inline-block', - verticalAlign: 'top' - }, - - DayPicker_weekHeaders: { - position: 'relative' - }, - - DayPicker_weekHeaders__horizontal: { - marginLeft: spacing.dayPickerHorizontalPadding - }, - - DayPicker_weekHeader: { - color: color.placeholderText, - position: 'absolute', - top: 62, - zIndex: zIndex + 2, - textAlign: 'left' - }, - - DayPicker_weekHeader__vertical: { - left: '50%' - }, - - DayPicker_weekHeader__verticalScrollable: { - top: 0, - display: 'table-row', - borderBottom: '1px solid ' + String(color.core.border), - background: color.background, - marginLeft: 0, - left: 0, - width: '100%', - textAlign: 'center' - }, - - DayPicker_weekHeader_ul: { - listStyle: 'none', - margin: '1px 0', - paddingLeft: 0, - paddingRight: 0, - fontSize: font.size - }, - - DayPicker_weekHeader_li: { - display: 'inline-block', - textAlign: 'center' - }, - - DayPicker_transitionContainer: { - position: 'relative', - overflow: 'hidden', - borderRadius: 3 - }, - - DayPicker_transitionContainer__horizontal: { - transition: 'height 0.2s ease-in-out' - }, - - DayPicker_transitionContainer__vertical: { - width: '100%' - }, - - DayPicker_transitionContainer__verticalScrollable: (0, _object2['default'])({ - paddingTop: 20, - height: '100%', - position: 'absolute', - top: 0, - bottom: 0, - right: 0, - left: 0, - overflowY: 'scroll' - }, noScrollBarOnVerticalScrollable && { - '-webkitOverflowScrolling': 'touch', - '::-webkit-scrollbar': { - '-webkit-appearance': 'none', - display: 'none' - } - }) - }; -})(DayPicker); - -/***/ }), -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/** - * Copyright 2015, Yahoo! Inc. - * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. - */ -var REACT_STATICS = { - childContextTypes: true, - contextTypes: true, - defaultProps: true, - displayName: true, - getDefaultProps: true, - getDerivedStateFromProps: true, - mixins: true, - propTypes: true, - type: true -}; - -var KNOWN_STATICS = { - name: true, - length: true, - prototype: true, - caller: true, - callee: true, - arguments: true, - arity: true -}; - -var defineProperty = Object.defineProperty; -var getOwnPropertyNames = Object.getOwnPropertyNames; -var getOwnPropertySymbols = Object.getOwnPropertySymbols; -var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; -var getPrototypeOf = Object.getPrototypeOf; -var objectPrototype = getPrototypeOf && getPrototypeOf(Object); - -function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { - if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components - - if (objectPrototype) { - var inheritedComponent = getPrototypeOf(sourceComponent); - if (inheritedComponent && inheritedComponent !== objectPrototype) { - hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); - } - } - - var keys = getOwnPropertyNames(sourceComponent); - - if (getOwnPropertySymbols) { - keys = keys.concat(getOwnPropertySymbols(sourceComponent)); - } - - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) { - var descriptor = getOwnPropertyDescriptor(sourceComponent, key); - try { // Avoid failures from read-only properties - defineProperty(targetComponent, key, descriptor); - } catch (e) {} - } - } - - return targetComponent; - } - - return targetComponent; -} - -module.exports = hoistNonReactStatics; - - -/***/ }), -/* 141 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -// modified from https://github.com/es-shims/es5-shim -var has = Object.prototype.hasOwnProperty; -var toStr = Object.prototype.toString; -var slice = Array.prototype.slice; -var isArgs = __webpack_require__(266); -var isEnumerable = Object.prototype.propertyIsEnumerable; -var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString'); -var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype'); -var dontEnums = [ - 'toString', - 'toLocaleString', - 'valueOf', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'constructor' -]; -var equalsConstructorPrototype = function (o) { - var ctor = o.constructor; - return ctor && ctor.prototype === o; -}; -var excludedKeys = { - $console: true, - $external: true, - $frame: true, - $frameElement: true, - $frames: true, - $innerHeight: true, - $innerWidth: true, - $outerHeight: true, - $outerWidth: true, - $pageXOffset: true, - $pageYOffset: true, - $parent: true, - $scrollLeft: true, - $scrollTop: true, - $scrollX: true, - $scrollY: true, - $self: true, - $webkitIndexedDB: true, - $webkitStorageInfo: true, - $window: true -}; -var hasAutomationEqualityBug = (function () { - /* global window */ - if (typeof window === 'undefined') { return false; } - for (var k in window) { - try { - if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { - try { - equalsConstructorPrototype(window[k]); - } catch (e) { - return true; - } - } - } catch (e) { - return true; - } - } - return false; -}()); -var equalsConstructorPrototypeIfNotBuggy = function (o) { - /* global window */ - if (typeof window === 'undefined' || !hasAutomationEqualityBug) { - return equalsConstructorPrototype(o); - } - try { - return equalsConstructorPrototype(o); - } catch (e) { - return false; - } -}; - -var keysShim = function keys(object) { - var isObject = object !== null && typeof object === 'object'; - var isFunction = toStr.call(object) === '[object Function]'; - var isArguments = isArgs(object); - var isString = isObject && toStr.call(object) === '[object String]'; - var theKeys = []; - - if (!isObject && !isFunction && !isArguments) { - throw new TypeError('Object.keys called on a non-object'); - } - - var skipProto = hasProtoEnumBug && isFunction; - if (isString && object.length > 0 && !has.call(object, 0)) { - for (var i = 0; i < object.length; ++i) { - theKeys.push(String(i)); - } - } - - if (isArguments && object.length > 0) { - for (var j = 0; j < object.length; ++j) { - theKeys.push(String(j)); - } - } else { - for (var name in object) { - if (!(skipProto && name === 'prototype') && has.call(object, name)) { - theKeys.push(String(name)); - } - } - } - - if (hasDontEnumBug) { - var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object); - - for (var k = 0; k < dontEnums.length; ++k) { - if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) { - theKeys.push(dontEnums[k]); - } - } - } - return theKeys; -}; - -keysShim.shim = function shimObjectKeys() { - if (Object.keys) { - var keysWorksWithArguments = (function () { - // Safari 5.0 bug - return (Object.keys(arguments) || '').length === 2; - }(1, 2)); - if (!keysWorksWithArguments) { - var originalKeys = Object.keys; - Object.keys = function keys(object) { - if (isArgs(object)) { - return originalKeys(slice.call(object)); - } else { - return originalKeys(object); - } - }; - } - } else { - Object.keys = keysShim; - } - return Object.keys || keysShim; -}; - -module.exports = keysShim; - - -/***/ }), -/* 142 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var ES = __webpack_require__(269); - -var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || (Math.pow(2, 53) - 1); - -// eslint-disable-next-line max-params, max-statements -var FlattenIntoArray = function FlattenIntoArray(target, source, sourceLen, start, depth) { - var targetIndex = start; - var sourceIndex = 0; - - /* - var mapperFunction; - if (arguments.length > 5) { - mapperFunction = arguments[5]; - } - */ - - while (sourceIndex < sourceLen) { - var P = ES.ToString(sourceIndex); - var exists = ES.HasProperty(source, P); - if (exists) { - var element = ES.Get(source, P); - /* - if (typeof mapperFunction !== 'undefined') { - if (arguments.length <= 6) { - throw new TypeError('Assertion failed: thisArg is required when mapperFunction is provided'); - } - element = ES.Call(mapperFunction, arguments[6], [element, sourceIndex, source]); - } - */ - var shouldFlatten = false; - if (depth > 0) { - shouldFlatten = ES.IsArray(element); - } - if (shouldFlatten) { - var elementLen = ES.ToLength(ES.Get(element, 'length')); - targetIndex = FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1); - } else { - if (targetIndex >= MAX_SAFE_INTEGER) { - throw new TypeError('index too large'); - } - ES.CreateDataPropertyOrThrow(target, ES.ToString(targetIndex), element); - targetIndex += 1; - } - } - sourceIndex += 1; - } - - return targetIndex; -}; - -module.exports = function flat() { - var O = ES.ToObject(this); - var sourceLen = ES.ToLength(ES.Get(O, 'length')); - - var depthNum = 1; - if (arguments.length > 0 && typeof arguments[0] !== 'undefined') { - depthNum = ES.ToInteger(arguments[0]); - } - - var A = ES.ArraySpeciesCreate(O, 0); - FlattenIntoArray(A, O, sourceLen, 0, depthNum); - return A; -}; - - -/***/ }), -/* 143 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var ES2015 = __webpack_require__(270); -var assign = __webpack_require__(124); - -var ES2016 = assign(assign({}, ES2015), { - // https://github.com/tc39/ecma262/pull/60 - SameValueNonNumber: function SameValueNonNumber(x, y) { - if (typeof x === 'number' || typeof x !== typeof y) { - throw new TypeError('SameValueNonNumber requires two non-number values of the same type.'); - } - return this.SameValue(x, y); - } -}); - -module.exports = ES2016; - - -/***/ }), -/* 144 */ -/***/ (function(module, exports) { - -module.exports = function isPrimitive(value) { - return value === null || (typeof value !== 'function' && typeof value !== 'object'); -}; - - -/***/ }), -/* 145 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var toStr = Object.prototype.toString; -var hasSymbols = __webpack_require__(274)(); - -if (hasSymbols) { - var symToStr = Symbol.prototype.toString; - var symStringRegex = /^Symbol\(.*\)$/; - var isSymbolObject = function isRealSymbolObject(value) { - if (typeof value.valueOf() !== 'symbol') { - return false; - } - return symStringRegex.test(symToStr.call(value)); - }; - - module.exports = function isSymbol(value) { - if (typeof value === 'symbol') { - return true; - } - if (toStr.call(value) !== '[object Symbol]') { - return false; - } - try { - return isSymbolObject(value); - } catch (e) { - return false; - } - }; -} else { - - module.exports = function isSymbol(value) { - // this environment does not support Symbols. - return false && false; - }; -} - - -/***/ }), -/* 146 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/* eslint complexity: [2, 17], max-statements: [2, 33] */ -module.exports = function hasSymbols() { - if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } - if (typeof Symbol.iterator === 'symbol') { return true; } - - var obj = {}; - var sym = Symbol('test'); - var symObj = Object(sym); - if (typeof sym === 'string') { return false; } - - if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } - if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } - - // temp disabled per https://github.com/ljharb/object.assign/issues/17 - // if (sym instanceof Symbol) { return false; } - // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 - // if (!(symObj instanceof Symbol)) { return false; } - - // if (typeof Symbol.prototype.toString !== 'function') { return false; } - // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; } - - var symVal = 42; - obj[sym] = symVal; - for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax - if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } - - if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } - - var syms = Object.getOwnPropertySymbols(obj); - if (syms.length !== 1 || syms[0] !== sym) { return false; } - - if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } - - if (typeof Object.getOwnPropertyDescriptor === 'function') { - var descriptor = Object.getOwnPropertyDescriptor(obj, sym); - if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } - } - - return true; -}; - - -/***/ }), -/* 147 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/* globals - Set, - Map, - WeakSet, - WeakMap, - - Promise, - - Symbol, - Proxy, - - Atomics, - SharedArrayBuffer, - - ArrayBuffer, - DataView, - Uint8Array, - Float32Array, - Float64Array, - Int8Array, - Int16Array, - Int32Array, - Uint8ClampedArray, - Uint16Array, - Uint32Array, -*/ - -var undefined; // eslint-disable-line no-shadow-restricted-names - -var ThrowTypeError = Object.getOwnPropertyDescriptor - ? (function () { return Object.getOwnPropertyDescriptor(arguments, 'callee').get; }()) - : function () { throw new TypeError(); }; - -var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol'; - -var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto - -var generator; // = function * () {}; -var generatorFunction = generator ? getProto(generator) : undefined; -var asyncFn; // async function() {}; -var asyncFunction = asyncFn ? asyncFn.constructor : undefined; -var asyncGen; // async function * () {}; -var asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined; -var asyncGenIterator = asyncGen ? asyncGen() : undefined; - -var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array); - -var INTRINSICS = { - '$ %Array%': Array, - '$ %ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, - '$ %ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype, - '$ %ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined, - '$ %ArrayPrototype%': Array.prototype, - '$ %ArrayProto_entries%': Array.prototype.entries, - '$ %ArrayProto_forEach%': Array.prototype.forEach, - '$ %ArrayProto_keys%': Array.prototype.keys, - '$ %ArrayProto_values%': Array.prototype.values, - '$ %AsyncFromSyncIteratorPrototype%': undefined, - '$ %AsyncFunction%': asyncFunction, - '$ %AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined, - '$ %AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined, - '$ %AsyncGeneratorFunction%': asyncGenFunction, - '$ %AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined, - '$ %AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined, - '$ %Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, - '$ %Boolean%': Boolean, - '$ %BooleanPrototype%': Boolean.prototype, - '$ %DataView%': typeof DataView === 'undefined' ? undefined : DataView, - '$ %DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype, - '$ %Date%': Date, - '$ %DatePrototype%': Date.prototype, - '$ %decodeURI%': decodeURI, - '$ %decodeURIComponent%': decodeURIComponent, - '$ %encodeURI%': encodeURI, - '$ %encodeURIComponent%': encodeURIComponent, - '$ %Error%': Error, - '$ %ErrorPrototype%': Error.prototype, - '$ %eval%': eval, // eslint-disable-line no-eval - '$ %EvalError%': EvalError, - '$ %EvalErrorPrototype%': EvalError.prototype, - '$ %Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, - '$ %Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype, - '$ %Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, - '$ %Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype, - '$ %Function%': Function, - '$ %FunctionPrototype%': Function.prototype, - '$ %Generator%': generator ? getProto(generator()) : undefined, - '$ %GeneratorFunction%': generatorFunction, - '$ %GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined, - '$ %Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, - '$ %Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype, - '$ %Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, - '$ %Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype, - '$ %Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, - '$ %Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype, - '$ %isFinite%': isFinite, - '$ %isNaN%': isNaN, - '$ %IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined, - '$ %JSON%': JSON, - '$ %JSONParse%': JSON.parse, - '$ %Map%': typeof Map === 'undefined' ? undefined : Map, - '$ %MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()), - '$ %MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype, - '$ %Math%': Math, - '$ %Number%': Number, - '$ %NumberPrototype%': Number.prototype, - '$ %Object%': Object, - '$ %ObjectPrototype%': Object.prototype, - '$ %ObjProto_toString%': Object.prototype.toString, - '$ %ObjProto_valueOf%': Object.prototype.valueOf, - '$ %parseFloat%': parseFloat, - '$ %parseInt%': parseInt, - '$ %Promise%': typeof Promise === 'undefined' ? undefined : Promise, - '$ %PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype, - '$ %PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then, - '$ %Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all, - '$ %Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject, - '$ %Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve, - '$ %Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, - '$ %RangeError%': RangeError, - '$ %RangeErrorPrototype%': RangeError.prototype, - '$ %ReferenceError%': ReferenceError, - '$ %ReferenceErrorPrototype%': ReferenceError.prototype, - '$ %Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, - '$ %RegExp%': RegExp, - '$ %RegExpPrototype%': RegExp.prototype, - '$ %Set%': typeof Set === 'undefined' ? undefined : Set, - '$ %SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()), - '$ %SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype, - '$ %SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, - '$ %SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype, - '$ %String%': String, - '$ %StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined, - '$ %StringPrototype%': String.prototype, - '$ %Symbol%': hasSymbols ? Symbol : undefined, - '$ %SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined, - '$ %SyntaxError%': SyntaxError, - '$ %SyntaxErrorPrototype%': SyntaxError.prototype, - '$ %ThrowTypeError%': ThrowTypeError, - '$ %TypedArray%': TypedArray, - '$ %TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined, - '$ %TypeError%': TypeError, - '$ %TypeErrorPrototype%': TypeError.prototype, - '$ %Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, - '$ %Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype, - '$ %Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, - '$ %Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype, - '$ %Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, - '$ %Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype, - '$ %Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, - '$ %Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype, - '$ %URIError%': URIError, - '$ %URIErrorPrototype%': URIError.prototype, - '$ %WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, - '$ %WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype, - '$ %WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet, - '$ %WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype -}; - -module.exports = function GetIntrinsic(name, allowMissing) { - if (arguments.length > 1 && typeof allowMissing !== 'boolean') { - throw new TypeError('"allowMissing" argument must be a boolean'); - } - - var key = '$ ' + name; - if (!(key in INTRINSICS)) { - throw new SyntaxError('intrinsic ' + name + ' does not exist!'); - } - - // istanbul ignore if // hopefully this is impossible to test :-) - if (typeof INTRINSICS[key] === 'undefined' && !allowMissing) { - throw new TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); - } - return INTRINSICS[key]; -}; - - -/***/ }), -/* 148 */ -/***/ (function(module, exports) { - -module.exports = Number.isNaN || function isNaN(a) { - return a !== a; -}; - - -/***/ }), -/* 149 */ -/***/ (function(module, exports) { - -var $isNaN = Number.isNaN || function (a) { return a !== a; }; - -module.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; }; - - -/***/ }), -/* 150 */ -/***/ (function(module, exports) { - -module.exports = function sign(number) { - return number >= 0 ? 1 : -1; -}; - - -/***/ }), -/* 151 */ -/***/ (function(module, exports) { - -module.exports = function mod(number, modulo) { - var remain = number % modulo; - return Math.floor(remain >= 0 ? remain : remain + modulo); -}; - - -/***/ }), -/* 152 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var implementation = __webpack_require__(142); - -module.exports = function getPolyfill() { - return Array.prototype.flat || implementation; -}; - - -/***/ }), -/* 153 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var styleInterface = void 0; -var styleTheme = void 0; - -function registerTheme(theme) { - styleTheme = theme; -} - -function registerInterface(interfaceToRegister) { - styleInterface = interfaceToRegister; -} - -function create(makeFromTheme, createWithDirection) { - var styles = createWithDirection(makeFromTheme(styleTheme)); - return function () { - return styles; - }; -} - -function createLTR(makeFromTheme) { - return create(makeFromTheme, styleInterface.createLTR || styleInterface.create); -} - -function createRTL(makeFromTheme) { - return create(makeFromTheme, styleInterface.createRTL || styleInterface.create); -} - -function get() { - return styleTheme; -} - -function resolve() { - if (false) {} - - for (var _len = arguments.length, styles = Array(_len), _key = 0; _key < _len; _key++) { - styles[_key] = arguments[_key]; - } - - var result = styleInterface.resolve(styles); - - if (false) {} - - return result; -} - -function resolveLTR() { - for (var _len2 = arguments.length, styles = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - styles[_key2] = arguments[_key2]; - } - - if (styleInterface.resolveLTR) { - return styleInterface.resolveLTR(styles); - } - - return resolve(styles); -} - -function resolveRTL() { - for (var _len3 = arguments.length, styles = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - styles[_key3] = arguments[_key3]; - } - - if (styleInterface.resolveRTL) { - return styleInterface.resolveRTL(styles); - } - - return resolve(styles); -} - -function flush() { - if (styleInterface.flush) { - styleInterface.flush(); - } -} - -exports['default'] = { - registerTheme: registerTheme, - registerInterface: registerInterface, - create: createLTR, - createLTR: createLTR, - createRTL: createRTL, - get: get, - resolve: resolveLTR, - resolveLTR: resolveLTR, - resolveRTL: resolveRTL, - flush: flush -}; - -/***/ }), -/* 154 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var core = { - white: '#fff', - gray: '#484848', - grayLight: '#82888a', - grayLighter: '#cacccd', - grayLightest: '#f2f2f2', - - borderMedium: '#c4c4c4', - border: '#dbdbdb', - borderLight: '#e4e7e7', - borderLighter: '#eceeee', - borderBright: '#f4f5f5', - - primary: '#00a699', - primaryShade_1: '#33dacd', - primaryShade_2: '#66e2da', - primaryShade_3: '#80e8e0', - primaryShade_4: '#b2f1ec', - primary_dark: '#008489', - - secondary: '#007a87', - - yellow: '#ffe8bc', - yellow_dark: '#ffce71' -}; - -exports['default'] = { - reactDates: { - zIndex: 0, - border: { - input: { - border: 0, - borderTop: 0, - borderRight: 0, - borderBottom: '2px solid transparent', - borderLeft: 0, - outlineFocused: 0, - borderFocused: 0, - borderTopFocused: 0, - borderLeftFocused: 0, - borderBottomFocused: '2px solid ' + String(core.primary_dark), - borderRightFocused: 0, - borderRadius: 0 - }, - pickerInput: { - borderWidth: 1, - borderStyle: 'solid', - borderRadius: 2 - } - }, - - color: { - core: core, - - disabled: core.grayLightest, - - background: core.white, - backgroundDark: '#f2f2f2', - backgroundFocused: core.white, - border: 'rgb(219, 219, 219)', - text: core.gray, - textDisabled: core.border, - textFocused: '#007a87', - placeholderText: '#757575', - - outside: { - backgroundColor: core.white, - backgroundColor_active: core.white, - backgroundColor_hover: core.white, - color: core.gray, - color_active: core.gray, - color_hover: core.gray - }, - - highlighted: { - backgroundColor: core.yellow, - backgroundColor_active: core.yellow_dark, - backgroundColor_hover: core.yellow_dark, - color: core.gray, - color_active: core.gray, - color_hover: core.gray - }, - - minimumNights: { - backgroundColor: core.white, - backgroundColor_active: core.white, - backgroundColor_hover: core.white, - borderColor: core.borderLighter, - color: core.grayLighter, - color_active: core.grayLighter, - color_hover: core.grayLighter - }, - - hoveredSpan: { - backgroundColor: core.primaryShade_4, - backgroundColor_active: core.primaryShade_3, - backgroundColor_hover: core.primaryShade_4, - borderColor: core.primaryShade_3, - borderColor_active: core.primaryShade_3, - borderColor_hover: core.primaryShade_3, - color: core.secondary, - color_active: core.secondary, - color_hover: core.secondary - }, - - selectedSpan: { - backgroundColor: core.primaryShade_2, - backgroundColor_active: core.primaryShade_1, - backgroundColor_hover: core.primaryShade_1, - borderColor: core.primaryShade_1, - borderColor_active: core.primary, - borderColor_hover: core.primary, - color: core.white, - color_active: core.white, - color_hover: core.white - }, - - selected: { - backgroundColor: core.primary, - backgroundColor_active: core.primary, - backgroundColor_hover: core.primary, - borderColor: core.primary, - borderColor_active: core.primary, - borderColor_hover: core.primary, - color: core.white, - color_active: core.white, - color_hover: core.white - }, - - blocked_calendar: { - backgroundColor: core.grayLighter, - backgroundColor_active: core.grayLighter, - backgroundColor_hover: core.grayLighter, - borderColor: core.grayLighter, - borderColor_active: core.grayLighter, - borderColor_hover: core.grayLighter, - color: core.grayLight, - color_active: core.grayLight, - color_hover: core.grayLight - }, - - blocked_out_of_range: { - backgroundColor: core.white, - backgroundColor_active: core.white, - backgroundColor_hover: core.white, - borderColor: core.borderLight, - borderColor_active: core.borderLight, - borderColor_hover: core.borderLight, - color: core.grayLighter, - color_active: core.grayLighter, - color_hover: core.grayLighter - } - }, - - spacing: { - dayPickerHorizontalPadding: 9, - captionPaddingTop: 22, - captionPaddingBottom: 37, - inputPadding: 0, - displayTextPaddingVertical: undefined, - displayTextPaddingTop: 11, - displayTextPaddingBottom: 9, - displayTextPaddingHorizontal: undefined, - displayTextPaddingLeft: 11, - displayTextPaddingRight: 11, - displayTextPaddingVertical_small: undefined, - displayTextPaddingTop_small: 7, - displayTextPaddingBottom_small: 5, - displayTextPaddingHorizontal_small: undefined, - displayTextPaddingLeft_small: 7, - displayTextPaddingRight_small: 7 - }, - - sizing: { - inputWidth: 130, - inputWidth_small: 97, - arrowWidth: 24 - }, - - noScrollBarOnVerticalScrollable: false, - - font: { - size: 14, - captionSize: 18, - input: { - size: 19, - lineHeight: '24px', - size_small: 15, - lineHeight_small: '18px', - letterSpacing_small: '0.2px', - styleDisabled: 'italic' - } - } - } -}; - -/***/ }), -/* 155 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -// modified from https://github.com/es-shims/es6-shim -var keys = __webpack_require__(141); -var bind = __webpack_require__(74); -var canBeObject = function (obj) { - return typeof obj !== 'undefined' && obj !== null; -}; -var hasSymbols = __webpack_require__(146)(); -var toObject = Object; -var push = bind.call(Function.call, Array.prototype.push); -var propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable); -var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null; - -module.exports = function assign(target, source1) { - if (!canBeObject(target)) { throw new TypeError('target must be an object'); } - var objTarget = toObject(target); - var s, source, i, props, syms, value, key; - for (s = 1; s < arguments.length; ++s) { - source = toObject(arguments[s]); - props = keys(source); - var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols); - if (getSymbols) { - syms = getSymbols(source); - for (i = 0; i < syms.length; ++i) { - key = syms[i]; - if (propIsEnumerable(source, key)) { - push(props, key); - } - } - } - for (i = 0; i < props.length; ++i) { - key = props[i]; - value = source[key]; - if (propIsEnumerable(source, key)) { - objTarget[key] = value; - } - } - } - return objTarget; -}; - - -/***/ }), -/* 156 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var implementation = __webpack_require__(155); - -var lacksProperEnumerationOrder = function () { - if (!Object.assign) { - return false; - } - // v8, specifically in node 4.x, has a bug with incorrect property enumeration order - // note: this does not detect the bug unless there's 20 characters - var str = 'abcdefghijklmnopqrst'; - var letters = str.split(''); - var map = {}; - for (var i = 0; i < letters.length; ++i) { - map[letters[i]] = letters[i]; - } - var obj = Object.assign({}, map); - var actual = ''; - for (var k in obj) { - actual += k; - } - return str !== actual; -}; - -var assignHasPendingExceptions = function () { - if (!Object.assign || !Object.preventExtensions) { - return false; - } - // Firefox 37 still has "pending exception" logic in its Object.assign implementation, - // which is 72% slower than our shim, and Firefox 40's native implementation. - var thrower = Object.preventExtensions({ 1: 2 }); - try { - Object.assign(thrower, 'xy'); - } catch (e) { - return thrower[1] === 'y'; - } - return false; -}; - -module.exports = function getPolyfill() { - if (!Object.assign) { - return implementation; - } - if (lacksProperEnumerationOrder()) { - return implementation; - } - if (assignHasPendingExceptions()) { - return implementation; - } - return Object.assign; -}; - - -/***/ }), -/* 157 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = getCalendarDaySettings; - -var _getPhrase = __webpack_require__(294); - -var _getPhrase2 = _interopRequireDefault(_getPhrase); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function getCalendarDaySettings(day, ariaLabelFormat, daySize, modifiers, phrases) { - var chooseAvailableDate = phrases.chooseAvailableDate, - dateIsUnavailable = phrases.dateIsUnavailable, - dateIsSelected = phrases.dateIsSelected; - - - var daySizeStyles = { - width: daySize, - height: daySize - 1 - }; - - var useDefaultCursor = modifiers.has('blocked-minimum-nights') || modifiers.has('blocked-calendar') || modifiers.has('blocked-out-of-range'); - - var selected = modifiers.has('selected') || modifiers.has('selected-start') || modifiers.has('selected-end'); - - var hoveredSpan = !selected && (modifiers.has('hovered-span') || modifiers.has('after-hovered-start')); - - var isOutsideRange = modifiers.has('blocked-out-of-range'); - - var formattedDate = { date: day.format(ariaLabelFormat) }; - - var ariaLabel = (0, _getPhrase2['default'])(chooseAvailableDate, formattedDate); - if (modifiers.has(_constants.BLOCKED_MODIFIER)) { - ariaLabel = (0, _getPhrase2['default'])(dateIsUnavailable, formattedDate); - } else if (selected) { - ariaLabel = (0, _getPhrase2['default'])(dateIsSelected, formattedDate); - } - - return { - daySizeStyles: daySizeStyles, - useDefaultCursor: useDefaultCursor, - selected: selected, - hoveredSpan: hoveredSpan, - isOutsideRange: isOutsideRange, - ariaLabel: ariaLabel - }; -} - -/***/ }), -/* 158 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactAddonsShallowCompare = __webpack_require__(78); - -var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare); - -var _reactMomentProptypes = __webpack_require__(64); - -var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _reactWithStyles = __webpack_require__(56); - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _defaultPhrases = __webpack_require__(47); - -var _getPhrasePropTypes = __webpack_require__(51); - -var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); - -var _CalendarWeek = __webpack_require__(295); - -var _CalendarWeek2 = _interopRequireDefault(_CalendarWeek); - -var _CalendarDay = __webpack_require__(125); - -var _CalendarDay2 = _interopRequireDefault(_CalendarDay); - -var _calculateDimension = __webpack_require__(159); - -var _calculateDimension2 = _interopRequireDefault(_calculateDimension); - -var _getCalendarMonthWeeks = __webpack_require__(297); - -var _getCalendarMonthWeeks2 = _interopRequireDefault(_getCalendarMonthWeeks); - -var _isSameDay = __webpack_require__(79); - -var _isSameDay2 = _interopRequireDefault(_isSameDay); - -var _toISODateString = __webpack_require__(102); - -var _toISODateString2 = _interopRequireDefault(_toISODateString); - -var _ModifiersShape = __webpack_require__(101); - -var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape); - -var _ScrollableOrientationShape = __webpack_require__(81); - -var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape); - -var _DayOfWeekShape = __webpack_require__(75); - -var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint react/no-array-index-key: 0 */ - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, { - month: _reactMomentProptypes2['default'].momentObj, - horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger, - isVisible: _propTypes2['default'].bool, - enableOutsideDays: _propTypes2['default'].bool, - modifiers: _propTypes2['default'].objectOf(_ModifiersShape2['default']), - orientation: _ScrollableOrientationShape2['default'], - daySize: _airbnbPropTypes.nonNegativeInteger, - onDayClick: _propTypes2['default'].func, - onDayMouseEnter: _propTypes2['default'].func, - onDayMouseLeave: _propTypes2['default'].func, - onMonthSelect: _propTypes2['default'].func, - onYearSelect: _propTypes2['default'].func, - renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'), - renderCalendarDay: _propTypes2['default'].func, - renderDayContents: _propTypes2['default'].func, - renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'), - firstDayOfWeek: _DayOfWeekShape2['default'], - setMonthTitleHeight: _propTypes2['default'].func, - verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger, - - focusedDate: _reactMomentProptypes2['default'].momentObj, // indicates focusable day - isFocused: _propTypes2['default'].bool, // indicates whether or not to move focus to focusable day - - // i18n - monthFormat: _propTypes2['default'].string, - phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)), - dayAriaLabelFormat: _propTypes2['default'].string -})); - -var defaultProps = { - month: (0, _moment2['default'])(), - horizontalMonthPadding: 13, - isVisible: true, - enableOutsideDays: false, - modifiers: {}, - orientation: _constants.HORIZONTAL_ORIENTATION, - daySize: _constants.DAY_SIZE, - onDayClick: function () { - function onDayClick() {} - - return onDayClick; - }(), - onDayMouseEnter: function () { - function onDayMouseEnter() {} - - return onDayMouseEnter; - }(), - onDayMouseLeave: function () { - function onDayMouseLeave() {} - - return onDayMouseLeave; - }(), - onMonthSelect: function () { - function onMonthSelect() {} - - return onMonthSelect; - }(), - onYearSelect: function () { - function onYearSelect() {} - - return onYearSelect; - }(), - - renderMonthText: null, - renderCalendarDay: function () { - function renderCalendarDay(props) { - return _react2['default'].createElement(_CalendarDay2['default'], props); - } - - return renderCalendarDay; - }(), - renderDayContents: null, - renderMonthElement: null, - firstDayOfWeek: null, - setMonthTitleHeight: null, - - focusedDate: null, - isFocused: false, - - // i18n - monthFormat: 'MMMM YYYY', // english locale - phrases: _defaultPhrases.CalendarDayPhrases, - dayAriaLabelFormat: undefined, - verticalBorderSpacing: undefined -}; - -var CalendarMonth = function (_React$Component) { - _inherits(CalendarMonth, _React$Component); - - function CalendarMonth(props) { - _classCallCheck(this, CalendarMonth); - - var _this = _possibleConstructorReturn(this, (CalendarMonth.__proto__ || Object.getPrototypeOf(CalendarMonth)).call(this, props)); - - _this.state = { - weeks: (0, _getCalendarMonthWeeks2['default'])(props.month, props.enableOutsideDays, props.firstDayOfWeek == null ? _moment2['default'].localeData().firstDayOfWeek() : props.firstDayOfWeek) - }; - - _this.setCaptionRef = _this.setCaptionRef.bind(_this); - _this.setMonthTitleHeight = _this.setMonthTitleHeight.bind(_this); - return _this; - } - - _createClass(CalendarMonth, [{ - key: 'componentDidMount', - value: function () { - function componentDidMount() { - this.setMonthTitleHeightTimeout = setTimeout(this.setMonthTitleHeight, 0); - } - - return componentDidMount; - }() - }, { - key: 'componentWillReceiveProps', - value: function () { - function componentWillReceiveProps(nextProps) { - var month = nextProps.month, - enableOutsideDays = nextProps.enableOutsideDays, - firstDayOfWeek = nextProps.firstDayOfWeek; - var _props = this.props, - prevMonth = _props.month, - prevEnableOutsideDays = _props.enableOutsideDays, - prevFirstDayOfWeek = _props.firstDayOfWeek; - - if (!month.isSame(prevMonth) || enableOutsideDays !== prevEnableOutsideDays || firstDayOfWeek !== prevFirstDayOfWeek) { - this.setState({ - weeks: (0, _getCalendarMonthWeeks2['default'])(month, enableOutsideDays, firstDayOfWeek == null ? _moment2['default'].localeData().firstDayOfWeek() : firstDayOfWeek) - }); - } - } - - return componentWillReceiveProps; - }() - }, { - key: 'shouldComponentUpdate', - value: function () { - function shouldComponentUpdate(nextProps, nextState) { - return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState); - } - - return shouldComponentUpdate; - }() - }, { - key: 'componentWillUnmount', - value: function () { - function componentWillUnmount() { - if (this.setMonthTitleHeightTimeout) { - clearTimeout(this.setMonthTitleHeightTimeout); - } - } - - return componentWillUnmount; - }() - }, { - key: 'setMonthTitleHeight', - value: function () { - function setMonthTitleHeight() { - var setMonthTitleHeight = this.props.setMonthTitleHeight; - - if (setMonthTitleHeight) { - var captionHeight = (0, _calculateDimension2['default'])(this.captionRef, 'height', true, true); - setMonthTitleHeight(captionHeight); - } - } - - return setMonthTitleHeight; - }() - }, { - key: 'setCaptionRef', - value: function () { - function setCaptionRef(ref) { - this.captionRef = ref; - } - - return setCaptionRef; - }() - }, { - key: 'render', - value: function () { - function render() { - var _props2 = this.props, - dayAriaLabelFormat = _props2.dayAriaLabelFormat, - daySize = _props2.daySize, - focusedDate = _props2.focusedDate, - horizontalMonthPadding = _props2.horizontalMonthPadding, - isFocused = _props2.isFocused, - isVisible = _props2.isVisible, - modifiers = _props2.modifiers, - month = _props2.month, - monthFormat = _props2.monthFormat, - onDayClick = _props2.onDayClick, - onDayMouseEnter = _props2.onDayMouseEnter, - onDayMouseLeave = _props2.onDayMouseLeave, - onMonthSelect = _props2.onMonthSelect, - onYearSelect = _props2.onYearSelect, - orientation = _props2.orientation, - phrases = _props2.phrases, - renderCalendarDay = _props2.renderCalendarDay, - renderDayContents = _props2.renderDayContents, - renderMonthElement = _props2.renderMonthElement, - renderMonthText = _props2.renderMonthText, - styles = _props2.styles, - verticalBorderSpacing = _props2.verticalBorderSpacing; - var weeks = this.state.weeks; - - var monthTitle = renderMonthText ? renderMonthText(month) : month.format(monthFormat); - - var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE; - - return _react2['default'].createElement( - 'div', - _extends({}, (0, _reactWithStyles.css)(styles.CalendarMonth, { padding: '0 ' + String(horizontalMonthPadding) + 'px' }), { - 'data-visible': isVisible - }), - _react2['default'].createElement( - 'div', - _extends({ - ref: this.setCaptionRef - }, (0, _reactWithStyles.css)(styles.CalendarMonth_caption, verticalScrollable && styles.CalendarMonth_caption__verticalScrollable)), - renderMonthElement ? renderMonthElement({ month: month, onMonthSelect: onMonthSelect, onYearSelect: onYearSelect }) : _react2['default'].createElement( - 'strong', - null, - monthTitle - ) - ), - _react2['default'].createElement( - 'table', - _extends({}, (0, _reactWithStyles.css)(!verticalBorderSpacing && styles.CalendarMonth_table, verticalBorderSpacing && styles.CalendarMonth_verticalSpacing, verticalBorderSpacing && { borderSpacing: '0px ' + String(verticalBorderSpacing) + 'px' }), { - role: 'presentation' - }), - _react2['default'].createElement( - 'tbody', - null, - weeks.map(function (week, i) { - return _react2['default'].createElement( - _CalendarWeek2['default'], - { key: i }, - week.map(function (day, dayOfWeek) { - return renderCalendarDay({ - key: dayOfWeek, - day: day, - daySize: daySize, - isOutsideDay: !day || day.month() !== month.month(), - tabIndex: isVisible && (0, _isSameDay2['default'])(day, focusedDate) ? 0 : -1, - isFocused: isFocused, - onDayMouseEnter: onDayMouseEnter, - onDayMouseLeave: onDayMouseLeave, - onDayClick: onDayClick, - renderDayContents: renderDayContents, - phrases: phrases, - modifiers: modifiers[(0, _toISODateString2['default'])(day)], - ariaLabelFormat: dayAriaLabelFormat - }); - }) - ); - }) - ) - ) - ); - } - - return render; - }() - }]); - - return CalendarMonth; -}(_react2['default'].Component); - -CalendarMonth.propTypes = propTypes; -CalendarMonth.defaultProps = defaultProps; - -exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) { - var _ref$reactDates = _ref.reactDates, - color = _ref$reactDates.color, - font = _ref$reactDates.font, - spacing = _ref$reactDates.spacing; - return { - CalendarMonth: { - background: color.background, - textAlign: 'center', - verticalAlign: 'top', - userSelect: 'none' - }, - - CalendarMonth_table: { - borderCollapse: 'collapse', - borderSpacing: 0 - }, - - CalendarMonth_verticalSpacing: { - borderCollapse: 'separate' - }, - - CalendarMonth_caption: { - color: color.text, - fontSize: font.captionSize, - textAlign: 'center', - paddingTop: spacing.captionPaddingTop, - paddingBottom: spacing.captionPaddingBottom, - captionSide: 'initial' - }, - - CalendarMonth_caption__verticalScrollable: { - paddingTop: 12, - paddingBottom: 7 - } - }; -})(CalendarMonth); - -/***/ }), -/* 159 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = calculateDimension; -function calculateDimension(el, axis) { - var borderBox = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var withMargin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - - if (!el) { - return 0; - } - - var axisStart = axis === 'width' ? 'Left' : 'Top'; - var axisEnd = axis === 'width' ? 'Right' : 'Bottom'; - - // Only read styles if we need to - var style = !borderBox || withMargin ? window.getComputedStyle(el) : null; - - // Offset includes border and padding - var offsetWidth = el.offsetWidth, - offsetHeight = el.offsetHeight; - - var size = axis === 'width' ? offsetWidth : offsetHeight; - - // Get the inner size - if (!borderBox) { - size -= parseFloat(style['padding' + axisStart]) + parseFloat(style['padding' + axisEnd]) + parseFloat(style['border' + axisStart + 'Width']) + parseFloat(style['border' + axisEnd + 'Width']); - } - - // Apply margin - if (withMargin) { - size += parseFloat(style['margin' + axisStart]) + parseFloat(style['margin' + axisEnd]); - } - - return size; -} - -/***/ }), -/* 160 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactAddonsShallowCompare = __webpack_require__(78); - -var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare); - -var _reactMomentProptypes = __webpack_require__(64); - -var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _reactWithStyles = __webpack_require__(56); - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _consolidatedEvents = __webpack_require__(103); - -var _defaultPhrases = __webpack_require__(47); - -var _getPhrasePropTypes = __webpack_require__(51); - -var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); - -var _CalendarMonth = __webpack_require__(158); - -var _CalendarMonth2 = _interopRequireDefault(_CalendarMonth); - -var _isTransitionEndSupported = __webpack_require__(298); - -var _isTransitionEndSupported2 = _interopRequireDefault(_isTransitionEndSupported); - -var _getTransformStyles = __webpack_require__(299); - -var _getTransformStyles2 = _interopRequireDefault(_getTransformStyles); - -var _getCalendarMonthWidth = __webpack_require__(161); - -var _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth); - -var _toISOMonthString = __webpack_require__(104); - -var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString); - -var _isPrevMonth = __webpack_require__(300); - -var _isPrevMonth2 = _interopRequireDefault(_isPrevMonth); - -var _isNextMonth = __webpack_require__(301); - -var _isNextMonth2 = _interopRequireDefault(_isNextMonth); - -var _ModifiersShape = __webpack_require__(101); - -var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape); - -var _ScrollableOrientationShape = __webpack_require__(81); - -var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape); - -var _DayOfWeekShape = __webpack_require__(75); - -var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, { - enableOutsideDays: _propTypes2['default'].bool, - firstVisibleMonthIndex: _propTypes2['default'].number, - horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger, - initialMonth: _reactMomentProptypes2['default'].momentObj, - isAnimating: _propTypes2['default'].bool, - numberOfMonths: _propTypes2['default'].number, - modifiers: _propTypes2['default'].objectOf(_propTypes2['default'].objectOf(_ModifiersShape2['default'])), - orientation: _ScrollableOrientationShape2['default'], - onDayClick: _propTypes2['default'].func, - onDayMouseEnter: _propTypes2['default'].func, - onDayMouseLeave: _propTypes2['default'].func, - onMonthTransitionEnd: _propTypes2['default'].func, - onMonthChange: _propTypes2['default'].func, - onYearChange: _propTypes2['default'].func, - renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'), - renderCalendarDay: _propTypes2['default'].func, - renderDayContents: _propTypes2['default'].func, - translationValue: _propTypes2['default'].number, - renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'), - daySize: _airbnbPropTypes.nonNegativeInteger, - focusedDate: _reactMomentProptypes2['default'].momentObj, // indicates focusable day - isFocused: _propTypes2['default'].bool, // indicates whether or not to move focus to focusable day - firstDayOfWeek: _DayOfWeekShape2['default'], - setMonthTitleHeight: _propTypes2['default'].func, - isRTL: _propTypes2['default'].bool, - transitionDuration: _airbnbPropTypes.nonNegativeInteger, - verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger, - - // i18n - monthFormat: _propTypes2['default'].string, - phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)), - dayAriaLabelFormat: _propTypes2['default'].string -})); - -var defaultProps = { - enableOutsideDays: false, - firstVisibleMonthIndex: 0, - horizontalMonthPadding: 13, - initialMonth: (0, _moment2['default'])(), - isAnimating: false, - numberOfMonths: 1, - modifiers: {}, - orientation: _constants.HORIZONTAL_ORIENTATION, - onDayClick: function () { - function onDayClick() {} - - return onDayClick; - }(), - onDayMouseEnter: function () { - function onDayMouseEnter() {} - - return onDayMouseEnter; - }(), - onDayMouseLeave: function () { - function onDayMouseLeave() {} - - return onDayMouseLeave; - }(), - onMonthChange: function () { - function onMonthChange() {} - - return onMonthChange; - }(), - onYearChange: function () { - function onYearChange() {} - - return onYearChange; - }(), - onMonthTransitionEnd: function () { - function onMonthTransitionEnd() {} - - return onMonthTransitionEnd; - }(), - - renderMonthText: null, - renderCalendarDay: undefined, - renderDayContents: null, - translationValue: null, - renderMonthElement: null, - daySize: _constants.DAY_SIZE, - focusedDate: null, - isFocused: false, - firstDayOfWeek: null, - setMonthTitleHeight: null, - isRTL: false, - transitionDuration: 200, - verticalBorderSpacing: undefined, - - // i18n - monthFormat: 'MMMM YYYY', // english locale - phrases: _defaultPhrases.CalendarDayPhrases, - dayAriaLabelFormat: undefined -}; - -function getMonths(initialMonth, numberOfMonths, withoutTransitionMonths) { - var month = initialMonth.clone(); - if (!withoutTransitionMonths) month = month.subtract(1, 'month'); - - var months = []; - for (var i = 0; i < (withoutTransitionMonths ? numberOfMonths : numberOfMonths + 2); i += 1) { - months.push(month); - month = month.clone().add(1, 'month'); - } - - return months; -} - -var CalendarMonthGrid = function (_React$Component) { - _inherits(CalendarMonthGrid, _React$Component); - - function CalendarMonthGrid(props) { - _classCallCheck(this, CalendarMonthGrid); - - var _this = _possibleConstructorReturn(this, (CalendarMonthGrid.__proto__ || Object.getPrototypeOf(CalendarMonthGrid)).call(this, props)); - - var withoutTransitionMonths = props.orientation === _constants.VERTICAL_SCROLLABLE; - _this.state = { - months: getMonths(props.initialMonth, props.numberOfMonths, withoutTransitionMonths) - }; - - _this.isTransitionEndSupported = (0, _isTransitionEndSupported2['default'])(); - _this.onTransitionEnd = _this.onTransitionEnd.bind(_this); - _this.setContainerRef = _this.setContainerRef.bind(_this); - - _this.locale = _moment2['default'].locale(); - _this.onMonthSelect = _this.onMonthSelect.bind(_this); - _this.onYearSelect = _this.onYearSelect.bind(_this); - return _this; - } - - _createClass(CalendarMonthGrid, [{ - key: 'componentDidMount', - value: function () { - function componentDidMount() { - this.removeEventListener = (0, _consolidatedEvents.addEventListener)(this.container, 'transitionend', this.onTransitionEnd); - } - - return componentDidMount; - }() - }, { - key: 'componentWillReceiveProps', - value: function () { - function componentWillReceiveProps(nextProps) { - var _this2 = this; - - var initialMonth = nextProps.initialMonth, - numberOfMonths = nextProps.numberOfMonths, - orientation = nextProps.orientation; - var months = this.state.months; - var _props = this.props, - prevInitialMonth = _props.initialMonth, - prevNumberOfMonths = _props.numberOfMonths; - - var hasMonthChanged = !prevInitialMonth.isSame(initialMonth, 'month'); - var hasNumberOfMonthsChanged = prevNumberOfMonths !== numberOfMonths; - var newMonths = months; - - if (hasMonthChanged && !hasNumberOfMonthsChanged) { - if ((0, _isNextMonth2['default'])(prevInitialMonth, initialMonth)) { - newMonths = months.slice(1); - newMonths.push(months[months.length - 1].clone().add(1, 'month')); - } else if ((0, _isPrevMonth2['default'])(prevInitialMonth, initialMonth)) { - newMonths = months.slice(0, months.length - 1); - newMonths.unshift(months[0].clone().subtract(1, 'month')); - } else { - var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE; - newMonths = getMonths(initialMonth, numberOfMonths, withoutTransitionMonths); - } - } - - if (hasNumberOfMonthsChanged) { - var _withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE; - newMonths = getMonths(initialMonth, numberOfMonths, _withoutTransitionMonths); - } - - var momentLocale = _moment2['default'].locale(); - if (this.locale !== momentLocale) { - this.locale = momentLocale; - newMonths = newMonths.map(function (m) { - return m.locale(_this2.locale); - }); - } - - this.setState({ - months: newMonths - }); - } - - return componentWillReceiveProps; - }() - }, { - key: 'shouldComponentUpdate', - value: function () { - function shouldComponentUpdate(nextProps, nextState) { - return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState); - } - - return shouldComponentUpdate; - }() - }, { - key: 'componentDidUpdate', - value: function () { - function componentDidUpdate() { - var _props2 = this.props, - isAnimating = _props2.isAnimating, - transitionDuration = _props2.transitionDuration, - onMonthTransitionEnd = _props2.onMonthTransitionEnd; - - // For IE9, immediately call onMonthTransitionEnd instead of - // waiting for the animation to complete. Similarly, if transitionDuration - // is set to 0, also immediately invoke the onMonthTransitionEnd callback - - if ((!this.isTransitionEndSupported || !transitionDuration) && isAnimating) { - onMonthTransitionEnd(); - } - } - - return componentDidUpdate; - }() - }, { - key: 'componentWillUnmount', - value: function () { - function componentWillUnmount() { - if (this.removeEventListener) this.removeEventListener(); - } - - return componentWillUnmount; - }() - }, { - key: 'onTransitionEnd', - value: function () { - function onTransitionEnd() { - var onMonthTransitionEnd = this.props.onMonthTransitionEnd; - - onMonthTransitionEnd(); - } - - return onTransitionEnd; - }() - }, { - key: 'onMonthSelect', - value: function () { - function onMonthSelect(currentMonth, newMonthVal) { - var newMonth = currentMonth.clone(); - var _props3 = this.props, - onMonthChange = _props3.onMonthChange, - orientation = _props3.orientation; - var months = this.state.months; - - var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE; - var initialMonthSubtraction = months.indexOf(currentMonth); - if (!withoutTransitionMonths) { - initialMonthSubtraction -= 1; - } - newMonth.set('month', newMonthVal).subtract(initialMonthSubtraction, 'months'); - onMonthChange(newMonth); - } - - return onMonthSelect; - }() - }, { - key: 'onYearSelect', - value: function () { - function onYearSelect(currentMonth, newYearVal) { - var newMonth = currentMonth.clone(); - var _props4 = this.props, - onYearChange = _props4.onYearChange, - orientation = _props4.orientation; - var months = this.state.months; - - var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE; - var initialMonthSubtraction = months.indexOf(currentMonth); - if (!withoutTransitionMonths) { - initialMonthSubtraction -= 1; - } - newMonth.set('year', newYearVal).subtract(initialMonthSubtraction, 'months'); - onYearChange(newMonth); - } - - return onYearSelect; - }() - }, { - key: 'setContainerRef', - value: function () { - function setContainerRef(ref) { - this.container = ref; - } - - return setContainerRef; - }() - }, { - key: 'render', - value: function () { - function render() { - var _this3 = this; - - var _props5 = this.props, - enableOutsideDays = _props5.enableOutsideDays, - firstVisibleMonthIndex = _props5.firstVisibleMonthIndex, - horizontalMonthPadding = _props5.horizontalMonthPadding, - isAnimating = _props5.isAnimating, - modifiers = _props5.modifiers, - numberOfMonths = _props5.numberOfMonths, - monthFormat = _props5.monthFormat, - orientation = _props5.orientation, - translationValue = _props5.translationValue, - daySize = _props5.daySize, - onDayMouseEnter = _props5.onDayMouseEnter, - onDayMouseLeave = _props5.onDayMouseLeave, - onDayClick = _props5.onDayClick, - renderMonthText = _props5.renderMonthText, - renderCalendarDay = _props5.renderCalendarDay, - renderDayContents = _props5.renderDayContents, - renderMonthElement = _props5.renderMonthElement, - onMonthTransitionEnd = _props5.onMonthTransitionEnd, - firstDayOfWeek = _props5.firstDayOfWeek, - focusedDate = _props5.focusedDate, - isFocused = _props5.isFocused, - isRTL = _props5.isRTL, - styles = _props5.styles, - phrases = _props5.phrases, - dayAriaLabelFormat = _props5.dayAriaLabelFormat, - transitionDuration = _props5.transitionDuration, - verticalBorderSpacing = _props5.verticalBorderSpacing, - setMonthTitleHeight = _props5.setMonthTitleHeight; - var months = this.state.months; - - var isVertical = orientation === _constants.VERTICAL_ORIENTATION; - var isVerticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE; - var isHorizontal = orientation === _constants.HORIZONTAL_ORIENTATION; - - var calendarMonthWidth = (0, _getCalendarMonthWidth2['default'])(daySize, horizontalMonthPadding); - - var width = isVertical || isVerticalScrollable ? calendarMonthWidth : (numberOfMonths + 2) * calendarMonthWidth; - - var transformType = isVertical || isVerticalScrollable ? 'translateY' : 'translateX'; - var transformValue = transformType + '(' + String(translationValue) + 'px)'; - - return _react2['default'].createElement( - 'div', - _extends({}, (0, _reactWithStyles.css)(styles.CalendarMonthGrid, isHorizontal && styles.CalendarMonthGrid__horizontal, isVertical && styles.CalendarMonthGrid__vertical, isVerticalScrollable && styles.CalendarMonthGrid__vertical_scrollable, isAnimating && styles.CalendarMonthGrid__animating, isAnimating && transitionDuration && { - transition: 'transform ' + String(transitionDuration) + 'ms ease-in-out' - }, (0, _object2['default'])({}, (0, _getTransformStyles2['default'])(transformValue), { - width: width - })), { - ref: this.setContainerRef, - onTransitionEnd: onMonthTransitionEnd - }), - months.map(function (month, i) { - var isVisible = i >= firstVisibleMonthIndex && i < firstVisibleMonthIndex + numberOfMonths; - var hideForAnimation = i === 0 && !isVisible; - var showForAnimation = i === 0 && isAnimating && isVisible; - var monthString = (0, _toISOMonthString2['default'])(month); - return _react2['default'].createElement( - 'div', - _extends({ - key: monthString - }, (0, _reactWithStyles.css)(isHorizontal && styles.CalendarMonthGrid_month__horizontal, hideForAnimation && styles.CalendarMonthGrid_month__hideForAnimation, showForAnimation && !isVertical && !isRTL && { - position: 'absolute', - left: -calendarMonthWidth - }, showForAnimation && !isVertical && isRTL && { - position: 'absolute', - right: 0 - }, showForAnimation && isVertical && { - position: 'absolute', - top: -translationValue - }, !isVisible && !isAnimating && styles.CalendarMonthGrid_month__hidden)), - _react2['default'].createElement(_CalendarMonth2['default'], { - month: month, - isVisible: isVisible, - enableOutsideDays: enableOutsideDays, - modifiers: modifiers[monthString], - monthFormat: monthFormat, - orientation: orientation, - onDayMouseEnter: onDayMouseEnter, - onDayMouseLeave: onDayMouseLeave, - onDayClick: onDayClick, - onMonthSelect: _this3.onMonthSelect, - onYearSelect: _this3.onYearSelect, - renderMonthText: renderMonthText, - renderCalendarDay: renderCalendarDay, - renderDayContents: renderDayContents, - renderMonthElement: renderMonthElement, - firstDayOfWeek: firstDayOfWeek, - daySize: daySize, - focusedDate: isVisible ? focusedDate : null, - isFocused: isFocused, - phrases: phrases, - setMonthTitleHeight: setMonthTitleHeight, - dayAriaLabelFormat: dayAriaLabelFormat, - verticalBorderSpacing: verticalBorderSpacing, - horizontalMonthPadding: horizontalMonthPadding - }) - ); - }) - ); - } - - return render; - }() - }]); - - return CalendarMonthGrid; -}(_react2['default'].Component); - -CalendarMonthGrid.propTypes = propTypes; -CalendarMonthGrid.defaultProps = defaultProps; - -exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) { - var _ref$reactDates = _ref.reactDates, - color = _ref$reactDates.color, - noScrollBarOnVerticalScrollable = _ref$reactDates.noScrollBarOnVerticalScrollable, - spacing = _ref$reactDates.spacing, - zIndex = _ref$reactDates.zIndex; - return { - CalendarMonthGrid: { - background: color.background, - textAlign: 'left', - zIndex: zIndex - }, - - CalendarMonthGrid__animating: { - zIndex: zIndex + 1 - }, - - CalendarMonthGrid__horizontal: { - position: 'absolute', - left: spacing.dayPickerHorizontalPadding - }, - - CalendarMonthGrid__vertical: { - margin: '0 auto' - }, - - CalendarMonthGrid__vertical_scrollable: (0, _object2['default'])({ - margin: '0 auto', - overflowY: 'scroll' - }, noScrollBarOnVerticalScrollable && { - '-webkitOverflowScrolling': 'touch', - '::-webkit-scrollbar': { - '-webkit-appearance': 'none', - display: 'none' - } - }), - - CalendarMonthGrid_month__horizontal: { - display: 'inline-block', - verticalAlign: 'top', - minHeight: '100%' - }, - - CalendarMonthGrid_month__hideForAnimation: { - position: 'absolute', - zIndex: zIndex - 1, - opacity: 0, - pointerEvents: 'none' - }, - - CalendarMonthGrid_month__hidden: { - visibility: 'hidden' - } - }; -})(CalendarMonthGrid); - -/***/ }), -/* 161 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = getCalendarMonthWidth; -function getCalendarMonthWidth(daySize, calendarMonthPadding) { - return 7 * daySize + 2 * calendarMonthPadding + 1; -} - -/***/ }), -/* 162 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = isSameMonth; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function isSameMonth(a, b) { - if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false; - // Compare least significant, most likely to change units first - // Moment's isSame clones moment inputs and is a tad slow - return a.month() === b.month() && a.year() === b.year(); -} - -/***/ }), -/* 163 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var keys = __webpack_require__(308); -var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol'; - -var toStr = Object.prototype.toString; -var concat = Array.prototype.concat; -var origDefineProperty = Object.defineProperty; - -var isFunction = function (fn) { - return typeof fn === 'function' && toStr.call(fn) === '[object Function]'; -}; - -var arePropertyDescriptorsSupported = function () { - var obj = {}; - try { - origDefineProperty(obj, 'x', { enumerable: false, value: obj }); - // eslint-disable-next-line no-unused-vars, no-restricted-syntax - for (var _ in obj) { // jscs:ignore disallowUnusedVariables - return false; - } - return obj.x === obj; - } catch (e) { /* this is IE 8. */ - return false; - } -}; -var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported(); - -var defineProperty = function (object, name, value, predicate) { - if (name in object && (!isFunction(predicate) || !predicate())) { - return; - } - if (supportsDescriptors) { - origDefineProperty(object, name, { - configurable: true, - enumerable: false, - value: value, - writable: true - }); - } else { - object[name] = value; - } -}; - -var defineProperties = function (object, map) { - var predicates = arguments.length > 2 ? arguments[2] : {}; - var props = keys(map); - if (hasSymbols) { - props = concat.call(props, Object.getOwnPropertySymbols(map)); - } - for (var i = 0; i < props.length; i += 1) { - defineProperty(object, props[i], map[props[i]], predicates[props[i]]); - } -}; - -defineProperties.supportsDescriptors = !!supportsDescriptors; - -module.exports = defineProperties; - - -/***/ }), -/* 164 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var toStr = Object.prototype.toString; - -module.exports = function isArguments(value) { - var str = toStr.call(value); - var isArgs = str === '[object Arguments]'; - if (!isArgs) { - isArgs = str !== '[object Array]' && - value !== null && - typeof value === 'object' && - typeof value.length === 'number' && - value.length >= 0 && - toStr.call(value.callee) === '[object Function]'; - } - return isArgs; -}; - - -/***/ }), -/* 165 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var ES = __webpack_require__(166); -var has = __webpack_require__(91); -var bind = __webpack_require__(74); -var isEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable); - -module.exports = function values(O) { - var obj = ES.RequireObjectCoercible(O); - var vals = []; - for (var key in obj) { - if (has(obj, key) && isEnumerable(obj, key)) { - vals.push(obj[key]); - } - } - return vals; -}; - - -/***/ }), -/* 166 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = __webpack_require__(143); - - -/***/ }), -/* 167 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var implementation = __webpack_require__(165); - -module.exports = function getPolyfill() { - return typeof Object.values === 'function' ? Object.values : implementation; -}; - - -/***/ }), -/* 168 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var keys = __webpack_require__(312); -var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol'; - -var toStr = Object.prototype.toString; -var concat = Array.prototype.concat; -var origDefineProperty = Object.defineProperty; - -var isFunction = function (fn) { - return typeof fn === 'function' && toStr.call(fn) === '[object Function]'; -}; - -var arePropertyDescriptorsSupported = function () { - var obj = {}; - try { - origDefineProperty(obj, 'x', { enumerable: false, value: obj }); - // eslint-disable-next-line no-unused-vars, no-restricted-syntax - for (var _ in obj) { // jscs:ignore disallowUnusedVariables - return false; - } - return obj.x === obj; - } catch (e) { /* this is IE 8. */ - return false; - } -}; -var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported(); - -var defineProperty = function (object, name, value, predicate) { - if (name in object && (!isFunction(predicate) || !predicate())) { - return; - } - if (supportsDescriptors) { - origDefineProperty(object, name, { - configurable: true, - enumerable: false, - value: value, - writable: true - }); - } else { - object[name] = value; - } -}; - -var defineProperties = function (object, map) { - var predicates = arguments.length > 2 ? arguments[2] : {}; - var props = keys(map); - if (hasSymbols) { - props = concat.call(props, Object.getOwnPropertySymbols(map)); - } - for (var i = 0; i < props.length; i += 1) { - defineProperty(object, props[i], map[props[i]], predicates[props[i]]); - } -}; - -defineProperties.supportsDescriptors = !!supportsDescriptors; - -module.exports = defineProperties; - - -/***/ }), -/* 169 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var toStr = Object.prototype.toString; - -module.exports = function isArguments(value) { - var str = toStr.call(value); - var isArgs = str === '[object Arguments]'; - if (!isArgs) { - isArgs = str !== '[object Array]' && - value !== null && - typeof value === 'object' && - typeof value.length === 'number' && - value.length >= 0 && - toStr.call(value.callee) === '[object Function]'; - } - return isArgs; -}; - - -/***/ }), -/* 170 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = function contains(other) { - if (arguments.length < 1) { - throw new TypeError('1 argument is required'); - } - if (typeof other !== 'object') { - throw new TypeError('Argument 1 (”other“) to Node.contains must be an instance of Node'); - } - - var node = other; - do { - if (this === node) { - return true; - } - if (node) { - node = node.parentNode; - } - } while (node); - - return false; -}; - - -/***/ }), -/* 171 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var implementation = __webpack_require__(170); - -module.exports = function getPolyfill() { - if (typeof document !== 'undefined') { - if (document.contains) { - return document.contains; - } - if (document.body && document.body.contains) { - return document.body.contains; - } - } - return implementation; -}; - - -/***/ }), -/* 172 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactMomentProptypes = __webpack_require__(64); - -var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _defaultPhrases = __webpack_require__(47); - -var _getPhrasePropTypes = __webpack_require__(51); - -var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); - -var _FocusedInputShape = __webpack_require__(173); - -var _FocusedInputShape2 = _interopRequireDefault(_FocusedInputShape); - -var _IconPositionShape = __webpack_require__(92); - -var _IconPositionShape2 = _interopRequireDefault(_IconPositionShape); - -var _OrientationShape = __webpack_require__(174); - -var _OrientationShape2 = _interopRequireDefault(_OrientationShape); - -var _DisabledShape = __webpack_require__(105); - -var _DisabledShape2 = _interopRequireDefault(_DisabledShape); - -var _AnchorDirectionShape = __webpack_require__(175); - -var _AnchorDirectionShape2 = _interopRequireDefault(_AnchorDirectionShape); - -var _OpenDirectionShape = __webpack_require__(83); - -var _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape); - -var _DayOfWeekShape = __webpack_require__(75); - -var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape); - -var _CalendarInfoPositionShape = __webpack_require__(93); - -var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = { - // required props for a functional interactive DateRangePicker - startDate: _reactMomentProptypes2['default'].momentObj, - endDate: _reactMomentProptypes2['default'].momentObj, - onDatesChange: _propTypes2['default'].func.isRequired, - - focusedInput: _FocusedInputShape2['default'], - onFocusChange: _propTypes2['default'].func.isRequired, - - onClose: _propTypes2['default'].func, - - // input related props - startDateId: _propTypes2['default'].string.isRequired, - startDatePlaceholderText: _propTypes2['default'].string, - endDateId: _propTypes2['default'].string.isRequired, - endDatePlaceholderText: _propTypes2['default'].string, - disabled: _DisabledShape2['default'], - required: _propTypes2['default'].bool, - readOnly: _propTypes2['default'].bool, - screenReaderInputMessage: _propTypes2['default'].string, - showClearDates: _propTypes2['default'].bool, - showDefaultInputIcon: _propTypes2['default'].bool, - inputIconPosition: _IconPositionShape2['default'], - customInputIcon: _propTypes2['default'].node, - customArrowIcon: _propTypes2['default'].node, - customCloseIcon: _propTypes2['default'].node, - noBorder: _propTypes2['default'].bool, - block: _propTypes2['default'].bool, - small: _propTypes2['default'].bool, - regular: _propTypes2['default'].bool, - keepFocusOnInput: _propTypes2['default'].bool, - - // calendar presentation and interaction related props - renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'), - renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'), - orientation: _OrientationShape2['default'], - anchorDirection: _AnchorDirectionShape2['default'], - openDirection: _OpenDirectionShape2['default'], - horizontalMargin: _propTypes2['default'].number, - withPortal: _propTypes2['default'].bool, - withFullScreenPortal: _propTypes2['default'].bool, - appendToBody: _propTypes2['default'].bool, - disableScroll: _propTypes2['default'].bool, - daySize: _airbnbPropTypes.nonNegativeInteger, - isRTL: _propTypes2['default'].bool, - firstDayOfWeek: _DayOfWeekShape2['default'], - initialVisibleMonth: _propTypes2['default'].func, - numberOfMonths: _propTypes2['default'].number, - keepOpenOnDateSelect: _propTypes2['default'].bool, - reopenPickerOnClearDates: _propTypes2['default'].bool, - renderCalendarInfo: _propTypes2['default'].func, - calendarInfoPosition: _CalendarInfoPositionShape2['default'], - hideKeyboardShortcutsPanel: _propTypes2['default'].bool, - verticalHeight: _airbnbPropTypes.nonNegativeInteger, - transitionDuration: _airbnbPropTypes.nonNegativeInteger, - verticalSpacing: _airbnbPropTypes.nonNegativeInteger, - - // navigation related props - navPrev: _propTypes2['default'].node, - navNext: _propTypes2['default'].node, - onPrevMonthClick: _propTypes2['default'].func, - onNextMonthClick: _propTypes2['default'].func, - - // day presentation and interaction related props - renderCalendarDay: _propTypes2['default'].func, - renderDayContents: _propTypes2['default'].func, - minimumNights: _propTypes2['default'].number, - enableOutsideDays: _propTypes2['default'].bool, - isDayBlocked: _propTypes2['default'].func, - isOutsideRange: _propTypes2['default'].func, - isDayHighlighted: _propTypes2['default'].func, - - // internationalization props - displayFormat: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]), - monthFormat: _propTypes2['default'].string, - weekDayFormat: _propTypes2['default'].string, - phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DateRangePickerPhrases)), - dayAriaLabelFormat: _propTypes2['default'].string -}; - -/***/ }), -/* 173 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = _propTypes2['default'].oneOf([_constants.START_DATE, _constants.END_DATE]); - -/***/ }), -/* 174 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = _propTypes2['default'].oneOf([_constants.HORIZONTAL_ORIENTATION, _constants.VERTICAL_ORIENTATION]); - -/***/ }), -/* 175 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = _propTypes2['default'].oneOf([_constants.ANCHOR_LEFT, _constants.ANCHOR_RIGHT]); - -/***/ }), -/* 176 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = getResponsiveContainerStyles; - -var _constants = __webpack_require__(39); - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -function getResponsiveContainerStyles(anchorDirection, currentOffset, containerEdge, margin) { - var windowWidth = typeof window !== 'undefined' ? window.innerWidth : 0; - var calculatedOffset = anchorDirection === _constants.ANCHOR_LEFT ? windowWidth - containerEdge : containerEdge; - var calculatedMargin = margin || 0; - - return _defineProperty({}, anchorDirection, Math.min(currentOffset + calculatedOffset - calculatedMargin, 0)); -} - -/***/ }), -/* 177 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = getDetachedContainerStyles; - -var _constants = __webpack_require__(39); - -/** - * Calculate and return a CSS transform style to position a detached element - * next to a reference element. The open and anchor direction indicate wether - * it should be positioned above/below and/or to the left/right of the - * reference element. - * - * Assuming r(0,0), r(1,1), d(0,0), d(1,1) for the bottom-left and top-right - * corners of the reference and detached elements, respectively: - * - openDirection = DOWN, anchorDirection = LEFT => d(0,1) == r(0,1) - * - openDirection = UP, anchorDirection = LEFT => d(0,0) == r(0,0) - * - openDirection = DOWN, anchorDirection = RIGHT => d(1,1) == r(1,1) - * - openDirection = UP, anchorDirection = RIGHT => d(1,0) == r(1,0) - * - * By using a CSS transform, we allow to further position it using - * top/bottom CSS properties for the anchor gutter. - * - * @param {string} openDirection The vertical positioning of the popup - * @param {string} anchorDirection The horizontal position of the popup - * @param {HTMLElement} referenceEl The reference element - */ -function getDetachedContainerStyles(openDirection, anchorDirection, referenceEl) { - var referenceRect = referenceEl.getBoundingClientRect(); - var offsetX = referenceRect.left; - var offsetY = referenceRect.top; - - if (openDirection === _constants.OPEN_UP) { - offsetY = -(window.innerHeight - referenceRect.bottom); - } - - if (anchorDirection === _constants.ANCHOR_RIGHT) { - offsetX = -(window.innerWidth - referenceRect.right); - } - - return { - transform: 'translate3d(' + String(Math.round(offsetX)) + 'px, ' + String(Math.round(offsetY)) + 'px, 0)' - }; -} - -/***/ }), -/* 178 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getScrollParent = getScrollParent; -exports.getScrollAncestorsOverflowY = getScrollAncestorsOverflowY; -exports['default'] = disableScroll; -var getScrollingRoot = function getScrollingRoot() { - return document.scrollingElement || document.documentElement; -}; - -/** - * Recursively finds the scroll parent of a node. The scroll parrent of a node - * is the closest node that is scrollable. A node is scrollable if: - * - it is allowed to scroll via CSS ('overflow-y' not visible or hidden); - * - and its children/content are "bigger" than the node's box height. - * - * The root of the document always scrolls by default. - * - * @param {HTMLElement} node Any DOM element. - * @return {HTMLElement} The scroll parent element. - */ -function getScrollParent(node) { - var parent = node.parentElement; - - if (parent == null) return getScrollingRoot(); - - var _window$getComputedSt = window.getComputedStyle(parent), - overflowY = _window$getComputedSt.overflowY; - - var canScroll = overflowY !== 'visible' && overflowY !== 'hidden'; - - if (canScroll && parent.scrollHeight > parent.clientHeight) { - return parent; - } - - return getScrollParent(parent); -} - -/** - * Recursively traverses the tree upwards from the given node, capturing all - * ancestor nodes that scroll along with their current 'overflow-y' CSS - * property. - * - * @param {HTMLElement} node Any DOM element. - * @param {Map} [acc] Accumulator map. - * @return {Map} Map of ancestors with their 'overflow-y' value. - */ -function getScrollAncestorsOverflowY(node) { - var acc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Map(); - - var scrollingRoot = getScrollingRoot(); - var scrollParent = getScrollParent(node); - acc.set(scrollParent, scrollParent.style.overflowY); - - if (scrollParent === scrollingRoot) return acc; - return getScrollAncestorsOverflowY(scrollParent, acc); -} - -/** - * Disabling the scroll on a node involves finding all the scrollable ancestors - * and set their 'overflow-y' CSS property to 'hidden'. When all ancestors have - * 'overflow-y: hidden' (up to the document element) there is no scroll - * container, thus all the scroll outside of the node is disabled. In order to - * enable scroll again, we store the previous value of the 'overflow-y' for - * every ancestor in a closure and reset it back. - * - * @param {HTMLElement} node Any DOM element. - */ -function disableScroll(node) { - var scrollAncestorsOverflowY = getScrollAncestorsOverflowY(node); - var toggle = function toggle(on) { - return scrollAncestorsOverflowY.forEach(function (overflowY, ancestor) { - ancestor.style.setProperty('overflow-y', on ? 'hidden' : overflowY); - }); - }; - - toggle(true); - return function () { - return toggle(false); - }; -} - -/***/ }), -/* 179 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _reactMomentProptypes = __webpack_require__(64); - -var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _OpenDirectionShape = __webpack_require__(83); - -var _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape); - -var _defaultPhrases = __webpack_require__(47); - -var _getPhrasePropTypes = __webpack_require__(51); - -var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); - -var _DateRangePickerInput = __webpack_require__(180); - -var _DateRangePickerInput2 = _interopRequireDefault(_DateRangePickerInput); - -var _IconPositionShape = __webpack_require__(92); - -var _IconPositionShape2 = _interopRequireDefault(_IconPositionShape); - -var _DisabledShape = __webpack_require__(105); - -var _DisabledShape2 = _interopRequireDefault(_DisabledShape); - -var _toMomentObject = __webpack_require__(80); - -var _toMomentObject2 = _interopRequireDefault(_toMomentObject); - -var _toLocalizedDateString = __webpack_require__(129); - -var _toLocalizedDateString2 = _interopRequireDefault(_toLocalizedDateString); - -var _isInclusivelyAfterDay = __webpack_require__(94); - -var _isInclusivelyAfterDay2 = _interopRequireDefault(_isInclusivelyAfterDay); - -var _isBeforeDay = __webpack_require__(95); - -var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)({ - startDate: _reactMomentProptypes2['default'].momentObj, - startDateId: _propTypes2['default'].string, - startDatePlaceholderText: _propTypes2['default'].string, - isStartDateFocused: _propTypes2['default'].bool, - - endDate: _reactMomentProptypes2['default'].momentObj, - endDateId: _propTypes2['default'].string, - endDatePlaceholderText: _propTypes2['default'].string, - isEndDateFocused: _propTypes2['default'].bool, - - screenReaderMessage: _propTypes2['default'].string, - showClearDates: _propTypes2['default'].bool, - showCaret: _propTypes2['default'].bool, - showDefaultInputIcon: _propTypes2['default'].bool, - inputIconPosition: _IconPositionShape2['default'], - disabled: _DisabledShape2['default'], - required: _propTypes2['default'].bool, - readOnly: _propTypes2['default'].bool, - openDirection: _OpenDirectionShape2['default'], - noBorder: _propTypes2['default'].bool, - block: _propTypes2['default'].bool, - small: _propTypes2['default'].bool, - regular: _propTypes2['default'].bool, - verticalSpacing: _airbnbPropTypes.nonNegativeInteger, - - keepOpenOnDateSelect: _propTypes2['default'].bool, - reopenPickerOnClearDates: _propTypes2['default'].bool, - withFullScreenPortal: _propTypes2['default'].bool, - minimumNights: _airbnbPropTypes.nonNegativeInteger, - isOutsideRange: _propTypes2['default'].func, - displayFormat: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]), - - onFocusChange: _propTypes2['default'].func, - onClose: _propTypes2['default'].func, - onDatesChange: _propTypes2['default'].func, - onKeyDownArrowDown: _propTypes2['default'].func, - onKeyDownQuestionMark: _propTypes2['default'].func, - - customInputIcon: _propTypes2['default'].node, - customArrowIcon: _propTypes2['default'].node, - customCloseIcon: _propTypes2['default'].node, - - // accessibility - isFocused: _propTypes2['default'].bool, - - // i18n - phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DateRangePickerInputPhrases)), - - isRTL: _propTypes2['default'].bool -}); - -var defaultProps = { - startDate: null, - startDateId: _constants.START_DATE, - startDatePlaceholderText: 'Start Date', - isStartDateFocused: false, - - endDate: null, - endDateId: _constants.END_DATE, - endDatePlaceholderText: 'End Date', - isEndDateFocused: false, - - screenReaderMessage: '', - showClearDates: false, - showCaret: false, - showDefaultInputIcon: false, - inputIconPosition: _constants.ICON_BEFORE_POSITION, - disabled: false, - required: false, - readOnly: false, - openDirection: _constants.OPEN_DOWN, - noBorder: false, - block: false, - small: false, - regular: false, - verticalSpacing: undefined, - - keepOpenOnDateSelect: false, - reopenPickerOnClearDates: false, - withFullScreenPortal: false, - minimumNights: 1, - isOutsideRange: function () { - function isOutsideRange(day) { - return !(0, _isInclusivelyAfterDay2['default'])(day, (0, _moment2['default'])()); - } - - return isOutsideRange; - }(), - displayFormat: function () { - function displayFormat() { - return _moment2['default'].localeData().longDateFormat('L'); - } - - return displayFormat; - }(), - - onFocusChange: function () { - function onFocusChange() {} - - return onFocusChange; - }(), - onClose: function () { - function onClose() {} - - return onClose; - }(), - onDatesChange: function () { - function onDatesChange() {} - - return onDatesChange; - }(), - onKeyDownArrowDown: function () { - function onKeyDownArrowDown() {} - - return onKeyDownArrowDown; - }(), - onKeyDownQuestionMark: function () { - function onKeyDownQuestionMark() {} - - return onKeyDownQuestionMark; - }(), - - - customInputIcon: null, - customArrowIcon: null, - customCloseIcon: null, - - // accessibility - isFocused: false, - - // i18n - phrases: _defaultPhrases.DateRangePickerInputPhrases, - - isRTL: false -}; - -var DateRangePickerInputController = function (_React$Component) { - _inherits(DateRangePickerInputController, _React$Component); - - function DateRangePickerInputController(props) { - _classCallCheck(this, DateRangePickerInputController); - - var _this = _possibleConstructorReturn(this, (DateRangePickerInputController.__proto__ || Object.getPrototypeOf(DateRangePickerInputController)).call(this, props)); - - _this.onClearFocus = _this.onClearFocus.bind(_this); - _this.onStartDateChange = _this.onStartDateChange.bind(_this); - _this.onStartDateFocus = _this.onStartDateFocus.bind(_this); - _this.onEndDateChange = _this.onEndDateChange.bind(_this); - _this.onEndDateFocus = _this.onEndDateFocus.bind(_this); - _this.clearDates = _this.clearDates.bind(_this); - return _this; - } - - _createClass(DateRangePickerInputController, [{ - key: 'onClearFocus', - value: function () { - function onClearFocus() { - var _props = this.props, - onFocusChange = _props.onFocusChange, - onClose = _props.onClose, - startDate = _props.startDate, - endDate = _props.endDate; - - - onFocusChange(null); - onClose({ startDate: startDate, endDate: endDate }); - } - - return onClearFocus; - }() - }, { - key: 'onEndDateChange', - value: function () { - function onEndDateChange(endDateString) { - var _props2 = this.props, - startDate = _props2.startDate, - isOutsideRange = _props2.isOutsideRange, - minimumNights = _props2.minimumNights, - keepOpenOnDateSelect = _props2.keepOpenOnDateSelect, - onDatesChange = _props2.onDatesChange; - - - var endDate = (0, _toMomentObject2['default'])(endDateString, this.getDisplayFormat()); - - var isEndDateValid = endDate && !isOutsideRange(endDate) && !(startDate && (0, _isBeforeDay2['default'])(endDate, startDate.clone().add(minimumNights, 'days'))); - if (isEndDateValid) { - onDatesChange({ startDate: startDate, endDate: endDate }); - if (!keepOpenOnDateSelect) this.onClearFocus(); - } else { - onDatesChange({ - startDate: startDate, - endDate: null - }); - } - } - - return onEndDateChange; - }() - }, { - key: 'onEndDateFocus', - value: function () { - function onEndDateFocus() { - var _props3 = this.props, - startDate = _props3.startDate, - onFocusChange = _props3.onFocusChange, - withFullScreenPortal = _props3.withFullScreenPortal, - disabled = _props3.disabled; - - - if (!startDate && withFullScreenPortal && (!disabled || disabled === _constants.END_DATE)) { - // When the datepicker is full screen, we never want to focus the end date first - // because there's no indication that that is the case once the datepicker is open and it - // might confuse the user - onFocusChange(_constants.START_DATE); - } else if (!disabled || disabled === _constants.START_DATE) { - onFocusChange(_constants.END_DATE); - } - } - - return onEndDateFocus; - }() - }, { - key: 'onStartDateChange', - value: function () { - function onStartDateChange(startDateString) { - var endDate = this.props.endDate; - var _props4 = this.props, - isOutsideRange = _props4.isOutsideRange, - minimumNights = _props4.minimumNights, - onDatesChange = _props4.onDatesChange, - onFocusChange = _props4.onFocusChange, - disabled = _props4.disabled; - - - var startDate = (0, _toMomentObject2['default'])(startDateString, this.getDisplayFormat()); - var isEndDateBeforeStartDate = startDate && (0, _isBeforeDay2['default'])(endDate, startDate.clone().add(minimumNights, 'days')); - var isStartDateValid = startDate && !isOutsideRange(startDate) && !(disabled === _constants.END_DATE && isEndDateBeforeStartDate); - - if (isStartDateValid) { - if (isEndDateBeforeStartDate) { - endDate = null; - } - - onDatesChange({ startDate: startDate, endDate: endDate }); - onFocusChange(_constants.END_DATE); - } else { - onDatesChange({ - startDate: null, - endDate: endDate - }); - } - } - - return onStartDateChange; - }() - }, { - key: 'onStartDateFocus', - value: function () { - function onStartDateFocus() { - var _props5 = this.props, - disabled = _props5.disabled, - onFocusChange = _props5.onFocusChange; - - if (!disabled || disabled === _constants.END_DATE) { - onFocusChange(_constants.START_DATE); - } - } - - return onStartDateFocus; - }() - }, { - key: 'getDisplayFormat', - value: function () { - function getDisplayFormat() { - var displayFormat = this.props.displayFormat; - - return typeof displayFormat === 'string' ? displayFormat : displayFormat(); - } - - return getDisplayFormat; - }() - }, { - key: 'getDateString', - value: function () { - function getDateString(date) { - var displayFormat = this.getDisplayFormat(); - if (date && displayFormat) { - return date && date.format(displayFormat); - } - return (0, _toLocalizedDateString2['default'])(date); - } - - return getDateString; - }() - }, { - key: 'clearDates', - value: function () { - function clearDates() { - var _props6 = this.props, - onDatesChange = _props6.onDatesChange, - reopenPickerOnClearDates = _props6.reopenPickerOnClearDates, - onFocusChange = _props6.onFocusChange; - - onDatesChange({ startDate: null, endDate: null }); - if (reopenPickerOnClearDates) { - onFocusChange(_constants.START_DATE); - } - } - - return clearDates; - }() - }, { - key: 'render', - value: function () { - function render() { - var _props7 = this.props, - startDate = _props7.startDate, - startDateId = _props7.startDateId, - startDatePlaceholderText = _props7.startDatePlaceholderText, - isStartDateFocused = _props7.isStartDateFocused, - endDate = _props7.endDate, - endDateId = _props7.endDateId, - endDatePlaceholderText = _props7.endDatePlaceholderText, - isEndDateFocused = _props7.isEndDateFocused, - screenReaderMessage = _props7.screenReaderMessage, - showClearDates = _props7.showClearDates, - showCaret = _props7.showCaret, - showDefaultInputIcon = _props7.showDefaultInputIcon, - inputIconPosition = _props7.inputIconPosition, - customInputIcon = _props7.customInputIcon, - customArrowIcon = _props7.customArrowIcon, - customCloseIcon = _props7.customCloseIcon, - disabled = _props7.disabled, - required = _props7.required, - readOnly = _props7.readOnly, - openDirection = _props7.openDirection, - isFocused = _props7.isFocused, - phrases = _props7.phrases, - onKeyDownArrowDown = _props7.onKeyDownArrowDown, - onKeyDownQuestionMark = _props7.onKeyDownQuestionMark, - isRTL = _props7.isRTL, - noBorder = _props7.noBorder, - block = _props7.block, - small = _props7.small, - regular = _props7.regular, - verticalSpacing = _props7.verticalSpacing; - - - var startDateString = this.getDateString(startDate); - var endDateString = this.getDateString(endDate); - - return _react2['default'].createElement(_DateRangePickerInput2['default'], { - startDate: startDateString, - startDateId: startDateId, - startDatePlaceholderText: startDatePlaceholderText, - isStartDateFocused: isStartDateFocused, - endDate: endDateString, - endDateId: endDateId, - endDatePlaceholderText: endDatePlaceholderText, - isEndDateFocused: isEndDateFocused, - isFocused: isFocused, - disabled: disabled, - required: required, - readOnly: readOnly, - openDirection: openDirection, - showCaret: showCaret, - showDefaultInputIcon: showDefaultInputIcon, - inputIconPosition: inputIconPosition, - customInputIcon: customInputIcon, - customArrowIcon: customArrowIcon, - customCloseIcon: customCloseIcon, - phrases: phrases, - onStartDateChange: this.onStartDateChange, - onStartDateFocus: this.onStartDateFocus, - onStartDateShiftTab: this.onClearFocus, - onEndDateChange: this.onEndDateChange, - onEndDateFocus: this.onEndDateFocus, - onEndDateTab: this.onClearFocus, - showClearDates: showClearDates, - onClearDates: this.clearDates, - screenReaderMessage: screenReaderMessage, - onKeyDownArrowDown: onKeyDownArrowDown, - onKeyDownQuestionMark: onKeyDownQuestionMark, - isRTL: isRTL, - noBorder: noBorder, - block: block, - small: small, - regular: regular, - verticalSpacing: verticalSpacing - }); - } - - return render; - }() - }]); - - return DateRangePickerInputController; -}(_react2['default'].Component); - -exports['default'] = DateRangePickerInputController; - - -DateRangePickerInputController.propTypes = propTypes; -DateRangePickerInputController.defaultProps = defaultProps; - -/***/ }), -/* 180 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _reactWithStyles = __webpack_require__(56); - -var _defaultPhrases = __webpack_require__(47); - -var _getPhrasePropTypes = __webpack_require__(51); - -var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); - -var _OpenDirectionShape = __webpack_require__(83); - -var _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape); - -var _DateInput = __webpack_require__(181); - -var _DateInput2 = _interopRequireDefault(_DateInput); - -var _IconPositionShape = __webpack_require__(92); - -var _IconPositionShape2 = _interopRequireDefault(_IconPositionShape); - -var _DisabledShape = __webpack_require__(105); - -var _DisabledShape2 = _interopRequireDefault(_DisabledShape); - -var _RightArrow = __webpack_require__(185); - -var _RightArrow2 = _interopRequireDefault(_RightArrow); - -var _LeftArrow = __webpack_require__(186); - -var _LeftArrow2 = _interopRequireDefault(_LeftArrow); - -var _CloseButton = __webpack_require__(96); - -var _CloseButton2 = _interopRequireDefault(_CloseButton); - -var _CalendarIcon = __webpack_require__(187); - -var _CalendarIcon2 = _interopRequireDefault(_CalendarIcon); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, { - startDateId: _propTypes2['default'].string, - startDatePlaceholderText: _propTypes2['default'].string, - screenReaderMessage: _propTypes2['default'].string, - - endDateId: _propTypes2['default'].string, - endDatePlaceholderText: _propTypes2['default'].string, - - onStartDateFocus: _propTypes2['default'].func, - onEndDateFocus: _propTypes2['default'].func, - onStartDateChange: _propTypes2['default'].func, - onEndDateChange: _propTypes2['default'].func, - onStartDateShiftTab: _propTypes2['default'].func, - onEndDateTab: _propTypes2['default'].func, - onClearDates: _propTypes2['default'].func, - onKeyDownArrowDown: _propTypes2['default'].func, - onKeyDownQuestionMark: _propTypes2['default'].func, - - startDate: _propTypes2['default'].string, - endDate: _propTypes2['default'].string, - - isStartDateFocused: _propTypes2['default'].bool, - isEndDateFocused: _propTypes2['default'].bool, - showClearDates: _propTypes2['default'].bool, - disabled: _DisabledShape2['default'], - required: _propTypes2['default'].bool, - readOnly: _propTypes2['default'].bool, - openDirection: _OpenDirectionShape2['default'], - showCaret: _propTypes2['default'].bool, - showDefaultInputIcon: _propTypes2['default'].bool, - inputIconPosition: _IconPositionShape2['default'], - customInputIcon: _propTypes2['default'].node, - customArrowIcon: _propTypes2['default'].node, - customCloseIcon: _propTypes2['default'].node, - noBorder: _propTypes2['default'].bool, - block: _propTypes2['default'].bool, - small: _propTypes2['default'].bool, - regular: _propTypes2['default'].bool, - verticalSpacing: _airbnbPropTypes.nonNegativeInteger, - - // accessibility - isFocused: _propTypes2['default'].bool, // describes actual DOM focus - - // i18n - phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DateRangePickerInputPhrases)), - - isRTL: _propTypes2['default'].bool -})); - -var defaultProps = { - startDateId: _constants.START_DATE, - endDateId: _constants.END_DATE, - startDatePlaceholderText: 'Start Date', - endDatePlaceholderText: 'End Date', - screenReaderMessage: '', - onStartDateFocus: function () { - function onStartDateFocus() {} - - return onStartDateFocus; - }(), - onEndDateFocus: function () { - function onEndDateFocus() {} - - return onEndDateFocus; - }(), - onStartDateChange: function () { - function onStartDateChange() {} - - return onStartDateChange; - }(), - onEndDateChange: function () { - function onEndDateChange() {} - - return onEndDateChange; - }(), - onStartDateShiftTab: function () { - function onStartDateShiftTab() {} - - return onStartDateShiftTab; - }(), - onEndDateTab: function () { - function onEndDateTab() {} - - return onEndDateTab; - }(), - onClearDates: function () { - function onClearDates() {} - - return onClearDates; - }(), - onKeyDownArrowDown: function () { - function onKeyDownArrowDown() {} - - return onKeyDownArrowDown; - }(), - onKeyDownQuestionMark: function () { - function onKeyDownQuestionMark() {} - - return onKeyDownQuestionMark; - }(), - - - startDate: '', - endDate: '', - - isStartDateFocused: false, - isEndDateFocused: false, - showClearDates: false, - disabled: false, - required: false, - readOnly: false, - openDirection: _constants.OPEN_DOWN, - showCaret: false, - showDefaultInputIcon: false, - inputIconPosition: _constants.ICON_BEFORE_POSITION, - customInputIcon: null, - customArrowIcon: null, - customCloseIcon: null, - noBorder: false, - block: false, - small: false, - regular: false, - verticalSpacing: undefined, - - // accessibility - isFocused: false, - - // i18n - phrases: _defaultPhrases.DateRangePickerInputPhrases, - - isRTL: false -}; - -function DateRangePickerInput(_ref) { - var startDate = _ref.startDate, - startDateId = _ref.startDateId, - startDatePlaceholderText = _ref.startDatePlaceholderText, - screenReaderMessage = _ref.screenReaderMessage, - isStartDateFocused = _ref.isStartDateFocused, - onStartDateChange = _ref.onStartDateChange, - onStartDateFocus = _ref.onStartDateFocus, - onStartDateShiftTab = _ref.onStartDateShiftTab, - endDate = _ref.endDate, - endDateId = _ref.endDateId, - endDatePlaceholderText = _ref.endDatePlaceholderText, - isEndDateFocused = _ref.isEndDateFocused, - onEndDateChange = _ref.onEndDateChange, - onEndDateFocus = _ref.onEndDateFocus, - onEndDateTab = _ref.onEndDateTab, - onKeyDownArrowDown = _ref.onKeyDownArrowDown, - onKeyDownQuestionMark = _ref.onKeyDownQuestionMark, - onClearDates = _ref.onClearDates, - showClearDates = _ref.showClearDates, - disabled = _ref.disabled, - required = _ref.required, - readOnly = _ref.readOnly, - showCaret = _ref.showCaret, - openDirection = _ref.openDirection, - showDefaultInputIcon = _ref.showDefaultInputIcon, - inputIconPosition = _ref.inputIconPosition, - customInputIcon = _ref.customInputIcon, - customArrowIcon = _ref.customArrowIcon, - customCloseIcon = _ref.customCloseIcon, - isFocused = _ref.isFocused, - phrases = _ref.phrases, - isRTL = _ref.isRTL, - noBorder = _ref.noBorder, - block = _ref.block, - verticalSpacing = _ref.verticalSpacing, - small = _ref.small, - regular = _ref.regular, - styles = _ref.styles; - - var calendarIcon = customInputIcon || _react2['default'].createElement(_CalendarIcon2['default'], (0, _reactWithStyles.css)(styles.DateRangePickerInput_calendarIcon_svg)); - - var arrowIcon = customArrowIcon || _react2['default'].createElement(_RightArrow2['default'], (0, _reactWithStyles.css)(styles.DateRangePickerInput_arrow_svg)); - if (isRTL) arrowIcon = _react2['default'].createElement(_LeftArrow2['default'], (0, _reactWithStyles.css)(styles.DateRangePickerInput_arrow_svg)); - if (small) arrowIcon = '-'; - - var closeIcon = customCloseIcon || _react2['default'].createElement(_CloseButton2['default'], (0, _reactWithStyles.css)(styles.DateRangePickerInput_clearDates_svg, small && styles.DateRangePickerInput_clearDates_svg__small)); - var screenReaderText = screenReaderMessage || phrases.keyboardNavigationInstructions; - var inputIcon = (showDefaultInputIcon || customInputIcon !== null) && _react2['default'].createElement( - 'button', - _extends({}, (0, _reactWithStyles.css)(styles.DateRangePickerInput_calendarIcon), { - type: 'button', - disabled: disabled, - 'aria-label': phrases.focusStartDate, - onClick: onKeyDownArrowDown - }), - calendarIcon - ); - var startDateDisabled = disabled === _constants.START_DATE || disabled === true; - var endDateDisabled = disabled === _constants.END_DATE || disabled === true; - - return _react2['default'].createElement( - 'div', - (0, _reactWithStyles.css)(styles.DateRangePickerInput, disabled && styles.DateRangePickerInput__disabled, isRTL && styles.DateRangePickerInput__rtl, !noBorder && styles.DateRangePickerInput__withBorder, block && styles.DateRangePickerInput__block, showClearDates && styles.DateRangePickerInput__showClearDates), - inputIconPosition === _constants.ICON_BEFORE_POSITION && inputIcon, - _react2['default'].createElement(_DateInput2['default'], { - id: startDateId, - placeholder: startDatePlaceholderText, - displayValue: startDate, - screenReaderMessage: screenReaderText, - focused: isStartDateFocused, - isFocused: isFocused, - disabled: startDateDisabled, - required: required, - readOnly: readOnly, - showCaret: showCaret, - openDirection: openDirection, - onChange: onStartDateChange, - onFocus: onStartDateFocus, - onKeyDownShiftTab: onStartDateShiftTab, - onKeyDownArrowDown: onKeyDownArrowDown, - onKeyDownQuestionMark: onKeyDownQuestionMark, - verticalSpacing: verticalSpacing, - small: small, - regular: regular - }), - _react2['default'].createElement( - 'div', - _extends({}, (0, _reactWithStyles.css)(styles.DateRangePickerInput_arrow), { - 'aria-hidden': 'true', - role: 'presentation' - }), - arrowIcon - ), - _react2['default'].createElement(_DateInput2['default'], { - id: endDateId, - placeholder: endDatePlaceholderText, - displayValue: endDate, - screenReaderMessage: screenReaderText, - focused: isEndDateFocused, - isFocused: isFocused, - disabled: endDateDisabled, - required: required, - readOnly: readOnly, - showCaret: showCaret, - openDirection: openDirection, - onChange: onEndDateChange, - onFocus: onEndDateFocus, - onKeyDownTab: onEndDateTab, - onKeyDownArrowDown: onKeyDownArrowDown, - onKeyDownQuestionMark: onKeyDownQuestionMark, - verticalSpacing: verticalSpacing, - small: small, - regular: regular - }), - showClearDates && _react2['default'].createElement( - 'button', - _extends({ - type: 'button', - 'aria-label': phrases.clearDates - }, (0, _reactWithStyles.css)(styles.DateRangePickerInput_clearDates, small && styles.DateRangePickerInput_clearDates__small, !customCloseIcon && styles.DateRangePickerInput_clearDates_default, !(startDate || endDate) && styles.DateRangePickerInput_clearDates__hide), { - onClick: onClearDates, - disabled: disabled - }), - closeIcon - ), - inputIconPosition === _constants.ICON_AFTER_POSITION && inputIcon - ); -} - -DateRangePickerInput.propTypes = propTypes; -DateRangePickerInput.defaultProps = defaultProps; - -exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) { - var _ref2$reactDates = _ref2.reactDates, - border = _ref2$reactDates.border, - color = _ref2$reactDates.color, - sizing = _ref2$reactDates.sizing; - return { - DateRangePickerInput: { - backgroundColor: color.background, - display: 'inline-block' - }, - - DateRangePickerInput__disabled: { - background: color.disabled - }, - - DateRangePickerInput__withBorder: { - borderColor: color.border, - borderWidth: border.pickerInput.borderWidth, - borderStyle: border.pickerInput.borderStyle, - borderRadius: border.pickerInput.borderRadius - }, - - DateRangePickerInput__rtl: { - direction: 'rtl' - }, - - DateRangePickerInput__block: { - display: 'block' - }, - - DateRangePickerInput__showClearDates: { - paddingRight: 30 - }, - - DateRangePickerInput_arrow: { - display: 'inline-block', - verticalAlign: 'middle', - color: color.text - }, - - DateRangePickerInput_arrow_svg: { - verticalAlign: 'middle', - fill: color.text, - height: sizing.arrowWidth, - width: sizing.arrowWidth - }, - - DateRangePickerInput_clearDates: { - background: 'none', - border: 0, - color: 'inherit', - font: 'inherit', - lineHeight: 'normal', - overflow: 'visible', - - cursor: 'pointer', - padding: 10, - margin: '0 10px 0 5px', - position: 'absolute', - right: 0, - top: '50%', - transform: 'translateY(-50%)' - }, - - DateRangePickerInput_clearDates__small: { - padding: 6 - }, - - DateRangePickerInput_clearDates_default: { - ':focus': { - background: color.core.border, - borderRadius: '50%' - }, - - ':hover': { - background: color.core.border, - borderRadius: '50%' - } - }, - - DateRangePickerInput_clearDates__hide: { - visibility: 'hidden' - }, - - DateRangePickerInput_clearDates_svg: { - fill: color.core.grayLight, - height: 12, - width: 15, - verticalAlign: 'middle' - }, - - DateRangePickerInput_clearDates_svg__small: { - height: 9 - }, - - DateRangePickerInput_calendarIcon: { - background: 'none', - border: 0, - color: 'inherit', - font: 'inherit', - lineHeight: 'normal', - overflow: 'visible', - - cursor: 'pointer', - display: 'inline-block', - verticalAlign: 'middle', - padding: 10, - margin: '0 5px 0 10px' - }, - - DateRangePickerInput_calendarIcon_svg: { - fill: color.core.grayLight, - height: 15, - width: 14, - verticalAlign: 'middle' - } - }; -})(DateRangePickerInput); - -/***/ }), -/* 181 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _reactWithStyles = __webpack_require__(56); - -var _throttle = __webpack_require__(182); - -var _throttle2 = _interopRequireDefault(_throttle); - -var _isTouchDevice = __webpack_require__(82); - -var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice); - -var _getInputHeight = __webpack_require__(127); - -var _getInputHeight2 = _interopRequireDefault(_getInputHeight); - -var _OpenDirectionShape = __webpack_require__(83); - -var _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var FANG_PATH_TOP = 'M0,' + String(_constants.FANG_HEIGHT_PX) + ' ' + String(_constants.FANG_WIDTH_PX) + ',' + String(_constants.FANG_HEIGHT_PX) + ' ' + _constants.FANG_WIDTH_PX / 2 + ',0z'; -var FANG_STROKE_TOP = 'M0,' + String(_constants.FANG_HEIGHT_PX) + ' ' + _constants.FANG_WIDTH_PX / 2 + ',0 ' + String(_constants.FANG_WIDTH_PX) + ',' + String(_constants.FANG_HEIGHT_PX); -var FANG_PATH_BOTTOM = 'M0,0 ' + String(_constants.FANG_WIDTH_PX) + ',0 ' + _constants.FANG_WIDTH_PX / 2 + ',' + String(_constants.FANG_HEIGHT_PX) + 'z'; -var FANG_STROKE_BOTTOM = 'M0,0 ' + _constants.FANG_WIDTH_PX / 2 + ',' + String(_constants.FANG_HEIGHT_PX) + ' ' + String(_constants.FANG_WIDTH_PX) + ',0'; - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, { - id: _propTypes2['default'].string.isRequired, - placeholder: _propTypes2['default'].string, // also used as label - displayValue: _propTypes2['default'].string, - screenReaderMessage: _propTypes2['default'].string, - focused: _propTypes2['default'].bool, - disabled: _propTypes2['default'].bool, - required: _propTypes2['default'].bool, - readOnly: _propTypes2['default'].bool, - openDirection: _OpenDirectionShape2['default'], - showCaret: _propTypes2['default'].bool, - verticalSpacing: _airbnbPropTypes.nonNegativeInteger, - small: _propTypes2['default'].bool, - block: _propTypes2['default'].bool, - regular: _propTypes2['default'].bool, - - onChange: _propTypes2['default'].func, - onFocus: _propTypes2['default'].func, - onKeyDownShiftTab: _propTypes2['default'].func, - onKeyDownTab: _propTypes2['default'].func, - - onKeyDownArrowDown: _propTypes2['default'].func, - onKeyDownQuestionMark: _propTypes2['default'].func, - - // accessibility - isFocused: _propTypes2['default'].bool // describes actual DOM focus -})); - -var defaultProps = { - placeholder: 'Select Date', - displayValue: '', - screenReaderMessage: '', - focused: false, - disabled: false, - required: false, - readOnly: null, - openDirection: _constants.OPEN_DOWN, - showCaret: false, - verticalSpacing: _constants.DEFAULT_VERTICAL_SPACING, - small: false, - block: false, - regular: false, - - onChange: function () { - function onChange() {} - - return onChange; - }(), - onFocus: function () { - function onFocus() {} - - return onFocus; - }(), - onKeyDownShiftTab: function () { - function onKeyDownShiftTab() {} - - return onKeyDownShiftTab; - }(), - onKeyDownTab: function () { - function onKeyDownTab() {} - - return onKeyDownTab; - }(), - onKeyDownArrowDown: function () { - function onKeyDownArrowDown() {} - - return onKeyDownArrowDown; - }(), - onKeyDownQuestionMark: function () { - function onKeyDownQuestionMark() {} - - return onKeyDownQuestionMark; - }(), - - - // accessibility - isFocused: false -}; - -var DateInput = function (_React$Component) { - _inherits(DateInput, _React$Component); - - function DateInput(props) { - _classCallCheck(this, DateInput); - - var _this = _possibleConstructorReturn(this, (DateInput.__proto__ || Object.getPrototypeOf(DateInput)).call(this, props)); - - _this.state = { - dateString: '', - isTouchDevice: false - }; - - _this.onChange = _this.onChange.bind(_this); - _this.onKeyDown = _this.onKeyDown.bind(_this); - _this.setInputRef = _this.setInputRef.bind(_this); - _this.throttledKeyDown = (0, _throttle2['default'])(_this.onFinalKeyDown, 300, { trailing: false }); - return _this; - } - - _createClass(DateInput, [{ - key: 'componentDidMount', - value: function () { - function componentDidMount() { - this.setState({ isTouchDevice: (0, _isTouchDevice2['default'])() }); - } - - return componentDidMount; - }() - }, { - key: 'componentWillReceiveProps', - value: function () { - function componentWillReceiveProps(nextProps) { - var dateString = this.state.dateString; - - if (dateString && nextProps.displayValue) { - this.setState({ - dateString: '' - }); - } - } - - return componentWillReceiveProps; - }() - }, { - key: 'componentDidUpdate', - value: function () { - function componentDidUpdate(prevProps) { - var _props = this.props, - focused = _props.focused, - isFocused = _props.isFocused; - - if (prevProps.focused === focused && prevProps.isFocused === isFocused) return; - - if (focused && isFocused) { - this.inputRef.focus(); - } - } - - return componentDidUpdate; - }() - }, { - key: 'onChange', - value: function () { - function onChange(e) { - var _props2 = this.props, - onChange = _props2.onChange, - onKeyDownQuestionMark = _props2.onKeyDownQuestionMark; - - var dateString = e.target.value; - - // In Safari, onKeyDown does not consistently fire ahead of onChange. As a result, we need to - // special case the `?` key so that it always triggers the appropriate callback, instead of - // modifying the input value - if (dateString[dateString.length - 1] === '?') { - onKeyDownQuestionMark(e); - } else { - this.setState({ dateString: dateString }, function () { - return onChange(dateString); - }); - } - } - - return onChange; - }() - }, { - key: 'onKeyDown', - value: function () { - function onKeyDown(e) { - e.stopPropagation(); - if (!_constants.MODIFIER_KEY_NAMES.has(e.key)) { - this.throttledKeyDown(e); - } - } - - return onKeyDown; - }() - }, { - key: 'onFinalKeyDown', - value: function () { - function onFinalKeyDown(e) { - var _props3 = this.props, - onKeyDownShiftTab = _props3.onKeyDownShiftTab, - onKeyDownTab = _props3.onKeyDownTab, - onKeyDownArrowDown = _props3.onKeyDownArrowDown, - onKeyDownQuestionMark = _props3.onKeyDownQuestionMark; - var key = e.key; - - - if (key === 'Tab') { - if (e.shiftKey) { - onKeyDownShiftTab(e); - } else { - onKeyDownTab(e); - } - } else if (key === 'ArrowDown') { - onKeyDownArrowDown(e); - } else if (key === '?') { - e.preventDefault(); - onKeyDownQuestionMark(e); - } - } - - return onFinalKeyDown; - }() - }, { - key: 'setInputRef', - value: function () { - function setInputRef(ref) { - this.inputRef = ref; - } - - return setInputRef; - }() - }, { - key: 'render', - value: function () { - function render() { - var _state = this.state, - dateString = _state.dateString, - isTouch = _state.isTouchDevice; - var _props4 = this.props, - id = _props4.id, - placeholder = _props4.placeholder, - displayValue = _props4.displayValue, - screenReaderMessage = _props4.screenReaderMessage, - focused = _props4.focused, - showCaret = _props4.showCaret, - onFocus = _props4.onFocus, - disabled = _props4.disabled, - required = _props4.required, - readOnly = _props4.readOnly, - openDirection = _props4.openDirection, - verticalSpacing = _props4.verticalSpacing, - small = _props4.small, - regular = _props4.regular, - block = _props4.block, - styles = _props4.styles, - reactDates = _props4.theme.reactDates; - - - var value = dateString || displayValue || ''; - var screenReaderMessageId = 'DateInput__screen-reader-message-' + String(id); - - var withFang = showCaret && focused; - - var inputHeight = (0, _getInputHeight2['default'])(reactDates, small); - - return _react2['default'].createElement( - 'div', - (0, _reactWithStyles.css)(styles.DateInput, small && styles.DateInput__small, block && styles.DateInput__block, withFang && styles.DateInput__withFang, disabled && styles.DateInput__disabled, withFang && openDirection === _constants.OPEN_DOWN && styles.DateInput__openDown, withFang && openDirection === _constants.OPEN_UP && styles.DateInput__openUp), - _react2['default'].createElement('input', _extends({}, (0, _reactWithStyles.css)(styles.DateInput_input, small && styles.DateInput_input__small, regular && styles.DateInput_input__regular, readOnly && styles.DateInput_input__readOnly, focused && styles.DateInput_input__focused, disabled && styles.DateInput_input__disabled), { - 'aria-label': placeholder, - type: 'text', - id: id, - name: id, - ref: this.setInputRef, - value: value, - onChange: this.onChange, - onKeyDown: this.onKeyDown, - onFocus: onFocus, - placeholder: placeholder, - autoComplete: 'off', - disabled: disabled, - readOnly: typeof readOnly === 'boolean' ? readOnly : isTouch, - required: required, - 'aria-describedby': screenReaderMessage && screenReaderMessageId - })), - withFang && _react2['default'].createElement( - 'svg', - _extends({ - role: 'presentation', - focusable: 'false' - }, (0, _reactWithStyles.css)(styles.DateInput_fang, openDirection === _constants.OPEN_DOWN && { - top: inputHeight + verticalSpacing - _constants.FANG_HEIGHT_PX - 1 - }, openDirection === _constants.OPEN_UP && { - bottom: inputHeight + verticalSpacing - _constants.FANG_HEIGHT_PX - 1 - })), - _react2['default'].createElement('path', _extends({}, (0, _reactWithStyles.css)(styles.DateInput_fangShape), { - d: openDirection === _constants.OPEN_DOWN ? FANG_PATH_TOP : FANG_PATH_BOTTOM - })), - _react2['default'].createElement('path', _extends({}, (0, _reactWithStyles.css)(styles.DateInput_fangStroke), { - d: openDirection === _constants.OPEN_DOWN ? FANG_STROKE_TOP : FANG_STROKE_BOTTOM - })) - ), - screenReaderMessage && _react2['default'].createElement( - 'p', - _extends({}, (0, _reactWithStyles.css)(styles.DateInput_screenReaderMessage), { id: screenReaderMessageId }), - screenReaderMessage - ) - ); - } - - return render; - }() - }]); - - return DateInput; -}(_react2['default'].Component); - -DateInput.propTypes = propTypes; -DateInput.defaultProps = defaultProps; - -exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) { - var _ref$reactDates = _ref.reactDates, - border = _ref$reactDates.border, - color = _ref$reactDates.color, - sizing = _ref$reactDates.sizing, - spacing = _ref$reactDates.spacing, - font = _ref$reactDates.font, - zIndex = _ref$reactDates.zIndex; - return { - DateInput: { - margin: 0, - padding: spacing.inputPadding, - background: color.background, - position: 'relative', - display: 'inline-block', - width: sizing.inputWidth, - verticalAlign: 'middle' - }, - - DateInput__small: { - width: sizing.inputWidth_small - }, - - DateInput__block: { - width: '100%' - }, - - DateInput__disabled: { - background: color.disabled, - color: color.textDisabled - }, - - DateInput_input: { - fontWeight: 200, - fontSize: font.input.size, - lineHeight: font.input.lineHeight, - color: color.text, - backgroundColor: color.background, - width: '100%', - padding: String(spacing.displayTextPaddingVertical) + 'px ' + String(spacing.displayTextPaddingHorizontal) + 'px', - paddingTop: spacing.displayTextPaddingTop, - paddingBottom: spacing.displayTextPaddingBottom, - paddingLeft: spacing.displayTextPaddingLeft, - paddingRight: spacing.displayTextPaddingRight, - border: border.input.border, - borderTop: border.input.borderTop, - borderRight: border.input.borderRight, - borderBottom: border.input.borderBottom, - borderLeft: border.input.borderLeft, - borderRadius: border.input.borderRadius - }, - - DateInput_input__small: { - fontSize: font.input.size_small, - lineHeight: font.input.lineHeight_small, - letterSpacing: font.input.letterSpacing_small, - padding: String(spacing.displayTextPaddingVertical_small) + 'px ' + String(spacing.displayTextPaddingHorizontal_small) + 'px', - paddingTop: spacing.displayTextPaddingTop_small, - paddingBottom: spacing.displayTextPaddingBottom_small, - paddingLeft: spacing.displayTextPaddingLeft_small, - paddingRight: spacing.displayTextPaddingRight_small - }, - - DateInput_input__regular: { - fontWeight: 'auto' - }, - - DateInput_input__readOnly: { - userSelect: 'none' - }, - - DateInput_input__focused: { - outline: border.input.outlineFocused, - background: color.backgroundFocused, - border: border.input.borderFocused, - borderTop: border.input.borderTopFocused, - borderRight: border.input.borderRightFocused, - borderBottom: border.input.borderBottomFocused, - borderLeft: border.input.borderLeftFocused - }, - - DateInput_input__disabled: { - background: color.disabled, - fontStyle: font.input.styleDisabled - }, - - DateInput_screenReaderMessage: { - border: 0, - clip: 'rect(0, 0, 0, 0)', - height: 1, - margin: -1, - overflow: 'hidden', - padding: 0, - position: 'absolute', - width: 1 - }, - - DateInput_fang: { - position: 'absolute', - width: _constants.FANG_WIDTH_PX, - height: _constants.FANG_HEIGHT_PX, - left: 22, - zIndex: zIndex + 2 - }, - - DateInput_fangShape: { - fill: color.background - }, - - DateInput_fangStroke: { - stroke: color.core.border, - fill: 'transparent' - } - }; -})(DateInput); - -/***/ }), -/* 182 */ -/***/ (function(module, exports, __webpack_require__) { - -var debounce = __webpack_require__(315), - isObject = __webpack_require__(128); - -/** Error message constants. */ -var FUNC_ERROR_TEXT = 'Expected a function'; - -/** - * Creates a throttled function that only invokes `func` at most once per - * every `wait` milliseconds. The throttled function comes with a `cancel` - * method to cancel delayed `func` invocations and a `flush` method to - * immediately invoke them. Provide `options` to indicate whether `func` - * should be invoked on the leading and/or trailing edge of the `wait` - * timeout. The `func` is invoked with the last arguments provided to the - * throttled function. Subsequent calls to the throttled function return the - * result of the last `func` invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the throttled function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.throttle` and `_.debounce`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to throttle. - * @param {number} [wait=0] The number of milliseconds to throttle invocations to. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=true] - * Specify invoking on the leading edge of the timeout. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new throttled function. - * @example - * - * // Avoid excessively updating the position while scrolling. - * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); - * - * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. - * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); - * jQuery(element).on('click', throttled); - * - * // Cancel the trailing throttled invocation. - * jQuery(window).on('popstate', throttled.cancel); - */ -function throttle(func, wait, options) { - var leading = true, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (isObject(options)) { - leading = 'leading' in options ? !!options.leading : leading; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - return debounce(func, wait, { - 'leading': leading, - 'maxWait': wait, - 'trailing': trailing - }); -} - -module.exports = throttle; - - -/***/ }), -/* 183 */ -/***/ (function(module, exports, __webpack_require__) { - -var freeGlobal = __webpack_require__(317); - -/** Detect free variable `self`. */ -var freeSelf = typeof self == 'object' && self && self.Object === Object && self; - -/** Used as a reference to the global object. */ -var root = freeGlobal || freeSelf || Function('return this')(); - -module.exports = root; - - -/***/ }), -/* 184 */ -/***/ (function(module, exports, __webpack_require__) { - -var root = __webpack_require__(183); - -/** Built-in value references. */ -var Symbol = root.Symbol; - -module.exports = Symbol; - - -/***/ }), -/* 185 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var RightArrow = function () { - function RightArrow(props) { - return _react2['default'].createElement( - 'svg', - props, - _react2['default'].createElement('path', { - d: 'M694.4 242.4l249.1 249.1c11 11 11 21 0 32L694.4 772.7c-5 5-10 7-16 7s-11-2-16-7c-11-11-11-21 0-32l210.1-210.1H67.1c-13 0-23-10-23-23s10-23 23-23h805.4L662.4 274.5c-21-21.1 11-53.1 32-32.1z' - }) - ); - } - - return RightArrow; -}(); - -RightArrow.defaultProps = { - viewBox: '0 0 1000 1000' -}; -exports['default'] = RightArrow; - -/***/ }), -/* 186 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var LeftArrow = function () { - function LeftArrow(props) { - return _react2['default'].createElement( - 'svg', - props, - _react2['default'].createElement('path', { - d: 'M336.2 274.5l-210.1 210h805.4c13 0 23 10 23 23s-10 23-23 23H126.1l210.1 210.1c11 11 11 21 0 32-5 5-10 7-16 7s-11-2-16-7l-249.1-249c-11-11-11-21 0-32l249.1-249.1c21-21.1 53 10.9 32 32z' - }) - ); - } - - return LeftArrow; -}(); - -LeftArrow.defaultProps = { - viewBox: '0 0 1000 1000' -}; -exports['default'] = LeftArrow; - -/***/ }), -/* 187 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var CalendarIcon = function () { - function CalendarIcon(props) { - return _react2['default'].createElement( - 'svg', - props, - _react2['default'].createElement('path', { - d: 'M107.2 1392.9h241.1v-241.1H107.2v241.1zm294.7 0h267.9v-241.1H401.9v241.1zm-294.7-294.7h241.1V830.4H107.2v267.8zm294.7 0h267.9V830.4H401.9v267.8zM107.2 776.8h241.1V535.7H107.2v241.1zm616.2 616.1h267.9v-241.1H723.4v241.1zM401.9 776.8h267.9V535.7H401.9v241.1zm642.9 616.1H1286v-241.1h-241.1v241.1zm-321.4-294.7h267.9V830.4H723.4v267.8zM428.7 375V133.9c0-7.3-2.7-13.5-8-18.8-5.3-5.3-11.6-8-18.8-8h-53.6c-7.3 0-13.5 2.7-18.8 8-5.3 5.3-8 11.6-8 18.8V375c0 7.3 2.7 13.5 8 18.8 5.3 5.3 11.6 8 18.8 8h53.6c7.3 0 13.5-2.7 18.8-8 5.3-5.3 8-11.5 8-18.8zm616.1 723.2H1286V830.4h-241.1v267.8zM723.4 776.8h267.9V535.7H723.4v241.1zm321.4 0H1286V535.7h-241.1v241.1zm26.8-401.8V133.9c0-7.3-2.7-13.5-8-18.8-5.3-5.3-11.6-8-18.8-8h-53.6c-7.3 0-13.5 2.7-18.8 8-5.3 5.3-8 11.6-8 18.8V375c0 7.3 2.7 13.5 8 18.8 5.3 5.3 11.6 8 18.8 8h53.6c7.3 0 13.5-2.7 18.8-8 5.4-5.3 8-11.5 8-18.8zm321.5-53.6v1071.4c0 29-10.6 54.1-31.8 75.3-21.2 21.2-46.3 31.8-75.3 31.8H107.2c-29 0-54.1-10.6-75.3-31.8C10.6 1447 0 1421.9 0 1392.9V321.4c0-29 10.6-54.1 31.8-75.3s46.3-31.8 75.3-31.8h107.2v-80.4c0-36.8 13.1-68.4 39.3-94.6S311.4 0 348.3 0h53.6c36.8 0 68.4 13.1 94.6 39.3 26.2 26.2 39.3 57.8 39.3 94.6v80.4h321.5v-80.4c0-36.8 13.1-68.4 39.3-94.6C922.9 13.1 954.4 0 991.3 0h53.6c36.8 0 68.4 13.1 94.6 39.3s39.3 57.8 39.3 94.6v80.4H1286c29 0 54.1 10.6 75.3 31.8 21.2 21.2 31.8 46.3 31.8 75.3z' - }) - ); - } - - return CalendarIcon; -}(); - -CalendarIcon.defaultProps = { - viewBox: '0 0 1393.1 1500' -}; -exports['default'] = CalendarIcon; - -/***/ }), -/* 188 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactMomentProptypes = __webpack_require__(64); - -var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _object3 = __webpack_require__(189); - -var _object4 = _interopRequireDefault(_object3); - -var _isTouchDevice = __webpack_require__(82); - -var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice); - -var _defaultPhrases = __webpack_require__(47); - -var _getPhrasePropTypes = __webpack_require__(51); - -var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); - -var _isInclusivelyAfterDay = __webpack_require__(94); - -var _isInclusivelyAfterDay2 = _interopRequireDefault(_isInclusivelyAfterDay); - -var _isNextDay = __webpack_require__(192); - -var _isNextDay2 = _interopRequireDefault(_isNextDay); - -var _isSameDay = __webpack_require__(79); - -var _isSameDay2 = _interopRequireDefault(_isSameDay); - -var _isAfterDay = __webpack_require__(106); - -var _isAfterDay2 = _interopRequireDefault(_isAfterDay); - -var _isBeforeDay = __webpack_require__(95); - -var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay); - -var _getVisibleDays = __webpack_require__(193); - -var _getVisibleDays2 = _interopRequireDefault(_getVisibleDays); - -var _isDayVisible = __webpack_require__(130); - -var _isDayVisible2 = _interopRequireDefault(_isDayVisible); - -var _getSelectedDateOffset = __webpack_require__(325); - -var _getSelectedDateOffset2 = _interopRequireDefault(_getSelectedDateOffset); - -var _toISODateString = __webpack_require__(102); - -var _toISODateString2 = _interopRequireDefault(_toISODateString); - -var _toISOMonthString = __webpack_require__(104); - -var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString); - -var _DisabledShape = __webpack_require__(105); - -var _DisabledShape2 = _interopRequireDefault(_DisabledShape); - -var _FocusedInputShape = __webpack_require__(173); - -var _FocusedInputShape2 = _interopRequireDefault(_FocusedInputShape); - -var _ScrollableOrientationShape = __webpack_require__(81); - -var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape); - -var _DayOfWeekShape = __webpack_require__(75); - -var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape); - -var _CalendarInfoPositionShape = __webpack_require__(93); - -var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape); - -var _constants = __webpack_require__(39); - -var _DayPicker = __webpack_require__(131); - -var _DayPicker2 = _interopRequireDefault(_DayPicker); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)({ - startDate: _reactMomentProptypes2['default'].momentObj, - endDate: _reactMomentProptypes2['default'].momentObj, - onDatesChange: _propTypes2['default'].func, - startDateOffset: _propTypes2['default'].func, - endDateOffset: _propTypes2['default'].func, - - focusedInput: _FocusedInputShape2['default'], - onFocusChange: _propTypes2['default'].func, - onClose: _propTypes2['default'].func, - - keepOpenOnDateSelect: _propTypes2['default'].bool, - minimumNights: _propTypes2['default'].number, - disabled: _DisabledShape2['default'], - isOutsideRange: _propTypes2['default'].func, - isDayBlocked: _propTypes2['default'].func, - isDayHighlighted: _propTypes2['default'].func, - - // DayPicker props - renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'), - renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'), - enableOutsideDays: _propTypes2['default'].bool, - numberOfMonths: _propTypes2['default'].number, - orientation: _ScrollableOrientationShape2['default'], - withPortal: _propTypes2['default'].bool, - initialVisibleMonth: _propTypes2['default'].func, - hideKeyboardShortcutsPanel: _propTypes2['default'].bool, - daySize: _airbnbPropTypes.nonNegativeInteger, - noBorder: _propTypes2['default'].bool, - verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger, - horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger, - - navPrev: _propTypes2['default'].node, - navNext: _propTypes2['default'].node, - noNavButtons: _propTypes2['default'].bool, - - onPrevMonthClick: _propTypes2['default'].func, - onNextMonthClick: _propTypes2['default'].func, - onOutsideClick: _propTypes2['default'].func, - renderCalendarDay: _propTypes2['default'].func, - renderDayContents: _propTypes2['default'].func, - renderCalendarInfo: _propTypes2['default'].func, - calendarInfoPosition: _CalendarInfoPositionShape2['default'], - firstDayOfWeek: _DayOfWeekShape2['default'], - verticalHeight: _airbnbPropTypes.nonNegativeInteger, - transitionDuration: _airbnbPropTypes.nonNegativeInteger, - - // accessibility - onBlur: _propTypes2['default'].func, - isFocused: _propTypes2['default'].bool, - showKeyboardShortcuts: _propTypes2['default'].bool, - - // i18n - monthFormat: _propTypes2['default'].string, - weekDayFormat: _propTypes2['default'].string, - phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)), - dayAriaLabelFormat: _propTypes2['default'].string, - - isRTL: _propTypes2['default'].bool -}); - -var defaultProps = { - startDate: undefined, // TODO: use null - endDate: undefined, // TODO: use null - onDatesChange: function () { - function onDatesChange() {} - - return onDatesChange; - }(), - - startDateOffset: undefined, - endDateOffset: undefined, - - focusedInput: null, - onFocusChange: function () { - function onFocusChange() {} - - return onFocusChange; - }(), - onClose: function () { - function onClose() {} - - return onClose; - }(), - - - keepOpenOnDateSelect: false, - minimumNights: 1, - disabled: false, - isOutsideRange: function () { - function isOutsideRange() {} - - return isOutsideRange; - }(), - isDayBlocked: function () { - function isDayBlocked() {} - - return isDayBlocked; - }(), - isDayHighlighted: function () { - function isDayHighlighted() {} - - return isDayHighlighted; - }(), - - - // DayPicker props - renderMonthText: null, - enableOutsideDays: false, - numberOfMonths: 1, - orientation: _constants.HORIZONTAL_ORIENTATION, - withPortal: false, - hideKeyboardShortcutsPanel: false, - initialVisibleMonth: null, - daySize: _constants.DAY_SIZE, - - navPrev: null, - navNext: null, - noNavButtons: false, - - onPrevMonthClick: function () { - function onPrevMonthClick() {} - - return onPrevMonthClick; - }(), - onNextMonthClick: function () { - function onNextMonthClick() {} - - return onNextMonthClick; - }(), - onOutsideClick: function () { - function onOutsideClick() {} - - return onOutsideClick; - }(), - - - renderCalendarDay: undefined, - renderDayContents: null, - renderCalendarInfo: null, - renderMonthElement: null, - calendarInfoPosition: _constants.INFO_POSITION_BOTTOM, - firstDayOfWeek: null, - verticalHeight: null, - noBorder: false, - transitionDuration: undefined, - verticalBorderSpacing: undefined, - horizontalMonthPadding: 13, - - // accessibility - onBlur: function () { - function onBlur() {} - - return onBlur; - }(), - - isFocused: false, - showKeyboardShortcuts: false, - - // i18n - monthFormat: 'MMMM YYYY', - weekDayFormat: 'dd', - phrases: _defaultPhrases.DayPickerPhrases, - dayAriaLabelFormat: undefined, - - isRTL: false -}; - -var getChooseAvailableDatePhrase = function getChooseAvailableDatePhrase(phrases, focusedInput) { - if (focusedInput === _constants.START_DATE) { - return phrases.chooseAvailableStartDate; - } - if (focusedInput === _constants.END_DATE) { - return phrases.chooseAvailableEndDate; - } - return phrases.chooseAvailableDate; -}; - -var DayPickerRangeController = function (_React$Component) { - _inherits(DayPickerRangeController, _React$Component); - - function DayPickerRangeController(props) { - _classCallCheck(this, DayPickerRangeController); - - var _this = _possibleConstructorReturn(this, (DayPickerRangeController.__proto__ || Object.getPrototypeOf(DayPickerRangeController)).call(this, props)); - - _this.isTouchDevice = (0, _isTouchDevice2['default'])(); - _this.today = (0, _moment2['default'])(); - _this.modifiers = { - today: function () { - function today(day) { - return _this.isToday(day); - } - - return today; - }(), - blocked: function () { - function blocked(day) { - return _this.isBlocked(day); - } - - return blocked; - }(), - 'blocked-calendar': function () { - function blockedCalendar(day) { - return props.isDayBlocked(day); - } - - return blockedCalendar; - }(), - 'blocked-out-of-range': function () { - function blockedOutOfRange(day) { - return props.isOutsideRange(day); - } - - return blockedOutOfRange; - }(), - 'highlighted-calendar': function () { - function highlightedCalendar(day) { - return props.isDayHighlighted(day); - } - - return highlightedCalendar; - }(), - valid: function () { - function valid(day) { - return !_this.isBlocked(day); - } - - return valid; - }(), - 'selected-start': function () { - function selectedStart(day) { - return _this.isStartDate(day); - } - - return selectedStart; - }(), - 'selected-end': function () { - function selectedEnd(day) { - return _this.isEndDate(day); - } - - return selectedEnd; - }(), - 'blocked-minimum-nights': function () { - function blockedMinimumNights(day) { - return _this.doesNotMeetMinimumNights(day); - } - - return blockedMinimumNights; - }(), - 'selected-span': function () { - function selectedSpan(day) { - return _this.isInSelectedSpan(day); - } - - return selectedSpan; - }(), - 'last-in-range': function () { - function lastInRange(day) { - return _this.isLastInRange(day); - } - - return lastInRange; - }(), - hovered: function () { - function hovered(day) { - return _this.isHovered(day); - } - - return hovered; - }(), - 'hovered-span': function () { - function hoveredSpan(day) { - return _this.isInHoveredSpan(day); - } - - return hoveredSpan; - }(), - 'hovered-offset': function () { - function hoveredOffset(day) { - return _this.isInHoveredSpan(day); - } - - return hoveredOffset; - }(), - 'after-hovered-start': function () { - function afterHoveredStart(day) { - return _this.isDayAfterHoveredStartDate(day); - } - - return afterHoveredStart; - }(), - 'first-day-of-week': function () { - function firstDayOfWeek(day) { - return _this.isFirstDayOfWeek(day); - } - - return firstDayOfWeek; - }(), - 'last-day-of-week': function () { - function lastDayOfWeek(day) { - return _this.isLastDayOfWeek(day); - } - - return lastDayOfWeek; - }() - }; - - var _this$getStateForNewM = _this.getStateForNewMonth(props), - currentMonth = _this$getStateForNewM.currentMonth, - visibleDays = _this$getStateForNewM.visibleDays; - - // initialize phrases - // set the appropriate CalendarDay phrase based on focusedInput - - - var chooseAvailableDate = getChooseAvailableDatePhrase(props.phrases, props.focusedInput); - - _this.state = { - hoverDate: null, - currentMonth: currentMonth, - phrases: (0, _object2['default'])({}, props.phrases, { - chooseAvailableDate: chooseAvailableDate - }), - visibleDays: visibleDays - }; - - _this.onDayClick = _this.onDayClick.bind(_this); - _this.onDayMouseEnter = _this.onDayMouseEnter.bind(_this); - _this.onDayMouseLeave = _this.onDayMouseLeave.bind(_this); - _this.onPrevMonthClick = _this.onPrevMonthClick.bind(_this); - _this.onNextMonthClick = _this.onNextMonthClick.bind(_this); - _this.onMonthChange = _this.onMonthChange.bind(_this); - _this.onYearChange = _this.onYearChange.bind(_this); - _this.onMultiplyScrollableMonths = _this.onMultiplyScrollableMonths.bind(_this); - _this.getFirstFocusableDay = _this.getFirstFocusableDay.bind(_this); - return _this; - } - - _createClass(DayPickerRangeController, [{ - key: 'componentWillReceiveProps', - value: function () { - function componentWillReceiveProps(nextProps) { - var _this2 = this; - - var startDate = nextProps.startDate, - endDate = nextProps.endDate, - focusedInput = nextProps.focusedInput, - minimumNights = nextProps.minimumNights, - isOutsideRange = nextProps.isOutsideRange, - isDayBlocked = nextProps.isDayBlocked, - isDayHighlighted = nextProps.isDayHighlighted, - phrases = nextProps.phrases, - initialVisibleMonth = nextProps.initialVisibleMonth, - numberOfMonths = nextProps.numberOfMonths, - enableOutsideDays = nextProps.enableOutsideDays; - var _props = this.props, - prevStartDate = _props.startDate, - prevEndDate = _props.endDate, - prevFocusedInput = _props.focusedInput, - prevMinimumNights = _props.minimumNights, - prevIsOutsideRange = _props.isOutsideRange, - prevIsDayBlocked = _props.isDayBlocked, - prevIsDayHighlighted = _props.isDayHighlighted, - prevPhrases = _props.phrases, - prevInitialVisibleMonth = _props.initialVisibleMonth, - prevNumberOfMonths = _props.numberOfMonths, - prevEnableOutsideDays = _props.enableOutsideDays; - var visibleDays = this.state.visibleDays; - - - var recomputeOutsideRange = false; - var recomputeDayBlocked = false; - var recomputeDayHighlighted = false; - - if (isOutsideRange !== prevIsOutsideRange) { - this.modifiers['blocked-out-of-range'] = function (day) { - return isOutsideRange(day); - }; - recomputeOutsideRange = true; - } - - if (isDayBlocked !== prevIsDayBlocked) { - this.modifiers['blocked-calendar'] = function (day) { - return isDayBlocked(day); - }; - recomputeDayBlocked = true; - } - - if (isDayHighlighted !== prevIsDayHighlighted) { - this.modifiers['highlighted-calendar'] = function (day) { - return isDayHighlighted(day); - }; - recomputeDayHighlighted = true; - } - - var recomputePropModifiers = recomputeOutsideRange || recomputeDayBlocked || recomputeDayHighlighted; - - var didStartDateChange = startDate !== prevStartDate; - var didEndDateChange = endDate !== prevEndDate; - var didFocusChange = focusedInput !== prevFocusedInput; - - if (numberOfMonths !== prevNumberOfMonths || enableOutsideDays !== prevEnableOutsideDays || initialVisibleMonth !== prevInitialVisibleMonth && !prevFocusedInput && didFocusChange) { - var newMonthState = this.getStateForNewMonth(nextProps); - var currentMonth = newMonthState.currentMonth; - visibleDays = newMonthState.visibleDays; - - this.setState({ - currentMonth: currentMonth, - visibleDays: visibleDays - }); - } - - var modifiers = {}; - - if (didStartDateChange) { - modifiers = this.deleteModifier(modifiers, prevStartDate, 'selected-start'); - modifiers = this.addModifier(modifiers, startDate, 'selected-start'); - - if (prevStartDate) { - var startSpan = prevStartDate.clone().add(1, 'day'); - var endSpan = prevStartDate.clone().add(prevMinimumNights + 1, 'days'); - modifiers = this.deleteModifierFromRange(modifiers, startSpan, endSpan, 'after-hovered-start'); - } - } - - if (didEndDateChange) { - modifiers = this.deleteModifier(modifiers, prevEndDate, 'selected-end'); - modifiers = this.addModifier(modifiers, endDate, 'selected-end'); - } - - if (didStartDateChange || didEndDateChange) { - if (prevStartDate && prevEndDate) { - modifiers = this.deleteModifierFromRange(modifiers, prevStartDate, prevEndDate.clone().add(1, 'day'), 'selected-span'); - } - - if (startDate && endDate) { - modifiers = this.deleteModifierFromRange(modifiers, startDate, endDate.clone().add(1, 'day'), 'hovered-span'); - - modifiers = this.addModifierToRange(modifiers, startDate.clone().add(1, 'day'), endDate, 'selected-span'); - } - } - - if (!this.isTouchDevice && didStartDateChange && startDate && !endDate) { - var _startSpan = startDate.clone().add(1, 'day'); - var _endSpan = startDate.clone().add(minimumNights + 1, 'days'); - modifiers = this.addModifierToRange(modifiers, _startSpan, _endSpan, 'after-hovered-start'); - } - - if (prevMinimumNights > 0) { - if (didFocusChange || didStartDateChange || minimumNights !== prevMinimumNights) { - var _startSpan2 = prevStartDate || this.today; - modifiers = this.deleteModifierFromRange(modifiers, _startSpan2, _startSpan2.clone().add(prevMinimumNights, 'days'), 'blocked-minimum-nights'); - - modifiers = this.deleteModifierFromRange(modifiers, _startSpan2, _startSpan2.clone().add(prevMinimumNights, 'days'), 'blocked'); - } - } - - if (didFocusChange || recomputePropModifiers) { - (0, _object4['default'])(visibleDays).forEach(function (days) { - Object.keys(days).forEach(function (day) { - var momentObj = (0, _moment2['default'])(day); - var isBlocked = false; - - if (didFocusChange || recomputeOutsideRange) { - if (isOutsideRange(momentObj)) { - modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-out-of-range'); - isBlocked = true; - } else { - modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-out-of-range'); - } - } - - if (didFocusChange || recomputeDayBlocked) { - if (isDayBlocked(momentObj)) { - modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-calendar'); - isBlocked = true; - } else { - modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-calendar'); - } - } - - if (isBlocked) { - modifiers = _this2.addModifier(modifiers, momentObj, 'blocked'); - } else { - modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked'); - } - - if (didFocusChange || recomputeDayHighlighted) { - if (isDayHighlighted(momentObj)) { - modifiers = _this2.addModifier(modifiers, momentObj, 'highlighted-calendar'); - } else { - modifiers = _this2.deleteModifier(modifiers, momentObj, 'highlighted-calendar'); - } - } - }); - }); - } - - if (minimumNights > 0 && startDate && focusedInput === _constants.END_DATE) { - modifiers = this.addModifierToRange(modifiers, startDate, startDate.clone().add(minimumNights, 'days'), 'blocked-minimum-nights'); - - modifiers = this.addModifierToRange(modifiers, startDate, startDate.clone().add(minimumNights, 'days'), 'blocked'); - } - - var today = (0, _moment2['default'])(); - if (!(0, _isSameDay2['default'])(this.today, today)) { - modifiers = this.deleteModifier(modifiers, this.today, 'today'); - modifiers = this.addModifier(modifiers, today, 'today'); - this.today = today; - } - - if (Object.keys(modifiers).length > 0) { - this.setState({ - visibleDays: (0, _object2['default'])({}, visibleDays, modifiers) - }); - } - - if (didFocusChange || phrases !== prevPhrases) { - // set the appropriate CalendarDay phrase based on focusedInput - var chooseAvailableDate = getChooseAvailableDatePhrase(phrases, focusedInput); - - this.setState({ - phrases: (0, _object2['default'])({}, phrases, { - chooseAvailableDate: chooseAvailableDate - }) - }); - } - } - - return componentWillReceiveProps; - }() - }, { - key: 'onDayClick', - value: function () { - function onDayClick(day, e) { - var _props2 = this.props, - keepOpenOnDateSelect = _props2.keepOpenOnDateSelect, - minimumNights = _props2.minimumNights, - onBlur = _props2.onBlur, - focusedInput = _props2.focusedInput, - onFocusChange = _props2.onFocusChange, - onClose = _props2.onClose, - onDatesChange = _props2.onDatesChange, - startDateOffset = _props2.startDateOffset, - endDateOffset = _props2.endDateOffset, - disabled = _props2.disabled; - - - if (e) e.preventDefault(); - if (this.isBlocked(day)) return; - - var _props3 = this.props, - startDate = _props3.startDate, - endDate = _props3.endDate; - - - if (startDateOffset || endDateOffset) { - startDate = (0, _getSelectedDateOffset2['default'])(startDateOffset, day); - endDate = (0, _getSelectedDateOffset2['default'])(endDateOffset, day); - - if (!keepOpenOnDateSelect) { - onFocusChange(null); - onClose({ startDate: startDate, endDate: endDate }); - } - } else if (focusedInput === _constants.START_DATE) { - var lastAllowedStartDate = endDate && endDate.clone().subtract(minimumNights, 'days'); - var isStartDateAfterEndDate = (0, _isBeforeDay2['default'])(lastAllowedStartDate, day) || (0, _isAfterDay2['default'])(startDate, endDate); - var isEndDateDisabled = disabled === _constants.END_DATE; - - if (!isEndDateDisabled || !isStartDateAfterEndDate) { - startDate = day; - if (isStartDateAfterEndDate) { - endDate = null; - } - } - - if (isEndDateDisabled && !isStartDateAfterEndDate) { - onFocusChange(null); - onClose({ startDate: startDate, endDate: endDate }); - } else if (!isEndDateDisabled) { - onFocusChange(_constants.END_DATE); - } - } else if (focusedInput === _constants.END_DATE) { - var firstAllowedEndDate = startDate && startDate.clone().add(minimumNights, 'days'); - - if (!startDate) { - endDate = day; - onFocusChange(_constants.START_DATE); - } else if ((0, _isInclusivelyAfterDay2['default'])(day, firstAllowedEndDate)) { - endDate = day; - if (!keepOpenOnDateSelect) { - onFocusChange(null); - onClose({ startDate: startDate, endDate: endDate }); - } - } else if (disabled !== _constants.START_DATE) { - startDate = day; - endDate = null; - } - } - - onDatesChange({ startDate: startDate, endDate: endDate }); - onBlur(); - } - - return onDayClick; - }() - }, { - key: 'onDayMouseEnter', - value: function () { - function onDayMouseEnter(day) { - /* eslint react/destructuring-assignment: 1 */ - if (this.isTouchDevice) return; - var _props4 = this.props, - startDate = _props4.startDate, - endDate = _props4.endDate, - focusedInput = _props4.focusedInput, - minimumNights = _props4.minimumNights, - startDateOffset = _props4.startDateOffset, - endDateOffset = _props4.endDateOffset; - var _state = this.state, - hoverDate = _state.hoverDate, - visibleDays = _state.visibleDays; - - var dateOffset = null; - - if (focusedInput) { - var hasOffset = startDateOffset || endDateOffset; - var modifiers = {}; - - if (hasOffset) { - var start = (0, _getSelectedDateOffset2['default'])(startDateOffset, day); - var end = (0, _getSelectedDateOffset2['default'])(endDateOffset, day, function (rangeDay) { - return rangeDay.add(1, 'day'); - }); - - dateOffset = { - start: start, - end: end - }; - - // eslint-disable-next-line react/destructuring-assignment - if (this.state.dateOffset && this.state.dateOffset.start && this.state.dateOffset.end) { - modifiers = this.deleteModifierFromRange(modifiers, this.state.dateOffset.start, this.state.dateOffset.end, 'hovered-offset'); - } - modifiers = this.addModifierToRange(modifiers, start, end, 'hovered-offset'); - } - - if (!hasOffset) { - modifiers = this.deleteModifier(modifiers, hoverDate, 'hovered'); - modifiers = this.addModifier(modifiers, day, 'hovered'); - - if (startDate && !endDate && focusedInput === _constants.END_DATE) { - if ((0, _isAfterDay2['default'])(hoverDate, startDate)) { - var endSpan = hoverDate.clone().add(1, 'day'); - modifiers = this.deleteModifierFromRange(modifiers, startDate, endSpan, 'hovered-span'); - } - - if (!this.isBlocked(day) && (0, _isAfterDay2['default'])(day, startDate)) { - var _endSpan2 = day.clone().add(1, 'day'); - modifiers = this.addModifierToRange(modifiers, startDate, _endSpan2, 'hovered-span'); - } - } - - if (!startDate && endDate && focusedInput === _constants.START_DATE) { - if ((0, _isBeforeDay2['default'])(hoverDate, endDate)) { - modifiers = this.deleteModifierFromRange(modifiers, hoverDate, endDate, 'hovered-span'); - } - - if (!this.isBlocked(day) && (0, _isBeforeDay2['default'])(day, endDate)) { - modifiers = this.addModifierToRange(modifiers, day, endDate, 'hovered-span'); - } - } - - if (startDate) { - var startSpan = startDate.clone().add(1, 'day'); - var _endSpan3 = startDate.clone().add(minimumNights + 1, 'days'); - modifiers = this.deleteModifierFromRange(modifiers, startSpan, _endSpan3, 'after-hovered-start'); - - if ((0, _isSameDay2['default'])(day, startDate)) { - var newStartSpan = startDate.clone().add(1, 'day'); - var newEndSpan = startDate.clone().add(minimumNights + 1, 'days'); - modifiers = this.addModifierToRange(modifiers, newStartSpan, newEndSpan, 'after-hovered-start'); - } - } - } - - this.setState({ - hoverDate: day, - dateOffset: dateOffset, - visibleDays: (0, _object2['default'])({}, visibleDays, modifiers) - }); - } - } - - return onDayMouseEnter; - }() - }, { - key: 'onDayMouseLeave', - value: function () { - function onDayMouseLeave(day) { - var _props5 = this.props, - startDate = _props5.startDate, - endDate = _props5.endDate, - minimumNights = _props5.minimumNights; - var _state2 = this.state, - hoverDate = _state2.hoverDate, - visibleDays = _state2.visibleDays, - dateOffset = _state2.dateOffset; - - if (this.isTouchDevice || !hoverDate) return; - - var modifiers = {}; - modifiers = this.deleteModifier(modifiers, hoverDate, 'hovered'); - - if (dateOffset) { - modifiers = this.deleteModifierFromRange(modifiers, this.state.dateOffset.start, this.state.dateOffset.end, 'hovered-offset'); - } - - if (startDate && !endDate && (0, _isAfterDay2['default'])(hoverDate, startDate)) { - var endSpan = hoverDate.clone().add(1, 'day'); - modifiers = this.deleteModifierFromRange(modifiers, startDate, endSpan, 'hovered-span'); - } - - if (!startDate && endDate && (0, _isAfterDay2['default'])(endDate, hoverDate)) { - modifiers = this.deleteModifierFromRange(modifiers, hoverDate, endDate, 'hovered-span'); - } - - if (startDate && (0, _isSameDay2['default'])(day, startDate)) { - var startSpan = startDate.clone().add(1, 'day'); - var _endSpan4 = startDate.clone().add(minimumNights + 1, 'days'); - modifiers = this.deleteModifierFromRange(modifiers, startSpan, _endSpan4, 'after-hovered-start'); - } - - this.setState({ - hoverDate: null, - visibleDays: (0, _object2['default'])({}, visibleDays, modifiers) - }); - } - - return onDayMouseLeave; - }() - }, { - key: 'onPrevMonthClick', - value: function () { - function onPrevMonthClick() { - var _props6 = this.props, - onPrevMonthClick = _props6.onPrevMonthClick, - numberOfMonths = _props6.numberOfMonths, - enableOutsideDays = _props6.enableOutsideDays; - var _state3 = this.state, - currentMonth = _state3.currentMonth, - visibleDays = _state3.visibleDays; - - - var newVisibleDays = {}; - Object.keys(visibleDays).sort().slice(0, numberOfMonths + 1).forEach(function (month) { - newVisibleDays[month] = visibleDays[month]; - }); - - var prevMonth = currentMonth.clone().subtract(2, 'months'); - var prevMonthVisibleDays = (0, _getVisibleDays2['default'])(prevMonth, 1, enableOutsideDays, true); - - var newCurrentMonth = currentMonth.clone().subtract(1, 'month'); - this.setState({ - currentMonth: newCurrentMonth, - visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(prevMonthVisibleDays)) - }, function () { - onPrevMonthClick(newCurrentMonth.clone()); - }); - } - - return onPrevMonthClick; - }() - }, { - key: 'onNextMonthClick', - value: function () { - function onNextMonthClick() { - var _props7 = this.props, - onNextMonthClick = _props7.onNextMonthClick, - numberOfMonths = _props7.numberOfMonths, - enableOutsideDays = _props7.enableOutsideDays; - var _state4 = this.state, - currentMonth = _state4.currentMonth, - visibleDays = _state4.visibleDays; - - - var newVisibleDays = {}; - Object.keys(visibleDays).sort().slice(1).forEach(function (month) { - newVisibleDays[month] = visibleDays[month]; - }); - - var nextMonth = currentMonth.clone().add(numberOfMonths + 1, 'month'); - var nextMonthVisibleDays = (0, _getVisibleDays2['default'])(nextMonth, 1, enableOutsideDays, true); - - var newCurrentMonth = currentMonth.clone().add(1, 'month'); - this.setState({ - currentMonth: newCurrentMonth, - visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(nextMonthVisibleDays)) - }, function () { - onNextMonthClick(newCurrentMonth.clone()); - }); - } - - return onNextMonthClick; - }() - }, { - key: 'onMonthChange', - value: function () { - function onMonthChange(newMonth) { - var _props8 = this.props, - numberOfMonths = _props8.numberOfMonths, - enableOutsideDays = _props8.enableOutsideDays, - orientation = _props8.orientation; - - var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE; - var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths); - - this.setState({ - currentMonth: newMonth.clone(), - visibleDays: this.getModifiers(newVisibleDays) - }); - } - - return onMonthChange; - }() - }, { - key: 'onYearChange', - value: function () { - function onYearChange(newMonth) { - var _props9 = this.props, - numberOfMonths = _props9.numberOfMonths, - enableOutsideDays = _props9.enableOutsideDays, - orientation = _props9.orientation; - - var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE; - var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths); - - this.setState({ - currentMonth: newMonth.clone(), - visibleDays: this.getModifiers(newVisibleDays) - }); - } - - return onYearChange; - }() - }, { - key: 'onMultiplyScrollableMonths', - value: function () { - function onMultiplyScrollableMonths() { - var _props10 = this.props, - numberOfMonths = _props10.numberOfMonths, - enableOutsideDays = _props10.enableOutsideDays; - var _state5 = this.state, - currentMonth = _state5.currentMonth, - visibleDays = _state5.visibleDays; - - - var numberOfVisibleMonths = Object.keys(visibleDays).length; - var nextMonth = currentMonth.clone().add(numberOfVisibleMonths, 'month'); - var newVisibleDays = (0, _getVisibleDays2['default'])(nextMonth, numberOfMonths, enableOutsideDays, true); - - this.setState({ - visibleDays: (0, _object2['default'])({}, visibleDays, this.getModifiers(newVisibleDays)) - }); - } - - return onMultiplyScrollableMonths; - }() - }, { - key: 'getFirstFocusableDay', - value: function () { - function getFirstFocusableDay(newMonth) { - var _this3 = this; - - var _props11 = this.props, - startDate = _props11.startDate, - endDate = _props11.endDate, - focusedInput = _props11.focusedInput, - minimumNights = _props11.minimumNights, - numberOfMonths = _props11.numberOfMonths; - - - var focusedDate = newMonth.clone().startOf('month'); - if (focusedInput === _constants.START_DATE && startDate) { - focusedDate = startDate.clone(); - } else if (focusedInput === _constants.END_DATE && !endDate && startDate) { - focusedDate = startDate.clone().add(minimumNights, 'days'); - } else if (focusedInput === _constants.END_DATE && endDate) { - focusedDate = endDate.clone(); - } - - if (this.isBlocked(focusedDate)) { - var days = []; - var lastVisibleDay = newMonth.clone().add(numberOfMonths - 1, 'months').endOf('month'); - var currentDay = focusedDate.clone(); - while (!(0, _isAfterDay2['default'])(currentDay, lastVisibleDay)) { - currentDay = currentDay.clone().add(1, 'day'); - days.push(currentDay); - } - - var viableDays = days.filter(function (day) { - return !_this3.isBlocked(day); - }); - - if (viableDays.length > 0) { - var _viableDays = _slicedToArray(viableDays, 1); - - focusedDate = _viableDays[0]; - } - } - - return focusedDate; - } - - return getFirstFocusableDay; - }() - }, { - key: 'getModifiers', - value: function () { - function getModifiers(visibleDays) { - var _this4 = this; - - var modifiers = {}; - Object.keys(visibleDays).forEach(function (month) { - modifiers[month] = {}; - visibleDays[month].forEach(function (day) { - modifiers[month][(0, _toISODateString2['default'])(day)] = _this4.getModifiersForDay(day); - }); - }); - - return modifiers; - } - - return getModifiers; - }() - }, { - key: 'getModifiersForDay', - value: function () { - function getModifiersForDay(day) { - var _this5 = this; - - return new Set(Object.keys(this.modifiers).filter(function (modifier) { - return _this5.modifiers[modifier](day); - })); - } - - return getModifiersForDay; - }() - }, { - key: 'getStateForNewMonth', - value: function () { - function getStateForNewMonth(nextProps) { - var _this6 = this; - - var initialVisibleMonth = nextProps.initialVisibleMonth, - numberOfMonths = nextProps.numberOfMonths, - enableOutsideDays = nextProps.enableOutsideDays, - orientation = nextProps.orientation, - startDate = nextProps.startDate; - - var initialVisibleMonthThunk = initialVisibleMonth || (startDate ? function () { - return startDate; - } : function () { - return _this6.today; - }); - var currentMonth = initialVisibleMonthThunk(); - var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE; - var visibleDays = this.getModifiers((0, _getVisibleDays2['default'])(currentMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths)); - return { currentMonth: currentMonth, visibleDays: visibleDays }; - } - - return getStateForNewMonth; - }() - }, { - key: 'addModifier', - value: function () { - function addModifier(updatedDays, day, modifier) { - var _props12 = this.props, - numberOfVisibleMonths = _props12.numberOfMonths, - enableOutsideDays = _props12.enableOutsideDays, - orientation = _props12.orientation; - var _state6 = this.state, - firstVisibleMonth = _state6.currentMonth, - visibleDays = _state6.visibleDays; - - - var currentMonth = firstVisibleMonth; - var numberOfMonths = numberOfVisibleMonths; - if (orientation === _constants.VERTICAL_SCROLLABLE) { - numberOfMonths = Object.keys(visibleDays).length; - } else { - currentMonth = currentMonth.clone().subtract(1, 'month'); - numberOfMonths += 2; - } - if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) { - return updatedDays; - } - - var iso = (0, _toISODateString2['default'])(day); - - var updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDays); - if (enableOutsideDays) { - var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) { - return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1; - }); - - updatedDaysAfterAddition = monthsToUpdate.reduce(function (days, monthIso) { - var month = updatedDays[monthIso] || visibleDays[monthIso]; - var modifiers = new Set(month[iso]); - modifiers.add(modifier); - return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers)))); - }, updatedDaysAfterAddition); - } else { - var monthIso = (0, _toISOMonthString2['default'])(day); - var month = updatedDays[monthIso] || visibleDays[monthIso]; - - var modifiers = new Set(month[iso]); - modifiers.add(modifier); - updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDaysAfterAddition, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers)))); - } - - return updatedDaysAfterAddition; - } - - return addModifier; - }() - }, { - key: 'addModifierToRange', - value: function () { - function addModifierToRange(updatedDays, start, end, modifier) { - var days = updatedDays; - - var spanStart = start.clone(); - while ((0, _isBeforeDay2['default'])(spanStart, end)) { - days = this.addModifier(days, spanStart, modifier); - spanStart = spanStart.clone().add(1, 'day'); - } - - return days; - } - - return addModifierToRange; - }() - }, { - key: 'deleteModifier', - value: function () { - function deleteModifier(updatedDays, day, modifier) { - var _props13 = this.props, - numberOfVisibleMonths = _props13.numberOfMonths, - enableOutsideDays = _props13.enableOutsideDays, - orientation = _props13.orientation; - var _state7 = this.state, - firstVisibleMonth = _state7.currentMonth, - visibleDays = _state7.visibleDays; - - var currentMonth = firstVisibleMonth; - var numberOfMonths = numberOfVisibleMonths; - if (orientation === _constants.VERTICAL_SCROLLABLE) { - numberOfMonths = Object.keys(visibleDays).length; - } else { - currentMonth = currentMonth.clone().subtract(1, 'month'); - numberOfMonths += 2; - } - if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) { - return updatedDays; - } - - var iso = (0, _toISODateString2['default'])(day); - - var updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDays); - if (enableOutsideDays) { - var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) { - return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1; - }); - - updatedDaysAfterDeletion = monthsToUpdate.reduce(function (days, monthIso) { - var month = updatedDays[monthIso] || visibleDays[monthIso]; - var modifiers = new Set(month[iso]); - modifiers['delete'](modifier); - return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers)))); - }, updatedDaysAfterDeletion); - } else { - var monthIso = (0, _toISOMonthString2['default'])(day); - var month = updatedDays[monthIso] || visibleDays[monthIso]; - - var modifiers = new Set(month[iso]); - modifiers['delete'](modifier); - updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDaysAfterDeletion, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers)))); - } - - return updatedDaysAfterDeletion; - } - - return deleteModifier; - }() - }, { - key: 'deleteModifierFromRange', - value: function () { - function deleteModifierFromRange(updatedDays, start, end, modifier) { - var days = updatedDays; - - var spanStart = start.clone(); - while ((0, _isBeforeDay2['default'])(spanStart, end)) { - days = this.deleteModifier(days, spanStart, modifier); - spanStart = spanStart.clone().add(1, 'day'); - } - - return days; - } - - return deleteModifierFromRange; - }() - }, { - key: 'doesNotMeetMinimumNights', - value: function () { - function doesNotMeetMinimumNights(day) { - var _props14 = this.props, - startDate = _props14.startDate, - isOutsideRange = _props14.isOutsideRange, - focusedInput = _props14.focusedInput, - minimumNights = _props14.minimumNights; - - if (focusedInput !== _constants.END_DATE) return false; - - if (startDate) { - var dayDiff = day.diff(startDate.clone().startOf('day').hour(12), 'days'); - return dayDiff < minimumNights && dayDiff >= 0; - } - return isOutsideRange((0, _moment2['default'])(day).subtract(minimumNights, 'days')); - } - - return doesNotMeetMinimumNights; - }() - }, { - key: 'isDayAfterHoveredStartDate', - value: function () { - function isDayAfterHoveredStartDate(day) { - var _props15 = this.props, - startDate = _props15.startDate, - endDate = _props15.endDate, - minimumNights = _props15.minimumNights; - - var _ref = this.state || {}, - hoverDate = _ref.hoverDate; - - return !!startDate && !endDate && !this.isBlocked(day) && (0, _isNextDay2['default'])(hoverDate, day) && minimumNights > 0 && (0, _isSameDay2['default'])(hoverDate, startDate); - } - - return isDayAfterHoveredStartDate; - }() - }, { - key: 'isEndDate', - value: function () { - function isEndDate(day) { - var endDate = this.props.endDate; - - return (0, _isSameDay2['default'])(day, endDate); - } - - return isEndDate; - }() - }, { - key: 'isHovered', - value: function () { - function isHovered(day) { - var _ref2 = this.state || {}, - hoverDate = _ref2.hoverDate; - - var focusedInput = this.props.focusedInput; - - return !!focusedInput && (0, _isSameDay2['default'])(day, hoverDate); - } - - return isHovered; - }() - }, { - key: 'isInHoveredSpan', - value: function () { - function isInHoveredSpan(day) { - var _props16 = this.props, - startDate = _props16.startDate, - endDate = _props16.endDate; - - var _ref3 = this.state || {}, - hoverDate = _ref3.hoverDate; - - var isForwardRange = !!startDate && !endDate && (day.isBetween(startDate, hoverDate) || (0, _isSameDay2['default'])(hoverDate, day)); - var isBackwardRange = !!endDate && !startDate && (day.isBetween(hoverDate, endDate) || (0, _isSameDay2['default'])(hoverDate, day)); - - var isValidDayHovered = hoverDate && !this.isBlocked(hoverDate); - - return (isForwardRange || isBackwardRange) && isValidDayHovered; - } - - return isInHoveredSpan; - }() - }, { - key: 'isInSelectedSpan', - value: function () { - function isInSelectedSpan(day) { - var _props17 = this.props, - startDate = _props17.startDate, - endDate = _props17.endDate; - - return day.isBetween(startDate, endDate); - } - - return isInSelectedSpan; - }() - }, { - key: 'isLastInRange', - value: function () { - function isLastInRange(day) { - var endDate = this.props.endDate; - - return this.isInSelectedSpan(day) && (0, _isNextDay2['default'])(day, endDate); - } - - return isLastInRange; - }() - }, { - key: 'isStartDate', - value: function () { - function isStartDate(day) { - var startDate = this.props.startDate; - - return (0, _isSameDay2['default'])(day, startDate); - } - - return isStartDate; - }() - }, { - key: 'isBlocked', - value: function () { - function isBlocked(day) { - var _props18 = this.props, - isDayBlocked = _props18.isDayBlocked, - isOutsideRange = _props18.isOutsideRange; - - return isDayBlocked(day) || isOutsideRange(day) || this.doesNotMeetMinimumNights(day); - } - - return isBlocked; - }() - }, { - key: 'isToday', - value: function () { - function isToday(day) { - return (0, _isSameDay2['default'])(day, this.today); - } - - return isToday; - }() - }, { - key: 'isFirstDayOfWeek', - value: function () { - function isFirstDayOfWeek(day) { - var firstDayOfWeek = this.props.firstDayOfWeek; - - return day.day() === (firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek()); - } - - return isFirstDayOfWeek; - }() - }, { - key: 'isLastDayOfWeek', - value: function () { - function isLastDayOfWeek(day) { - var firstDayOfWeek = this.props.firstDayOfWeek; - - return day.day() === ((firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek()) + 6) % 7; - } - - return isLastDayOfWeek; - }() - }, { - key: 'render', - value: function () { - function render() { - var _props19 = this.props, - numberOfMonths = _props19.numberOfMonths, - orientation = _props19.orientation, - monthFormat = _props19.monthFormat, - renderMonthText = _props19.renderMonthText, - navPrev = _props19.navPrev, - navNext = _props19.navNext, - noNavButtons = _props19.noNavButtons, - onOutsideClick = _props19.onOutsideClick, - withPortal = _props19.withPortal, - enableOutsideDays = _props19.enableOutsideDays, - firstDayOfWeek = _props19.firstDayOfWeek, - hideKeyboardShortcutsPanel = _props19.hideKeyboardShortcutsPanel, - daySize = _props19.daySize, - focusedInput = _props19.focusedInput, - renderCalendarDay = _props19.renderCalendarDay, - renderDayContents = _props19.renderDayContents, - renderCalendarInfo = _props19.renderCalendarInfo, - renderMonthElement = _props19.renderMonthElement, - calendarInfoPosition = _props19.calendarInfoPosition, - onBlur = _props19.onBlur, - isFocused = _props19.isFocused, - showKeyboardShortcuts = _props19.showKeyboardShortcuts, - isRTL = _props19.isRTL, - weekDayFormat = _props19.weekDayFormat, - dayAriaLabelFormat = _props19.dayAriaLabelFormat, - verticalHeight = _props19.verticalHeight, - noBorder = _props19.noBorder, - transitionDuration = _props19.transitionDuration, - verticalBorderSpacing = _props19.verticalBorderSpacing, - horizontalMonthPadding = _props19.horizontalMonthPadding; - var _state8 = this.state, - currentMonth = _state8.currentMonth, - phrases = _state8.phrases, - visibleDays = _state8.visibleDays; - - - return _react2['default'].createElement(_DayPicker2['default'], { - orientation: orientation, - enableOutsideDays: enableOutsideDays, - modifiers: visibleDays, - numberOfMonths: numberOfMonths, - onDayClick: this.onDayClick, - onDayMouseEnter: this.onDayMouseEnter, - onDayMouseLeave: this.onDayMouseLeave, - onPrevMonthClick: this.onPrevMonthClick, - onNextMonthClick: this.onNextMonthClick, - onMonthChange: this.onMonthChange, - onYearChange: this.onYearChange, - onMultiplyScrollableMonths: this.onMultiplyScrollableMonths, - monthFormat: monthFormat, - renderMonthText: renderMonthText, - withPortal: withPortal, - hidden: !focusedInput, - initialVisibleMonth: function () { - function initialVisibleMonth() { - return currentMonth; - } - - return initialVisibleMonth; - }(), - daySize: daySize, - onOutsideClick: onOutsideClick, - navPrev: navPrev, - navNext: navNext, - noNavButtons: noNavButtons, - renderCalendarDay: renderCalendarDay, - renderDayContents: renderDayContents, - renderCalendarInfo: renderCalendarInfo, - renderMonthElement: renderMonthElement, - calendarInfoPosition: calendarInfoPosition, - firstDayOfWeek: firstDayOfWeek, - hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel, - isFocused: isFocused, - getFirstFocusableDay: this.getFirstFocusableDay, - onBlur: onBlur, - showKeyboardShortcuts: showKeyboardShortcuts, - phrases: phrases, - isRTL: isRTL, - weekDayFormat: weekDayFormat, - dayAriaLabelFormat: dayAriaLabelFormat, - verticalHeight: verticalHeight, - verticalBorderSpacing: verticalBorderSpacing, - noBorder: noBorder, - transitionDuration: transitionDuration, - horizontalMonthPadding: horizontalMonthPadding - }); - } - - return render; - }() - }]); - - return DayPickerRangeController; -}(_react2['default'].Component); - -exports['default'] = DayPickerRangeController; - - -DayPickerRangeController.propTypes = propTypes; -DayPickerRangeController.defaultProps = defaultProps; - -/***/ }), -/* 189 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var define = __webpack_require__(73); - -var implementation = __webpack_require__(190); -var getPolyfill = __webpack_require__(191); -var shim = __webpack_require__(324); - -var polyfill = getPolyfill(); - -define(polyfill, { - getPolyfill: getPolyfill, - implementation: implementation, - shim: shim -}); - -module.exports = polyfill; - - -/***/ }), -/* 190 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var ES = __webpack_require__(166); -var has = __webpack_require__(91); -var bind = __webpack_require__(74); -var isEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable); - -module.exports = function values(O) { - var obj = ES.RequireObjectCoercible(O); - var vals = []; - for (var key in obj) { - if (has(obj, key) && isEnumerable(obj, key)) { - vals.push(obj[key]); - } - } - return vals; -}; - - -/***/ }), -/* 191 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var implementation = __webpack_require__(190); - -module.exports = function getPolyfill() { - return typeof Object.values === 'function' ? Object.values : implementation; -}; - - -/***/ }), -/* 192 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = isNextDay; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _isSameDay = __webpack_require__(79); - -var _isSameDay2 = _interopRequireDefault(_isSameDay); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function isNextDay(a, b) { - if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false; - var nextDay = (0, _moment2['default'])(a).add(1, 'day'); - return (0, _isSameDay2['default'])(nextDay, b); -} - -/***/ }), -/* 193 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = getVisibleDays; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _toISOMonthString = __webpack_require__(104); - -var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function getVisibleDays(month, numberOfMonths, enableOutsideDays, withoutTransitionMonths) { - if (!_moment2['default'].isMoment(month)) return {}; - - var visibleDaysByMonth = {}; - var currentMonth = withoutTransitionMonths ? month.clone() : month.clone().subtract(1, 'month'); - for (var i = 0; i < (withoutTransitionMonths ? numberOfMonths : numberOfMonths + 2); i += 1) { - var visibleDays = []; - - // set utc offset to get correct dates in future (when timezone changes) - var baseDate = currentMonth.clone(); - var firstOfMonth = baseDate.clone().startOf('month').hour(12); - var lastOfMonth = baseDate.clone().endOf('month').hour(12); - - var currentDay = firstOfMonth.clone(); - - // days belonging to the previous month - if (enableOutsideDays) { - for (var j = 0; j < currentDay.weekday(); j += 1) { - var prevDay = currentDay.clone().subtract(j + 1, 'day'); - visibleDays.unshift(prevDay); - } - } - - while (currentDay < lastOfMonth) { - visibleDays.push(currentDay.clone()); - currentDay.add(1, 'day'); - } - - if (enableOutsideDays) { - // weekday() returns the index of the day of the week according to the locale - // this means if the week starts on Monday, weekday() will return 0 for a Monday date, not 1 - if (currentDay.weekday() !== 0) { - // days belonging to the next month - for (var k = currentDay.weekday(), count = 0; k < 7; k += 1, count += 1) { - var nextDay = currentDay.clone().add(count, 'day'); - visibleDays.push(nextDay); - } - } - } - - visibleDaysByMonth[(0, _toISOMonthString2['default'])(currentMonth)] = visibleDays; - currentMonth = currentMonth.clone().add(1, 'month'); - } - - return visibleDaysByMonth; -} - -/***/ }), -/* 194 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactMomentProptypes = __webpack_require__(64); - -var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _object3 = __webpack_require__(189); - -var _object4 = _interopRequireDefault(_object3); - -var _isTouchDevice = __webpack_require__(82); - -var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice); - -var _defaultPhrases = __webpack_require__(47); - -var _getPhrasePropTypes = __webpack_require__(51); - -var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); - -var _isSameDay = __webpack_require__(79); - -var _isSameDay2 = _interopRequireDefault(_isSameDay); - -var _isAfterDay = __webpack_require__(106); - -var _isAfterDay2 = _interopRequireDefault(_isAfterDay); - -var _getVisibleDays = __webpack_require__(193); - -var _getVisibleDays2 = _interopRequireDefault(_getVisibleDays); - -var _isDayVisible = __webpack_require__(130); - -var _isDayVisible2 = _interopRequireDefault(_isDayVisible); - -var _toISODateString = __webpack_require__(102); - -var _toISODateString2 = _interopRequireDefault(_toISODateString); - -var _toISOMonthString = __webpack_require__(104); - -var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString); - -var _ScrollableOrientationShape = __webpack_require__(81); - -var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape); - -var _DayOfWeekShape = __webpack_require__(75); - -var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape); - -var _CalendarInfoPositionShape = __webpack_require__(93); - -var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape); - -var _constants = __webpack_require__(39); - -var _DayPicker = __webpack_require__(131); - -var _DayPicker2 = _interopRequireDefault(_DayPicker); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)({ - date: _reactMomentProptypes2['default'].momentObj, - onDateChange: _propTypes2['default'].func, - - focused: _propTypes2['default'].bool, - onFocusChange: _propTypes2['default'].func, - onClose: _propTypes2['default'].func, - - keepOpenOnDateSelect: _propTypes2['default'].bool, - isOutsideRange: _propTypes2['default'].func, - isDayBlocked: _propTypes2['default'].func, - isDayHighlighted: _propTypes2['default'].func, - - // DayPicker props - renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'), - renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'), - enableOutsideDays: _propTypes2['default'].bool, - numberOfMonths: _propTypes2['default'].number, - orientation: _ScrollableOrientationShape2['default'], - withPortal: _propTypes2['default'].bool, - initialVisibleMonth: _propTypes2['default'].func, - firstDayOfWeek: _DayOfWeekShape2['default'], - hideKeyboardShortcutsPanel: _propTypes2['default'].bool, - daySize: _airbnbPropTypes.nonNegativeInteger, - verticalHeight: _airbnbPropTypes.nonNegativeInteger, - noBorder: _propTypes2['default'].bool, - verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger, - transitionDuration: _airbnbPropTypes.nonNegativeInteger, - horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger, - - navPrev: _propTypes2['default'].node, - navNext: _propTypes2['default'].node, - - onPrevMonthClick: _propTypes2['default'].func, - onNextMonthClick: _propTypes2['default'].func, - onOutsideClick: _propTypes2['default'].func, - renderCalendarDay: _propTypes2['default'].func, - renderDayContents: _propTypes2['default'].func, - renderCalendarInfo: _propTypes2['default'].func, - calendarInfoPosition: _CalendarInfoPositionShape2['default'], - - // accessibility - onBlur: _propTypes2['default'].func, - isFocused: _propTypes2['default'].bool, - showKeyboardShortcuts: _propTypes2['default'].bool, - - // i18n - monthFormat: _propTypes2['default'].string, - weekDayFormat: _propTypes2['default'].string, - phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)), - dayAriaLabelFormat: _propTypes2['default'].string, - - isRTL: _propTypes2['default'].bool -}); - -var defaultProps = { - date: undefined, // TODO: use null - onDateChange: function () { - function onDateChange() {} - - return onDateChange; - }(), - - - focused: false, - onFocusChange: function () { - function onFocusChange() {} - - return onFocusChange; - }(), - onClose: function () { - function onClose() {} - - return onClose; - }(), - - - keepOpenOnDateSelect: false, - isOutsideRange: function () { - function isOutsideRange() {} - - return isOutsideRange; - }(), - isDayBlocked: function () { - function isDayBlocked() {} - - return isDayBlocked; - }(), - isDayHighlighted: function () { - function isDayHighlighted() {} - - return isDayHighlighted; - }(), - - - // DayPicker props - renderMonthText: null, - enableOutsideDays: false, - numberOfMonths: 1, - orientation: _constants.HORIZONTAL_ORIENTATION, - withPortal: false, - hideKeyboardShortcutsPanel: false, - initialVisibleMonth: null, - firstDayOfWeek: null, - daySize: _constants.DAY_SIZE, - verticalHeight: null, - noBorder: false, - verticalBorderSpacing: undefined, - transitionDuration: undefined, - horizontalMonthPadding: 13, - - navPrev: null, - navNext: null, - - onPrevMonthClick: function () { - function onPrevMonthClick() {} - - return onPrevMonthClick; - }(), - onNextMonthClick: function () { - function onNextMonthClick() {} - - return onNextMonthClick; - }(), - onOutsideClick: function () { - function onOutsideClick() {} - - return onOutsideClick; - }(), - - - renderCalendarDay: undefined, - renderDayContents: null, - renderCalendarInfo: null, - renderMonthElement: null, - calendarInfoPosition: _constants.INFO_POSITION_BOTTOM, - - // accessibility - onBlur: function () { - function onBlur() {} - - return onBlur; - }(), - - isFocused: false, - showKeyboardShortcuts: false, - - // i18n - monthFormat: 'MMMM YYYY', - weekDayFormat: 'dd', - phrases: _defaultPhrases.DayPickerPhrases, - dayAriaLabelFormat: undefined, - - isRTL: false -}; - -var DayPickerSingleDateController = function (_React$Component) { - _inherits(DayPickerSingleDateController, _React$Component); - - function DayPickerSingleDateController(props) { - _classCallCheck(this, DayPickerSingleDateController); - - var _this = _possibleConstructorReturn(this, (DayPickerSingleDateController.__proto__ || Object.getPrototypeOf(DayPickerSingleDateController)).call(this, props)); - - _this.isTouchDevice = false; - _this.today = (0, _moment2['default'])(); - - _this.modifiers = { - today: function () { - function today(day) { - return _this.isToday(day); - } - - return today; - }(), - blocked: function () { - function blocked(day) { - return _this.isBlocked(day); - } - - return blocked; - }(), - 'blocked-calendar': function () { - function blockedCalendar(day) { - return props.isDayBlocked(day); - } - - return blockedCalendar; - }(), - 'blocked-out-of-range': function () { - function blockedOutOfRange(day) { - return props.isOutsideRange(day); - } - - return blockedOutOfRange; - }(), - 'highlighted-calendar': function () { - function highlightedCalendar(day) { - return props.isDayHighlighted(day); - } - - return highlightedCalendar; - }(), - valid: function () { - function valid(day) { - return !_this.isBlocked(day); - } - - return valid; - }(), - hovered: function () { - function hovered(day) { - return _this.isHovered(day); - } - - return hovered; - }(), - selected: function () { - function selected(day) { - return _this.isSelected(day); - } - - return selected; - }(), - 'first-day-of-week': function () { - function firstDayOfWeek(day) { - return _this.isFirstDayOfWeek(day); - } - - return firstDayOfWeek; - }(), - 'last-day-of-week': function () { - function lastDayOfWeek(day) { - return _this.isLastDayOfWeek(day); - } - - return lastDayOfWeek; - }() - }; - - var _this$getStateForNewM = _this.getStateForNewMonth(props), - currentMonth = _this$getStateForNewM.currentMonth, - visibleDays = _this$getStateForNewM.visibleDays; - - _this.state = { - hoverDate: null, - currentMonth: currentMonth, - visibleDays: visibleDays - }; - - _this.onDayMouseEnter = _this.onDayMouseEnter.bind(_this); - _this.onDayMouseLeave = _this.onDayMouseLeave.bind(_this); - _this.onDayClick = _this.onDayClick.bind(_this); - - _this.onPrevMonthClick = _this.onPrevMonthClick.bind(_this); - _this.onNextMonthClick = _this.onNextMonthClick.bind(_this); - _this.onMonthChange = _this.onMonthChange.bind(_this); - _this.onYearChange = _this.onYearChange.bind(_this); - - _this.getFirstFocusableDay = _this.getFirstFocusableDay.bind(_this); - return _this; - } - - _createClass(DayPickerSingleDateController, [{ - key: 'componentDidMount', - value: function () { - function componentDidMount() { - this.isTouchDevice = (0, _isTouchDevice2['default'])(); - } - - return componentDidMount; - }() - }, { - key: 'componentWillReceiveProps', - value: function () { - function componentWillReceiveProps(nextProps) { - var _this2 = this; - - var date = nextProps.date, - focused = nextProps.focused, - isOutsideRange = nextProps.isOutsideRange, - isDayBlocked = nextProps.isDayBlocked, - isDayHighlighted = nextProps.isDayHighlighted, - initialVisibleMonth = nextProps.initialVisibleMonth, - numberOfMonths = nextProps.numberOfMonths, - enableOutsideDays = nextProps.enableOutsideDays; - var _props = this.props, - prevIsOutsideRange = _props.isOutsideRange, - prevIsDayBlocked = _props.isDayBlocked, - prevIsDayHighlighted = _props.isDayHighlighted, - prevNumberOfMonths = _props.numberOfMonths, - prevEnableOutsideDays = _props.enableOutsideDays, - prevInitialVisibleMonth = _props.initialVisibleMonth, - prevFocused = _props.focused, - prevDate = _props.date; - var visibleDays = this.state.visibleDays; - - - var recomputeOutsideRange = false; - var recomputeDayBlocked = false; - var recomputeDayHighlighted = false; - - if (isOutsideRange !== prevIsOutsideRange) { - this.modifiers['blocked-out-of-range'] = function (day) { - return isOutsideRange(day); - }; - recomputeOutsideRange = true; - } - - if (isDayBlocked !== prevIsDayBlocked) { - this.modifiers['blocked-calendar'] = function (day) { - return isDayBlocked(day); - }; - recomputeDayBlocked = true; - } - - if (isDayHighlighted !== prevIsDayHighlighted) { - this.modifiers['highlighted-calendar'] = function (day) { - return isDayHighlighted(day); - }; - recomputeDayHighlighted = true; - } - - var recomputePropModifiers = recomputeOutsideRange || recomputeDayBlocked || recomputeDayHighlighted; - - if (numberOfMonths !== prevNumberOfMonths || enableOutsideDays !== prevEnableOutsideDays || initialVisibleMonth !== prevInitialVisibleMonth && !prevFocused && focused) { - var newMonthState = this.getStateForNewMonth(nextProps); - var currentMonth = newMonthState.currentMonth; - visibleDays = newMonthState.visibleDays; - - this.setState({ - currentMonth: currentMonth, - visibleDays: visibleDays - }); - } - - var didDateChange = date !== prevDate; - var didFocusChange = focused !== prevFocused; - - var modifiers = {}; - - if (didDateChange) { - modifiers = this.deleteModifier(modifiers, prevDate, 'selected'); - modifiers = this.addModifier(modifiers, date, 'selected'); - } - - if (didFocusChange || recomputePropModifiers) { - (0, _object4['default'])(visibleDays).forEach(function (days) { - Object.keys(days).forEach(function (day) { - var momentObj = (0, _moment2['default'])(day); - if (_this2.isBlocked(momentObj)) { - modifiers = _this2.addModifier(modifiers, momentObj, 'blocked'); - } else { - modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked'); - } - - if (didFocusChange || recomputeOutsideRange) { - if (isOutsideRange(momentObj)) { - modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-out-of-range'); - } else { - modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-out-of-range'); - } - } - - if (didFocusChange || recomputeDayBlocked) { - if (isDayBlocked(momentObj)) { - modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-calendar'); - } else { - modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-calendar'); - } - } - - if (didFocusChange || recomputeDayHighlighted) { - if (isDayHighlighted(momentObj)) { - modifiers = _this2.addModifier(modifiers, momentObj, 'highlighted-calendar'); - } else { - modifiers = _this2.deleteModifier(modifiers, momentObj, 'highlighted-calendar'); - } - } - }); - }); - } - - var today = (0, _moment2['default'])(); - if (!(0, _isSameDay2['default'])(this.today, today)) { - modifiers = this.deleteModifier(modifiers, this.today, 'today'); - modifiers = this.addModifier(modifiers, today, 'today'); - this.today = today; - } - - if (Object.keys(modifiers).length > 0) { - this.setState({ - visibleDays: (0, _object2['default'])({}, visibleDays, modifiers) - }); - } - } - - return componentWillReceiveProps; - }() - }, { - key: 'componentWillUpdate', - value: function () { - function componentWillUpdate() { - this.today = (0, _moment2['default'])(); - } - - return componentWillUpdate; - }() - }, { - key: 'onDayClick', - value: function () { - function onDayClick(day, e) { - if (e) e.preventDefault(); - if (this.isBlocked(day)) return; - var _props2 = this.props, - onDateChange = _props2.onDateChange, - keepOpenOnDateSelect = _props2.keepOpenOnDateSelect, - onFocusChange = _props2.onFocusChange, - onClose = _props2.onClose; - - - onDateChange(day); - if (!keepOpenOnDateSelect) { - onFocusChange({ focused: false }); - onClose({ date: day }); - } - } - - return onDayClick; - }() - }, { - key: 'onDayMouseEnter', - value: function () { - function onDayMouseEnter(day) { - if (this.isTouchDevice) return; - var _state = this.state, - hoverDate = _state.hoverDate, - visibleDays = _state.visibleDays; - - - var modifiers = this.deleteModifier({}, hoverDate, 'hovered'); - modifiers = this.addModifier(modifiers, day, 'hovered'); - - this.setState({ - hoverDate: day, - visibleDays: (0, _object2['default'])({}, visibleDays, modifiers) - }); - } - - return onDayMouseEnter; - }() - }, { - key: 'onDayMouseLeave', - value: function () { - function onDayMouseLeave() { - var _state2 = this.state, - hoverDate = _state2.hoverDate, - visibleDays = _state2.visibleDays; - - if (this.isTouchDevice || !hoverDate) return; - - var modifiers = this.deleteModifier({}, hoverDate, 'hovered'); - - this.setState({ - hoverDate: null, - visibleDays: (0, _object2['default'])({}, visibleDays, modifiers) - }); - } - - return onDayMouseLeave; - }() - }, { - key: 'onPrevMonthClick', - value: function () { - function onPrevMonthClick() { - var _props3 = this.props, - onPrevMonthClick = _props3.onPrevMonthClick, - numberOfMonths = _props3.numberOfMonths, - enableOutsideDays = _props3.enableOutsideDays; - var _state3 = this.state, - currentMonth = _state3.currentMonth, - visibleDays = _state3.visibleDays; - - - var newVisibleDays = {}; - Object.keys(visibleDays).sort().slice(0, numberOfMonths + 1).forEach(function (month) { - newVisibleDays[month] = visibleDays[month]; - }); - - var prevMonth = currentMonth.clone().subtract(1, 'month'); - var prevMonthVisibleDays = (0, _getVisibleDays2['default'])(prevMonth, 1, enableOutsideDays); - - this.setState({ - currentMonth: prevMonth, - visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(prevMonthVisibleDays)) - }, function () { - onPrevMonthClick(prevMonth.clone()); - }); - } - - return onPrevMonthClick; - }() - }, { - key: 'onNextMonthClick', - value: function () { - function onNextMonthClick() { - var _props4 = this.props, - onNextMonthClick = _props4.onNextMonthClick, - numberOfMonths = _props4.numberOfMonths, - enableOutsideDays = _props4.enableOutsideDays; - var _state4 = this.state, - currentMonth = _state4.currentMonth, - visibleDays = _state4.visibleDays; - - - var newVisibleDays = {}; - Object.keys(visibleDays).sort().slice(1).forEach(function (month) { - newVisibleDays[month] = visibleDays[month]; - }); - - var nextMonth = currentMonth.clone().add(numberOfMonths, 'month'); - var nextMonthVisibleDays = (0, _getVisibleDays2['default'])(nextMonth, 1, enableOutsideDays); - - var newCurrentMonth = currentMonth.clone().add(1, 'month'); - this.setState({ - currentMonth: newCurrentMonth, - visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(nextMonthVisibleDays)) - }, function () { - onNextMonthClick(newCurrentMonth.clone()); - }); - } - - return onNextMonthClick; - }() - }, { - key: 'onMonthChange', - value: function () { - function onMonthChange(newMonth) { - var _props5 = this.props, - numberOfMonths = _props5.numberOfMonths, - enableOutsideDays = _props5.enableOutsideDays, - orientation = _props5.orientation; - - var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE; - var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths); - - this.setState({ - currentMonth: newMonth.clone(), - visibleDays: this.getModifiers(newVisibleDays) - }); - } - - return onMonthChange; - }() - }, { - key: 'onYearChange', - value: function () { - function onYearChange(newMonth) { - var _props6 = this.props, - numberOfMonths = _props6.numberOfMonths, - enableOutsideDays = _props6.enableOutsideDays, - orientation = _props6.orientation; - - var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE; - var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths); - - this.setState({ - currentMonth: newMonth.clone(), - visibleDays: this.getModifiers(newVisibleDays) - }); - } - - return onYearChange; - }() - }, { - key: 'getFirstFocusableDay', - value: function () { - function getFirstFocusableDay(newMonth) { - var _this3 = this; - - var _props7 = this.props, - date = _props7.date, - numberOfMonths = _props7.numberOfMonths; - - - var focusedDate = newMonth.clone().startOf('month'); - if (date) { - focusedDate = date.clone(); - } - - if (this.isBlocked(focusedDate)) { - var days = []; - var lastVisibleDay = newMonth.clone().add(numberOfMonths - 1, 'months').endOf('month'); - var currentDay = focusedDate.clone(); - while (!(0, _isAfterDay2['default'])(currentDay, lastVisibleDay)) { - currentDay = currentDay.clone().add(1, 'day'); - days.push(currentDay); - } - - var viableDays = days.filter(function (day) { - return !_this3.isBlocked(day) && (0, _isAfterDay2['default'])(day, focusedDate); - }); - if (viableDays.length > 0) { - var _viableDays = _slicedToArray(viableDays, 1); - - focusedDate = _viableDays[0]; - } - } - - return focusedDate; - } - - return getFirstFocusableDay; - }() - }, { - key: 'getModifiers', - value: function () { - function getModifiers(visibleDays) { - var _this4 = this; - - var modifiers = {}; - Object.keys(visibleDays).forEach(function (month) { - modifiers[month] = {}; - visibleDays[month].forEach(function (day) { - modifiers[month][(0, _toISODateString2['default'])(day)] = _this4.getModifiersForDay(day); - }); - }); - - return modifiers; - } - - return getModifiers; - }() - }, { - key: 'getModifiersForDay', - value: function () { - function getModifiersForDay(day) { - var _this5 = this; - - return new Set(Object.keys(this.modifiers).filter(function (modifier) { - return _this5.modifiers[modifier](day); - })); - } - - return getModifiersForDay; - }() - }, { - key: 'getStateForNewMonth', - value: function () { - function getStateForNewMonth(nextProps) { - var _this6 = this; - - var initialVisibleMonth = nextProps.initialVisibleMonth, - date = nextProps.date, - numberOfMonths = nextProps.numberOfMonths, - enableOutsideDays = nextProps.enableOutsideDays; - - var initialVisibleMonthThunk = initialVisibleMonth || (date ? function () { - return date; - } : function () { - return _this6.today; - }); - var currentMonth = initialVisibleMonthThunk(); - var visibleDays = this.getModifiers((0, _getVisibleDays2['default'])(currentMonth, numberOfMonths, enableOutsideDays)); - return { currentMonth: currentMonth, visibleDays: visibleDays }; - } - - return getStateForNewMonth; - }() - }, { - key: 'addModifier', - value: function () { - function addModifier(updatedDays, day, modifier) { - var _props8 = this.props, - numberOfVisibleMonths = _props8.numberOfMonths, - enableOutsideDays = _props8.enableOutsideDays, - orientation = _props8.orientation; - var _state5 = this.state, - firstVisibleMonth = _state5.currentMonth, - visibleDays = _state5.visibleDays; - - - var currentMonth = firstVisibleMonth; - var numberOfMonths = numberOfVisibleMonths; - if (orientation === _constants.VERTICAL_SCROLLABLE) { - numberOfMonths = Object.keys(visibleDays).length; - } else { - currentMonth = currentMonth.clone().subtract(1, 'month'); - numberOfMonths += 2; - } - if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) { - return updatedDays; - } - - var iso = (0, _toISODateString2['default'])(day); - - var updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDays); - if (enableOutsideDays) { - var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) { - return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1; - }); - - updatedDaysAfterAddition = monthsToUpdate.reduce(function (days, monthIso) { - var month = updatedDays[monthIso] || visibleDays[monthIso]; - var modifiers = new Set(month[iso]); - modifiers.add(modifier); - return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers)))); - }, updatedDaysAfterAddition); - } else { - var monthIso = (0, _toISOMonthString2['default'])(day); - var month = updatedDays[monthIso] || visibleDays[monthIso]; - - var modifiers = new Set(month[iso]); - modifiers.add(modifier); - updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDaysAfterAddition, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers)))); - } - - return updatedDaysAfterAddition; - } - - return addModifier; - }() - }, { - key: 'deleteModifier', - value: function () { - function deleteModifier(updatedDays, day, modifier) { - var _props9 = this.props, - numberOfVisibleMonths = _props9.numberOfMonths, - enableOutsideDays = _props9.enableOutsideDays, - orientation = _props9.orientation; - var _state6 = this.state, - firstVisibleMonth = _state6.currentMonth, - visibleDays = _state6.visibleDays; - - - var currentMonth = firstVisibleMonth; - var numberOfMonths = numberOfVisibleMonths; - if (orientation === _constants.VERTICAL_SCROLLABLE) { - numberOfMonths = Object.keys(visibleDays).length; - } else { - currentMonth = currentMonth.clone().subtract(1, 'month'); - numberOfMonths += 2; - } - if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) { - return updatedDays; - } - - var iso = (0, _toISODateString2['default'])(day); - - var updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDays); - if (enableOutsideDays) { - var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) { - return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1; - }); - - updatedDaysAfterDeletion = monthsToUpdate.reduce(function (days, monthIso) { - var month = updatedDays[monthIso] || visibleDays[monthIso]; - var modifiers = new Set(month[iso]); - modifiers['delete'](modifier); - return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers)))); - }, updatedDaysAfterDeletion); - } else { - var monthIso = (0, _toISOMonthString2['default'])(day); - var month = updatedDays[monthIso] || visibleDays[monthIso]; - - var modifiers = new Set(month[iso]); - modifiers['delete'](modifier); - updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDaysAfterDeletion, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers)))); - } - - return updatedDaysAfterDeletion; - } - - return deleteModifier; - }() - }, { - key: 'isBlocked', - value: function () { - function isBlocked(day) { - var _props10 = this.props, - isDayBlocked = _props10.isDayBlocked, - isOutsideRange = _props10.isOutsideRange; - - return isDayBlocked(day) || isOutsideRange(day); - } - - return isBlocked; - }() - }, { - key: 'isHovered', - value: function () { - function isHovered(day) { - var _ref = this.state || {}, - hoverDate = _ref.hoverDate; - - return (0, _isSameDay2['default'])(day, hoverDate); - } - - return isHovered; - }() - }, { - key: 'isSelected', - value: function () { - function isSelected(day) { - var date = this.props.date; - - return (0, _isSameDay2['default'])(day, date); - } - - return isSelected; - }() - }, { - key: 'isToday', - value: function () { - function isToday(day) { - return (0, _isSameDay2['default'])(day, this.today); - } - - return isToday; - }() - }, { - key: 'isFirstDayOfWeek', - value: function () { - function isFirstDayOfWeek(day) { - var firstDayOfWeek = this.props.firstDayOfWeek; - - return day.day() === (firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek()); - } - - return isFirstDayOfWeek; - }() - }, { - key: 'isLastDayOfWeek', - value: function () { - function isLastDayOfWeek(day) { - var firstDayOfWeek = this.props.firstDayOfWeek; - - return day.day() === ((firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek()) + 6) % 7; - } - - return isLastDayOfWeek; - }() - }, { - key: 'render', - value: function () { - function render() { - var _props11 = this.props, - numberOfMonths = _props11.numberOfMonths, - orientation = _props11.orientation, - monthFormat = _props11.monthFormat, - renderMonthText = _props11.renderMonthText, - navPrev = _props11.navPrev, - navNext = _props11.navNext, - onOutsideClick = _props11.onOutsideClick, - withPortal = _props11.withPortal, - focused = _props11.focused, - enableOutsideDays = _props11.enableOutsideDays, - hideKeyboardShortcutsPanel = _props11.hideKeyboardShortcutsPanel, - daySize = _props11.daySize, - firstDayOfWeek = _props11.firstDayOfWeek, - renderCalendarDay = _props11.renderCalendarDay, - renderDayContents = _props11.renderDayContents, - renderCalendarInfo = _props11.renderCalendarInfo, - renderMonthElement = _props11.renderMonthElement, - calendarInfoPosition = _props11.calendarInfoPosition, - isFocused = _props11.isFocused, - isRTL = _props11.isRTL, - phrases = _props11.phrases, - dayAriaLabelFormat = _props11.dayAriaLabelFormat, - onBlur = _props11.onBlur, - showKeyboardShortcuts = _props11.showKeyboardShortcuts, - weekDayFormat = _props11.weekDayFormat, - verticalHeight = _props11.verticalHeight, - noBorder = _props11.noBorder, - transitionDuration = _props11.transitionDuration, - verticalBorderSpacing = _props11.verticalBorderSpacing, - horizontalMonthPadding = _props11.horizontalMonthPadding; - var _state7 = this.state, - currentMonth = _state7.currentMonth, - visibleDays = _state7.visibleDays; - - - return _react2['default'].createElement(_DayPicker2['default'], { - orientation: orientation, - enableOutsideDays: enableOutsideDays, - modifiers: visibleDays, - numberOfMonths: numberOfMonths, - onDayClick: this.onDayClick, - onDayMouseEnter: this.onDayMouseEnter, - onDayMouseLeave: this.onDayMouseLeave, - onPrevMonthClick: this.onPrevMonthClick, - onNextMonthClick: this.onNextMonthClick, - onMonthChange: this.onMonthChange, - onYearChange: this.onYearChange, - monthFormat: monthFormat, - withPortal: withPortal, - hidden: !focused, - hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel, - initialVisibleMonth: function () { - function initialVisibleMonth() { - return currentMonth; - } - - return initialVisibleMonth; - }(), - firstDayOfWeek: firstDayOfWeek, - onOutsideClick: onOutsideClick, - navPrev: navPrev, - navNext: navNext, - renderMonthText: renderMonthText, - renderCalendarDay: renderCalendarDay, - renderDayContents: renderDayContents, - renderCalendarInfo: renderCalendarInfo, - renderMonthElement: renderMonthElement, - calendarInfoPosition: calendarInfoPosition, - isFocused: isFocused, - getFirstFocusableDay: this.getFirstFocusableDay, - onBlur: onBlur, - phrases: phrases, - daySize: daySize, - isRTL: isRTL, - showKeyboardShortcuts: showKeyboardShortcuts, - weekDayFormat: weekDayFormat, - dayAriaLabelFormat: dayAriaLabelFormat, - verticalHeight: verticalHeight, - noBorder: noBorder, - transitionDuration: transitionDuration, - verticalBorderSpacing: verticalBorderSpacing, - horizontalMonthPadding: horizontalMonthPadding - }); - } - - return render; - }() - }]); - - return DayPickerSingleDateController; -}(_react2['default'].Component); - -exports['default'] = DayPickerSingleDateController; - - -DayPickerSingleDateController.propTypes = propTypes; -DayPickerSingleDateController.defaultProps = defaultProps; - -/***/ }), -/* 195 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactMomentProptypes = __webpack_require__(64); - -var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _defaultPhrases = __webpack_require__(47); - -var _getPhrasePropTypes = __webpack_require__(51); - -var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); - -var _IconPositionShape = __webpack_require__(92); - -var _IconPositionShape2 = _interopRequireDefault(_IconPositionShape); - -var _OrientationShape = __webpack_require__(174); - -var _OrientationShape2 = _interopRequireDefault(_OrientationShape); - -var _AnchorDirectionShape = __webpack_require__(175); - -var _AnchorDirectionShape2 = _interopRequireDefault(_AnchorDirectionShape); - -var _OpenDirectionShape = __webpack_require__(83); - -var _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape); - -var _DayOfWeekShape = __webpack_require__(75); - -var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape); - -var _CalendarInfoPositionShape = __webpack_require__(93); - -var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = { - // required props for a functional interactive SingleDatePicker - date: _reactMomentProptypes2['default'].momentObj, - onDateChange: _propTypes2['default'].func.isRequired, - - focused: _propTypes2['default'].bool, - onFocusChange: _propTypes2['default'].func.isRequired, - - // input related props - id: _propTypes2['default'].string.isRequired, - placeholder: _propTypes2['default'].string, - disabled: _propTypes2['default'].bool, - required: _propTypes2['default'].bool, - readOnly: _propTypes2['default'].bool, - screenReaderInputMessage: _propTypes2['default'].string, - showClearDate: _propTypes2['default'].bool, - customCloseIcon: _propTypes2['default'].node, - showDefaultInputIcon: _propTypes2['default'].bool, - inputIconPosition: _IconPositionShape2['default'], - customInputIcon: _propTypes2['default'].node, - noBorder: _propTypes2['default'].bool, - block: _propTypes2['default'].bool, - small: _propTypes2['default'].bool, - regular: _propTypes2['default'].bool, - verticalSpacing: _airbnbPropTypes.nonNegativeInteger, - keepFocusOnInput: _propTypes2['default'].bool, - - // calendar presentation and interaction related props - renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'), - renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'), - orientation: _OrientationShape2['default'], - anchorDirection: _AnchorDirectionShape2['default'], - openDirection: _OpenDirectionShape2['default'], - horizontalMargin: _propTypes2['default'].number, - withPortal: _propTypes2['default'].bool, - withFullScreenPortal: _propTypes2['default'].bool, - appendToBody: _propTypes2['default'].bool, - disableScroll: _propTypes2['default'].bool, - initialVisibleMonth: _propTypes2['default'].func, - firstDayOfWeek: _DayOfWeekShape2['default'], - numberOfMonths: _propTypes2['default'].number, - keepOpenOnDateSelect: _propTypes2['default'].bool, - reopenPickerOnClearDate: _propTypes2['default'].bool, - renderCalendarInfo: _propTypes2['default'].func, - calendarInfoPosition: _CalendarInfoPositionShape2['default'], - hideKeyboardShortcutsPanel: _propTypes2['default'].bool, - daySize: _airbnbPropTypes.nonNegativeInteger, - isRTL: _propTypes2['default'].bool, - verticalHeight: _airbnbPropTypes.nonNegativeInteger, - transitionDuration: _airbnbPropTypes.nonNegativeInteger, - horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger, - - // navigation related props - navPrev: _propTypes2['default'].node, - navNext: _propTypes2['default'].node, - - onPrevMonthClick: _propTypes2['default'].func, - onNextMonthClick: _propTypes2['default'].func, - onClose: _propTypes2['default'].func, - - // day presentation and interaction related props - renderCalendarDay: _propTypes2['default'].func, - renderDayContents: _propTypes2['default'].func, - enableOutsideDays: _propTypes2['default'].bool, - isDayBlocked: _propTypes2['default'].func, - isOutsideRange: _propTypes2['default'].func, - isDayHighlighted: _propTypes2['default'].func, - - // internationalization props - displayFormat: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]), - monthFormat: _propTypes2['default'].string, - weekDayFormat: _propTypes2['default'].string, - phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.SingleDatePickerPhrases)), - dayAriaLabelFormat: _propTypes2['default'].string -}; - -/***/ }), -/* 196 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _reactWithStyles = __webpack_require__(56); - -var _defaultPhrases = __webpack_require__(47); - -var _getPhrasePropTypes = __webpack_require__(51); - -var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); - -var _DateInput = __webpack_require__(181); - -var _DateInput2 = _interopRequireDefault(_DateInput); - -var _IconPositionShape = __webpack_require__(92); - -var _IconPositionShape2 = _interopRequireDefault(_IconPositionShape); - -var _CloseButton = __webpack_require__(96); - -var _CloseButton2 = _interopRequireDefault(_CloseButton); - -var _CalendarIcon = __webpack_require__(187); - -var _CalendarIcon2 = _interopRequireDefault(_CalendarIcon); - -var _OpenDirectionShape = __webpack_require__(83); - -var _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, { - id: _propTypes2['default'].string.isRequired, - placeholder: _propTypes2['default'].string, // also used as label - displayValue: _propTypes2['default'].string, - screenReaderMessage: _propTypes2['default'].string, - focused: _propTypes2['default'].bool, - isFocused: _propTypes2['default'].bool, // describes actual DOM focus - disabled: _propTypes2['default'].bool, - required: _propTypes2['default'].bool, - readOnly: _propTypes2['default'].bool, - openDirection: _OpenDirectionShape2['default'], - showCaret: _propTypes2['default'].bool, - showClearDate: _propTypes2['default'].bool, - customCloseIcon: _propTypes2['default'].node, - showDefaultInputIcon: _propTypes2['default'].bool, - inputIconPosition: _IconPositionShape2['default'], - customInputIcon: _propTypes2['default'].node, - isRTL: _propTypes2['default'].bool, - noBorder: _propTypes2['default'].bool, - block: _propTypes2['default'].bool, - small: _propTypes2['default'].bool, - regular: _propTypes2['default'].bool, - verticalSpacing: _airbnbPropTypes.nonNegativeInteger, - - onChange: _propTypes2['default'].func, - onClearDate: _propTypes2['default'].func, - onFocus: _propTypes2['default'].func, - onKeyDownShiftTab: _propTypes2['default'].func, - onKeyDownTab: _propTypes2['default'].func, - onKeyDownArrowDown: _propTypes2['default'].func, - onKeyDownQuestionMark: _propTypes2['default'].func, - - // i18n - phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.SingleDatePickerInputPhrases)) -})); - -var defaultProps = { - placeholder: 'Select Date', - displayValue: '', - screenReaderMessage: '', - focused: false, - isFocused: false, - disabled: false, - required: false, - readOnly: false, - openDirection: _constants.OPEN_DOWN, - showCaret: false, - showClearDate: false, - showDefaultInputIcon: false, - inputIconPosition: _constants.ICON_BEFORE_POSITION, - customCloseIcon: null, - customInputIcon: null, - isRTL: false, - noBorder: false, - block: false, - small: false, - regular: false, - verticalSpacing: undefined, - - onChange: function () { - function onChange() {} - - return onChange; - }(), - onClearDate: function () { - function onClearDate() {} - - return onClearDate; - }(), - onFocus: function () { - function onFocus() {} - - return onFocus; - }(), - onKeyDownShiftTab: function () { - function onKeyDownShiftTab() {} - - return onKeyDownShiftTab; - }(), - onKeyDownTab: function () { - function onKeyDownTab() {} - - return onKeyDownTab; - }(), - onKeyDownArrowDown: function () { - function onKeyDownArrowDown() {} - - return onKeyDownArrowDown; - }(), - onKeyDownQuestionMark: function () { - function onKeyDownQuestionMark() {} - - return onKeyDownQuestionMark; - }(), - - - // i18n - phrases: _defaultPhrases.SingleDatePickerInputPhrases -}; - -/* eslint react/no-this-in-sfc: 1 */ - -function SingleDatePickerInput(_ref) { - var id = _ref.id, - placeholder = _ref.placeholder, - displayValue = _ref.displayValue, - focused = _ref.focused, - isFocused = _ref.isFocused, - disabled = _ref.disabled, - required = _ref.required, - readOnly = _ref.readOnly, - showCaret = _ref.showCaret, - showClearDate = _ref.showClearDate, - showDefaultInputIcon = _ref.showDefaultInputIcon, - inputIconPosition = _ref.inputIconPosition, - phrases = _ref.phrases, - onClearDate = _ref.onClearDate, - onChange = _ref.onChange, - onFocus = _ref.onFocus, - onKeyDownShiftTab = _ref.onKeyDownShiftTab, - onKeyDownTab = _ref.onKeyDownTab, - onKeyDownArrowDown = _ref.onKeyDownArrowDown, - onKeyDownQuestionMark = _ref.onKeyDownQuestionMark, - screenReaderMessage = _ref.screenReaderMessage, - customCloseIcon = _ref.customCloseIcon, - customInputIcon = _ref.customInputIcon, - openDirection = _ref.openDirection, - isRTL = _ref.isRTL, - noBorder = _ref.noBorder, - block = _ref.block, - small = _ref.small, - regular = _ref.regular, - verticalSpacing = _ref.verticalSpacing, - styles = _ref.styles; - - var calendarIcon = customInputIcon || _react2['default'].createElement(_CalendarIcon2['default'], (0, _reactWithStyles.css)(styles.SingleDatePickerInput_calendarIcon_svg)); - var closeIcon = customCloseIcon || _react2['default'].createElement(_CloseButton2['default'], (0, _reactWithStyles.css)(styles.SingleDatePickerInput_clearDate_svg, small && styles.SingleDatePickerInput_clearDate_svg__small)); - - var screenReaderText = screenReaderMessage || phrases.keyboardNavigationInstructions; - var inputIcon = (showDefaultInputIcon || customInputIcon !== null) && _react2['default'].createElement( - 'button', - _extends({}, (0, _reactWithStyles.css)(styles.SingleDatePickerInput_calendarIcon), { - type: 'button', - disabled: disabled, - 'aria-label': phrases.focusStartDate, - onClick: onFocus - }), - calendarIcon - ); - - return _react2['default'].createElement( - 'div', - (0, _reactWithStyles.css)(styles.SingleDatePickerInput, disabled && styles.SingleDatePickerInput__disabled, isRTL && styles.SingleDatePickerInput__rtl, !noBorder && styles.SingleDatePickerInput__withBorder, block && styles.SingleDatePickerInput__block, showClearDate && styles.SingleDatePickerInput__showClearDate), - inputIconPosition === _constants.ICON_BEFORE_POSITION && inputIcon, - _react2['default'].createElement(_DateInput2['default'], { - id: id, - placeholder: placeholder // also used as label - , displayValue: displayValue, - screenReaderMessage: screenReaderText, - focused: focused, - isFocused: isFocused, - disabled: disabled, - required: required, - readOnly: readOnly, - showCaret: showCaret, - onChange: onChange, - onFocus: onFocus, - onKeyDownShiftTab: onKeyDownShiftTab, - onKeyDownTab: onKeyDownTab, - onKeyDownArrowDown: onKeyDownArrowDown, - onKeyDownQuestionMark: onKeyDownQuestionMark, - openDirection: openDirection, - verticalSpacing: verticalSpacing, - small: small, - regular: regular, - block: block - }), - showClearDate && _react2['default'].createElement( - 'button', - _extends({}, (0, _reactWithStyles.css)(styles.SingleDatePickerInput_clearDate, small && styles.SingleDatePickerInput_clearDate__small, !customCloseIcon && styles.SingleDatePickerInput_clearDate__default, !displayValue && styles.SingleDatePickerInput_clearDate__hide), { - type: 'button', - 'aria-label': phrases.clearDate, - disabled: disabled, - onMouseEnter: this && this.onClearDateMouseEnter, - onMouseLeave: this && this.onClearDateMouseLeave, - onClick: onClearDate - }), - closeIcon - ), - inputIconPosition === _constants.ICON_AFTER_POSITION && inputIcon - ); -} - -SingleDatePickerInput.propTypes = propTypes; -SingleDatePickerInput.defaultProps = defaultProps; - -exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) { - var _ref2$reactDates = _ref2.reactDates, - border = _ref2$reactDates.border, - color = _ref2$reactDates.color; - return { - SingleDatePickerInput: { - display: 'inline-block', - backgroundColor: color.background - }, - - SingleDatePickerInput__withBorder: { - borderColor: color.border, - borderWidth: border.pickerInput.borderWidth, - borderStyle: border.pickerInput.borderStyle, - borderRadius: border.pickerInput.borderRadius - }, - - SingleDatePickerInput__rtl: { - direction: 'rtl' - }, - - SingleDatePickerInput__disabled: { - backgroundColor: color.disabled - }, - - SingleDatePickerInput__block: { - display: 'block' - }, - - SingleDatePickerInput__showClearDate: { - paddingRight: 30 - }, - - SingleDatePickerInput_clearDate: { - background: 'none', - border: 0, - color: 'inherit', - font: 'inherit', - lineHeight: 'normal', - overflow: 'visible', - - cursor: 'pointer', - padding: 10, - margin: '0 10px 0 5px', - position: 'absolute', - right: 0, - top: '50%', - transform: 'translateY(-50%)' - }, - - SingleDatePickerInput_clearDate__default: { - ':focus': { - background: color.core.border, - borderRadius: '50%' - }, - - ':hover': { - background: color.core.border, - borderRadius: '50%' - } - }, - - SingleDatePickerInput_clearDate__small: { - padding: 6 - }, - - SingleDatePickerInput_clearDate__hide: { - visibility: 'hidden' - }, - - SingleDatePickerInput_clearDate_svg: { - fill: color.core.grayLight, - height: 12, - width: 15, - verticalAlign: 'middle' - }, - - SingleDatePickerInput_clearDate_svg__small: { - height: 9 - }, - - SingleDatePickerInput_calendarIcon: { - background: 'none', - border: 0, - color: 'inherit', - font: 'inherit', - lineHeight: 'normal', - overflow: 'visible', - - cursor: 'pointer', - display: 'inline-block', - verticalAlign: 'middle', - padding: 10, - margin: '0 5px 0 10px' - }, - - SingleDatePickerInput_calendarIcon_svg: { - fill: color.core.grayLight, - height: 15, - width: 14, - verticalAlign: 'middle' - } - }; -})(SingleDatePickerInput); - -/***/ }), -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); - -// EXTERNAL MODULE: external "ReactDOM" -var external_ReactDOM_ = __webpack_require__(52); -var external_ReactDOM_default = /*#__PURE__*/__webpack_require__.n(external_ReactDOM_); - -// EXTERNAL MODULE: external "React" -var external_React_ = __webpack_require__(27); -var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_); - -// EXTERNAL MODULE: ./node_modules/prop-types/index.js -var prop_types = __webpack_require__(31); -var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types); - -// CONCATENATED MODULE: ./node_modules/react-portal/es/utils.js -var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); -// CONCATENATED MODULE: ./node_modules/react-portal/es/Portal.js -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - - - - - - -var Portal_Portal = function (_React$Component) { - _inherits(Portal, _React$Component); - - function Portal() { - _classCallCheck(this, Portal); - - return _possibleConstructorReturn(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).apply(this, arguments)); - } - - _createClass(Portal, [{ - key: 'componentWillUnmount', - value: function componentWillUnmount() { - if (this.defaultNode) { - document.body.removeChild(this.defaultNode); - } - this.defaultNode = null; - } - }, { - key: 'render', - value: function render() { - if (!canUseDOM) { - return null; - } - if (!this.props.node && !this.defaultNode) { - this.defaultNode = document.createElement('div'); - document.body.appendChild(this.defaultNode); - } - return external_ReactDOM_default.a.createPortal(this.props.children, this.props.node || this.defaultNode); - } - }]); - - return Portal; -}(external_React_default.a.Component); - -Portal_Portal.propTypes = { - children: prop_types_default.a.node.isRequired, - node: prop_types_default.a.any -}; - -/* harmony default export */ var es_Portal = (Portal_Portal); -// CONCATENATED MODULE: ./node_modules/react-portal/es/LegacyPortal.js -var LegacyPortal_createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function LegacyPortal_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function LegacyPortal_possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function LegacyPortal_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -// This file is a fallback for a consumer who is not yet on React 16 -// as createPortal was introduced in React 16 - - - - - -var LegacyPortal_Portal = function (_React$Component) { - LegacyPortal_inherits(Portal, _React$Component); - - function Portal() { - LegacyPortal_classCallCheck(this, Portal); - - return LegacyPortal_possibleConstructorReturn(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).apply(this, arguments)); - } - - LegacyPortal_createClass(Portal, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.renderPortal(); - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate(props) { - this.renderPortal(); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - external_ReactDOM_default.a.unmountComponentAtNode(this.defaultNode || this.props.node); - if (this.defaultNode) { - document.body.removeChild(this.defaultNode); - } - this.defaultNode = null; - this.portal = null; - } - }, { - key: 'renderPortal', - value: function renderPortal(props) { - if (!this.props.node && !this.defaultNode) { - this.defaultNode = document.createElement('div'); - document.body.appendChild(this.defaultNode); - } - - var children = this.props.children; - // https://gist.github.com/jimfb/d99e0678e9da715ccf6454961ef04d1b - if (typeof this.props.children.type === 'function') { - children = external_React_default.a.cloneElement(this.props.children); - } - - this.portal = external_ReactDOM_default.a.unstable_renderSubtreeIntoContainer(this, children, this.props.node || this.defaultNode); - } - }, { - key: 'render', - value: function render() { - return null; - } - }]); - - return Portal; -}(external_React_default.a.Component); - -/* harmony default export */ var LegacyPortal = (LegacyPortal_Portal); - - -LegacyPortal_Portal.propTypes = { - children: prop_types_default.a.node.isRequired, - node: prop_types_default.a.any -}; -// CONCATENATED MODULE: ./node_modules/react-portal/es/PortalCompat.js - - - - - -var PortalCompat_Portal = void 0; - -if (external_ReactDOM_default.a.createPortal) { - PortalCompat_Portal = es_Portal; -} else { - PortalCompat_Portal = LegacyPortal; -} - -/* harmony default export */ var PortalCompat = (PortalCompat_Portal); -// CONCATENATED MODULE: ./node_modules/react-portal/es/PortalWithState.js -var PortalWithState_createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function PortalWithState_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function PortalWithState_possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function PortalWithState_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - - - - - -var KEYCODES = { - ESCAPE: 27 -}; - -var PortalWithState_PortalWithState = function (_React$Component) { - PortalWithState_inherits(PortalWithState, _React$Component); - - function PortalWithState(props) { - PortalWithState_classCallCheck(this, PortalWithState); - - var _this = PortalWithState_possibleConstructorReturn(this, (PortalWithState.__proto__ || Object.getPrototypeOf(PortalWithState)).call(this, props)); - - _this.portalNode = null; - _this.state = { active: !!props.defaultOpen }; - _this.openPortal = _this.openPortal.bind(_this); - _this.closePortal = _this.closePortal.bind(_this); - _this.wrapWithPortal = _this.wrapWithPortal.bind(_this); - _this.handleOutsideMouseClick = _this.handleOutsideMouseClick.bind(_this); - _this.handleKeydown = _this.handleKeydown.bind(_this); - return _this; - } - - PortalWithState_createClass(PortalWithState, [{ - key: 'componentDidMount', - value: function componentDidMount() { - if (this.props.closeOnEsc) { - document.addEventListener('keydown', this.handleKeydown); - } - if (this.props.closeOnOutsideClick) { - document.addEventListener('click', this.handleOutsideMouseClick); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - if (this.props.closeOnEsc) { - document.removeEventListener('keydown', this.handleKeydown); - } - if (this.props.closeOnOutsideClick) { - document.removeEventListener('click', this.handleOutsideMouseClick); - } - } - }, { - key: 'openPortal', - value: function openPortal(e) { - if (this.state.active) { - return; - } - if (e && e.nativeEvent) { - e.nativeEvent.stopImmediatePropagation(); - } - this.setState({ active: true }, this.props.onOpen); - } - }, { - key: 'closePortal', - value: function closePortal() { - if (!this.state.active) { - return; - } - this.setState({ active: false }, this.props.onClose); - } - }, { - key: 'wrapWithPortal', - value: function wrapWithPortal(children) { - var _this2 = this; - - if (!this.state.active) { - return null; - } - return external_React_default.a.createElement( - PortalCompat, - { - node: this.props.node, - key: 'react-portal', - ref: function ref(portalNode) { - return _this2.portalNode = portalNode; - } - }, - children - ); - } - }, { - key: 'handleOutsideMouseClick', - value: function handleOutsideMouseClick(e) { - if (!this.state.active) { - return; - } - var root = this.portalNode.props.node || this.portalNode.defaultNode; - if (!root || root.contains(e.target) || e.button && e.button !== 0) { - return; - } - this.closePortal(); - } - }, { - key: 'handleKeydown', - value: function handleKeydown(e) { - if (e.keyCode === KEYCODES.ESCAPE && this.state.active) { - this.closePortal(); - } - } - }, { - key: 'render', - value: function render() { - return this.props.children({ - openPortal: this.openPortal, - closePortal: this.closePortal, - portal: this.wrapWithPortal, - isOpen: this.state.active - }); - } - }]); - - return PortalWithState; -}(external_React_default.a.Component); - -PortalWithState_PortalWithState.propTypes = { - children: prop_types_default.a.func.isRequired, - defaultOpen: prop_types_default.a.bool, - node: prop_types_default.a.any, - closeOnEsc: prop_types_default.a.bool, - closeOnOutsideClick: prop_types_default.a.bool, - onOpen: prop_types_default.a.func, - onClose: prop_types_default.a.func -}; - -PortalWithState_PortalWithState.defaultProps = { - onOpen: function onOpen() {}, - onClose: function onClose() {} -}; - -/* harmony default export */ var es_PortalWithState = (PortalWithState_PortalWithState); -// CONCATENATED MODULE: ./node_modules/react-portal/es/index.js -/* concated harmony reexport Portal */__webpack_require__.d(__webpack_exports__, "Portal", function() { return PortalCompat; }); -/* concated harmony reexport PortalWithState */__webpack_require__.d(__webpack_exports__, "PortalWithState", function() { return es_PortalWithState; }); - - - - - -/***/ }), -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */ -/***/ (function(module, exports, __webpack_require__) { - -/*! - * clipboard.js v2.0.4 - * https://zenorocha.github.io/clipboard.js - * - * Licensed MIT © Zeno Rocha - */ -(function webpackUniversalModuleDefinition(root, factory) { - if(true) - module.exports = factory(); - else {} -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // 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 }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _clipboardAction = __webpack_require__(1); - -var _clipboardAction2 = _interopRequireDefault(_clipboardAction); - -var _tinyEmitter = __webpack_require__(3); - -var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter); - -var _goodListener = __webpack_require__(4); - -var _goodListener2 = _interopRequireDefault(_goodListener); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -/** - * Base class which takes one or more elements, adds event listeners to them, - * and instantiates a new `ClipboardAction` on each click. - */ -var Clipboard = function (_Emitter) { - _inherits(Clipboard, _Emitter); - - /** - * @param {String|HTMLElement|HTMLCollection|NodeList} trigger - * @param {Object} options - */ - function Clipboard(trigger, options) { - _classCallCheck(this, Clipboard); - - var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this)); - - _this.resolveOptions(options); - _this.listenClick(trigger); - return _this; - } - - /** - * Defines if attributes would be resolved using internal setter functions - * or custom functions that were passed in the constructor. - * @param {Object} options - */ - - - _createClass(Clipboard, [{ - key: 'resolveOptions', - value: function resolveOptions() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - this.action = typeof options.action === 'function' ? options.action : this.defaultAction; - this.target = typeof options.target === 'function' ? options.target : this.defaultTarget; - this.text = typeof options.text === 'function' ? options.text : this.defaultText; - this.container = _typeof(options.container) === 'object' ? options.container : document.body; - } - - /** - * Adds a click event listener to the passed trigger. - * @param {String|HTMLElement|HTMLCollection|NodeList} trigger - */ - - }, { - key: 'listenClick', - value: function listenClick(trigger) { - var _this2 = this; - - this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) { - return _this2.onClick(e); - }); - } - - /** - * Defines a new `ClipboardAction` on each click event. - * @param {Event} e - */ - - }, { - key: 'onClick', - value: function onClick(e) { - var trigger = e.delegateTarget || e.currentTarget; - - if (this.clipboardAction) { - this.clipboardAction = null; - } - - this.clipboardAction = new _clipboardAction2.default({ - action: this.action(trigger), - target: this.target(trigger), - text: this.text(trigger), - container: this.container, - trigger: trigger, - emitter: this - }); - } - - /** - * Default `action` lookup function. - * @param {Element} trigger - */ - - }, { - key: 'defaultAction', - value: function defaultAction(trigger) { - return getAttributeValue('action', trigger); - } - - /** - * Default `target` lookup function. - * @param {Element} trigger - */ - - }, { - key: 'defaultTarget', - value: function defaultTarget(trigger) { - var selector = getAttributeValue('target', trigger); - - if (selector) { - return document.querySelector(selector); - } - } - - /** - * Returns the support of the given action, or all actions if no action is - * given. - * @param {String} [action] - */ - - }, { - key: 'defaultText', - - - /** - * Default `text` lookup function. - * @param {Element} trigger - */ - value: function defaultText(trigger) { - return getAttributeValue('text', trigger); - } - - /** - * Destroy lifecycle. - */ - - }, { - key: 'destroy', - value: function destroy() { - this.listener.destroy(); - - if (this.clipboardAction) { - this.clipboardAction.destroy(); - this.clipboardAction = null; - } - } - }], [{ - key: 'isSupported', - value: function isSupported() { - var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut']; - - var actions = typeof action === 'string' ? [action] : action; - var support = !!document.queryCommandSupported; - - actions.forEach(function (action) { - support = support && !!document.queryCommandSupported(action); - }); - - return support; - } - }]); - - return Clipboard; -}(_tinyEmitter2.default); - -/** - * Helper function to retrieve attribute value. - * @param {String} suffix - * @param {Element} element - */ - - -function getAttributeValue(suffix, element) { - var attribute = 'data-clipboard-' + suffix; - - if (!element.hasAttribute(attribute)) { - return; - } - - return element.getAttribute(attribute); -} - -module.exports = Clipboard; - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _select = __webpack_require__(2); - -var _select2 = _interopRequireDefault(_select); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/** - * Inner class which performs selection from either `text` or `target` - * properties and then executes copy or cut operations. - */ -var ClipboardAction = function () { - /** - * @param {Object} options - */ - function ClipboardAction(options) { - _classCallCheck(this, ClipboardAction); - - this.resolveOptions(options); - this.initSelection(); - } - - /** - * Defines base properties passed from constructor. - * @param {Object} options - */ - - - _createClass(ClipboardAction, [{ - key: 'resolveOptions', - value: function resolveOptions() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - this.action = options.action; - this.container = options.container; - this.emitter = options.emitter; - this.target = options.target; - this.text = options.text; - this.trigger = options.trigger; - - this.selectedText = ''; - } - - /** - * Decides which selection strategy is going to be applied based - * on the existence of `text` and `target` properties. - */ - - }, { - key: 'initSelection', - value: function initSelection() { - if (this.text) { - this.selectFake(); - } else if (this.target) { - this.selectTarget(); - } - } - - /** - * Creates a fake textarea element, sets its value from `text` property, - * and makes a selection on it. - */ - - }, { - key: 'selectFake', - value: function selectFake() { - var _this = this; - - var isRTL = document.documentElement.getAttribute('dir') == 'rtl'; - - this.removeFake(); - - this.fakeHandlerCallback = function () { - return _this.removeFake(); - }; - this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true; - - this.fakeElem = document.createElement('textarea'); - // Prevent zooming on iOS - this.fakeElem.style.fontSize = '12pt'; - // Reset box model - this.fakeElem.style.border = '0'; - this.fakeElem.style.padding = '0'; - this.fakeElem.style.margin = '0'; - // Move element out of screen horizontally - this.fakeElem.style.position = 'absolute'; - this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px'; - // Move element to the same position vertically - var yPosition = window.pageYOffset || document.documentElement.scrollTop; - this.fakeElem.style.top = yPosition + 'px'; - - this.fakeElem.setAttribute('readonly', ''); - this.fakeElem.value = this.text; - - this.container.appendChild(this.fakeElem); - - this.selectedText = (0, _select2.default)(this.fakeElem); - this.copyText(); - } - - /** - * Only removes the fake element after another click event, that way - * a user can hit `Ctrl+C` to copy because selection still exists. - */ - - }, { - key: 'removeFake', - value: function removeFake() { - if (this.fakeHandler) { - this.container.removeEventListener('click', this.fakeHandlerCallback); - this.fakeHandler = null; - this.fakeHandlerCallback = null; - } - - if (this.fakeElem) { - this.container.removeChild(this.fakeElem); - this.fakeElem = null; - } - } - - /** - * Selects the content from element passed on `target` property. - */ - - }, { - key: 'selectTarget', - value: function selectTarget() { - this.selectedText = (0, _select2.default)(this.target); - this.copyText(); - } - - /** - * Executes the copy operation based on the current selection. - */ - - }, { - key: 'copyText', - value: function copyText() { - var succeeded = void 0; - - try { - succeeded = document.execCommand(this.action); - } catch (err) { - succeeded = false; - } - - this.handleResult(succeeded); - } - - /** - * Fires an event based on the copy operation result. - * @param {Boolean} succeeded - */ - - }, { - key: 'handleResult', - value: function handleResult(succeeded) { - this.emitter.emit(succeeded ? 'success' : 'error', { - action: this.action, - text: this.selectedText, - trigger: this.trigger, - clearSelection: this.clearSelection.bind(this) - }); - } - - /** - * Moves focus away from `target` and back to the trigger, removes current selection. - */ - - }, { - key: 'clearSelection', - value: function clearSelection() { - if (this.trigger) { - this.trigger.focus(); - } - - window.getSelection().removeAllRanges(); - } - - /** - * Sets the `action` to be performed which can be either 'copy' or 'cut'. - * @param {String} action - */ - - }, { - key: 'destroy', - - - /** - * Destroy lifecycle. - */ - value: function destroy() { - this.removeFake(); - } - }, { - key: 'action', - set: function set() { - var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy'; - - this._action = action; - - if (this._action !== 'copy' && this._action !== 'cut') { - throw new Error('Invalid "action" value, use either "copy" or "cut"'); - } - } - - /** - * Gets the `action` property. - * @return {String} - */ - , - get: function get() { - return this._action; - } - - /** - * Sets the `target` property using an element - * that will be have its content copied. - * @param {Element} target - */ - - }, { - key: 'target', - set: function set(target) { - if (target !== undefined) { - if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) { - if (this.action === 'copy' && target.hasAttribute('disabled')) { - throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'); - } - - if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) { - throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes'); - } - - this._target = target; - } else { - throw new Error('Invalid "target" value, use a valid Element'); - } - } - } - - /** - * Gets the `target` property. - * @return {String|HTMLElement} - */ - , - get: function get() { - return this._target; - } - }]); - - return ClipboardAction; -}(); - -module.exports = ClipboardAction; - -/***/ }), -/* 2 */ -/***/ (function(module, exports) { - -function select(element) { - var selectedText; - - if (element.nodeName === 'SELECT') { - element.focus(); - - selectedText = element.value; - } - else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') { - var isReadOnly = element.hasAttribute('readonly'); - - if (!isReadOnly) { - element.setAttribute('readonly', ''); - } - - element.select(); - element.setSelectionRange(0, element.value.length); - - if (!isReadOnly) { - element.removeAttribute('readonly'); - } - - selectedText = element.value; - } - else { - if (element.hasAttribute('contenteditable')) { - element.focus(); - } - - var selection = window.getSelection(); - var range = document.createRange(); - - range.selectNodeContents(element); - selection.removeAllRanges(); - selection.addRange(range); - - selectedText = selection.toString(); - } - - return selectedText; -} - -module.exports = select; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports) { - -function E () { - // Keep this empty so it's easier to inherit from - // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3) -} - -E.prototype = { - on: function (name, callback, ctx) { - var e = this.e || (this.e = {}); - - (e[name] || (e[name] = [])).push({ - fn: callback, - ctx: ctx - }); - - return this; - }, - - once: function (name, callback, ctx) { - var self = this; - function listener () { - self.off(name, listener); - callback.apply(ctx, arguments); - }; - - listener._ = callback - return this.on(name, listener, ctx); - }, - - emit: function (name) { - var data = [].slice.call(arguments, 1); - var evtArr = ((this.e || (this.e = {}))[name] || []).slice(); - var i = 0; - var len = evtArr.length; - - for (i; i < len; i++) { - evtArr[i].fn.apply(evtArr[i].ctx, data); - } - - return this; - }, - - off: function (name, callback) { - var e = this.e || (this.e = {}); - var evts = e[name]; - var liveEvents = []; - - if (evts && callback) { - for (var i = 0, len = evts.length; i < len; i++) { - if (evts[i].fn !== callback && evts[i].fn._ !== callback) - liveEvents.push(evts[i]); - } - } - - // Remove event from queue to prevent memory leak - // Suggested by https://github.com/lazd - // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910 - - (liveEvents.length) - ? e[name] = liveEvents - : delete e[name]; - - return this; - } -}; - -module.exports = E; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -var is = __webpack_require__(5); -var delegate = __webpack_require__(6); - -/** - * Validates all params and calls the right - * listener function based on its target type. - * - * @param {String|HTMLElement|HTMLCollection|NodeList} target - * @param {String} type - * @param {Function} callback - * @return {Object} - */ -function listen(target, type, callback) { - if (!target && !type && !callback) { - throw new Error('Missing required arguments'); - } - - if (!is.string(type)) { - throw new TypeError('Second argument must be a String'); - } - - if (!is.fn(callback)) { - throw new TypeError('Third argument must be a Function'); - } - - if (is.node(target)) { - return listenNode(target, type, callback); - } - else if (is.nodeList(target)) { - return listenNodeList(target, type, callback); - } - else if (is.string(target)) { - return listenSelector(target, type, callback); - } - else { - throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList'); - } -} - -/** - * Adds an event listener to a HTML element - * and returns a remove listener function. - * - * @param {HTMLElement} node - * @param {String} type - * @param {Function} callback - * @return {Object} - */ -function listenNode(node, type, callback) { - node.addEventListener(type, callback); - - return { - destroy: function() { - node.removeEventListener(type, callback); - } - } -} - -/** - * Add an event listener to a list of HTML elements - * and returns a remove listener function. - * - * @param {NodeList|HTMLCollection} nodeList - * @param {String} type - * @param {Function} callback - * @return {Object} - */ -function listenNodeList(nodeList, type, callback) { - Array.prototype.forEach.call(nodeList, function(node) { - node.addEventListener(type, callback); - }); - - return { - destroy: function() { - Array.prototype.forEach.call(nodeList, function(node) { - node.removeEventListener(type, callback); - }); - } - } -} - -/** - * Add an event listener to a selector - * and returns a remove listener function. - * - * @param {String} selector - * @param {String} type - * @param {Function} callback - * @return {Object} - */ -function listenSelector(selector, type, callback) { - return delegate(document.body, selector, type, callback); -} - -module.exports = listen; - - -/***/ }), -/* 5 */ -/***/ (function(module, exports) { - -/** - * Check if argument is a HTML element. - * - * @param {Object} value - * @return {Boolean} - */ -exports.node = function(value) { - return value !== undefined - && value instanceof HTMLElement - && value.nodeType === 1; -}; - -/** - * Check if argument is a list of HTML elements. - * - * @param {Object} value - * @return {Boolean} - */ -exports.nodeList = function(value) { - var type = Object.prototype.toString.call(value); - - return value !== undefined - && (type === '[object NodeList]' || type === '[object HTMLCollection]') - && ('length' in value) - && (value.length === 0 || exports.node(value[0])); -}; - -/** - * Check if argument is a string. - * - * @param {Object} value - * @return {Boolean} - */ -exports.string = function(value) { - return typeof value === 'string' - || value instanceof String; -}; - -/** - * Check if argument is a function. - * - * @param {Object} value - * @return {Boolean} - */ -exports.fn = function(value) { - var type = Object.prototype.toString.call(value); - - return type === '[object Function]'; -}; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -var closest = __webpack_require__(7); - -/** - * Delegates event to a selector. - * - * @param {Element} element - * @param {String} selector - * @param {String} type - * @param {Function} callback - * @param {Boolean} useCapture - * @return {Object} - */ -function _delegate(element, selector, type, callback, useCapture) { - var listenerFn = listener.apply(this, arguments); - - element.addEventListener(type, listenerFn, useCapture); - - return { - destroy: function() { - element.removeEventListener(type, listenerFn, useCapture); - } - } -} - -/** - * Delegates event to a selector. - * - * @param {Element|String|Array} [elements] - * @param {String} selector - * @param {String} type - * @param {Function} callback - * @param {Boolean} useCapture - * @return {Object} - */ -function delegate(elements, selector, type, callback, useCapture) { - // Handle the regular Element usage - if (typeof elements.addEventListener === 'function') { - return _delegate.apply(null, arguments); - } - - // Handle Element-less usage, it defaults to global delegation - if (typeof type === 'function') { - // Use `document` as the first parameter, then apply arguments - // This is a short way to .unshift `arguments` without running into deoptimizations - return _delegate.bind(null, document).apply(null, arguments); - } - - // Handle Selector-based usage - if (typeof elements === 'string') { - elements = document.querySelectorAll(elements); - } - - // Handle Array-like based usage - return Array.prototype.map.call(elements, function (element) { - return _delegate(element, selector, type, callback, useCapture); - }); -} - -/** - * Finds closest match and invokes callback. - * - * @param {Element} element - * @param {String} selector - * @param {String} type - * @param {Function} callback - * @return {Function} - */ -function listener(element, selector, type, callback) { - return function(e) { - e.delegateTarget = closest(e.target, selector); - - if (e.delegateTarget) { - callback.call(element, e); - } - } -} - -module.exports = delegate; - - -/***/ }), -/* 7 */ -/***/ (function(module, exports) { - -var DOCUMENT_NODE_TYPE = 9; - -/** - * A polyfill for Element.matches() - */ -if (typeof Element !== 'undefined' && !Element.prototype.matches) { - var proto = Element.prototype; - - proto.matches = proto.matchesSelector || - proto.mozMatchesSelector || - proto.msMatchesSelector || - proto.oMatchesSelector || - proto.webkitMatchesSelector; -} - -/** - * Finds the closest parent that matches a selector. - * - * @param {Element} element - * @param {String} selector - * @return {Function} - */ -function closest (element, selector) { - while (element && element.nodeType !== DOCUMENT_NODE_TYPE) { - if (typeof element.matches === 'function' && - element.matches(selector)) { - return element; - } - element = element.parentNode; - } -} - -module.exports = closest; - - -/***/ }) -/******/ ]); -}); - -/***/ }), -/* 222 */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_RESULT__;/*global define:false */ -/** - * Copyright 2012-2017 Craig Campbell - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Mousetrap is a simple keyboard shortcut library for Javascript with - * no external dependencies - * - * @version 1.6.3 - * @url craig.is/killing/mice - */ -(function(window, document, undefined) { - - // Check if mousetrap is used inside browser, if not, return - if (!window) { - return; - } - - /** - * mapping of special keycodes to their corresponding keys - * - * everything in this dictionary cannot use keypress events - * so it has to be here to map to the correct keycodes for - * keyup/keydown events - * - * @type {Object} - */ - var _MAP = { - 8: 'backspace', - 9: 'tab', - 13: 'enter', - 16: 'shift', - 17: 'ctrl', - 18: 'alt', - 20: 'capslock', - 27: 'esc', - 32: 'space', - 33: 'pageup', - 34: 'pagedown', - 35: 'end', - 36: 'home', - 37: 'left', - 38: 'up', - 39: 'right', - 40: 'down', - 45: 'ins', - 46: 'del', - 91: 'meta', - 93: 'meta', - 224: 'meta' - }; - - /** - * mapping for special characters so they can support - * - * this dictionary is only used incase you want to bind a - * keyup or keydown event to one of these keys - * - * @type {Object} - */ - var _KEYCODE_MAP = { - 106: '*', - 107: '+', - 109: '-', - 110: '.', - 111 : '/', - 186: ';', - 187: '=', - 188: ',', - 189: '-', - 190: '.', - 191: '/', - 192: '`', - 219: '[', - 220: '\\', - 221: ']', - 222: '\'' - }; - - /** - * this is a mapping of keys that require shift on a US keypad - * back to the non shift equivelents - * - * this is so you can use keyup events with these keys - * - * note that this will only work reliably on US keyboards - * - * @type {Object} - */ - var _SHIFT_MAP = { - '~': '`', - '!': '1', - '@': '2', - '#': '3', - '$': '4', - '%': '5', - '^': '6', - '&': '7', - '*': '8', - '(': '9', - ')': '0', - '_': '-', - '+': '=', - ':': ';', - '\"': '\'', - '<': ',', - '>': '.', - '?': '/', - '|': '\\' - }; - - /** - * this is a list of special strings you can use to map - * to modifier keys when you specify your keyboard shortcuts - * - * @type {Object} - */ - var _SPECIAL_ALIASES = { - 'option': 'alt', - 'command': 'meta', - 'return': 'enter', - 'escape': 'esc', - 'plus': '+', - 'mod': /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? 'meta' : 'ctrl' - }; - - /** - * variable to store the flipped version of _MAP from above - * needed to check if we should use keypress or not when no action - * is specified - * - * @type {Object|undefined} - */ - var _REVERSE_MAP; - - /** - * loop through the f keys, f1 to f19 and add them to the map - * programatically - */ - for (var i = 1; i < 20; ++i) { - _MAP[111 + i] = 'f' + i; - } - - /** - * loop through to map numbers on the numeric keypad - */ - for (i = 0; i <= 9; ++i) { - - // This needs to use a string cause otherwise since 0 is falsey - // mousetrap will never fire for numpad 0 pressed as part of a keydown - // event. - // - // @see https://github.com/ccampbell/mousetrap/pull/258 - _MAP[i + 96] = i.toString(); - } - - /** - * cross browser add event method - * - * @param {Element|HTMLDocument} object - * @param {string} type - * @param {Function} callback - * @returns void - */ - function _addEvent(object, type, callback) { - if (object.addEventListener) { - object.addEventListener(type, callback, false); - return; - } - - object.attachEvent('on' + type, callback); - } - - /** - * takes the event and returns the key character - * - * @param {Event} e - * @return {string} - */ - function _characterFromEvent(e) { - - // for keypress events we should return the character as is - if (e.type == 'keypress') { - var character = String.fromCharCode(e.which); - - // if the shift key is not pressed then it is safe to assume - // that we want the character to be lowercase. this means if - // you accidentally have caps lock on then your key bindings - // will continue to work - // - // the only side effect that might not be desired is if you - // bind something like 'A' cause you want to trigger an - // event when capital A is pressed caps lock will no longer - // trigger the event. shift+a will though. - if (!e.shiftKey) { - character = character.toLowerCase(); - } - - return character; - } - - // for non keypress events the special maps are needed - if (_MAP[e.which]) { - return _MAP[e.which]; - } - - if (_KEYCODE_MAP[e.which]) { - return _KEYCODE_MAP[e.which]; - } - - // if it is not in the special map - - // with keydown and keyup events the character seems to always - // come in as an uppercase character whether you are pressing shift - // or not. we should make sure it is always lowercase for comparisons - return String.fromCharCode(e.which).toLowerCase(); - } - - /** - * checks if two arrays are equal - * - * @param {Array} modifiers1 - * @param {Array} modifiers2 - * @returns {boolean} - */ - function _modifiersMatch(modifiers1, modifiers2) { - return modifiers1.sort().join(',') === modifiers2.sort().join(','); - } - - /** - * takes a key event and figures out what the modifiers are - * - * @param {Event} e - * @returns {Array} - */ - function _eventModifiers(e) { - var modifiers = []; - - if (e.shiftKey) { - modifiers.push('shift'); - } - - if (e.altKey) { - modifiers.push('alt'); - } - - if (e.ctrlKey) { - modifiers.push('ctrl'); - } - - if (e.metaKey) { - modifiers.push('meta'); - } - - return modifiers; - } - - /** - * prevents default for this event - * - * @param {Event} e - * @returns void - */ - function _preventDefault(e) { - if (e.preventDefault) { - e.preventDefault(); - return; - } - - e.returnValue = false; - } - - /** - * stops propogation for this event - * - * @param {Event} e - * @returns void - */ - function _stopPropagation(e) { - if (e.stopPropagation) { - e.stopPropagation(); - return; - } - - e.cancelBubble = true; - } - - /** - * determines if the keycode specified is a modifier key or not - * - * @param {string} key - * @returns {boolean} - */ - function _isModifier(key) { - return key == 'shift' || key == 'ctrl' || key == 'alt' || key == 'meta'; - } - - /** - * reverses the map lookup so that we can look for specific keys - * to see what can and can't use keypress - * - * @return {Object} - */ - function _getReverseMap() { - if (!_REVERSE_MAP) { - _REVERSE_MAP = {}; - for (var key in _MAP) { - - // pull out the numeric keypad from here cause keypress should - // be able to detect the keys from the character - if (key > 95 && key < 112) { - continue; - } - - if (_MAP.hasOwnProperty(key)) { - _REVERSE_MAP[_MAP[key]] = key; - } - } - } - return _REVERSE_MAP; - } - - /** - * picks the best action based on the key combination - * - * @param {string} key - character for key - * @param {Array} modifiers - * @param {string=} action passed in - */ - function _pickBestAction(key, modifiers, action) { - - // if no action was picked in we should try to pick the one - // that we think would work best for this key - if (!action) { - action = _getReverseMap()[key] ? 'keydown' : 'keypress'; - } - - // modifier keys don't work as expected with keypress, - // switch to keydown - if (action == 'keypress' && modifiers.length) { - action = 'keydown'; - } - - return action; - } - - /** - * Converts from a string key combination to an array - * - * @param {string} combination like "command+shift+l" - * @return {Array} - */ - function _keysFromString(combination) { - if (combination === '+') { - return ['+']; - } - - combination = combination.replace(/\+{2}/g, '+plus'); - return combination.split('+'); - } - - /** - * Gets info for a specific key combination - * - * @param {string} combination key combination ("command+s" or "a" or "*") - * @param {string=} action - * @returns {Object} - */ - function _getKeyInfo(combination, action) { - var keys; - var key; - var i; - var modifiers = []; - - // take the keys from this pattern and figure out what the actual - // pattern is all about - keys = _keysFromString(combination); - - for (i = 0; i < keys.length; ++i) { - key = keys[i]; - - // normalize key names - if (_SPECIAL_ALIASES[key]) { - key = _SPECIAL_ALIASES[key]; - } - - // if this is not a keypress event then we should - // be smart about using shift keys - // this will only work for US keyboards however - if (action && action != 'keypress' && _SHIFT_MAP[key]) { - key = _SHIFT_MAP[key]; - modifiers.push('shift'); - } - - // if this key is a modifier then add it to the list of modifiers - if (_isModifier(key)) { - modifiers.push(key); - } - } - - // depending on what the key combination is - // we will try to pick the best event for it - action = _pickBestAction(key, modifiers, action); - - return { - key: key, - modifiers: modifiers, - action: action - }; - } - - function _belongsTo(element, ancestor) { - if (element === null || element === document) { - return false; - } - - if (element === ancestor) { - return true; - } - - return _belongsTo(element.parentNode, ancestor); - } - - function Mousetrap(targetElement) { - var self = this; - - targetElement = targetElement || document; - - if (!(self instanceof Mousetrap)) { - return new Mousetrap(targetElement); - } - - /** - * element to attach key events to - * - * @type {Element} - */ - self.target = targetElement; - - /** - * a list of all the callbacks setup via Mousetrap.bind() - * - * @type {Object} - */ - self._callbacks = {}; - - /** - * direct map of string combinations to callbacks used for trigger() - * - * @type {Object} - */ - self._directMap = {}; - - /** - * keeps track of what level each sequence is at since multiple - * sequences can start out with the same sequence - * - * @type {Object} - */ - var _sequenceLevels = {}; - - /** - * variable to store the setTimeout call - * - * @type {null|number} - */ - var _resetTimer; - - /** - * temporary state where we will ignore the next keyup - * - * @type {boolean|string} - */ - var _ignoreNextKeyup = false; - - /** - * temporary state where we will ignore the next keypress - * - * @type {boolean} - */ - var _ignoreNextKeypress = false; - - /** - * are we currently inside of a sequence? - * type of action ("keyup" or "keydown" or "keypress") or false - * - * @type {boolean|string} - */ - var _nextExpectedAction = false; - - /** - * resets all sequence counters except for the ones passed in - * - * @param {Object} doNotReset - * @returns void - */ - function _resetSequences(doNotReset) { - doNotReset = doNotReset || {}; - - var activeSequences = false, - key; - - for (key in _sequenceLevels) { - if (doNotReset[key]) { - activeSequences = true; - continue; - } - _sequenceLevels[key] = 0; - } - - if (!activeSequences) { - _nextExpectedAction = false; - } - } - - /** - * finds all callbacks that match based on the keycode, modifiers, - * and action - * - * @param {string} character - * @param {Array} modifiers - * @param {Event|Object} e - * @param {string=} sequenceName - name of the sequence we are looking for - * @param {string=} combination - * @param {number=} level - * @returns {Array} - */ - function _getMatches(character, modifiers, e, sequenceName, combination, level) { - var i; - var callback; - var matches = []; - var action = e.type; - - // if there are no events related to this keycode - if (!self._callbacks[character]) { - return []; - } - - // if a modifier key is coming up on its own we should allow it - if (action == 'keyup' && _isModifier(character)) { - modifiers = [character]; - } - - // loop through all callbacks for the key that was pressed - // and see if any of them match - for (i = 0; i < self._callbacks[character].length; ++i) { - callback = self._callbacks[character][i]; - - // if a sequence name is not specified, but this is a sequence at - // the wrong level then move onto the next match - if (!sequenceName && callback.seq && _sequenceLevels[callback.seq] != callback.level) { - continue; - } - - // if the action we are looking for doesn't match the action we got - // then we should keep going - if (action != callback.action) { - continue; - } - - // if this is a keypress event and the meta key and control key - // are not pressed that means that we need to only look at the - // character, otherwise check the modifiers as well - // - // chrome will not fire a keypress if meta or control is down - // safari will fire a keypress if meta or meta+shift is down - // firefox will fire a keypress if meta or control is down - if ((action == 'keypress' && !e.metaKey && !e.ctrlKey) || _modifiersMatch(modifiers, callback.modifiers)) { - - // when you bind a combination or sequence a second time it - // should overwrite the first one. if a sequenceName or - // combination is specified in this call it does just that - // - // @todo make deleting its own method? - var deleteCombo = !sequenceName && callback.combo == combination; - var deleteSequence = sequenceName && callback.seq == sequenceName && callback.level == level; - if (deleteCombo || deleteSequence) { - self._callbacks[character].splice(i, 1); - } - - matches.push(callback); - } - } - - return matches; - } - - /** - * actually calls the callback function - * - * if your callback function returns false this will use the jquery - * convention - prevent default and stop propogation on the event - * - * @param {Function} callback - * @param {Event} e - * @returns void - */ - function _fireCallback(callback, e, combo, sequence) { - - // if this event should not happen stop here - if (self.stopCallback(e, e.target || e.srcElement, combo, sequence)) { - return; - } - - if (callback(e, combo) === false) { - _preventDefault(e); - _stopPropagation(e); - } - } - - /** - * handles a character key event - * - * @param {string} character - * @param {Array} modifiers - * @param {Event} e - * @returns void - */ - self._handleKey = function(character, modifiers, e) { - var callbacks = _getMatches(character, modifiers, e); - var i; - var doNotReset = {}; - var maxLevel = 0; - var processedSequenceCallback = false; - - // Calculate the maxLevel for sequences so we can only execute the longest callback sequence - for (i = 0; i < callbacks.length; ++i) { - if (callbacks[i].seq) { - maxLevel = Math.max(maxLevel, callbacks[i].level); - } - } - - // loop through matching callbacks for this key event - for (i = 0; i < callbacks.length; ++i) { - - // fire for all sequence callbacks - // this is because if for example you have multiple sequences - // bound such as "g i" and "g t" they both need to fire the - // callback for matching g cause otherwise you can only ever - // match the first one - if (callbacks[i].seq) { - - // only fire callbacks for the maxLevel to prevent - // subsequences from also firing - // - // for example 'a option b' should not cause 'option b' to fire - // even though 'option b' is part of the other sequence - // - // any sequences that do not match here will be discarded - // below by the _resetSequences call - if (callbacks[i].level != maxLevel) { - continue; - } - - processedSequenceCallback = true; - - // keep a list of which sequences were matches for later - doNotReset[callbacks[i].seq] = 1; - _fireCallback(callbacks[i].callback, e, callbacks[i].combo, callbacks[i].seq); - continue; - } - - // if there were no sequence matches but we are still here - // that means this is a regular match so we should fire that - if (!processedSequenceCallback) { - _fireCallback(callbacks[i].callback, e, callbacks[i].combo); - } - } - - // if the key you pressed matches the type of sequence without - // being a modifier (ie "keyup" or "keypress") then we should - // reset all sequences that were not matched by this event - // - // this is so, for example, if you have the sequence "h a t" and you - // type "h e a r t" it does not match. in this case the "e" will - // cause the sequence to reset - // - // modifier keys are ignored because you can have a sequence - // that contains modifiers such as "enter ctrl+space" and in most - // cases the modifier key will be pressed before the next key - // - // also if you have a sequence such as "ctrl+b a" then pressing the - // "b" key will trigger a "keypress" and a "keydown" - // - // the "keydown" is expected when there is a modifier, but the - // "keypress" ends up matching the _nextExpectedAction since it occurs - // after and that causes the sequence to reset - // - // we ignore keypresses in a sequence that directly follow a keydown - // for the same character - var ignoreThisKeypress = e.type == 'keypress' && _ignoreNextKeypress; - if (e.type == _nextExpectedAction && !_isModifier(character) && !ignoreThisKeypress) { - _resetSequences(doNotReset); - } - - _ignoreNextKeypress = processedSequenceCallback && e.type == 'keydown'; - }; - - /** - * handles a keydown event - * - * @param {Event} e - * @returns void - */ - function _handleKeyEvent(e) { - - // normalize e.which for key events - // @see http://stackoverflow.com/questions/4285627/javascript-keycode-vs-charcode-utter-confusion - if (typeof e.which !== 'number') { - e.which = e.keyCode; - } - - var character = _characterFromEvent(e); - - // no character found then stop - if (!character) { - return; - } - - // need to use === for the character check because the character can be 0 - if (e.type == 'keyup' && _ignoreNextKeyup === character) { - _ignoreNextKeyup = false; - return; - } - - self.handleKey(character, _eventModifiers(e), e); - } - - /** - * called to set a 1 second timeout on the specified sequence - * - * this is so after each key press in the sequence you have 1 second - * to press the next key before you have to start over - * - * @returns void - */ - function _resetSequenceTimer() { - clearTimeout(_resetTimer); - _resetTimer = setTimeout(_resetSequences, 1000); - } - - /** - * binds a key sequence to an event - * - * @param {string} combo - combo specified in bind call - * @param {Array} keys - * @param {Function} callback - * @param {string=} action - * @returns void - */ - function _bindSequence(combo, keys, callback, action) { - - // start off by adding a sequence level record for this combination - // and setting the level to 0 - _sequenceLevels[combo] = 0; - - /** - * callback to increase the sequence level for this sequence and reset - * all other sequences that were active - * - * @param {string} nextAction - * @returns {Function} - */ - function _increaseSequence(nextAction) { - return function() { - _nextExpectedAction = nextAction; - ++_sequenceLevels[combo]; - _resetSequenceTimer(); - }; - } - - /** - * wraps the specified callback inside of another function in order - * to reset all sequence counters as soon as this sequence is done - * - * @param {Event} e - * @returns void - */ - function _callbackAndReset(e) { - _fireCallback(callback, e, combo); - - // we should ignore the next key up if the action is key down - // or keypress. this is so if you finish a sequence and - // release the key the final key will not trigger a keyup - if (action !== 'keyup') { - _ignoreNextKeyup = _characterFromEvent(e); - } - - // weird race condition if a sequence ends with the key - // another sequence begins with - setTimeout(_resetSequences, 10); - } - - // loop through keys one at a time and bind the appropriate callback - // function. for any key leading up to the final one it should - // increase the sequence. after the final, it should reset all sequences - // - // if an action is specified in the original bind call then that will - // be used throughout. otherwise we will pass the action that the - // next key in the sequence should match. this allows a sequence - // to mix and match keypress and keydown events depending on which - // ones are better suited to the key provided - for (var i = 0; i < keys.length; ++i) { - var isFinal = i + 1 === keys.length; - var wrappedCallback = isFinal ? _callbackAndReset : _increaseSequence(action || _getKeyInfo(keys[i + 1]).action); - _bindSingle(keys[i], wrappedCallback, action, combo, i); - } - } - - /** - * binds a single keyboard combination - * - * @param {string} combination - * @param {Function} callback - * @param {string=} action - * @param {string=} sequenceName - name of sequence if part of sequence - * @param {number=} level - what part of the sequence the command is - * @returns void - */ - function _bindSingle(combination, callback, action, sequenceName, level) { - - // store a direct mapped reference for use with Mousetrap.trigger - self._directMap[combination + ':' + action] = callback; - - // make sure multiple spaces in a row become a single space - combination = combination.replace(/\s+/g, ' '); - - var sequence = combination.split(' '); - var info; - - // if this pattern is a sequence of keys then run through this method - // to reprocess each pattern one key at a time - if (sequence.length > 1) { - _bindSequence(combination, sequence, callback, action); - return; - } - - info = _getKeyInfo(combination, action); - - // make sure to initialize array if this is the first time - // a callback is added for this key - self._callbacks[info.key] = self._callbacks[info.key] || []; - - // remove an existing match if there is one - _getMatches(info.key, info.modifiers, {type: info.action}, sequenceName, combination, level); - - // add this call back to the array - // if it is a sequence put it at the beginning - // if not put it at the end - // - // this is important because the way these are processed expects - // the sequence ones to come first - self._callbacks[info.key][sequenceName ? 'unshift' : 'push']({ - callback: callback, - modifiers: info.modifiers, - action: info.action, - seq: sequenceName, - level: level, - combo: combination - }); - } - - /** - * binds multiple combinations to the same callback - * - * @param {Array} combinations - * @param {Function} callback - * @param {string|undefined} action - * @returns void - */ - self._bindMultiple = function(combinations, callback, action) { - for (var i = 0; i < combinations.length; ++i) { - _bindSingle(combinations[i], callback, action); - } - }; - - // start! - _addEvent(targetElement, 'keypress', _handleKeyEvent); - _addEvent(targetElement, 'keydown', _handleKeyEvent); - _addEvent(targetElement, 'keyup', _handleKeyEvent); - } - - /** - * binds an event to mousetrap - * - * can be a single key, a combination of keys separated with +, - * an array of keys, or a sequence of keys separated by spaces - * - * be sure to list the modifier keys first to make sure that the - * correct key ends up getting bound (the last key in the pattern) - * - * @param {string|Array} keys - * @param {Function} callback - * @param {string=} action - 'keypress', 'keydown', or 'keyup' - * @returns void - */ - Mousetrap.prototype.bind = function(keys, callback, action) { - var self = this; - keys = keys instanceof Array ? keys : [keys]; - self._bindMultiple.call(self, keys, callback, action); - return self; - }; - - /** - * unbinds an event to mousetrap - * - * the unbinding sets the callback function of the specified key combo - * to an empty function and deletes the corresponding key in the - * _directMap dict. - * - * TODO: actually remove this from the _callbacks dictionary instead - * of binding an empty function - * - * the keycombo+action has to be exactly the same as - * it was defined in the bind method - * - * @param {string|Array} keys - * @param {string} action - * @returns void - */ - Mousetrap.prototype.unbind = function(keys, action) { - var self = this; - return self.bind.call(self, keys, function() {}, action); - }; - - /** - * triggers an event that has already been bound - * - * @param {string} keys - * @param {string=} action - * @returns void - */ - Mousetrap.prototype.trigger = function(keys, action) { - var self = this; - if (self._directMap[keys + ':' + action]) { - self._directMap[keys + ':' + action]({}, keys); - } - return self; - }; - - /** - * resets the library back to its initial state. this is useful - * if you want to clear out the current keyboard shortcuts and bind - * new ones - for example if you switch to another page - * - * @returns void - */ - Mousetrap.prototype.reset = function() { - var self = this; - self._callbacks = {}; - self._directMap = {}; - return self; - }; - - /** - * should we stop this event before firing off callbacks - * - * @param {Event} e - * @param {Element} element - * @return {boolean} - */ - Mousetrap.prototype.stopCallback = function(e, element) { - var self = this; - - // if the element has the class "mousetrap" then no need to stop - if ((' ' + element.className + ' ').indexOf(' mousetrap ') > -1) { - return false; - } - - if (_belongsTo(element, self.target)) { - return false; - } - - // Events originating from a shadow DOM are re-targetted and `e.target` is the shadow host, - // not the initial event target in the shadow tree. Note that not all events cross the - // shadow boundary. - // For shadow trees with `mode: 'open'`, the initial event target is the first element in - // the event’s composed path. For shadow trees with `mode: 'closed'`, the initial event - // target cannot be obtained. - if ('composedPath' in e && typeof e.composedPath === 'function') { - // For open shadow trees, update `element` so that the following check works. - var initialEventTarget = e.composedPath()[0]; - if (initialEventTarget !== e.target) { - element = initialEventTarget; - } - } - - // stop for input, select, and textarea - return element.tagName == 'INPUT' || element.tagName == 'SELECT' || element.tagName == 'TEXTAREA' || element.isContentEditable; - }; - - /** - * exposes _handleKey publicly so it can be overwritten by extensions - */ - Mousetrap.prototype.handleKey = function() { - var self = this; - return self._handleKey.apply(self, arguments); - }; - - /** - * allow custom key mappings - */ - Mousetrap.addKeycodes = function(object) { - for (var key in object) { - if (object.hasOwnProperty(key)) { - _MAP[key] = object[key]; - } - } - _REVERSE_MAP = null; - }; - - /** - * Init the global mousetrap functions - * - * This method is needed to allow the global mousetrap functions to work - * now that mousetrap is a constructor function. - */ - Mousetrap.init = function() { - var documentMousetrap = Mousetrap(document); - for (var method in documentMousetrap) { - if (method.charAt(0) !== '_') { - Mousetrap[method] = (function(method) { - return function() { - return documentMousetrap[method].apply(documentMousetrap, arguments); - }; - } (method)); - } - } - }; - - Mousetrap.init(); - - // expose mousetrap to the global object - window.Mousetrap = Mousetrap; - - // expose as a common js module - if ( true && module.exports) { - module.exports = Mousetrap; - } - - // expose mousetrap as an AMD module - if (true) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { - return Mousetrap; - }).call(exports, __webpack_require__, exports, module), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } -}) (typeof window !== 'undefined' ? window : null, typeof window !== 'undefined' ? document : null); - - -/***/ }), -/* 223 */ -/***/ (function(module, exports, __webpack_require__) { - -// eslint-disable-next-line import/no-unresolved -module.exports = __webpack_require__(285); - - -/***/ }), -/* 224 */, -/* 225 */, -/* 226 */, -/* 227 */, -/* 228 */, -/* 229 */, -/* 230 */, -/* 231 */, -/* 232 */, -/* 233 */, -/* 234 */, -/* 235 */, -/* 236 */, -/* 237 */, -/* 238 */, -/* 239 */, -/* 240 */, -/* 241 */, -/* 242 */, -/* 243 */, -/* 244 */, -/* 245 */, -/* 246 */, -/* 247 */, -/* 248 */, -/* 249 */, -/* 250 */, -/* 251 */, -/* 252 */, -/* 253 */, -/* 254 */, -/* 255 */, -/* 256 */, -/* 257 */, -/* 258 */, -/* 259 */ -/***/ (function(module, exports) { - -/** - * adds a bindGlobal method to Mousetrap that allows you to - * bind specific keyboard shortcuts that will still work - * inside a text input field - * - * usage: - * Mousetrap.bindGlobal('ctrl+s', _saveChanges); - */ -/* global Mousetrap:true */ -(function(Mousetrap) { - var _globalCallbacks = {}; - var _originalStopCallback = Mousetrap.prototype.stopCallback; - - Mousetrap.prototype.stopCallback = function(e, element, combo, sequence) { - var self = this; - - if (self.paused) { - return true; - } - - if (_globalCallbacks[combo] || _globalCallbacks[sequence]) { - return false; - } - - return _originalStopCallback.call(self, e, element, combo); - }; - - Mousetrap.prototype.bindGlobal = function(keys, callback, action) { - var self = this; - self.bind(keys, callback, action); - - if (keys instanceof Array) { - for (var i = 0; i < keys.length; i++) { - _globalCallbacks[keys[i]] = true; - } - return; - } - - _globalCallbacks[keys] = true; - }; - - Mousetrap.init(); -}) (Mousetrap); - - -/***/ }), -/* 260 */ -/***/ (function(module, exports, __webpack_require__) { - -// eslint-disable-next-line import/no-unresolved -__webpack_require__(261); - - -/***/ }), -/* 261 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _registerCSSInterfaceWithDefaultTheme = __webpack_require__(262); - -var _registerCSSInterfaceWithDefaultTheme2 = _interopRequireDefault(_registerCSSInterfaceWithDefaultTheme); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -(0, _registerCSSInterfaceWithDefaultTheme2['default'])(); - -/***/ }), -/* 262 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = registerCSSInterfaceWithDefaultTheme; - -var _reactWithStylesInterfaceCss = __webpack_require__(263); - -var _reactWithStylesInterfaceCss2 = _interopRequireDefault(_reactWithStylesInterfaceCss); - -var _registerInterfaceWithDefaultTheme = __webpack_require__(284); - -var _registerInterfaceWithDefaultTheme2 = _interopRequireDefault(_registerInterfaceWithDefaultTheme); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function registerCSSInterfaceWithDefaultTheme() { - (0, _registerInterfaceWithDefaultTheme2['default'])(_reactWithStylesInterfaceCss2['default']); -} - -/***/ }), -/* 263 */ -/***/ (function(module, exports, __webpack_require__) { - -// eslint-disable-next-line import/no-unresolved -module.exports = __webpack_require__(264).default; - - -/***/ }), -/* 264 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _arrayPrototype = __webpack_require__(265); - -var _arrayPrototype2 = _interopRequireDefault(_arrayPrototype); - -var _globalCache = __webpack_require__(280); - -var _globalCache2 = _interopRequireDefault(_globalCache); - -var _constants = __webpack_require__(281); - -var _getClassName = __webpack_require__(282); - -var _getClassName2 = _interopRequireDefault(_getClassName); - -var _separateStyles2 = __webpack_require__(283); - -var _separateStyles3 = _interopRequireDefault(_separateStyles2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/** - * Function required as part of the react-with-styles interface. Parses the styles provided by - * react-with-styles to produce class names based on the style name and optionally the namespace if - * available. - * - * stylesObject {Object} The styles object passed to withStyles. - * - * Return an object mapping style names to class names. - */ -function create(stylesObject) { - var stylesToClasses = {}; - var styleNames = Object.keys(stylesObject); - var sharedState = _globalCache2['default'].get(_constants.GLOBAL_CACHE_KEY) || {}; - var _sharedState$namespac = sharedState.namespace, - namespace = _sharedState$namespac === undefined ? '' : _sharedState$namespac; - - styleNames.forEach(function (styleName) { - var className = (0, _getClassName2['default'])(namespace, styleName); - stylesToClasses[styleName] = className; - }); - return stylesToClasses; -} - -/** - * Process styles to be consumed by a component. - * - * stylesArray {Array} Array of the following: values returned by create, plain JavaScript objects - * representing inline styles, or arrays thereof. - * - * Return an object with optional className and style properties to be spread on a component. - */ -function resolve(stylesArray) { - var flattenedStyles = (0, _arrayPrototype2['default'])(stylesArray, Infinity); - - var _separateStyles = (0, _separateStyles3['default'])(flattenedStyles), - classNames = _separateStyles.classNames, - hasInlineStyles = _separateStyles.hasInlineStyles, - inlineStyles = _separateStyles.inlineStyles; - - var specificClassNames = classNames.map(function (name, index) { - return String(name) + ' ' + String(name) + '_' + String(index + 1); - }); - var className = specificClassNames.join(' '); - - var result = { className: className }; - if (hasInlineStyles) result.style = inlineStyles; - return result; -} - -exports['default'] = { create: create, resolve: resolve }; - -/***/ }), -/* 265 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var define = __webpack_require__(73); -var bind = __webpack_require__(74); - -var implementation = __webpack_require__(142); -var getPolyfill = __webpack_require__(152); -var polyfill = getPolyfill(); -var shim = __webpack_require__(279); - -var boundFlat = bind.call(Function.call, polyfill); - -define(boundFlat, { - getPolyfill: getPolyfill, - implementation: implementation, - shim: shim -}); - -module.exports = boundFlat; - - -/***/ }), -/* 266 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var toStr = Object.prototype.toString; - -module.exports = function isArguments(value) { - var str = toStr.call(value); - var isArgs = str === '[object Arguments]'; - if (!isArgs) { - isArgs = str !== '[object Array]' && - value !== null && - typeof value === 'object' && - typeof value.length === 'number' && - value.length >= 0 && - toStr.call(value.callee) === '[object Function]'; - } - return isArgs; -}; - - -/***/ }), -/* 267 */ -/***/ (function(module, exports) { - - -var hasOwn = Object.prototype.hasOwnProperty; -var toString = Object.prototype.toString; - -module.exports = function forEach (obj, fn, ctx) { - if (toString.call(fn) !== '[object Function]') { - throw new TypeError('iterator must be a function'); - } - var l = obj.length; - if (l === +l) { - for (var i = 0; i < l; i++) { - fn.call(ctx, obj[i], i, obj); - } - } else { - for (var k in obj) { - if (hasOwn.call(obj, k)) { - fn.call(ctx, obj[k], k, obj); - } - } - } -}; - - - -/***/ }), -/* 268 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/* eslint no-invalid-this: 1 */ - -var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; -var slice = Array.prototype.slice; -var toStr = Object.prototype.toString; -var funcType = '[object Function]'; - -module.exports = function bind(that) { - var target = this; - if (typeof target !== 'function' || toStr.call(target) !== funcType) { - throw new TypeError(ERROR_MESSAGE + target); - } - var args = slice.call(arguments, 1); - - var bound; - var binder = function () { - if (this instanceof bound) { - var result = target.apply( - this, - args.concat(slice.call(arguments)) - ); - if (Object(result) === result) { - return result; - } - return this; - } else { - return target.apply( - that, - args.concat(slice.call(arguments)) - ); - } - }; - - var boundLength = Math.max(0, target.length - args.length); - var boundArgs = []; - for (var i = 0; i < boundLength; i++) { - boundArgs.push('$' + i); - } - - bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder); - - if (target.prototype) { - var Empty = function Empty() {}; - Empty.prototype = target.prototype; - bound.prototype = new Empty(); - Empty.prototype = null; - } - - return bound; -}; - - -/***/ }), -/* 269 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var ES2016 = __webpack_require__(143); -var assign = __webpack_require__(124); - -var ES2017 = assign(assign({}, ES2016), { - ToIndex: function ToIndex(value) { - if (typeof value === 'undefined') { - return 0; - } - var integerIndex = this.ToInteger(value); - if (integerIndex < 0) { - throw new RangeError('index must be >= 0'); - } - var index = this.ToLength(integerIndex); - if (!this.SameValueZero(integerIndex, index)) { - throw new RangeError('index must be >= 0 and < 2 ** 53 - 1'); - } - return index; - } -}); - -delete ES2017.EnumerableOwnNames; // replaced with EnumerableOwnProperties - -module.exports = ES2017; - - -/***/ }), -/* 270 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var has = __webpack_require__(91); -var toPrimitive = __webpack_require__(271); - -var GetIntrinsic = __webpack_require__(147); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $Array = GetIntrinsic('%Array%'); -var $String = GetIntrinsic('%String%'); -var $Object = GetIntrinsic('%Object%'); -var $Number = GetIntrinsic('%Number%'); -var $Symbol = GetIntrinsic('%Symbol%', true); -var $RegExp = GetIntrinsic('%RegExp%'); - -var hasSymbols = !!$Symbol; - -var $isNaN = __webpack_require__(148); -var $isFinite = __webpack_require__(149); -var MAX_SAFE_INTEGER = $Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1; - -var assign = __webpack_require__(124); -var sign = __webpack_require__(150); -var mod = __webpack_require__(151); -var isPrimitive = __webpack_require__(275); -var parseInteger = parseInt; -var bind = __webpack_require__(74); -var arraySlice = bind.call(Function.call, $Array.prototype.slice); -var strSlice = bind.call(Function.call, $String.prototype.slice); -var isBinary = bind.call(Function.call, $RegExp.prototype.test, /^0b[01]+$/i); -var isOctal = bind.call(Function.call, $RegExp.prototype.test, /^0o[0-7]+$/i); -var regexExec = bind.call(Function.call, $RegExp.prototype.exec); -var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); -var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); -var hasNonWS = bind.call(Function.call, $RegExp.prototype.test, nonWSregex); -var invalidHexLiteral = /^[-+]0x[0-9a-f]+$/i; -var isInvalidHexLiteral = bind.call(Function.call, $RegExp.prototype.test, invalidHexLiteral); -var $charCodeAt = bind.call(Function.call, $String.prototype.charCodeAt); - -var toStr = bind.call(Function.call, Object.prototype.toString); - -var $floor = Math.floor; -var $abs = Math.abs; - -var $ObjectCreate = Object.create; -var $gOPD = $Object.getOwnPropertyDescriptor; - -var $isExtensible = $Object.isExtensible; - -// whitespace from: http://es5.github.io/#x15.5.4.20 -// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 -var ws = [ - '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', - '\u2029\uFEFF' -].join(''); -var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); -var replace = bind.call(Function.call, $String.prototype.replace); -var trim = function (value) { - return replace(value, trimRegex, ''); -}; - -var ES5 = __webpack_require__(276); - -var hasRegExpMatcher = __webpack_require__(278); - -// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-abstract-operations -var ES6 = assign(assign({}, ES5), { - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args - Call: function Call(F, V) { - var args = arguments.length > 2 ? arguments[2] : []; - if (!this.IsCallable(F)) { - throw new $TypeError(F + ' is not a function'); - } - return F.apply(V, args); - }, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toprimitive - ToPrimitive: toPrimitive, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toboolean - // ToBoolean: ES5.ToBoolean, - - // https://ecma-international.org/ecma-262/6.0/#sec-tonumber - ToNumber: function ToNumber(argument) { - var value = isPrimitive(argument) ? argument : toPrimitive(argument, $Number); - if (typeof value === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a number'); - } - if (typeof value === 'string') { - if (isBinary(value)) { - return this.ToNumber(parseInteger(strSlice(value, 2), 2)); - } else if (isOctal(value)) { - return this.ToNumber(parseInteger(strSlice(value, 2), 8)); - } else if (hasNonWS(value) || isInvalidHexLiteral(value)) { - return NaN; - } else { - var trimmed = trim(value); - if (trimmed !== value) { - return this.ToNumber(trimmed); - } - } - } - return $Number(value); - }, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tointeger - // ToInteger: ES5.ToNumber, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint32 - // ToInt32: ES5.ToInt32, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint32 - // ToUint32: ES5.ToUint32, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint16 - ToInt16: function ToInt16(argument) { - var int16bit = this.ToUint16(argument); - return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit; - }, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16 - // ToUint16: ES5.ToUint16, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint8 - ToInt8: function ToInt8(argument) { - var int8bit = this.ToUint8(argument); - return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; - }, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8 - ToUint8: function ToUint8(argument) { - var number = this.ToNumber(argument); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = sign(number) * $floor($abs(number)); - return mod(posInt, 0x100); - }, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8clamp - ToUint8Clamp: function ToUint8Clamp(argument) { - var number = this.ToNumber(argument); - if ($isNaN(number) || number <= 0) { return 0; } - if (number >= 0xFF) { return 0xFF; } - var f = $floor(argument); - if (f + 0.5 < number) { return f + 1; } - if (number < f + 0.5) { return f; } - if (f % 2 !== 0) { return f + 1; } - return f; - }, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tostring - ToString: function ToString(argument) { - if (typeof argument === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a string'); - } - return $String(argument); - }, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toobject - ToObject: function ToObject(value) { - this.RequireObjectCoercible(value); - return $Object(value); - }, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey - ToPropertyKey: function ToPropertyKey(argument) { - var key = this.ToPrimitive(argument, $String); - return typeof key === 'symbol' ? key : this.ToString(key); - }, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength - ToLength: function ToLength(argument) { - var len = this.ToInteger(argument); - if (len <= 0) { return 0; } // includes converting -0 to +0 - if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } - return len; - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring - CanonicalNumericIndexString: function CanonicalNumericIndexString(argument) { - if (toStr(argument) !== '[object String]') { - throw new $TypeError('must be a string'); - } - if (argument === '-0') { return -0; } - var n = this.ToNumber(argument); - if (this.SameValue(this.ToString(n), argument)) { return n; } - return void 0; - }, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-requireobjectcoercible - RequireObjectCoercible: ES5.CheckObjectCoercible, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isarray - IsArray: $Array.isArray || function IsArray(argument) { - return toStr(argument) === '[object Array]'; - }, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-iscallable - // IsCallable: ES5.IsCallable, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isconstructor - IsConstructor: function IsConstructor(argument) { - return typeof argument === 'function' && !!argument.prototype; // unfortunately there's no way to truly check this without try/catch `new argument` - }, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isextensible-o - IsExtensible: Object.preventExtensions - ? function IsExtensible(obj) { - if (isPrimitive(obj)) { - return false; - } - return $isExtensible(obj); - } - : function isExtensible(obj) { return true; }, // eslint-disable-line no-unused-vars - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isinteger - IsInteger: function IsInteger(argument) { - if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { - return false; - } - var abs = $abs(argument); - return $floor(abs) === abs; - }, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ispropertykey - IsPropertyKey: function IsPropertyKey(argument) { - return typeof argument === 'string' || typeof argument === 'symbol'; - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-isregexp - IsRegExp: function IsRegExp(argument) { - if (!argument || typeof argument !== 'object') { - return false; - } - if (hasSymbols) { - var isRegExp = argument[$Symbol.match]; - if (typeof isRegExp !== 'undefined') { - return ES5.ToBoolean(isRegExp); - } - } - return hasRegExpMatcher(argument); - }, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevalue - // SameValue: ES5.SameValue, - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero - SameValueZero: function SameValueZero(x, y) { - return (x === y) || ($isNaN(x) && $isNaN(y)); - }, - - /** - * 7.3.2 GetV (V, P) - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let O be ToObject(V). - * 3. ReturnIfAbrupt(O). - * 4. Return O.[[Get]](P, V). - */ - GetV: function GetV(V, P) { - // 7.3.2.1 - if (!this.IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.2.2-3 - var O = this.ToObject(V); - - // 7.3.2.4 - return O[P]; - }, - - /** - * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let func be GetV(O, P). - * 3. ReturnIfAbrupt(func). - * 4. If func is either undefined or null, return undefined. - * 5. If IsCallable(func) is false, throw a TypeError exception. - * 6. Return func. - */ - GetMethod: function GetMethod(O, P) { - // 7.3.9.1 - if (!this.IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.9.2 - var func = this.GetV(O, P); - - // 7.3.9.4 - if (func == null) { - return void 0; - } - - // 7.3.9.5 - if (!this.IsCallable(func)) { - throw new $TypeError(P + 'is not a function'); - } - - // 7.3.9.6 - return func; - }, - - /** - * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p - * 1. Assert: Type(O) is Object. - * 2. Assert: IsPropertyKey(P) is true. - * 3. Return O.[[Get]](P, O). - */ - Get: function Get(O, P) { - // 7.3.1.1 - if (this.Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - // 7.3.1.2 - if (!this.IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - // 7.3.1.3 - return O[P]; - }, - - Type: function Type(x) { - if (typeof x === 'symbol') { - return 'Symbol'; - } - return ES5.Type(x); - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor - SpeciesConstructor: function SpeciesConstructor(O, defaultConstructor) { - if (this.Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var C = O.constructor; - if (typeof C === 'undefined') { - return defaultConstructor; - } - if (this.Type(C) !== 'Object') { - throw new $TypeError('O.constructor is not an Object'); - } - var S = hasSymbols && $Symbol.species ? C[$Symbol.species] : void 0; - if (S == null) { - return defaultConstructor; - } - if (this.IsConstructor(S)) { - return S; - } - throw new $TypeError('no constructor found'); - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor - CompletePropertyDescriptor: function CompletePropertyDescriptor(Desc) { - if (!this.IsPropertyDescriptor(Desc)) { - throw new $TypeError('Desc must be a Property Descriptor'); - } - - if (this.IsGenericDescriptor(Desc) || this.IsDataDescriptor(Desc)) { - if (!has(Desc, '[[Value]]')) { - Desc['[[Value]]'] = void 0; - } - if (!has(Desc, '[[Writable]]')) { - Desc['[[Writable]]'] = false; - } - } else { - if (!has(Desc, '[[Get]]')) { - Desc['[[Get]]'] = void 0; - } - if (!has(Desc, '[[Set]]')) { - Desc['[[Set]]'] = void 0; - } - } - if (!has(Desc, '[[Enumerable]]')) { - Desc['[[Enumerable]]'] = false; - } - if (!has(Desc, '[[Configurable]]')) { - Desc['[[Configurable]]'] = false; - } - return Desc; - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw - Set: function Set(O, P, V, Throw) { - if (this.Type(O) !== 'Object') { - throw new $TypeError('O must be an Object'); - } - if (!this.IsPropertyKey(P)) { - throw new $TypeError('P must be a Property Key'); - } - if (this.Type(Throw) !== 'Boolean') { - throw new $TypeError('Throw must be a Boolean'); - } - if (Throw) { - O[P] = V; - return true; - } else { - try { - O[P] = V; - } catch (e) { - return false; - } - } - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty - HasOwnProperty: function HasOwnProperty(O, P) { - if (this.Type(O) !== 'Object') { - throw new $TypeError('O must be an Object'); - } - if (!this.IsPropertyKey(P)) { - throw new $TypeError('P must be a Property Key'); - } - return has(O, P); - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-hasproperty - HasProperty: function HasProperty(O, P) { - if (this.Type(O) !== 'Object') { - throw new $TypeError('O must be an Object'); - } - if (!this.IsPropertyKey(P)) { - throw new $TypeError('P must be a Property Key'); - } - return P in O; - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable - IsConcatSpreadable: function IsConcatSpreadable(O) { - if (this.Type(O) !== 'Object') { - return false; - } - if (hasSymbols && typeof $Symbol.isConcatSpreadable === 'symbol') { - var spreadable = this.Get(O, Symbol.isConcatSpreadable); - if (typeof spreadable !== 'undefined') { - return this.ToBoolean(spreadable); - } - } - return this.IsArray(O); - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-invoke - Invoke: function Invoke(O, P) { - if (!this.IsPropertyKey(P)) { - throw new $TypeError('P must be a Property Key'); - } - var argumentsList = arraySlice(arguments, 2); - var func = this.GetV(O, P); - return this.Call(func, O, argumentsList); - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-getiterator - GetIterator: function GetIterator(obj, method) { - if (!hasSymbols) { - throw new SyntaxError('ES.GetIterator depends on native iterator support.'); - } - - var actualMethod = method; - if (arguments.length < 2) { - actualMethod = this.GetMethod(obj, $Symbol.iterator); - } - var iterator = this.Call(actualMethod, obj); - if (this.Type(iterator) !== 'Object') { - throw new $TypeError('iterator must return an object'); - } - - return iterator; - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-iteratornext - IteratorNext: function IteratorNext(iterator, value) { - var result = this.Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]); - if (this.Type(result) !== 'Object') { - throw new $TypeError('iterator next must return an object'); - } - return result; - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete - IteratorComplete: function IteratorComplete(iterResult) { - if (this.Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return this.ToBoolean(this.Get(iterResult, 'done')); - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue - IteratorValue: function IteratorValue(iterResult) { - if (this.Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return this.Get(iterResult, 'value'); - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep - IteratorStep: function IteratorStep(iterator) { - var result = this.IteratorNext(iterator); - var done = this.IteratorComplete(result); - return done === true ? false : result; - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose - IteratorClose: function IteratorClose(iterator, completion) { - if (this.Type(iterator) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterator) is not Object'); - } - if (!this.IsCallable(completion)) { - throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record'); - } - var completionThunk = completion; - - var iteratorReturn = this.GetMethod(iterator, 'return'); - - if (typeof iteratorReturn === 'undefined') { - return completionThunk(); - } - - var completionRecord; - try { - var innerResult = this.Call(iteratorReturn, iterator, []); - } catch (e) { - // if we hit here, then "e" is the innerResult completion that needs re-throwing - - // if the completion is of type "throw", this will throw. - completionRecord = completionThunk(); - completionThunk = null; // ensure it's not called twice. - - // if not, then return the innerResult completion - throw e; - } - completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does - completionThunk = null; // ensure it's not called twice. - - if (this.Type(innerResult) !== 'Object') { - throw new $TypeError('iterator .return must return an object'); - } - - return completionRecord; - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject - CreateIterResultObject: function CreateIterResultObject(value, done) { - if (this.Type(done) !== 'Boolean') { - throw new $TypeError('Assertion failed: Type(done) is not Boolean'); - } - return { - value: value, - done: done - }; - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-regexpexec - RegExpExec: function RegExpExec(R, S) { - if (this.Type(R) !== 'Object') { - throw new $TypeError('R must be an Object'); - } - if (this.Type(S) !== 'String') { - throw new $TypeError('S must be a String'); - } - var exec = this.Get(R, 'exec'); - if (this.IsCallable(exec)) { - var result = this.Call(exec, R, [S]); - if (result === null || this.Type(result) === 'Object') { - return result; - } - throw new $TypeError('"exec" method must return `null` or an Object'); - } - return regexExec(R, S); - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate - ArraySpeciesCreate: function ArraySpeciesCreate(originalArray, length) { - if (!this.IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: length must be an integer >= 0'); - } - var len = length === 0 ? 0 : length; - var C; - var isArray = this.IsArray(originalArray); - if (isArray) { - C = this.Get(originalArray, 'constructor'); - // TODO: figure out how to make a cross-realm normal Array, a same-realm Array - // if (this.IsConstructor(C)) { - // if C is another realm's Array, C = undefined - // Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ? - // } - if (this.Type(C) === 'Object' && hasSymbols && $Symbol.species) { - C = this.Get(C, $Symbol.species); - if (C === null) { - C = void 0; - } - } - } - if (typeof C === 'undefined') { - return $Array(len); - } - if (!this.IsConstructor(C)) { - throw new $TypeError('C must be a constructor'); - } - return new C(len); // this.Construct(C, len); - }, - - CreateDataProperty: function CreateDataProperty(O, P, V) { - if (this.Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!this.IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var oldDesc = $gOPD(O, P); - var extensible = oldDesc || (typeof $isExtensible !== 'function' || $isExtensible(O)); - var immutable = oldDesc && (!oldDesc.writable || !oldDesc.configurable); - if (immutable || !extensible) { - return false; - } - var newDesc = { - configurable: true, - enumerable: true, - value: V, - writable: true - }; - Object.defineProperty(O, P, newDesc); - return true; - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow - CreateDataPropertyOrThrow: function CreateDataPropertyOrThrow(O, P, V) { - if (this.Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!this.IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var success = this.CreateDataProperty(O, P, V); - if (!success) { - throw new $TypeError('unable to create data property'); - } - return success; - }, - - // https://www.ecma-international.org/ecma-262/6.0/#sec-objectcreate - ObjectCreate: function ObjectCreate(proto, internalSlotsList) { - if (proto !== null && this.Type(proto) !== 'Object') { - throw new $TypeError('Assertion failed: proto must be null or an object'); - } - var slots = arguments.length < 2 ? [] : internalSlotsList; - if (slots.length > 0) { - throw new $SyntaxError('es-abstract does not yet support internal slots'); - } - - if (proto === null && !$ObjectCreate) { - throw new $SyntaxError('native Object.create support is required to create null objects'); - } - - return $ObjectCreate(proto); - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex - AdvanceStringIndex: function AdvanceStringIndex(S, index, unicode) { - if (this.Type(S) !== 'String') { - throw new $TypeError('S must be a String'); - } - if (!this.IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) { - throw new $TypeError('Assertion failed: length must be an integer >= 0 and <= 2**53'); - } - if (this.Type(unicode) !== 'Boolean') { - throw new $TypeError('Assertion failed: unicode must be a Boolean'); - } - if (!unicode) { - return index + 1; - } - var length = S.length; - if ((index + 1) >= length) { - return index + 1; - } - - var first = $charCodeAt(S, index); - if (first < 0xD800 || first > 0xDBFF) { - return index + 1; - } - - var second = $charCodeAt(S, index + 1); - if (second < 0xDC00 || second > 0xDFFF) { - return index + 1; - } - - return index + 2; - } -}); - -delete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible - -module.exports = ES6; - - -/***/ }), -/* 271 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = __webpack_require__(272); - - -/***/ }), -/* 272 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol'; - -var isPrimitive = __webpack_require__(144); -var isCallable = __webpack_require__(123); -var isDate = __webpack_require__(273); -var isSymbol = __webpack_require__(145); - -var ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) { - if (typeof O === 'undefined' || O === null) { - throw new TypeError('Cannot call method on ' + O); - } - if (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) { - throw new TypeError('hint must be "string" or "number"'); - } - var methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString']; - var method, result, i; - for (i = 0; i < methodNames.length; ++i) { - method = O[methodNames[i]]; - if (isCallable(method)) { - result = method.call(O); - if (isPrimitive(result)) { - return result; - } - } - } - throw new TypeError('No default value'); -}; - -var GetMethod = function GetMethod(O, P) { - var func = O[P]; - if (func !== null && typeof func !== 'undefined') { - if (!isCallable(func)) { - throw new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function'); - } - return func; - } - return void 0; -}; - -// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive -module.exports = function ToPrimitive(input) { - if (isPrimitive(input)) { - return input; - } - var hint = 'default'; - if (arguments.length > 1) { - if (arguments[1] === String) { - hint = 'string'; - } else if (arguments[1] === Number) { - hint = 'number'; - } - } - - var exoticToPrim; - if (hasSymbols) { - if (Symbol.toPrimitive) { - exoticToPrim = GetMethod(input, Symbol.toPrimitive); - } else if (isSymbol(input)) { - exoticToPrim = Symbol.prototype.valueOf; - } - } - if (typeof exoticToPrim !== 'undefined') { - var result = exoticToPrim.call(input, hint); - if (isPrimitive(result)) { - return result; - } - throw new TypeError('unable to convert exotic object to primitive'); - } - if (hint === 'default' && (isDate(input) || isSymbol(input))) { - hint = 'string'; - } - return ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint); -}; - - -/***/ }), -/* 273 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var getDay = Date.prototype.getDay; -var tryDateObject = function tryDateObject(value) { - try { - getDay.call(value); - return true; - } catch (e) { - return false; - } -}; - -var toStr = Object.prototype.toString; -var dateClass = '[object Date]'; -var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; - -module.exports = function isDateObject(value) { - if (typeof value !== 'object' || value === null) { return false; } - return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass; -}; - - -/***/ }), -/* 274 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { - -var origSymbol = global.Symbol; -var hasSymbolSham = __webpack_require__(146); - -module.exports = function hasNativeSymbols() { - if (typeof origSymbol !== 'function') { return false; } - if (typeof Symbol !== 'function') { return false; } - if (typeof origSymbol('foo') !== 'symbol') { return false; } - if (typeof Symbol('bar') !== 'symbol') { return false; } - - return hasSymbolSham(); -}; - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(59))) - -/***/ }), -/* 275 */ -/***/ (function(module, exports) { - -module.exports = function isPrimitive(value) { - return value === null || (typeof value !== 'function' && typeof value !== 'object'); -}; - - -/***/ }), -/* 276 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var GetIntrinsic = __webpack_require__(147); - -var $Object = GetIntrinsic('%Object%'); -var $TypeError = GetIntrinsic('%TypeError%'); -var $String = GetIntrinsic('%String%'); - -var $isNaN = __webpack_require__(148); -var $isFinite = __webpack_require__(149); - -var sign = __webpack_require__(150); -var mod = __webpack_require__(151); - -var IsCallable = __webpack_require__(123); -var toPrimitive = __webpack_require__(277); - -var has = __webpack_require__(91); - -// https://es5.github.io/#x9 -var ES5 = { - ToPrimitive: toPrimitive, - - ToBoolean: function ToBoolean(value) { - return !!value; - }, - ToNumber: function ToNumber(value) { - return +value; // eslint-disable-line no-implicit-coercion - }, - ToInteger: function ToInteger(value) { - var number = this.ToNumber(value); - if ($isNaN(number)) { return 0; } - if (number === 0 || !$isFinite(number)) { return number; } - return sign(number) * Math.floor(Math.abs(number)); - }, - ToInt32: function ToInt32(x) { - return this.ToNumber(x) >> 0; - }, - ToUint32: function ToUint32(x) { - return this.ToNumber(x) >>> 0; - }, - ToUint16: function ToUint16(value) { - var number = this.ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = sign(number) * Math.floor(Math.abs(number)); - return mod(posInt, 0x10000); - }, - ToString: function ToString(value) { - return $String(value); - }, - ToObject: function ToObject(value) { - this.CheckObjectCoercible(value); - return $Object(value); - }, - CheckObjectCoercible: function CheckObjectCoercible(value, optMessage) { - /* jshint eqnull:true */ - if (value == null) { - throw new $TypeError(optMessage || 'Cannot call method on ' + value); - } - return value; - }, - IsCallable: IsCallable, - SameValue: function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); - }, - - // https://www.ecma-international.org/ecma-262/5.1/#sec-8 - Type: function Type(x) { - if (x === null) { - return 'Null'; - } - if (typeof x === 'undefined') { - return 'Undefined'; - } - if (typeof x === 'function' || typeof x === 'object') { - return 'Object'; - } - if (typeof x === 'number') { - return 'Number'; - } - if (typeof x === 'boolean') { - return 'Boolean'; - } - if (typeof x === 'string') { - return 'String'; - } - }, - - // https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type - IsPropertyDescriptor: function IsPropertyDescriptor(Desc) { - if (this.Type(Desc) !== 'Object') { - return false; - } - var allowed = { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Get]]': true, - '[[Set]]': true, - '[[Value]]': true, - '[[Writable]]': true - }; - // jscs:disable - for (var key in Desc) { // eslint-disable-line - if (has(Desc, key) && !allowed[key]) { - return false; - } - } - // jscs:enable - var isData = has(Desc, '[[Value]]'); - var IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]'); - if (isData && IsAccessor) { - throw new $TypeError('Property Descriptors may not be both accessor and data descriptors'); - } - return true; - }, - - // https://ecma-international.org/ecma-262/5.1/#sec-8.10.1 - IsAccessorDescriptor: function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - if (!this.IsPropertyDescriptor(Desc)) { - throw new $TypeError('Desc must be a Property Descriptor'); - } - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; - }, - - // https://ecma-international.org/ecma-262/5.1/#sec-8.10.2 - IsDataDescriptor: function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - if (!this.IsPropertyDescriptor(Desc)) { - throw new $TypeError('Desc must be a Property Descriptor'); - } - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; - }, - - // https://ecma-international.org/ecma-262/5.1/#sec-8.10.3 - IsGenericDescriptor: function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - if (!this.IsPropertyDescriptor(Desc)) { - throw new $TypeError('Desc must be a Property Descriptor'); - } - - if (!this.IsAccessorDescriptor(Desc) && !this.IsDataDescriptor(Desc)) { - return true; - } - - return false; - }, - - // https://ecma-international.org/ecma-262/5.1/#sec-8.10.4 - FromPropertyDescriptor: function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - if (!this.IsPropertyDescriptor(Desc)) { - throw new $TypeError('Desc must be a Property Descriptor'); - } - - if (this.IsDataDescriptor(Desc)) { - return { - value: Desc['[[Value]]'], - writable: !!Desc['[[Writable]]'], - enumerable: !!Desc['[[Enumerable]]'], - configurable: !!Desc['[[Configurable]]'] - }; - } else if (this.IsAccessorDescriptor(Desc)) { - return { - get: Desc['[[Get]]'], - set: Desc['[[Set]]'], - enumerable: !!Desc['[[Enumerable]]'], - configurable: !!Desc['[[Configurable]]'] - }; - } else { - throw new $TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor'); - } - }, - - // https://ecma-international.org/ecma-262/5.1/#sec-8.10.5 - ToPropertyDescriptor: function ToPropertyDescriptor(Obj) { - if (this.Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = this.ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = this.ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = this.ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !this.IsCallable(getter)) { - throw new TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !this.IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; - } -}; - -module.exports = ES5; - - -/***/ }), -/* 277 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var toStr = Object.prototype.toString; - -var isPrimitive = __webpack_require__(144); - -var isCallable = __webpack_require__(123); - -// http://ecma-international.org/ecma-262/5.1/#sec-8.12.8 -var ES5internalSlots = { - '[[DefaultValue]]': function (O) { - var actualHint; - if (arguments.length > 1) { - actualHint = arguments[1]; - } else { - actualHint = toStr.call(O) === '[object Date]' ? String : Number; - } - - if (actualHint === String || actualHint === Number) { - var methods = actualHint === String ? ['toString', 'valueOf'] : ['valueOf', 'toString']; - var value, i; - for (i = 0; i < methods.length; ++i) { - if (isCallable(O[methods[i]])) { - value = O[methods[i]](); - if (isPrimitive(value)) { - return value; - } - } - } - throw new TypeError('No default value'); - } - throw new TypeError('invalid [[DefaultValue]] hint supplied'); - } -}; - -// http://ecma-international.org/ecma-262/5.1/#sec-9.1 -module.exports = function ToPrimitive(input) { - if (isPrimitive(input)) { - return input; - } - if (arguments.length > 1) { - return ES5internalSlots['[[DefaultValue]]'](input, arguments[1]); - } - return ES5internalSlots['[[DefaultValue]]'](input); -}; - - -/***/ }), -/* 278 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var has = __webpack_require__(91); -var regexExec = RegExp.prototype.exec; -var gOPD = Object.getOwnPropertyDescriptor; - -var tryRegexExecCall = function tryRegexExec(value) { - try { - var lastIndex = value.lastIndex; - value.lastIndex = 0; - - regexExec.call(value); - return true; - } catch (e) { - return false; - } finally { - value.lastIndex = lastIndex; - } -}; -var toStr = Object.prototype.toString; -var regexClass = '[object RegExp]'; -var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; - -module.exports = function isRegex(value) { - if (!value || typeof value !== 'object') { - return false; - } - if (!hasToStringTag) { - return toStr.call(value) === regexClass; - } - - var descriptor = gOPD(value, 'lastIndex'); - var hasLastIndexDataProperty = descriptor && has(descriptor, 'value'); - if (!hasLastIndexDataProperty) { - return false; - } - - return tryRegexExecCall(value); -}; - - -/***/ }), -/* 279 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var define = __webpack_require__(73); -var getPolyfill = __webpack_require__(152); - -module.exports = function shimFlat() { - var polyfill = getPolyfill(); - define( - Array.prototype, - { flat: polyfill }, - { flat: function () { return Array.prototype.flat !== polyfill; } } - ); - return polyfill; -}; - - -/***/ }), -/* 280 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { - -var define = __webpack_require__(73); -var isSymbol = __webpack_require__(145); - -var globalKey = '__ global cache key __'; -/* istanbul ignore else */ -// eslint-disable-next-line no-restricted-properties -if (typeof Symbol === 'function' && isSymbol(Symbol('foo')) && typeof Symbol['for'] === 'function') { - // eslint-disable-next-line no-restricted-properties - globalKey = Symbol['for'](globalKey); -} - -var trueThunk = function () { - return true; -}; - -var ensureCache = function ensureCache() { - if (!global[globalKey]) { - var properties = {}; - properties[globalKey] = {}; - var predicates = {}; - predicates[globalKey] = trueThunk; - define(global, properties, predicates); - } - return global[globalKey]; -}; - -var cache = ensureCache(); - -var isPrimitive = function isPrimitive(val) { - return val === null || (typeof val !== 'object' && typeof val !== 'function'); -}; - -var getPrimitiveKey = function getPrimitiveKey(val) { - if (isSymbol(val)) { - return Symbol.prototype.valueOf.call(val); - } - return typeof val + ' | ' + String(val); -}; - -var requirePrimitiveKey = function requirePrimitiveKey(val) { - if (!isPrimitive(val)) { - throw new TypeError('key must not be an object'); - } -}; - -var globalCache = { - clear: function clear() { - delete global[globalKey]; - cache = ensureCache(); - }, - - 'delete': function deleteKey(key) { - requirePrimitiveKey(key); - delete cache[getPrimitiveKey(key)]; - return !globalCache.has(key); - }, - - get: function get(key) { - requirePrimitiveKey(key); - return cache[getPrimitiveKey(key)]; - }, - - has: function has(key) { - requirePrimitiveKey(key); - return getPrimitiveKey(key) in cache; - }, - - set: function set(key, value) { - requirePrimitiveKey(key); - var primitiveKey = getPrimitiveKey(key); - var props = {}; - props[primitiveKey] = value; - var predicates = {}; - predicates[primitiveKey] = trueThunk; - define(cache, props, predicates); - return globalCache.has(key); - }, - - setIfMissingThenGet: function setIfMissingThenGet(key, valueThunk) { - if (globalCache.has(key)) { - return globalCache.get(key); - } - var item = valueThunk(); - globalCache.set(key, item); - return item; - } -}; - -module.exports = globalCache; - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(59))) - -/***/ }), -/* 281 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var GLOBAL_CACHE_KEY = 'reactWithStylesInterfaceCSS'; -var MAX_SPECIFICITY = 20; - -exports.GLOBAL_CACHE_KEY = GLOBAL_CACHE_KEY; -exports.MAX_SPECIFICITY = MAX_SPECIFICITY; - -/***/ }), -/* 282 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = getClassName; -/** - * Construct a class name. - * - * namespace {String} Used to construct unique class names. - * styleName {String} Name identifying the specific style. - * - * Return the class name. - */ -function getClassName(namespace, styleName) { - var namespaceSegment = namespace.length > 0 ? String(namespace) + '__' : ''; - return '' + namespaceSegment + String(styleName); -} - -/***/ }), -/* 283 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -// This function takes an array of styles and separates them into styles that -// are handled by Aphrodite and inline styles. -function separateStyles(stylesArray) { - var classNames = []; - - // Since determining if an Object is empty requires collecting all of its - // keys, and we want the best performance in this code because we are in the - // render path, we are going to do a little bookkeeping ourselves. - var hasInlineStyles = false; - var inlineStyles = {}; - - // This is run on potentially every node in the tree when rendering, where - // performance is critical. Normally we would prefer using `forEach`, but - // old-fashioned for loops are faster so that's what we have chosen here. - for (var i = 0; i < stylesArray.length; i++) { - // eslint-disable-line no-plusplus - var style = stylesArray[i]; - - // If this style is falsy, we just want to disregard it. This allows for - // syntax like: - // - // css(isFoo && styles.foo) - if (style) { - if (typeof style === 'string') { - classNames.push(style); - } else { - Object.assign(inlineStyles, style); - hasInlineStyles = true; - } - } - } - - return { - classNames: classNames, - hasInlineStyles: hasInlineStyles, - inlineStyles: inlineStyles - }; -} - -exports['default'] = separateStyles; - -/***/ }), -/* 284 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = registerInterfaceWithDefaultTheme; - -var _ThemedStyleSheet = __webpack_require__(153); - -var _ThemedStyleSheet2 = _interopRequireDefault(_ThemedStyleSheet); - -var _DefaultTheme = __webpack_require__(154); - -var _DefaultTheme2 = _interopRequireDefault(_DefaultTheme); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function registerInterfaceWithDefaultTheme(reactWithStylesInterface) { - _ThemedStyleSheet2['default'].registerInterface(reactWithStylesInterface); - _ThemedStyleSheet2['default'].registerTheme(_DefaultTheme2['default']); -} - -/***/ }), -/* 285 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _CalendarDay = __webpack_require__(125); - -Object.defineProperty(exports, 'CalendarDay', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_CalendarDay)['default']; - } - - return get; - }() -}); - -var _CalendarMonth = __webpack_require__(158); - -Object.defineProperty(exports, 'CalendarMonth', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_CalendarMonth)['default']; - } - - return get; - }() -}); - -var _CalendarMonthGrid = __webpack_require__(160); - -Object.defineProperty(exports, 'CalendarMonthGrid', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_CalendarMonthGrid)['default']; - } - - return get; - }() -}); - -var _DateRangePicker = __webpack_require__(302); - -Object.defineProperty(exports, 'DateRangePicker', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_DateRangePicker)['default']; - } - - return get; - }() -}); - -var _DateRangePickerInput = __webpack_require__(180); - -Object.defineProperty(exports, 'DateRangePickerInput', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_DateRangePickerInput)['default']; - } - - return get; - }() -}); - -var _DateRangePickerInputController = __webpack_require__(179); - -Object.defineProperty(exports, 'DateRangePickerInputController', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_DateRangePickerInputController)['default']; - } - - return get; - }() -}); - -var _DateRangePickerShape = __webpack_require__(172); - -Object.defineProperty(exports, 'DateRangePickerShape', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_DateRangePickerShape)['default']; - } - - return get; - }() -}); - -var _DayPicker = __webpack_require__(131); - -Object.defineProperty(exports, 'DayPicker', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_DayPicker)['default']; - } - - return get; - }() -}); - -var _DayPickerRangeController = __webpack_require__(188); - -Object.defineProperty(exports, 'DayPickerRangeController', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_DayPickerRangeController)['default']; - } - - return get; - }() -}); - -var _DayPickerSingleDateController = __webpack_require__(194); - -Object.defineProperty(exports, 'DayPickerSingleDateController', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_DayPickerSingleDateController)['default']; - } - - return get; - }() -}); - -var _SingleDatePicker = __webpack_require__(333); - -Object.defineProperty(exports, 'SingleDatePicker', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_SingleDatePicker)['default']; - } - - return get; - }() -}); - -var _SingleDatePickerInput = __webpack_require__(196); - -Object.defineProperty(exports, 'SingleDatePickerInput', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_SingleDatePickerInput)['default']; - } - - return get; - }() -}); - -var _SingleDatePickerShape = __webpack_require__(195); - -Object.defineProperty(exports, 'SingleDatePickerShape', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_SingleDatePickerShape)['default']; - } - - return get; - }() -}); - -var _isInclusivelyAfterDay = __webpack_require__(94); - -Object.defineProperty(exports, 'isInclusivelyAfterDay', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_isInclusivelyAfterDay)['default']; - } - - return get; - }() -}); - -var _isInclusivelyBeforeDay = __webpack_require__(334); - -Object.defineProperty(exports, 'isInclusivelyBeforeDay', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_isInclusivelyBeforeDay)['default']; - } - - return get; - }() -}); - -var _isNextDay = __webpack_require__(192); - -Object.defineProperty(exports, 'isNextDay', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_isNextDay)['default']; - } - - return get; - }() -}); - -var _isSameDay = __webpack_require__(79); - -Object.defineProperty(exports, 'isSameDay', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_isSameDay)['default']; - } - - return get; - }() -}); - -var _toISODateString = __webpack_require__(102); - -Object.defineProperty(exports, 'toISODateString', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_toISODateString)['default']; - } - - return get; - }() -}); - -var _toLocalizedDateString = __webpack_require__(129); - -Object.defineProperty(exports, 'toLocalizedDateString', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_toLocalizedDateString)['default']; - } - - return get; - }() -}); - -var _toMomentObject = __webpack_require__(80); - -Object.defineProperty(exports, 'toMomentObject', { - enumerable: true, - get: function () { - function get() { - return _interopRequireDefault(_toMomentObject)['default']; - } - - return get; - }() -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/***/ }), -/* 286 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var define = __webpack_require__(73); -var getPolyfill = __webpack_require__(156); - -module.exports = function shimAssign() { - var polyfill = getPolyfill(); - define( - Object, - { assign: polyfill }, - { assign: function () { return Object.assign !== polyfill; } } - ); - return polyfill; -}; - - -/***/ }), -/* 287 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @typechecks - * - */ - -/*eslint-disable no-self-compare */ - - - -var hasOwnProperty = Object.prototype.hasOwnProperty; - -/** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ -function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - // Added the nonzero y check to make Flow happy, but it is redundant - return x !== 0 || y !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } -} - -/** - * Performs equality by iterating through keys on an object and returning false - * when any key has values which are not strictly equal between the arguments. - * Returns true when the values of all keys are strictly equal. - */ -function shallowEqual(objA, objB) { - if (is(objA, objB)) { - return true; - } - - if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { - return false; - } - - var keysA = Object.keys(objA); - var keysB = Object.keys(objB); - - if (keysA.length !== keysB.length) { - return false; - } - - // Test for A's keys different from B. - for (var i = 0; i < keysA.length; i++) { - if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { - return false; - } - } - - return true; -} - -module.exports = shallowEqual; - -/***/ }), -/* 288 */ -/***/ (function(module, exports, __webpack_require__) { - -var moment = __webpack_require__(29); - -function isValidMoment(testMoment) { - if (typeof moment.isMoment === 'function' && !moment.isMoment(testMoment)) { - return false; - } - - /* istanbul ignore else */ - if (typeof testMoment.isValid === 'function') { - // moment 1.7.0+ - return testMoment.isValid(); - } - - /* istanbul ignore next */ - return !isNaN(testMoment); -} - -module.exports = { - isValidMoment : isValidMoment, -}; - - -/***/ }), -/* 289 */ -/***/ (function(module, exports) { - -var messages = { - invalidPredicate: '`predicate` must be a function', - invalidPropValidator: '`propValidator` must be a function', - requiredCore: 'is marked as required', - invalidTypeCore: 'Invalid input type', - predicateFailureCore: 'Failed to succeed with predicate', - anonymousMessage: '<>', - baseInvalidMessage: 'Invalid ', -}; - -function constructPropValidatorVariations(propValidator) { - if (typeof propValidator !== 'function') { - throw new Error(messages.invalidPropValidator); - } - - var requiredPropValidator = propValidator.bind(null, false, null); - requiredPropValidator.isRequired = propValidator.bind(null, true, null); - - requiredPropValidator.withPredicate = function predicateApplication(predicate) { - if (typeof predicate !== 'function') { - throw new Error(messages.invalidPredicate); - } - var basePropValidator = propValidator.bind(null, false, predicate); - basePropValidator.isRequired = propValidator.bind(null, true, predicate); - return basePropValidator; - }; - - return requiredPropValidator; -} - -function createInvalidRequiredErrorMessage(propName, componentName, value) { - return new Error( - 'The prop `' + propName + '` ' + messages.requiredCore + - ' in `' + componentName + '`, but its value is `' + value + '`.' - ); -} - -var independentGuardianValue = -1; - -function preValidationRequireCheck(isRequired, componentName, propFullName, propValue) { - var isPropValueUndefined = typeof propValue === 'undefined'; - var isPropValueNull = propValue === null; - - if (isRequired) { - if (isPropValueUndefined) { - return createInvalidRequiredErrorMessage(propFullName, componentName, 'undefined'); - } else if (isPropValueNull) { - return createInvalidRequiredErrorMessage(propFullName, componentName, 'null'); - } - } - - if (isPropValueUndefined || isPropValueNull) { - return null; - } - - return independentGuardianValue; -} - -function createMomentChecker(type, typeValidator, validator, momentType) { - - function propValidator( - isRequired, // Bound parameter to indicate with the propType is required - predicate, // Bound parameter to allow user to add dynamic validation - props, - propName, - componentName, - location, - propFullName - ) { - var propValue = props[ propName ]; - var propType = typeof propValue; - - componentName = componentName || messages.anonymousMessage; - propFullName = propFullName || propName; - - var preValidationRequireCheckValue = preValidationRequireCheck( - isRequired, componentName, propFullName, propValue - ); - - if (preValidationRequireCheckValue !== independentGuardianValue) { - return preValidationRequireCheckValue; - } - - if (typeValidator && !typeValidator(propValue)) { - return new Error( - messages.invalidTypeCore + ': `' + propName + '` of type `' + propType + '` ' + - 'supplied to `' + componentName + '`, expected `' + type + '`.' - ); - } - - if (!validator(propValue)) { - return new Error( - messages.baseInvalidMessage + location + ' `' + propName + '` of type `' + propType + '` ' + - 'supplied to `' + componentName + '`, expected `' + momentType + '`.' - ); - } - - if (predicate && !predicate(propValue)) { - var predicateName = predicate.name || messages.anonymousMessage; - return new Error( - messages.baseInvalidMessage + location + ' `' + propName + '` of type `' + propType + '` ' + - 'supplied to `' + componentName + '`. ' + messages.predicateFailureCore + ' `' + - predicateName + '`.' - ); - } - - return null; - - } - - return constructPropValidatorVariations(propValidator); - -} - -module.exports = { - constructPropValidatorVariations: constructPropValidatorVariations, - createMomentChecker: createMomentChecker, - messages: messages, -}; - - -/***/ }), -/* 290 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -function noop() { - return null; -} - -noop.isRequired = noop; - -function noopThunk() { - return noop; -} - -module.exports = { - and: noopThunk, - between: noopThunk, - booleanSome: noopThunk, - childrenHavePropXorChildren: noopThunk, - childrenOf: noopThunk, - childrenOfType: noopThunk, - childrenSequenceOf: noopThunk, - componentWithName: noopThunk, - disallowedIf: noopThunk, - elementType: noopThunk, - empty: noopThunk, - explicitNull: noopThunk, - forbidExtraProps: Object, - integer: noopThunk, - keysOf: noopThunk, - mutuallyExclusiveProps: noopThunk, - mutuallyExclusiveTrueProps: noopThunk, - nChildren: noopThunk, - nonNegativeInteger: noop, - nonNegativeNumber: noopThunk, - numericString: noopThunk, - object: noopThunk, - or: noopThunk, - range: noopThunk, - ref: noopThunk, - requiredBy: noopThunk, - restrictedProp: noopThunk, - sequenceOf: noopThunk, - shape: noopThunk, - stringStartsWith: noopThunk, - uniqueArray: noopThunk, - uniqueArrayOf: noopThunk, - valuesOf: noopThunk, - withShape: noopThunk -}; - - -/***/ }), -/* 291 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var isMergeableObject = function isMergeableObject(value) { - return isNonNullObject(value) - && !isSpecial(value) -}; - -function isNonNullObject(value) { - return !!value && typeof value === 'object' -} - -function isSpecial(value) { - var stringValue = Object.prototype.toString.call(value); - - return stringValue === '[object RegExp]' - || stringValue === '[object Date]' - || isReactElement(value) -} - -// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25 -var canUseSymbol = typeof Symbol === 'function' && Symbol.for; -var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7; - -function isReactElement(value) { - return value.$$typeof === REACT_ELEMENT_TYPE -} - -function emptyTarget(val) { - return Array.isArray(val) ? [] : {} -} - -function cloneIfNecessary(value, optionsArgument) { - var clone = optionsArgument && optionsArgument.clone === true; - return (clone && isMergeableObject(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value -} - -function defaultArrayMerge(target, source, optionsArgument) { - var destination = target.slice(); - source.forEach(function(e, i) { - if (typeof destination[i] === 'undefined') { - destination[i] = cloneIfNecessary(e, optionsArgument); - } else if (isMergeableObject(e)) { - destination[i] = deepmerge(target[i], e, optionsArgument); - } else if (target.indexOf(e) === -1) { - destination.push(cloneIfNecessary(e, optionsArgument)); - } - }); - return destination -} - -function mergeObject(target, source, optionsArgument) { - var destination = {}; - if (isMergeableObject(target)) { - Object.keys(target).forEach(function(key) { - destination[key] = cloneIfNecessary(target[key], optionsArgument); - }); - } - Object.keys(source).forEach(function(key) { - if (!isMergeableObject(source[key]) || !target[key]) { - destination[key] = cloneIfNecessary(source[key], optionsArgument); - } else { - destination[key] = deepmerge(target[key], source[key], optionsArgument); - } - }); - return destination -} - -function deepmerge(target, source, optionsArgument) { - var sourceIsArray = Array.isArray(source); - var targetIsArray = Array.isArray(target); - var options = optionsArgument || { arrayMerge: defaultArrayMerge }; - var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; - - if (!sourceAndTargetTypesMatch) { - return cloneIfNecessary(source, optionsArgument) - } else if (sourceIsArray) { - var arrayMerge = options.arrayMerge || defaultArrayMerge; - return arrayMerge(target, source, optionsArgument) - } else { - return mergeObject(target, source, optionsArgument) - } -} - -deepmerge.all = function deepmergeAll(array, optionsArgument) { - if (!Array.isArray(array) || array.length < 2) { - throw new Error('first argument should be an array with at least two elements') - } - - // we are sure there are at least 2 values, so it is safe to have no initial value - return array.reduce(function(prev, next) { - return deepmerge(prev, next, optionsArgument) - }) -}; - -var deepmerge_1 = deepmerge; - -module.exports = deepmerge_1; - - -/***/ }), -/* 292 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var CHANNEL = exports.CHANNEL = '__direction__'; - -var DIRECTIONS = exports.DIRECTIONS = { - LTR: 'ltr', - RTL: 'rtl' -}; - -/***/ }), -/* 293 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = _propTypes2['default'].shape({ - getState: _propTypes2['default'].func, - setState: _propTypes2['default'].func, - subscribe: _propTypes2['default'].func -}); - -/***/ }), -/* 294 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = getPhrase; -function getPhrase(phrase, args) { - if (typeof phrase === 'string') return phrase; - - if (typeof phrase === 'function') { - return phrase(args); - } - - return ''; -} - -/***/ }), -/* 295 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = CalendarWeek; - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _airbnbPropTypes = __webpack_require__(43); - -var _CalendarDay = __webpack_require__(125); - -var _CalendarDay2 = _interopRequireDefault(_CalendarDay); - -var _CustomizableCalendarDay = __webpack_require__(296); - -var _CustomizableCalendarDay2 = _interopRequireDefault(_CustomizableCalendarDay); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)({ - children: (0, _airbnbPropTypes.or)([(0, _airbnbPropTypes.childrenOfType)(_CalendarDay2['default']), (0, _airbnbPropTypes.childrenOfType)(_CustomizableCalendarDay2['default'])]).isRequired -}); - -function CalendarWeek(_ref) { - var children = _ref.children; - - return _react2['default'].createElement( - 'tr', - null, - children - ); -} - -CalendarWeek.propTypes = propTypes; - -/***/ }), -/* 296 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.PureCustomizableCalendarDay = exports.selectedStyles = exports.lastInRangeStyles = exports.selectedSpanStyles = exports.hoveredSpanStyles = exports.blockedOutOfRangeStyles = exports.blockedCalendarStyles = exports.blockedMinNightsStyles = exports.highlightedCalendarStyles = exports.outsideStyles = exports.defaultStyles = undefined; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactAddonsShallowCompare = __webpack_require__(78); - -var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare); - -var _reactMomentProptypes = __webpack_require__(64); - -var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _reactWithStyles = __webpack_require__(56); - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _defaultPhrases = __webpack_require__(47); - -var _getPhrasePropTypes = __webpack_require__(51); - -var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); - -var _getCalendarDaySettings = __webpack_require__(157); - -var _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings); - -var _constants = __webpack_require__(39); - -var _DefaultTheme = __webpack_require__(154); - -var _DefaultTheme2 = _interopRequireDefault(_DefaultTheme); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var color = _DefaultTheme2['default'].reactDates.color; - - -function getStyles(stylesObj, isHovered) { - if (!stylesObj) return null; - - var hover = stylesObj.hover; - - if (isHovered && hover) { - return hover; - } - - return stylesObj; -} - -var DayStyleShape = _propTypes2['default'].shape({ - background: _propTypes2['default'].string, - border: (0, _airbnbPropTypes.or)([_propTypes2['default'].string, _propTypes2['default'].number]), - color: _propTypes2['default'].string, - - hover: _propTypes2['default'].shape({ - background: _propTypes2['default'].string, - border: (0, _airbnbPropTypes.or)([_propTypes2['default'].string, _propTypes2['default'].number]), - color: _propTypes2['default'].string - }) -}); - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, { - day: _reactMomentProptypes2['default'].momentObj, - daySize: _airbnbPropTypes.nonNegativeInteger, - isOutsideDay: _propTypes2['default'].bool, - modifiers: _propTypes2['default'].instanceOf(Set), - isFocused: _propTypes2['default'].bool, - tabIndex: _propTypes2['default'].oneOf([0, -1]), - onDayClick: _propTypes2['default'].func, - onDayMouseEnter: _propTypes2['default'].func, - onDayMouseLeave: _propTypes2['default'].func, - renderDayContents: _propTypes2['default'].func, - ariaLabelFormat: _propTypes2['default'].string, - - // style overrides - defaultStyles: DayStyleShape, - outsideStyles: DayStyleShape, - todayStyles: DayStyleShape, - firstDayOfWeekStyles: DayStyleShape, - lastDayOfWeekStyles: DayStyleShape, - highlightedCalendarStyles: DayStyleShape, - blockedMinNightsStyles: DayStyleShape, - blockedCalendarStyles: DayStyleShape, - blockedOutOfRangeStyles: DayStyleShape, - hoveredSpanStyles: DayStyleShape, - selectedSpanStyles: DayStyleShape, - lastInRangeStyles: DayStyleShape, - selectedStyles: DayStyleShape, - selectedStartStyles: DayStyleShape, - selectedEndStyles: DayStyleShape, - afterHoveredStartStyles: DayStyleShape, - - // internationalization - phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)) -})); - -var defaultStyles = exports.defaultStyles = { - border: '1px solid ' + String(color.core.borderLight), - color: color.text, - background: color.background, - - hover: { - background: color.core.borderLight, - border: '1px double ' + String(color.core.borderLight), - color: 'inherit' - } -}; - -var outsideStyles = exports.outsideStyles = { - background: color.outside.backgroundColor, - border: 0, - color: color.outside.color -}; - -var highlightedCalendarStyles = exports.highlightedCalendarStyles = { - background: color.highlighted.backgroundColor, - color: color.highlighted.color, - - hover: { - background: color.highlighted.backgroundColor_hover, - color: color.highlighted.color_active - } -}; - -var blockedMinNightsStyles = exports.blockedMinNightsStyles = { - background: color.minimumNights.backgroundColor, - border: '1px solid ' + String(color.minimumNights.borderColor), - color: color.minimumNights.color, - - hover: { - background: color.minimumNights.backgroundColor_hover, - color: color.minimumNights.color_active - } -}; - -var blockedCalendarStyles = exports.blockedCalendarStyles = { - background: color.blocked_calendar.backgroundColor, - border: '1px solid ' + String(color.blocked_calendar.borderColor), - color: color.blocked_calendar.color, - - hover: { - background: color.blocked_calendar.backgroundColor_hover, - border: '1px solid ' + String(color.blocked_calendar.borderColor), - color: color.blocked_calendar.color_active - } -}; - -var blockedOutOfRangeStyles = exports.blockedOutOfRangeStyles = { - background: color.blocked_out_of_range.backgroundColor, - border: '1px solid ' + String(color.blocked_out_of_range.borderColor), - color: color.blocked_out_of_range.color, - - hover: { - background: color.blocked_out_of_range.backgroundColor_hover, - border: '1px solid ' + String(color.blocked_out_of_range.borderColor), - color: color.blocked_out_of_range.color_active - } -}; - -var hoveredSpanStyles = exports.hoveredSpanStyles = { - background: color.hoveredSpan.backgroundColor, - border: '1px solid ' + String(color.hoveredSpan.borderColor), - color: color.hoveredSpan.color, - - hover: { - background: color.hoveredSpan.backgroundColor_hover, - border: '1px solid ' + String(color.hoveredSpan.borderColor), - color: color.hoveredSpan.color_active - } -}; - -var selectedSpanStyles = exports.selectedSpanStyles = { - background: color.selectedSpan.backgroundColor, - border: '1px solid ' + String(color.selectedSpan.borderColor), - color: color.selectedSpan.color, - - hover: { - background: color.selectedSpan.backgroundColor_hover, - border: '1px solid ' + String(color.selectedSpan.borderColor), - color: color.selectedSpan.color_active - } -}; - -var lastInRangeStyles = exports.lastInRangeStyles = { - borderRight: color.core.primary -}; - -var selectedStyles = exports.selectedStyles = { - background: color.selected.backgroundColor, - border: '1px solid ' + String(color.selected.borderColor), - color: color.selected.color, - - hover: { - background: color.selected.backgroundColor_hover, - border: '1px solid ' + String(color.selected.borderColor), - color: color.selected.color_active - } -}; - -var defaultProps = { - day: (0, _moment2['default'])(), - daySize: _constants.DAY_SIZE, - isOutsideDay: false, - modifiers: new Set(), - isFocused: false, - tabIndex: -1, - onDayClick: function () { - function onDayClick() {} - - return onDayClick; - }(), - onDayMouseEnter: function () { - function onDayMouseEnter() {} - - return onDayMouseEnter; - }(), - onDayMouseLeave: function () { - function onDayMouseLeave() {} - - return onDayMouseLeave; - }(), - - renderDayContents: null, - ariaLabelFormat: 'dddd, LL', - - // style defaults - defaultStyles: defaultStyles, - outsideStyles: outsideStyles, - todayStyles: {}, - highlightedCalendarStyles: highlightedCalendarStyles, - blockedMinNightsStyles: blockedMinNightsStyles, - blockedCalendarStyles: blockedCalendarStyles, - blockedOutOfRangeStyles: blockedOutOfRangeStyles, - hoveredSpanStyles: hoveredSpanStyles, - selectedSpanStyles: selectedSpanStyles, - lastInRangeStyles: lastInRangeStyles, - selectedStyles: selectedStyles, - selectedStartStyles: {}, - selectedEndStyles: {}, - afterHoveredStartStyles: {}, - firstDayOfWeekStyles: {}, - lastDayOfWeekStyles: {}, - - // internationalization - phrases: _defaultPhrases.CalendarDayPhrases -}; - -var CustomizableCalendarDay = function (_React$Component) { - _inherits(CustomizableCalendarDay, _React$Component); - - function CustomizableCalendarDay() { - var _ref; - - _classCallCheck(this, CustomizableCalendarDay); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - var _this = _possibleConstructorReturn(this, (_ref = CustomizableCalendarDay.__proto__ || Object.getPrototypeOf(CustomizableCalendarDay)).call.apply(_ref, [this].concat(args))); - - _this.state = { - isHovered: false - }; - - _this.setButtonRef = _this.setButtonRef.bind(_this); - return _this; - } - - _createClass(CustomizableCalendarDay, [{ - key: 'shouldComponentUpdate', - value: function () { - function shouldComponentUpdate(nextProps, nextState) { - return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState); - } - - return shouldComponentUpdate; - }() - }, { - key: 'componentDidUpdate', - value: function () { - function componentDidUpdate(prevProps) { - var _props = this.props, - isFocused = _props.isFocused, - tabIndex = _props.tabIndex; - - if (tabIndex === 0) { - if (isFocused || tabIndex !== prevProps.tabIndex) { - this.buttonRef.focus(); - } - } - } - - return componentDidUpdate; - }() - }, { - key: 'onDayClick', - value: function () { - function onDayClick(day, e) { - var onDayClick = this.props.onDayClick; - - onDayClick(day, e); - } - - return onDayClick; - }() - }, { - key: 'onDayMouseEnter', - value: function () { - function onDayMouseEnter(day, e) { - var onDayMouseEnter = this.props.onDayMouseEnter; - - this.setState({ isHovered: true }); - onDayMouseEnter(day, e); - } - - return onDayMouseEnter; - }() - }, { - key: 'onDayMouseLeave', - value: function () { - function onDayMouseLeave(day, e) { - var onDayMouseLeave = this.props.onDayMouseLeave; - - this.setState({ isHovered: false }); - onDayMouseLeave(day, e); - } - - return onDayMouseLeave; - }() - }, { - key: 'onKeyDown', - value: function () { - function onKeyDown(day, e) { - var onDayClick = this.props.onDayClick; - var key = e.key; - - if (key === 'Enter' || key === ' ') { - onDayClick(day, e); - } - } - - return onKeyDown; - }() - }, { - key: 'setButtonRef', - value: function () { - function setButtonRef(ref) { - this.buttonRef = ref; - } - - return setButtonRef; - }() - }, { - key: 'render', - value: function () { - function render() { - var _this2 = this; - - var _props2 = this.props, - day = _props2.day, - ariaLabelFormat = _props2.ariaLabelFormat, - daySize = _props2.daySize, - isOutsideDay = _props2.isOutsideDay, - modifiers = _props2.modifiers, - tabIndex = _props2.tabIndex, - renderDayContents = _props2.renderDayContents, - styles = _props2.styles, - phrases = _props2.phrases, - defaultStylesWithHover = _props2.defaultStyles, - outsideStylesWithHover = _props2.outsideStyles, - todayStylesWithHover = _props2.todayStyles, - firstDayOfWeekStylesWithHover = _props2.firstDayOfWeekStyles, - lastDayOfWeekStylesWithHover = _props2.lastDayOfWeekStyles, - highlightedCalendarStylesWithHover = _props2.highlightedCalendarStyles, - blockedMinNightsStylesWithHover = _props2.blockedMinNightsStyles, - blockedCalendarStylesWithHover = _props2.blockedCalendarStyles, - blockedOutOfRangeStylesWithHover = _props2.blockedOutOfRangeStyles, - hoveredSpanStylesWithHover = _props2.hoveredSpanStyles, - selectedSpanStylesWithHover = _props2.selectedSpanStyles, - lastInRangeStylesWithHover = _props2.lastInRangeStyles, - selectedStylesWithHover = _props2.selectedStyles, - selectedStartStylesWithHover = _props2.selectedStartStyles, - selectedEndStylesWithHover = _props2.selectedEndStyles, - afterHoveredStartStylesWithHover = _props2.afterHoveredStartStyles; - var isHovered = this.state.isHovered; - - - if (!day) return _react2['default'].createElement('td', null); - - var _getCalendarDaySettin = (0, _getCalendarDaySettings2['default'])(day, ariaLabelFormat, daySize, modifiers, phrases), - daySizeStyles = _getCalendarDaySettin.daySizeStyles, - useDefaultCursor = _getCalendarDaySettin.useDefaultCursor, - selected = _getCalendarDaySettin.selected, - hoveredSpan = _getCalendarDaySettin.hoveredSpan, - isOutsideRange = _getCalendarDaySettin.isOutsideRange, - ariaLabel = _getCalendarDaySettin.ariaLabel; - - return _react2['default'].createElement( - 'td', - _extends({}, (0, _reactWithStyles.css)(styles.CalendarDay, useDefaultCursor && styles.CalendarDay__defaultCursor, daySizeStyles, getStyles(defaultStylesWithHover, isHovered), isOutsideDay && getStyles(outsideStylesWithHover, isHovered), modifiers.has('today') && getStyles(todayStylesWithHover, isHovered), modifiers.has('first-day-of-week') && getStyles(firstDayOfWeekStylesWithHover, isHovered), modifiers.has('last-day-of-week') && getStyles(lastDayOfWeekStylesWithHover, isHovered), modifiers.has('highlighted-calendar') && getStyles(highlightedCalendarStylesWithHover, isHovered), modifiers.has('blocked-minimum-nights') && getStyles(blockedMinNightsStylesWithHover, isHovered), modifiers.has('blocked-calendar') && getStyles(blockedCalendarStylesWithHover, isHovered), hoveredSpan && getStyles(hoveredSpanStylesWithHover, isHovered), modifiers.has('after-hovered-start') && getStyles(afterHoveredStartStylesWithHover, isHovered), modifiers.has('selected-span') && getStyles(selectedSpanStylesWithHover, isHovered), modifiers.has('last-in-range') && getStyles(lastInRangeStylesWithHover, isHovered), selected && getStyles(selectedStylesWithHover, isHovered), modifiers.has('selected-start') && getStyles(selectedStartStylesWithHover, isHovered), modifiers.has('selected-end') && getStyles(selectedEndStylesWithHover, isHovered), isOutsideRange && getStyles(blockedOutOfRangeStylesWithHover, isHovered)), { - role: 'button' // eslint-disable-line jsx-a11y/no-noninteractive-element-to-interactive-role - , ref: this.setButtonRef, - 'aria-label': ariaLabel, - onMouseEnter: function () { - function onMouseEnter(e) { - _this2.onDayMouseEnter(day, e); - } - - return onMouseEnter; - }(), - onMouseLeave: function () { - function onMouseLeave(e) { - _this2.onDayMouseLeave(day, e); - } - - return onMouseLeave; - }(), - onMouseUp: function () { - function onMouseUp(e) { - e.currentTarget.blur(); - } - - return onMouseUp; - }(), - onClick: function () { - function onClick(e) { - _this2.onDayClick(day, e); - } - - return onClick; - }(), - onKeyDown: function () { - function onKeyDown(e) { - _this2.onKeyDown(day, e); - } - - return onKeyDown; - }(), - tabIndex: tabIndex - }), - renderDayContents ? renderDayContents(day, modifiers) : day.format('D') - ); - } - - return render; - }() - }]); - - return CustomizableCalendarDay; -}(_react2['default'].Component); - -CustomizableCalendarDay.propTypes = propTypes; -CustomizableCalendarDay.defaultProps = defaultProps; - -exports.PureCustomizableCalendarDay = CustomizableCalendarDay; -exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) { - var font = _ref2.reactDates.font; - return { - CalendarDay: { - boxSizing: 'border-box', - cursor: 'pointer', - fontSize: font.size, - textAlign: 'center', - - ':active': { - outline: 0 - } - }, - - CalendarDay__defaultCursor: { - cursor: 'default' - } - }; -})(CustomizableCalendarDay); - -/***/ }), -/* 297 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = getCalendarMonthWeeks; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function getCalendarMonthWeeks(month, enableOutsideDays) { - var firstDayOfWeek = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _moment2['default'].localeData().firstDayOfWeek(); - - if (!_moment2['default'].isMoment(month) || !month.isValid()) { - throw new TypeError('`month` must be a valid moment object'); - } - if (_constants.WEEKDAYS.indexOf(firstDayOfWeek) === -1) { - throw new TypeError('`firstDayOfWeek` must be an integer between 0 and 6'); - } - - // set utc offset to get correct dates in future (when timezone changes) - var firstOfMonth = month.clone().startOf('month').hour(12); - var lastOfMonth = month.clone().endOf('month').hour(12); - - // calculate the exact first and last days to fill the entire matrix - // (considering days outside month) - var prevDays = (firstOfMonth.day() + 7 - firstDayOfWeek) % 7; - var nextDays = (firstDayOfWeek + 6 - lastOfMonth.day()) % 7; - var firstDay = firstOfMonth.clone().subtract(prevDays, 'day'); - var lastDay = lastOfMonth.clone().add(nextDays, 'day'); - - var totalDays = lastDay.diff(firstDay, 'days') + 1; - - var currentDay = firstDay.clone(); - var weeksInMonth = []; - - for (var i = 0; i < totalDays; i += 1) { - if (i % 7 === 0) { - weeksInMonth.push([]); - } - - var day = null; - if (i >= prevDays && i < totalDays - nextDays || enableOutsideDays) { - day = currentDay.clone(); - } - - weeksInMonth[weeksInMonth.length - 1].push(day); - - currentDay.add(1, 'day'); - } - - return weeksInMonth; -} - -/***/ }), -/* 298 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = isTransitionEndSupported; -function isTransitionEndSupported() { - return !!(typeof window !== 'undefined' && 'TransitionEvent' in window); -} - -/***/ }), -/* 299 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = getTransformStyles; -function getTransformStyles(transformValue) { - return { - transform: transformValue, - msTransform: transformValue, - MozTransform: transformValue, - WebkitTransform: transformValue - }; -} - -/***/ }), -/* 300 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = isPrevMonth; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _isSameMonth = __webpack_require__(162); - -var _isSameMonth2 = _interopRequireDefault(_isSameMonth); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function isPrevMonth(a, b) { - if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false; - return (0, _isSameMonth2['default'])(a.clone().subtract(1, 'month'), b); -} - -/***/ }), -/* 301 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = isNextMonth; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _isSameMonth = __webpack_require__(162); - -var _isSameMonth2 = _interopRequireDefault(_isSameMonth); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function isNextMonth(a, b) { - if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false; - return (0, _isSameMonth2['default'])(a.clone().add(1, 'month'), b); -} - -/***/ }), -/* 302 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.PureDateRangePicker = undefined; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _reactAddonsShallowCompare = __webpack_require__(78); - -var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare); - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _reactWithStyles = __webpack_require__(56); - -var _reactPortal = __webpack_require__(203); - -var _airbnbPropTypes = __webpack_require__(43); - -var _consolidatedEvents = __webpack_require__(103); - -var _isTouchDevice = __webpack_require__(82); - -var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice); - -var _reactOutsideClickHandler = __webpack_require__(126); - -var _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler); - -var _DateRangePickerShape = __webpack_require__(172); - -var _DateRangePickerShape2 = _interopRequireDefault(_DateRangePickerShape); - -var _defaultPhrases = __webpack_require__(47); - -var _getResponsiveContainerStyles = __webpack_require__(176); - -var _getResponsiveContainerStyles2 = _interopRequireDefault(_getResponsiveContainerStyles); - -var _getDetachedContainerStyles = __webpack_require__(177); - -var _getDetachedContainerStyles2 = _interopRequireDefault(_getDetachedContainerStyles); - -var _getInputHeight = __webpack_require__(127); - -var _getInputHeight2 = _interopRequireDefault(_getInputHeight); - -var _isInclusivelyAfterDay = __webpack_require__(94); - -var _isInclusivelyAfterDay2 = _interopRequireDefault(_isInclusivelyAfterDay); - -var _disableScroll2 = __webpack_require__(178); - -var _disableScroll3 = _interopRequireDefault(_disableScroll2); - -var _DateRangePickerInputController = __webpack_require__(179); - -var _DateRangePickerInputController2 = _interopRequireDefault(_DateRangePickerInputController); - -var _DayPickerRangeController = __webpack_require__(188); - -var _DayPickerRangeController2 = _interopRequireDefault(_DayPickerRangeController); - -var _CloseButton = __webpack_require__(96); - -var _CloseButton2 = _interopRequireDefault(_CloseButton); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, _DateRangePickerShape2['default'])); - -var defaultProps = { - // required props for a functional interactive DateRangePicker - startDate: null, - endDate: null, - focusedInput: null, - - // input related props - startDatePlaceholderText: 'Start Date', - endDatePlaceholderText: 'End Date', - disabled: false, - required: false, - readOnly: false, - screenReaderInputMessage: '', - showClearDates: false, - showDefaultInputIcon: false, - inputIconPosition: _constants.ICON_BEFORE_POSITION, - customInputIcon: null, - customArrowIcon: null, - customCloseIcon: null, - noBorder: false, - block: false, - small: false, - regular: false, - keepFocusOnInput: false, - - // calendar presentation and interaction related props - renderMonthText: null, - orientation: _constants.HORIZONTAL_ORIENTATION, - anchorDirection: _constants.ANCHOR_LEFT, - openDirection: _constants.OPEN_DOWN, - horizontalMargin: 0, - withPortal: false, - withFullScreenPortal: false, - appendToBody: false, - disableScroll: false, - initialVisibleMonth: null, - numberOfMonths: 2, - keepOpenOnDateSelect: false, - reopenPickerOnClearDates: false, - renderCalendarInfo: null, - calendarInfoPosition: _constants.INFO_POSITION_BOTTOM, - hideKeyboardShortcutsPanel: false, - daySize: _constants.DAY_SIZE, - isRTL: false, - firstDayOfWeek: null, - verticalHeight: null, - transitionDuration: undefined, - verticalSpacing: _constants.DEFAULT_VERTICAL_SPACING, - - // navigation related props - navPrev: null, - navNext: null, - - onPrevMonthClick: function () { - function onPrevMonthClick() {} - - return onPrevMonthClick; - }(), - onNextMonthClick: function () { - function onNextMonthClick() {} - - return onNextMonthClick; - }(), - onClose: function () { - function onClose() {} - - return onClose; - }(), - - - // day presentation and interaction related props - renderCalendarDay: undefined, - renderDayContents: null, - renderMonthElement: null, - minimumNights: 1, - enableOutsideDays: false, - isDayBlocked: function () { - function isDayBlocked() { - return false; - } - - return isDayBlocked; - }(), - isOutsideRange: function () { - function isOutsideRange(day) { - return !(0, _isInclusivelyAfterDay2['default'])(day, (0, _moment2['default'])()); - } - - return isOutsideRange; - }(), - isDayHighlighted: function () { - function isDayHighlighted() { - return false; - } - - return isDayHighlighted; - }(), - - // internationalization - displayFormat: function () { - function displayFormat() { - return _moment2['default'].localeData().longDateFormat('L'); - } - - return displayFormat; - }(), - monthFormat: 'MMMM YYYY', - weekDayFormat: 'dd', - phrases: _defaultPhrases.DateRangePickerPhrases, - dayAriaLabelFormat: undefined -}; - -var DateRangePicker = function (_React$Component) { - _inherits(DateRangePicker, _React$Component); - - function DateRangePicker(props) { - _classCallCheck(this, DateRangePicker); - - var _this = _possibleConstructorReturn(this, (DateRangePicker.__proto__ || Object.getPrototypeOf(DateRangePicker)).call(this, props)); - - _this.state = { - dayPickerContainerStyles: {}, - isDateRangePickerInputFocused: false, - isDayPickerFocused: false, - showKeyboardShortcuts: false - }; - - _this.isTouchDevice = false; - - _this.onOutsideClick = _this.onOutsideClick.bind(_this); - _this.onDateRangePickerInputFocus = _this.onDateRangePickerInputFocus.bind(_this); - _this.onDayPickerFocus = _this.onDayPickerFocus.bind(_this); - _this.onDayPickerBlur = _this.onDayPickerBlur.bind(_this); - _this.showKeyboardShortcutsPanel = _this.showKeyboardShortcutsPanel.bind(_this); - - _this.responsivizePickerPosition = _this.responsivizePickerPosition.bind(_this); - _this.disableScroll = _this.disableScroll.bind(_this); - - _this.setDayPickerContainerRef = _this.setDayPickerContainerRef.bind(_this); - _this.setContainerRef = _this.setContainerRef.bind(_this); - return _this; - } - - _createClass(DateRangePicker, [{ - key: 'componentDidMount', - value: function () { - function componentDidMount() { - this.removeEventListener = (0, _consolidatedEvents.addEventListener)(window, 'resize', this.responsivizePickerPosition, { passive: true }); - this.responsivizePickerPosition(); - this.disableScroll(); - - var focusedInput = this.props.focusedInput; - - if (focusedInput) { - this.setState({ - isDateRangePickerInputFocused: true - }); - } - - this.isTouchDevice = (0, _isTouchDevice2['default'])(); - } - - return componentDidMount; - }() - }, { - key: 'shouldComponentUpdate', - value: function () { - function shouldComponentUpdate(nextProps, nextState) { - return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState); - } - - return shouldComponentUpdate; - }() - }, { - key: 'componentDidUpdate', - value: function () { - function componentDidUpdate(prevProps) { - var focusedInput = this.props.focusedInput; - - if (!prevProps.focusedInput && focusedInput && this.isOpened()) { - // The date picker just changed from being closed to being open. - this.responsivizePickerPosition(); - this.disableScroll(); - } else if (prevProps.focusedInput && !focusedInput && !this.isOpened()) { - // The date picker just changed from being open to being closed. - if (this.enableScroll) this.enableScroll(); - } - } - - return componentDidUpdate; - }() - }, { - key: 'componentWillUnmount', - value: function () { - function componentWillUnmount() { - if (this.removeEventListener) this.removeEventListener(); - if (this.enableScroll) this.enableScroll(); - } - - return componentWillUnmount; - }() - }, { - key: 'onOutsideClick', - value: function () { - function onOutsideClick(event) { - var _props = this.props, - onFocusChange = _props.onFocusChange, - onClose = _props.onClose, - startDate = _props.startDate, - endDate = _props.endDate, - appendToBody = _props.appendToBody; - - if (!this.isOpened()) return; - if (appendToBody && this.dayPickerContainer.contains(event.target)) return; - - this.setState({ - isDateRangePickerInputFocused: false, - isDayPickerFocused: false, - showKeyboardShortcuts: false - }); - - onFocusChange(null); - onClose({ startDate: startDate, endDate: endDate }); - } - - return onOutsideClick; - }() - }, { - key: 'onDateRangePickerInputFocus', - value: function () { - function onDateRangePickerInputFocus(focusedInput) { - var _props2 = this.props, - onFocusChange = _props2.onFocusChange, - readOnly = _props2.readOnly, - withPortal = _props2.withPortal, - withFullScreenPortal = _props2.withFullScreenPortal, - keepFocusOnInput = _props2.keepFocusOnInput; - - - if (focusedInput) { - var withAnyPortal = withPortal || withFullScreenPortal; - var moveFocusToDayPicker = withAnyPortal || readOnly && !keepFocusOnInput || this.isTouchDevice && !keepFocusOnInput; - - if (moveFocusToDayPicker) { - this.onDayPickerFocus(); - } else { - this.onDayPickerBlur(); - } - } - - onFocusChange(focusedInput); - } - - return onDateRangePickerInputFocus; - }() - }, { - key: 'onDayPickerFocus', - value: function () { - function onDayPickerFocus() { - var _props3 = this.props, - focusedInput = _props3.focusedInput, - onFocusChange = _props3.onFocusChange; - - if (!focusedInput) onFocusChange(_constants.START_DATE); - - this.setState({ - isDateRangePickerInputFocused: false, - isDayPickerFocused: true, - showKeyboardShortcuts: false - }); - } - - return onDayPickerFocus; - }() - }, { - key: 'onDayPickerBlur', - value: function () { - function onDayPickerBlur() { - this.setState({ - isDateRangePickerInputFocused: true, - isDayPickerFocused: false, - showKeyboardShortcuts: false - }); - } - - return onDayPickerBlur; - }() - }, { - key: 'setDayPickerContainerRef', - value: function () { - function setDayPickerContainerRef(ref) { - this.dayPickerContainer = ref; - } - - return setDayPickerContainerRef; - }() - }, { - key: 'setContainerRef', - value: function () { - function setContainerRef(ref) { - this.container = ref; - } - - return setContainerRef; - }() - }, { - key: 'isOpened', - value: function () { - function isOpened() { - var focusedInput = this.props.focusedInput; - - return focusedInput === _constants.START_DATE || focusedInput === _constants.END_DATE; - } - - return isOpened; - }() - }, { - key: 'disableScroll', - value: function () { - function disableScroll() { - var _props4 = this.props, - appendToBody = _props4.appendToBody, - propDisableScroll = _props4.disableScroll; - - if (!appendToBody && !propDisableScroll) return; - if (!this.isOpened()) return; - - // Disable scroll for every ancestor of this DateRangePicker up to the - // document level. This ensures the input and the picker never move. Other - // sibling elements or the picker itself can scroll. - this.enableScroll = (0, _disableScroll3['default'])(this.container); - } - - return disableScroll; - }() - }, { - key: 'responsivizePickerPosition', - value: function () { - function responsivizePickerPosition() { - // It's possible the portal props have been changed in response to window resizes - // So let's ensure we reset this back to the base state each time - this.setState({ dayPickerContainerStyles: {} }); - - if (!this.isOpened()) { - return; - } - - var _props5 = this.props, - openDirection = _props5.openDirection, - anchorDirection = _props5.anchorDirection, - horizontalMargin = _props5.horizontalMargin, - withPortal = _props5.withPortal, - withFullScreenPortal = _props5.withFullScreenPortal, - appendToBody = _props5.appendToBody; - var dayPickerContainerStyles = this.state.dayPickerContainerStyles; - - - var isAnchoredLeft = anchorDirection === _constants.ANCHOR_LEFT; - if (!withPortal && !withFullScreenPortal) { - var containerRect = this.dayPickerContainer.getBoundingClientRect(); - var currentOffset = dayPickerContainerStyles[anchorDirection] || 0; - var containerEdge = isAnchoredLeft ? containerRect[_constants.ANCHOR_RIGHT] : containerRect[_constants.ANCHOR_LEFT]; - - this.setState({ - dayPickerContainerStyles: (0, _object2['default'])({}, (0, _getResponsiveContainerStyles2['default'])(anchorDirection, currentOffset, containerEdge, horizontalMargin), appendToBody && (0, _getDetachedContainerStyles2['default'])(openDirection, anchorDirection, this.container)) - }); - } - } - - return responsivizePickerPosition; - }() - }, { - key: 'showKeyboardShortcutsPanel', - value: function () { - function showKeyboardShortcutsPanel() { - this.setState({ - isDateRangePickerInputFocused: false, - isDayPickerFocused: true, - showKeyboardShortcuts: true - }); - } - - return showKeyboardShortcutsPanel; - }() - }, { - key: 'maybeRenderDayPickerWithPortal', - value: function () { - function maybeRenderDayPickerWithPortal() { - var _props6 = this.props, - withPortal = _props6.withPortal, - withFullScreenPortal = _props6.withFullScreenPortal, - appendToBody = _props6.appendToBody; - - - if (!this.isOpened()) { - return null; - } - - if (withPortal || withFullScreenPortal || appendToBody) { - return _react2['default'].createElement( - _reactPortal.Portal, - null, - this.renderDayPicker() - ); - } - - return this.renderDayPicker(); - } - - return maybeRenderDayPickerWithPortal; - }() - }, { - key: 'renderDayPicker', - value: function () { - function renderDayPicker() { - var _props7 = this.props, - anchorDirection = _props7.anchorDirection, - openDirection = _props7.openDirection, - isDayBlocked = _props7.isDayBlocked, - isDayHighlighted = _props7.isDayHighlighted, - isOutsideRange = _props7.isOutsideRange, - numberOfMonths = _props7.numberOfMonths, - orientation = _props7.orientation, - monthFormat = _props7.monthFormat, - renderMonthText = _props7.renderMonthText, - navPrev = _props7.navPrev, - navNext = _props7.navNext, - onPrevMonthClick = _props7.onPrevMonthClick, - onNextMonthClick = _props7.onNextMonthClick, - onDatesChange = _props7.onDatesChange, - onFocusChange = _props7.onFocusChange, - withPortal = _props7.withPortal, - withFullScreenPortal = _props7.withFullScreenPortal, - daySize = _props7.daySize, - enableOutsideDays = _props7.enableOutsideDays, - focusedInput = _props7.focusedInput, - startDate = _props7.startDate, - endDate = _props7.endDate, - minimumNights = _props7.minimumNights, - keepOpenOnDateSelect = _props7.keepOpenOnDateSelect, - renderCalendarDay = _props7.renderCalendarDay, - renderDayContents = _props7.renderDayContents, - renderCalendarInfo = _props7.renderCalendarInfo, - renderMonthElement = _props7.renderMonthElement, - calendarInfoPosition = _props7.calendarInfoPosition, - firstDayOfWeek = _props7.firstDayOfWeek, - initialVisibleMonth = _props7.initialVisibleMonth, - hideKeyboardShortcutsPanel = _props7.hideKeyboardShortcutsPanel, - customCloseIcon = _props7.customCloseIcon, - onClose = _props7.onClose, - phrases = _props7.phrases, - dayAriaLabelFormat = _props7.dayAriaLabelFormat, - isRTL = _props7.isRTL, - weekDayFormat = _props7.weekDayFormat, - styles = _props7.styles, - verticalHeight = _props7.verticalHeight, - transitionDuration = _props7.transitionDuration, - verticalSpacing = _props7.verticalSpacing, - small = _props7.small, - disabled = _props7.disabled, - reactDates = _props7.theme.reactDates; - var _state = this.state, - dayPickerContainerStyles = _state.dayPickerContainerStyles, - isDayPickerFocused = _state.isDayPickerFocused, - showKeyboardShortcuts = _state.showKeyboardShortcuts; - - - var onOutsideClick = !withFullScreenPortal && withPortal ? this.onOutsideClick : undefined; - var initialVisibleMonthThunk = initialVisibleMonth || function () { - return startDate || endDate || (0, _moment2['default'])(); - }; - - var closeIcon = customCloseIcon || _react2['default'].createElement(_CloseButton2['default'], (0, _reactWithStyles.css)(styles.DateRangePicker_closeButton_svg)); - - var inputHeight = (0, _getInputHeight2['default'])(reactDates, small); - - var withAnyPortal = withPortal || withFullScreenPortal; - - return _react2['default'].createElement( - 'div', - _extends({ // eslint-disable-line jsx-a11y/no-static-element-interactions - ref: this.setDayPickerContainerRef - }, (0, _reactWithStyles.css)(styles.DateRangePicker_picker, anchorDirection === _constants.ANCHOR_LEFT && styles.DateRangePicker_picker__directionLeft, anchorDirection === _constants.ANCHOR_RIGHT && styles.DateRangePicker_picker__directionRight, orientation === _constants.HORIZONTAL_ORIENTATION && styles.DateRangePicker_picker__horizontal, orientation === _constants.VERTICAL_ORIENTATION && styles.DateRangePicker_picker__vertical, !withAnyPortal && openDirection === _constants.OPEN_DOWN && { - top: inputHeight + verticalSpacing - }, !withAnyPortal && openDirection === _constants.OPEN_UP && { - bottom: inputHeight + verticalSpacing - }, withAnyPortal && styles.DateRangePicker_picker__portal, withFullScreenPortal && styles.DateRangePicker_picker__fullScreenPortal, isRTL && styles.DateRangePicker_picker__rtl, dayPickerContainerStyles), { - onClick: onOutsideClick - }), - _react2['default'].createElement(_DayPickerRangeController2['default'], { - orientation: orientation, - enableOutsideDays: enableOutsideDays, - numberOfMonths: numberOfMonths, - onPrevMonthClick: onPrevMonthClick, - onNextMonthClick: onNextMonthClick, - onDatesChange: onDatesChange, - onFocusChange: onFocusChange, - onClose: onClose, - focusedInput: focusedInput, - startDate: startDate, - endDate: endDate, - monthFormat: monthFormat, - renderMonthText: renderMonthText, - withPortal: withAnyPortal, - daySize: daySize, - initialVisibleMonth: initialVisibleMonthThunk, - hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel, - navPrev: navPrev, - navNext: navNext, - minimumNights: minimumNights, - isOutsideRange: isOutsideRange, - isDayHighlighted: isDayHighlighted, - isDayBlocked: isDayBlocked, - keepOpenOnDateSelect: keepOpenOnDateSelect, - renderCalendarDay: renderCalendarDay, - renderDayContents: renderDayContents, - renderCalendarInfo: renderCalendarInfo, - renderMonthElement: renderMonthElement, - calendarInfoPosition: calendarInfoPosition, - isFocused: isDayPickerFocused, - showKeyboardShortcuts: showKeyboardShortcuts, - onBlur: this.onDayPickerBlur, - phrases: phrases, - dayAriaLabelFormat: dayAriaLabelFormat, - isRTL: isRTL, - firstDayOfWeek: firstDayOfWeek, - weekDayFormat: weekDayFormat, - verticalHeight: verticalHeight, - transitionDuration: transitionDuration, - disabled: disabled - }), - withFullScreenPortal && _react2['default'].createElement( - 'button', - _extends({}, (0, _reactWithStyles.css)(styles.DateRangePicker_closeButton), { - type: 'button', - onClick: this.onOutsideClick, - 'aria-label': phrases.closeDatePicker - }), - closeIcon - ) - ); - } - - return renderDayPicker; - }() - }, { - key: 'render', - value: function () { - function render() { - var _props8 = this.props, - startDate = _props8.startDate, - startDateId = _props8.startDateId, - startDatePlaceholderText = _props8.startDatePlaceholderText, - endDate = _props8.endDate, - endDateId = _props8.endDateId, - endDatePlaceholderText = _props8.endDatePlaceholderText, - focusedInput = _props8.focusedInput, - screenReaderInputMessage = _props8.screenReaderInputMessage, - showClearDates = _props8.showClearDates, - showDefaultInputIcon = _props8.showDefaultInputIcon, - inputIconPosition = _props8.inputIconPosition, - customInputIcon = _props8.customInputIcon, - customArrowIcon = _props8.customArrowIcon, - customCloseIcon = _props8.customCloseIcon, - disabled = _props8.disabled, - required = _props8.required, - readOnly = _props8.readOnly, - openDirection = _props8.openDirection, - phrases = _props8.phrases, - isOutsideRange = _props8.isOutsideRange, - minimumNights = _props8.minimumNights, - withPortal = _props8.withPortal, - withFullScreenPortal = _props8.withFullScreenPortal, - displayFormat = _props8.displayFormat, - reopenPickerOnClearDates = _props8.reopenPickerOnClearDates, - keepOpenOnDateSelect = _props8.keepOpenOnDateSelect, - onDatesChange = _props8.onDatesChange, - onClose = _props8.onClose, - isRTL = _props8.isRTL, - noBorder = _props8.noBorder, - block = _props8.block, - verticalSpacing = _props8.verticalSpacing, - small = _props8.small, - regular = _props8.regular, - styles = _props8.styles; - var isDateRangePickerInputFocused = this.state.isDateRangePickerInputFocused; - - - var enableOutsideClick = !withPortal && !withFullScreenPortal; - - var hideFang = verticalSpacing < _constants.FANG_HEIGHT_PX; - - var input = _react2['default'].createElement(_DateRangePickerInputController2['default'], { - startDate: startDate, - startDateId: startDateId, - startDatePlaceholderText: startDatePlaceholderText, - isStartDateFocused: focusedInput === _constants.START_DATE, - endDate: endDate, - endDateId: endDateId, - endDatePlaceholderText: endDatePlaceholderText, - isEndDateFocused: focusedInput === _constants.END_DATE, - displayFormat: displayFormat, - showClearDates: showClearDates, - showCaret: !withPortal && !withFullScreenPortal && !hideFang, - showDefaultInputIcon: showDefaultInputIcon, - inputIconPosition: inputIconPosition, - customInputIcon: customInputIcon, - customArrowIcon: customArrowIcon, - customCloseIcon: customCloseIcon, - disabled: disabled, - required: required, - readOnly: readOnly, - openDirection: openDirection, - reopenPickerOnClearDates: reopenPickerOnClearDates, - keepOpenOnDateSelect: keepOpenOnDateSelect, - isOutsideRange: isOutsideRange, - minimumNights: minimumNights, - withFullScreenPortal: withFullScreenPortal, - onDatesChange: onDatesChange, - onFocusChange: this.onDateRangePickerInputFocus, - onKeyDownArrowDown: this.onDayPickerFocus, - onKeyDownQuestionMark: this.showKeyboardShortcutsPanel, - onClose: onClose, - phrases: phrases, - screenReaderMessage: screenReaderInputMessage, - isFocused: isDateRangePickerInputFocused, - isRTL: isRTL, - noBorder: noBorder, - block: block, - small: small, - regular: regular, - verticalSpacing: verticalSpacing - }); - - return _react2['default'].createElement( - 'div', - _extends({ - ref: this.setContainerRef - }, (0, _reactWithStyles.css)(styles.DateRangePicker, block && styles.DateRangePicker__block)), - enableOutsideClick && _react2['default'].createElement( - _reactOutsideClickHandler2['default'], - { onOutsideClick: this.onOutsideClick }, - input, - this.maybeRenderDayPickerWithPortal() - ), - !enableOutsideClick && input, - !enableOutsideClick && this.maybeRenderDayPickerWithPortal() - ); - } - - return render; - }() - }]); - - return DateRangePicker; -}(_react2['default'].Component); - -DateRangePicker.propTypes = propTypes; -DateRangePicker.defaultProps = defaultProps; - -exports.PureDateRangePicker = DateRangePicker; -exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) { - var _ref$reactDates = _ref.reactDates, - color = _ref$reactDates.color, - zIndex = _ref$reactDates.zIndex; - return { - DateRangePicker: { - position: 'relative', - display: 'inline-block' - }, - - DateRangePicker__block: { - display: 'block' - }, - - DateRangePicker_picker: { - zIndex: zIndex + 1, - backgroundColor: color.background, - position: 'absolute' - }, - - DateRangePicker_picker__rtl: { - direction: 'rtl' - }, - - DateRangePicker_picker__directionLeft: { - left: 0 - }, - - DateRangePicker_picker__directionRight: { - right: 0 - }, - - DateRangePicker_picker__portal: { - backgroundColor: 'rgba(0, 0, 0, 0.3)', - position: 'fixed', - top: 0, - left: 0, - height: '100%', - width: '100%' - }, - - DateRangePicker_picker__fullScreenPortal: { - backgroundColor: color.background - }, - - DateRangePicker_closeButton: { - background: 'none', - border: 0, - color: 'inherit', - font: 'inherit', - lineHeight: 'normal', - overflow: 'visible', - cursor: 'pointer', - - position: 'absolute', - top: 0, - right: 0, - padding: 15, - zIndex: zIndex + 2, - - ':hover': { - color: 'darken(' + String(color.core.grayLighter) + ', 10%)', - textDecoration: 'none' - }, - - ':focus': { - color: 'darken(' + String(color.core.grayLighter) + ', 10%)', - textDecoration: 'none' - } - }, - - DateRangePicker_closeButton_svg: { - height: 15, - width: 15, - fill: color.core.grayLighter - } - }; -})(DateRangePicker); - -/***/ }), -/* 303 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(304); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _consolidatedEvents = __webpack_require__(103); - -var _object = __webpack_require__(307); - -var _object2 = _interopRequireDefault(_object); - -var _document = __webpack_require__(311); - -var _document2 = _interopRequireDefault(_document); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var DISPLAY = { - BLOCK: 'block', - FLEX: 'flex', - INLINE_BLOCK: 'inline-block' -}; - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)({ - children: _propTypes2['default'].node.isRequired, - onOutsideClick: _propTypes2['default'].func.isRequired, - disabled: _propTypes2['default'].bool, - useCapture: _propTypes2['default'].bool, - display: _propTypes2['default'].oneOf((0, _object2['default'])(DISPLAY)) -}); - -var defaultProps = { - disabled: false, - - // `useCapture` is set to true by default so that a `stopPropagation` in the - // children will not prevent all outside click handlers from firing - maja - useCapture: true, - display: DISPLAY.BLOCK -}; - -var OutsideClickHandler = function (_React$Component) { - _inherits(OutsideClickHandler, _React$Component); - - function OutsideClickHandler() { - var _ref; - - _classCallCheck(this, OutsideClickHandler); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - var _this = _possibleConstructorReturn(this, (_ref = OutsideClickHandler.__proto__ || Object.getPrototypeOf(OutsideClickHandler)).call.apply(_ref, [this].concat(args))); - - _this.onMouseDown = _this.onMouseDown.bind(_this); - _this.onMouseUp = _this.onMouseUp.bind(_this); - _this.setChildNodeRef = _this.setChildNodeRef.bind(_this); - return _this; - } - - _createClass(OutsideClickHandler, [{ - key: 'componentDidMount', - value: function () { - function componentDidMount() { - var _props = this.props, - disabled = _props.disabled, - useCapture = _props.useCapture; - - - if (!disabled) this.addMouseDownEventListener(useCapture); - } - - return componentDidMount; - }() - }, { - key: 'componentWillReceiveProps', - value: function () { - function componentWillReceiveProps(_ref2) { - var disabled = _ref2.disabled, - useCapture = _ref2.useCapture; - var prevDisabled = this.props.disabled; - - if (prevDisabled !== disabled) { - if (disabled) { - this.removeEventListeners(); - } else { - this.addMouseDownEventListener(useCapture); - } - } - } - - return componentWillReceiveProps; - }() - }, { - key: 'componentWillUnmount', - value: function () { - function componentWillUnmount() { - this.removeEventListeners(); - } - - return componentWillUnmount; - }() - - // Use mousedown/mouseup to enforce that clicks remain outside the root's - // descendant tree, even when dragged. This should also get triggered on - // touch devices. - - }, { - key: 'onMouseDown', - value: function () { - function onMouseDown(e) { - var useCapture = this.props.useCapture; - - - var isDescendantOfRoot = this.childNode && (0, _document2['default'])(this.childNode, e.target); - if (!isDescendantOfRoot) { - this.removeMouseUp = (0, _consolidatedEvents.addEventListener)(document, 'mouseup', this.onMouseUp, { capture: useCapture }); - } - } - - return onMouseDown; - }() - - // Use mousedown/mouseup to enforce that clicks remain outside the root's - // descendant tree, even when dragged. This should also get triggered on - // touch devices. - - }, { - key: 'onMouseUp', - value: function () { - function onMouseUp(e) { - var onOutsideClick = this.props.onOutsideClick; - - - var isDescendantOfRoot = this.childNode && (0, _document2['default'])(this.childNode, e.target); - if (this.removeMouseUp) this.removeMouseUp(); - this.removeMouseUp = null; - - if (!isDescendantOfRoot) { - onOutsideClick(e); - } - } - - return onMouseUp; - }() - }, { - key: 'setChildNodeRef', - value: function () { - function setChildNodeRef(ref) { - this.childNode = ref; - } - - return setChildNodeRef; - }() - }, { - key: 'addMouseDownEventListener', - value: function () { - function addMouseDownEventListener(useCapture) { - this.removeMouseDown = (0, _consolidatedEvents.addEventListener)(document, 'mousedown', this.onMouseDown, { capture: useCapture }); - } - - return addMouseDownEventListener; - }() - }, { - key: 'removeEventListeners', - value: function () { - function removeEventListeners() { - if (this.removeMouseDown) this.removeMouseDown(); - if (this.removeMouseUp) this.removeMouseUp(); - } - - return removeEventListeners; - }() - }, { - key: 'render', - value: function () { - function render() { - var _props2 = this.props, - children = _props2.children, - display = _props2.display; - - - return _react2['default'].createElement( - 'div', - { - ref: this.setChildNodeRef, - style: display !== DISPLAY.BLOCK && (0, _object2['default'])(DISPLAY).includes(display) ? { display: display } : undefined - }, - children - ); - } - - return render; - }() - }]); - - return OutsideClickHandler; -}(_react2['default'].Component); - -exports['default'] = OutsideClickHandler; - - -OutsideClickHandler.propTypes = propTypes; -OutsideClickHandler.defaultProps = defaultProps; - -/***/ }), -/* 304 */ -/***/ (function(module, exports, __webpack_require__) { - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -if (false) { var throwOnDirectAccess, ReactIs; } else { - // By explicitly using `prop-types` you are opting into new production behavior. - // http://fb.me/prop-types-in-prod - module.exports = __webpack_require__(305)(); -} - - -/***/ }), -/* 305 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var ReactPropTypesSecret = __webpack_require__(306); +var ReactPropTypesSecret = __webpack_require__(139); function emptyFunction() {} function emptyFunctionWithReset() {} @@ -20899,7 +12398,7 @@ /***/ }), -/* 306 */ +/* 139 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -20918,2031 +12417,75 @@ /***/ }), -/* 307 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var define = __webpack_require__(163); - -var implementation = __webpack_require__(165); -var getPolyfill = __webpack_require__(167); -var shim = __webpack_require__(310); - -var polyfill = getPolyfill(); - -define(polyfill, { - getPolyfill: getPolyfill, - implementation: implementation, - shim: shim -}); - -module.exports = polyfill; - - -/***/ }), -/* 308 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var slice = Array.prototype.slice; -var isArgs = __webpack_require__(164); - -var origKeys = Object.keys; -var keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(309); - -var originalKeys = Object.keys; - -keysShim.shim = function shimObjectKeys() { - if (Object.keys) { - var keysWorksWithArguments = (function () { - // Safari 5.0 bug - var args = Object.keys(arguments); - return args && args.length === arguments.length; - }(1, 2)); - if (!keysWorksWithArguments) { - Object.keys = function keys(object) { // eslint-disable-line func-name-matching - if (isArgs(object)) { - return originalKeys(slice.call(object)); - } - return originalKeys(object); - }; - } - } else { - Object.keys = keysShim; - } - return Object.keys || keysShim; -}; - -module.exports = keysShim; - - -/***/ }), -/* 309 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var keysShim; -if (!Object.keys) { - // modified from https://github.com/es-shims/es5-shim - var has = Object.prototype.hasOwnProperty; - var toStr = Object.prototype.toString; - var isArgs = __webpack_require__(164); // eslint-disable-line global-require - var isEnumerable = Object.prototype.propertyIsEnumerable; - var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString'); - var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype'); - var dontEnums = [ - 'toString', - 'toLocaleString', - 'valueOf', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'constructor' - ]; - var equalsConstructorPrototype = function (o) { - var ctor = o.constructor; - return ctor && ctor.prototype === o; - }; - var excludedKeys = { - $applicationCache: true, - $console: true, - $external: true, - $frame: true, - $frameElement: true, - $frames: true, - $innerHeight: true, - $innerWidth: true, - $onmozfullscreenchange: true, - $onmozfullscreenerror: true, - $outerHeight: true, - $outerWidth: true, - $pageXOffset: true, - $pageYOffset: true, - $parent: true, - $scrollLeft: true, - $scrollTop: true, - $scrollX: true, - $scrollY: true, - $self: true, - $webkitIndexedDB: true, - $webkitStorageInfo: true, - $window: true - }; - var hasAutomationEqualityBug = (function () { - /* global window */ - if (typeof window === 'undefined') { return false; } - for (var k in window) { - try { - if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { - try { - equalsConstructorPrototype(window[k]); - } catch (e) { - return true; - } - } - } catch (e) { - return true; - } - } - return false; - }()); - var equalsConstructorPrototypeIfNotBuggy = function (o) { - /* global window */ - if (typeof window === 'undefined' || !hasAutomationEqualityBug) { - return equalsConstructorPrototype(o); - } - try { - return equalsConstructorPrototype(o); - } catch (e) { - return false; - } - }; - - keysShim = function keys(object) { - var isObject = object !== null && typeof object === 'object'; - var isFunction = toStr.call(object) === '[object Function]'; - var isArguments = isArgs(object); - var isString = isObject && toStr.call(object) === '[object String]'; - var theKeys = []; - - if (!isObject && !isFunction && !isArguments) { - throw new TypeError('Object.keys called on a non-object'); - } - - var skipProto = hasProtoEnumBug && isFunction; - if (isString && object.length > 0 && !has.call(object, 0)) { - for (var i = 0; i < object.length; ++i) { - theKeys.push(String(i)); - } - } - - if (isArguments && object.length > 0) { - for (var j = 0; j < object.length; ++j) { - theKeys.push(String(j)); - } - } else { - for (var name in object) { - if (!(skipProto && name === 'prototype') && has.call(object, name)) { - theKeys.push(String(name)); - } - } - } - - if (hasDontEnumBug) { - var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object); - - for (var k = 0; k < dontEnums.length; ++k) { - if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) { - theKeys.push(dontEnums[k]); - } - } - } - return theKeys; - }; -} -module.exports = keysShim; - - -/***/ }), -/* 310 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var getPolyfill = __webpack_require__(167); -var define = __webpack_require__(163); - -module.exports = function shimValues() { - var polyfill = getPolyfill(); - define(Object, { values: polyfill }, { - values: function testValues() { - return Object.values !== polyfill; - } - }); - return polyfill; -}; - - -/***/ }), -/* 311 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var define = __webpack_require__(168); - -var implementation = __webpack_require__(170); -var getPolyfill = __webpack_require__(171); -var polyfill = getPolyfill(); -var shim = __webpack_require__(314); - -var boundContains = function contains(node, other) { - return polyfill.apply(node, [other]); -}; - -define(boundContains, { - getPolyfill: getPolyfill, - implementation: implementation, - shim: shim -}); - -module.exports = boundContains; - - -/***/ }), -/* 312 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var slice = Array.prototype.slice; -var isArgs = __webpack_require__(169); - -var origKeys = Object.keys; -var keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(313); - -var originalKeys = Object.keys; - -keysShim.shim = function shimObjectKeys() { - if (Object.keys) { - var keysWorksWithArguments = (function () { - // Safari 5.0 bug - var args = Object.keys(arguments); - return args && args.length === arguments.length; - }(1, 2)); - if (!keysWorksWithArguments) { - Object.keys = function keys(object) { // eslint-disable-line func-name-matching - if (isArgs(object)) { - return originalKeys(slice.call(object)); - } - return originalKeys(object); - }; - } - } else { - Object.keys = keysShim; - } - return Object.keys || keysShim; -}; - -module.exports = keysShim; - - -/***/ }), -/* 313 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var keysShim; -if (!Object.keys) { - // modified from https://github.com/es-shims/es5-shim - var has = Object.prototype.hasOwnProperty; - var toStr = Object.prototype.toString; - var isArgs = __webpack_require__(169); // eslint-disable-line global-require - var isEnumerable = Object.prototype.propertyIsEnumerable; - var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString'); - var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype'); - var dontEnums = [ - 'toString', - 'toLocaleString', - 'valueOf', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'constructor' - ]; - var equalsConstructorPrototype = function (o) { - var ctor = o.constructor; - return ctor && ctor.prototype === o; - }; - var excludedKeys = { - $applicationCache: true, - $console: true, - $external: true, - $frame: true, - $frameElement: true, - $frames: true, - $innerHeight: true, - $innerWidth: true, - $onmozfullscreenchange: true, - $onmozfullscreenerror: true, - $outerHeight: true, - $outerWidth: true, - $pageXOffset: true, - $pageYOffset: true, - $parent: true, - $scrollLeft: true, - $scrollTop: true, - $scrollX: true, - $scrollY: true, - $self: true, - $webkitIndexedDB: true, - $webkitStorageInfo: true, - $window: true - }; - var hasAutomationEqualityBug = (function () { - /* global window */ - if (typeof window === 'undefined') { return false; } - for (var k in window) { - try { - if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { - try { - equalsConstructorPrototype(window[k]); - } catch (e) { - return true; - } - } - } catch (e) { - return true; - } - } - return false; - }()); - var equalsConstructorPrototypeIfNotBuggy = function (o) { - /* global window */ - if (typeof window === 'undefined' || !hasAutomationEqualityBug) { - return equalsConstructorPrototype(o); - } - try { - return equalsConstructorPrototype(o); - } catch (e) { - return false; - } - }; - - keysShim = function keys(object) { - var isObject = object !== null && typeof object === 'object'; - var isFunction = toStr.call(object) === '[object Function]'; - var isArguments = isArgs(object); - var isString = isObject && toStr.call(object) === '[object String]'; - var theKeys = []; - - if (!isObject && !isFunction && !isArguments) { - throw new TypeError('Object.keys called on a non-object'); - } - - var skipProto = hasProtoEnumBug && isFunction; - if (isString && object.length > 0 && !has.call(object, 0)) { - for (var i = 0; i < object.length; ++i) { - theKeys.push(String(i)); - } - } - - if (isArguments && object.length > 0) { - for (var j = 0; j < object.length; ++j) { - theKeys.push(String(j)); - } - } else { - for (var name in object) { - if (!(skipProto && name === 'prototype') && has.call(object, name)) { - theKeys.push(String(name)); - } - } - } - - if (hasDontEnumBug) { - var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object); - - for (var k = 0; k < dontEnums.length; ++k) { - if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) { - theKeys.push(dontEnums[k]); - } - } - } - return theKeys; - }; -} -module.exports = keysShim; - - -/***/ }), -/* 314 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var define = __webpack_require__(168); -var getPolyfill = __webpack_require__(171); - -module.exports = function shimContains() { - var polyfill = getPolyfill(); - if (typeof document !== 'undefined') { - define( - document, - { contains: polyfill }, - { contains: function () { return document.contains !== polyfill; } } - ); - if (typeof Element !== 'undefined') { - define( - Element.prototype, - { contains: polyfill }, - { contains: function () { return Element.prototype.contains !== polyfill; } } - ); - } - } - return polyfill; -}; - - -/***/ }), -/* 315 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(128), - now = __webpack_require__(316), - toNumber = __webpack_require__(318); - -/** Error message constants. */ -var FUNC_ERROR_TEXT = 'Expected a function'; - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeMax = Math.max, - nativeMin = Math.min; - -/** - * Creates a debounced function that delays invoking `func` until after `wait` - * milliseconds have elapsed since the last time the debounced function was - * invoked. The debounced function comes with a `cancel` method to cancel - * delayed `func` invocations and a `flush` method to immediately invoke them. - * Provide `options` to indicate whether `func` should be invoked on the - * leading and/or trailing edge of the `wait` timeout. The `func` is invoked - * with the last arguments provided to the debounced function. Subsequent - * calls to the debounced function return the result of the last `func` - * invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the debounced function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.debounce` and `_.throttle`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to debounce. - * @param {number} [wait=0] The number of milliseconds to delay. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=false] - * Specify invoking on the leading edge of the timeout. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new debounced function. - * @example - * - * // Avoid costly calculations while the window size is in flux. - * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); - * - * // Invoke `sendMail` when clicked, debouncing subsequent calls. - * jQuery(element).on('click', _.debounce(sendMail, 300, { - * 'leading': true, - * 'trailing': false - * })); - * - * // Ensure `batchLog` is invoked once after 1 second of debounced calls. - * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); - * var source = new EventSource('/stream'); - * jQuery(source).on('message', debounced); - * - * // Cancel the trailing debounced invocation. - * jQuery(window).on('popstate', debounced.cancel); - */ -function debounce(func, wait, options) { - var lastArgs, - lastThis, - maxWait, - result, - timerId, - lastCallTime, - lastInvokeTime = 0, - leading = false, - maxing = false, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - wait = toNumber(wait) || 0; - if (isObject(options)) { - leading = !!options.leading; - maxing = 'maxWait' in options; - maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - - function invokeFunc(time) { - var args = lastArgs, - thisArg = lastThis; - - lastArgs = lastThis = undefined; - lastInvokeTime = time; - result = func.apply(thisArg, args); - return result; - } - - function leadingEdge(time) { - // Reset any `maxWait` timer. - lastInvokeTime = time; - // Start the timer for the trailing edge. - timerId = setTimeout(timerExpired, wait); - // Invoke the leading edge. - return leading ? invokeFunc(time) : result; - } - - function remainingWait(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime, - timeWaiting = wait - timeSinceLastCall; - - return maxing - ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) - : timeWaiting; - } - - function shouldInvoke(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime; - - // Either this is the first call, activity has stopped and we're at the - // trailing edge, the system time has gone backwards and we're treating - // it as the trailing edge, or we've hit the `maxWait` limit. - return (lastCallTime === undefined || (timeSinceLastCall >= wait) || - (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); - } - - function timerExpired() { - var time = now(); - if (shouldInvoke(time)) { - return trailingEdge(time); - } - // Restart the timer. - timerId = setTimeout(timerExpired, remainingWait(time)); - } - - function trailingEdge(time) { - timerId = undefined; - - // Only invoke if we have `lastArgs` which means `func` has been - // debounced at least once. - if (trailing && lastArgs) { - return invokeFunc(time); - } - lastArgs = lastThis = undefined; - return result; - } - - function cancel() { - if (timerId !== undefined) { - clearTimeout(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = undefined; - } - - function flush() { - return timerId === undefined ? result : trailingEdge(now()); - } - - function debounced() { - var time = now(), - isInvoking = shouldInvoke(time); - - lastArgs = arguments; - lastThis = this; - lastCallTime = time; - - if (isInvoking) { - if (timerId === undefined) { - return leadingEdge(lastCallTime); - } - if (maxing) { - // Handle invocations in a tight loop. - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === undefined) { - timerId = setTimeout(timerExpired, wait); - } - return result; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; -} - -module.exports = debounce; - - -/***/ }), -/* 316 */ -/***/ (function(module, exports, __webpack_require__) { - -var root = __webpack_require__(183); - -/** - * Gets the timestamp of the number of milliseconds that have elapsed since - * the Unix epoch (1 January 1970 00:00:00 UTC). - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Date - * @returns {number} Returns the timestamp. - * @example - * - * _.defer(function(stamp) { - * console.log(_.now() - stamp); - * }, _.now()); - * // => Logs the number of milliseconds it took for the deferred invocation. - */ -var now = function() { - return root.Date.now(); -}; - -module.exports = now; - - -/***/ }), -/* 317 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ -var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; - -module.exports = freeGlobal; - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(59))) - -/***/ }), -/* 318 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(128), - isSymbol = __webpack_require__(319); - -/** Used as references for various `Number` constants. */ -var NAN = 0 / 0; - -/** Used to match leading and trailing whitespace. */ -var reTrim = /^\s+|\s+$/g; - -/** Used to detect bad signed hexadecimal string values. */ -var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - -/** Used to detect binary string values. */ -var reIsBinary = /^0b[01]+$/i; - -/** Used to detect octal string values. */ -var reIsOctal = /^0o[0-7]+$/i; - -/** Built-in method references without a dependency on `root`. */ -var freeParseInt = parseInt; - -/** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3.2); - * // => 3.2 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3.2'); - * // => 3.2 - */ -function toNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - if (isObject(value)) { - var other = typeof value.valueOf == 'function' ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); -} - -module.exports = toNumber; - - -/***/ }), -/* 319 */ -/***/ (function(module, exports, __webpack_require__) { - -var baseGetTag = __webpack_require__(320), - isObjectLike = __webpack_require__(323); - -/** `Object#toString` result references. */ -var symbolTag = '[object Symbol]'; - -/** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ -function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && baseGetTag(value) == symbolTag); -} - -module.exports = isSymbol; - - -/***/ }), -/* 320 */ -/***/ (function(module, exports, __webpack_require__) { - -var Symbol = __webpack_require__(184), - getRawTag = __webpack_require__(321), - objectToString = __webpack_require__(322); - -/** `Object#toString` result references. */ -var nullTag = '[object Null]', - undefinedTag = '[object Undefined]'; - -/** Built-in value references. */ -var symToStringTag = Symbol ? Symbol.toStringTag : undefined; - -/** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ -function baseGetTag(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; - } - return (symToStringTag && symToStringTag in Object(value)) - ? getRawTag(value) - : objectToString(value); -} - -module.exports = baseGetTag; - - -/***/ }), -/* 321 */ -/***/ (function(module, exports, __webpack_require__) { - -var Symbol = __webpack_require__(184); - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ -var nativeObjectToString = objectProto.toString; - -/** Built-in value references. */ -var symToStringTag = Symbol ? Symbol.toStringTag : undefined; - -/** - * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the raw `toStringTag`. - */ -function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), - tag = value[symToStringTag]; - - try { - value[symToStringTag] = undefined; - var unmasked = true; - } catch (e) {} - - var result = nativeObjectToString.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag] = tag; - } else { - delete value[symToStringTag]; - } - } - return result; -} - -module.exports = getRawTag; - - -/***/ }), -/* 322 */ -/***/ (function(module, exports) { - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ -var nativeObjectToString = objectProto.toString; - -/** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ -function objectToString(value) { - return nativeObjectToString.call(value); -} - -module.exports = objectToString; - - -/***/ }), -/* 323 */ -/***/ (function(module, exports) { - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return value != null && typeof value == 'object'; -} - -module.exports = isObjectLike; - - -/***/ }), -/* 324 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var getPolyfill = __webpack_require__(191); -var define = __webpack_require__(73); - -module.exports = function shimValues() { - var polyfill = getPolyfill(); - define(Object, { values: polyfill }, { - values: function testValues() { - return Object.values !== polyfill; - } - }); - return polyfill; -}; - - -/***/ }), -/* 325 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = getSelectedDateOffset; -var defaultModifier = function defaultModifier(day) { - return day; -}; - -function getSelectedDateOffset(fn, day) { - var modifier = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultModifier; - - if (!fn) return day; - return modifier(fn(day.clone())); -} - -/***/ }), -/* 326 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _reactWithStyles = __webpack_require__(56); - -var _defaultPhrases = __webpack_require__(47); - -var _getPhrasePropTypes = __webpack_require__(51); - -var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); - -var _LeftArrow = __webpack_require__(186); - -var _LeftArrow2 = _interopRequireDefault(_LeftArrow); - -var _RightArrow = __webpack_require__(185); - -var _RightArrow2 = _interopRequireDefault(_RightArrow); - -var _ChevronUp = __webpack_require__(327); - -var _ChevronUp2 = _interopRequireDefault(_ChevronUp); - -var _ChevronDown = __webpack_require__(328); - -var _ChevronDown2 = _interopRequireDefault(_ChevronDown); - -var _ScrollableOrientationShape = __webpack_require__(81); - -var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, { - navPrev: _propTypes2['default'].node, - navNext: _propTypes2['default'].node, - orientation: _ScrollableOrientationShape2['default'], - - onPrevMonthClick: _propTypes2['default'].func, - onNextMonthClick: _propTypes2['default'].func, - - // internationalization - phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerNavigationPhrases)), - - isRTL: _propTypes2['default'].bool -})); - -var defaultProps = { - navPrev: null, - navNext: null, - orientation: _constants.HORIZONTAL_ORIENTATION, - - onPrevMonthClick: function () { - function onPrevMonthClick() {} - - return onPrevMonthClick; - }(), - onNextMonthClick: function () { - function onNextMonthClick() {} - - return onNextMonthClick; - }(), - - - // internationalization - phrases: _defaultPhrases.DayPickerNavigationPhrases, - isRTL: false -}; - -function DayPickerNavigation(_ref) { - var navPrev = _ref.navPrev, - navNext = _ref.navNext, - onPrevMonthClick = _ref.onPrevMonthClick, - onNextMonthClick = _ref.onNextMonthClick, - orientation = _ref.orientation, - phrases = _ref.phrases, - isRTL = _ref.isRTL, - styles = _ref.styles; - - var isHorizontal = orientation === _constants.HORIZONTAL_ORIENTATION; - var isVertical = orientation !== _constants.HORIZONTAL_ORIENTATION; - var isVerticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE; - - var navPrevIcon = navPrev; - var navNextIcon = navNext; - var isDefaultNavPrev = false; - var isDefaultNavNext = false; - if (!navPrevIcon) { - isDefaultNavPrev = true; - var Icon = isVertical ? _ChevronUp2['default'] : _LeftArrow2['default']; - if (isRTL && !isVertical) { - Icon = _RightArrow2['default']; - } - navPrevIcon = _react2['default'].createElement(Icon, (0, _reactWithStyles.css)(isHorizontal && styles.DayPickerNavigation_svg__horizontal, isVertical && styles.DayPickerNavigation_svg__vertical)); - } - - if (!navNextIcon) { - isDefaultNavNext = true; - var _Icon = isVertical ? _ChevronDown2['default'] : _RightArrow2['default']; - if (isRTL && !isVertical) { - _Icon = _LeftArrow2['default']; - } - navNextIcon = _react2['default'].createElement(_Icon, (0, _reactWithStyles.css)(isHorizontal && styles.DayPickerNavigation_svg__horizontal, isVertical && styles.DayPickerNavigation_svg__vertical)); - } - - var isDefaultNav = isVerticalScrollable ? isDefaultNavNext : isDefaultNavNext || isDefaultNavPrev; - - return _react2['default'].createElement( - 'div', - _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation, isHorizontal && styles.DayPickerNavigation__horizontal].concat(_toConsumableArray(isVertical && [styles.DayPickerNavigation__vertical, isDefaultNav && styles.DayPickerNavigation__verticalDefault]), _toConsumableArray(isVerticalScrollable && [styles.DayPickerNavigation__verticalScrollable, isDefaultNav && styles.DayPickerNavigation__verticalScrollableDefault]))), - !isVerticalScrollable && _react2['default'].createElement( - 'div', - _extends({ - role: 'button', - tabIndex: '0' - }, _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation_button, isDefaultNavPrev && styles.DayPickerNavigation_button__default].concat(_toConsumableArray(isHorizontal && [styles.DayPickerNavigation_button__horizontal].concat(_toConsumableArray(isDefaultNavPrev && [styles.DayPickerNavigation_button__horizontalDefault, !isRTL && styles.DayPickerNavigation_leftButton__horizontalDefault, isRTL && styles.DayPickerNavigation_rightButton__horizontalDefault]))), _toConsumableArray(isVertical && [styles.DayPickerNavigation_button__vertical].concat(_toConsumableArray(isDefaultNavPrev && [styles.DayPickerNavigation_button__verticalDefault, styles.DayPickerNavigation_prevButton__verticalDefault]))))), { - 'aria-label': phrases.jumpToPrevMonth, - onClick: onPrevMonthClick, - onKeyUp: function () { - function onKeyUp(e) { - var key = e.key; - - if (key === 'Enter' || key === ' ') onPrevMonthClick(e); - } - - return onKeyUp; - }(), - onMouseUp: function () { - function onMouseUp(e) { - e.currentTarget.blur(); - } - - return onMouseUp; - }() - }), - navPrevIcon - ), - _react2['default'].createElement( - 'div', - _extends({ - role: 'button', - tabIndex: '0' - }, _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation_button, isDefaultNavNext && styles.DayPickerNavigation_button__default].concat(_toConsumableArray(isHorizontal && [styles.DayPickerNavigation_button__horizontal].concat(_toConsumableArray(isDefaultNavNext && [styles.DayPickerNavigation_button__horizontalDefault, isRTL && styles.DayPickerNavigation_leftButton__horizontalDefault, !isRTL && styles.DayPickerNavigation_rightButton__horizontalDefault]))), _toConsumableArray(isVertical && [styles.DayPickerNavigation_button__vertical, styles.DayPickerNavigation_nextButton__vertical].concat(_toConsumableArray(isDefaultNavNext && [styles.DayPickerNavigation_button__verticalDefault, styles.DayPickerNavigation_nextButton__verticalDefault, isVerticalScrollable && styles.DayPickerNavigation_nextButton__verticalScrollableDefault]))))), { - 'aria-label': phrases.jumpToNextMonth, - onClick: onNextMonthClick, - onKeyUp: function () { - function onKeyUp(e) { - var key = e.key; - - if (key === 'Enter' || key === ' ') onNextMonthClick(e); - } - - return onKeyUp; - }(), - onMouseUp: function () { - function onMouseUp(e) { - e.currentTarget.blur(); - } - - return onMouseUp; - }() - }), - navNextIcon - ) - ); -} - -DayPickerNavigation.propTypes = propTypes; -DayPickerNavigation.defaultProps = defaultProps; - -exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) { - var _ref2$reactDates = _ref2.reactDates, - color = _ref2$reactDates.color, - zIndex = _ref2$reactDates.zIndex; - return { - DayPickerNavigation: { - position: 'relative', - zIndex: zIndex + 2 - }, - - DayPickerNavigation__horizontal: { - height: 0 - }, - - DayPickerNavigation__vertical: {}, - DayPickerNavigation__verticalScrollable: {}, - - DayPickerNavigation__verticalDefault: { - position: 'absolute', - width: '100%', - height: 52, - bottom: 0, - left: 0 - }, - - DayPickerNavigation__verticalScrollableDefault: { - position: 'relative' - }, - - DayPickerNavigation_button: { - cursor: 'pointer', - userSelect: 'none', - border: 0, - padding: 0, - margin: 0 - }, - - DayPickerNavigation_button__default: { - border: '1px solid ' + String(color.core.borderLight), - backgroundColor: color.background, - color: color.placeholderText, - - ':focus': { - border: '1px solid ' + String(color.core.borderMedium) - }, - - ':hover': { - border: '1px solid ' + String(color.core.borderMedium) - }, - - ':active': { - background: color.backgroundDark - } - }, - - DayPickerNavigation_button__horizontal: {}, - - DayPickerNavigation_button__horizontalDefault: { - position: 'absolute', - top: 18, - lineHeight: 0.78, - borderRadius: 3, - padding: '6px 9px' - }, - - DayPickerNavigation_leftButton__horizontalDefault: { - left: 22 - }, - - DayPickerNavigation_rightButton__horizontalDefault: { - right: 22 - }, - - DayPickerNavigation_button__vertical: {}, - - DayPickerNavigation_button__verticalDefault: { - padding: 5, - background: color.background, - boxShadow: '0 0 5px 2px rgba(0, 0, 0, 0.1)', - position: 'relative', - display: 'inline-block', - height: '100%', - width: '50%' - }, - - DayPickerNavigation_prevButton__verticalDefault: {}, - - DayPickerNavigation_nextButton__verticalDefault: { - borderLeft: 0 - }, - - DayPickerNavigation_nextButton__verticalScrollableDefault: { - width: '100%' - }, - - DayPickerNavigation_svg__horizontal: { - height: 19, - width: 19, - fill: color.core.grayLight, - display: 'block' - }, - - DayPickerNavigation_svg__vertical: { - height: 42, - width: 42, - fill: color.text, - display: 'block' - } - }; -})(DayPickerNavigation); - -/***/ }), -/* 327 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var ChevronUp = function () { - function ChevronUp(props) { - return _react2['default'].createElement( - 'svg', - props, - _react2['default'].createElement('path', { - d: 'M32.1 712.6l453.2-452.2c11-11 21-11 32 0l453.2 452.2c4 5 6 10 6 16 0 13-10 23-22 23-7 0-12-2-16-7L501.3 308.5 64.1 744.7c-4 5-9 7-15 7-7 0-12-2-17-7-9-11-9-21 0-32.1z' - }) - ); - } - - return ChevronUp; -}(); - -ChevronUp.defaultProps = { - viewBox: '0 0 1000 1000' -}; -exports['default'] = ChevronUp; - -/***/ }), -/* 328 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var ChevronDown = function () { - function ChevronDown(props) { - return _react2['default'].createElement( - 'svg', - props, - _react2['default'].createElement('path', { - d: 'M967.5 288.5L514.3 740.7c-11 11-21 11-32 0L29.1 288.5c-4-5-6-11-6-16 0-13 10-23 23-23 6 0 11 2 15 7l437.2 436.2 437.2-436.2c4-5 9-7 16-7 6 0 11 2 16 7 9 10.9 9 21 0 32z' - }) - ); - } - - return ChevronDown; -}(); - -ChevronDown.defaultProps = { - viewBox: '0 0 1000 1000' -}; -exports['default'] = ChevronDown; - -/***/ }), -/* 329 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.BOTTOM_RIGHT = exports.TOP_RIGHT = exports.TOP_LEFT = undefined; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _reactWithStyles = __webpack_require__(56); - -var _defaultPhrases = __webpack_require__(47); - -var _getPhrasePropTypes = __webpack_require__(51); - -var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); - -var _KeyboardShortcutRow = __webpack_require__(330); - -var _KeyboardShortcutRow2 = _interopRequireDefault(_KeyboardShortcutRow); - -var _CloseButton = __webpack_require__(96); - -var _CloseButton2 = _interopRequireDefault(_CloseButton); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var TOP_LEFT = exports.TOP_LEFT = 'top-left'; -var TOP_RIGHT = exports.TOP_RIGHT = 'top-right'; -var BOTTOM_RIGHT = exports.BOTTOM_RIGHT = 'bottom-right'; - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, { - block: _propTypes2['default'].bool, - buttonLocation: _propTypes2['default'].oneOf([TOP_LEFT, TOP_RIGHT, BOTTOM_RIGHT]), - showKeyboardShortcutsPanel: _propTypes2['default'].bool, - openKeyboardShortcutsPanel: _propTypes2['default'].func, - closeKeyboardShortcutsPanel: _propTypes2['default'].func, - phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerKeyboardShortcutsPhrases)) -})); - -var defaultProps = { - block: false, - buttonLocation: BOTTOM_RIGHT, - showKeyboardShortcutsPanel: false, - openKeyboardShortcutsPanel: function () { - function openKeyboardShortcutsPanel() {} - - return openKeyboardShortcutsPanel; - }(), - closeKeyboardShortcutsPanel: function () { - function closeKeyboardShortcutsPanel() {} - - return closeKeyboardShortcutsPanel; - }(), - - phrases: _defaultPhrases.DayPickerKeyboardShortcutsPhrases -}; - -function getKeyboardShortcuts(phrases) { - return [{ - unicode: '↵', - label: phrases.enterKey, - action: phrases.selectFocusedDate - }, { - unicode: '←/→', - label: phrases.leftArrowRightArrow, - action: phrases.moveFocusByOneDay - }, { - unicode: '↑/↓', - label: phrases.upArrowDownArrow, - action: phrases.moveFocusByOneWeek - }, { - unicode: 'PgUp/PgDn', - label: phrases.pageUpPageDown, - action: phrases.moveFocusByOneMonth - }, { - unicode: 'Home/End', - label: phrases.homeEnd, - action: phrases.moveFocustoStartAndEndOfWeek - }, { - unicode: 'Esc', - label: phrases.escape, - action: phrases.returnFocusToInput - }, { - unicode: '?', - label: phrases.questionMark, - action: phrases.openThisPanel - }]; -} - -var DayPickerKeyboardShortcuts = function (_React$Component) { - _inherits(DayPickerKeyboardShortcuts, _React$Component); - - function DayPickerKeyboardShortcuts() { - var _ref; - - _classCallCheck(this, DayPickerKeyboardShortcuts); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - var _this = _possibleConstructorReturn(this, (_ref = DayPickerKeyboardShortcuts.__proto__ || Object.getPrototypeOf(DayPickerKeyboardShortcuts)).call.apply(_ref, [this].concat(args))); - - var phrases = _this.props.phrases; - - _this.keyboardShortcuts = getKeyboardShortcuts(phrases); - - _this.onShowKeyboardShortcutsButtonClick = _this.onShowKeyboardShortcutsButtonClick.bind(_this); - _this.setShowKeyboardShortcutsButtonRef = _this.setShowKeyboardShortcutsButtonRef.bind(_this); - _this.setHideKeyboardShortcutsButtonRef = _this.setHideKeyboardShortcutsButtonRef.bind(_this); - _this.handleFocus = _this.handleFocus.bind(_this); - _this.onKeyDown = _this.onKeyDown.bind(_this); - return _this; - } - - _createClass(DayPickerKeyboardShortcuts, [{ - key: 'componentWillReceiveProps', - value: function () { - function componentWillReceiveProps(nextProps) { - var phrases = this.props.phrases; - - if (nextProps.phrases !== phrases) { - this.keyboardShortcuts = getKeyboardShortcuts(nextProps.phrases); - } - } - - return componentWillReceiveProps; - }() - }, { - key: 'componentDidUpdate', - value: function () { - function componentDidUpdate() { - this.handleFocus(); - } - - return componentDidUpdate; - }() - }, { - key: 'onKeyDown', - value: function () { - function onKeyDown(e) { - e.stopPropagation(); - - var closeKeyboardShortcutsPanel = this.props.closeKeyboardShortcutsPanel; - // Because the close button is the only focusable element inside of the panel, this - // amounts to a very basic focus trap. The user can exit the panel by "pressing" the - // close button or hitting escape - - switch (e.key) { - case 'Enter': - case ' ': - case 'Spacebar': // for older browsers - case 'Escape': - closeKeyboardShortcutsPanel(); - break; - - // do nothing - this allows the up and down arrows continue their - // default behavior of scrolling the content of the Keyboard Shortcuts Panel - // which is needed when only a single month is shown for instance. - case 'ArrowUp': - case 'ArrowDown': - break; - - // completely block the rest of the keys that have functionality outside of this panel - case 'Tab': - case 'Home': - case 'End': - case 'PageUp': - case 'PageDown': - case 'ArrowLeft': - case 'ArrowRight': - e.preventDefault(); - break; - - default: - break; - } - } - - return onKeyDown; - }() - }, { - key: 'onShowKeyboardShortcutsButtonClick', - value: function () { - function onShowKeyboardShortcutsButtonClick() { - var _this2 = this; - - var openKeyboardShortcutsPanel = this.props.openKeyboardShortcutsPanel; - - // we want to return focus to this button after closing the keyboard shortcuts panel - - openKeyboardShortcutsPanel(function () { - _this2.showKeyboardShortcutsButton.focus(); - }); - } - - return onShowKeyboardShortcutsButtonClick; - }() - }, { - key: 'setShowKeyboardShortcutsButtonRef', - value: function () { - function setShowKeyboardShortcutsButtonRef(ref) { - this.showKeyboardShortcutsButton = ref; - } - - return setShowKeyboardShortcutsButtonRef; - }() - }, { - key: 'setHideKeyboardShortcutsButtonRef', - value: function () { - function setHideKeyboardShortcutsButtonRef(ref) { - this.hideKeyboardShortcutsButton = ref; - } - - return setHideKeyboardShortcutsButtonRef; - }() - }, { - key: 'handleFocus', - value: function () { - function handleFocus() { - if (this.hideKeyboardShortcutsButton) { - // automatically move focus into the dialog by moving - // to the only interactive element, the hide button - this.hideKeyboardShortcutsButton.focus(); - } - } - - return handleFocus; - }() - }, { - key: 'render', - value: function () { - function render() { - var _this3 = this; - - var _props = this.props, - block = _props.block, - buttonLocation = _props.buttonLocation, - showKeyboardShortcutsPanel = _props.showKeyboardShortcutsPanel, - closeKeyboardShortcutsPanel = _props.closeKeyboardShortcutsPanel, - styles = _props.styles, - phrases = _props.phrases; - - - var toggleButtonText = showKeyboardShortcutsPanel ? phrases.hideKeyboardShortcutsPanel : phrases.showKeyboardShortcutsPanel; - - var bottomRight = buttonLocation === BOTTOM_RIGHT; - var topRight = buttonLocation === TOP_RIGHT; - var topLeft = buttonLocation === TOP_LEFT; - - return _react2['default'].createElement( - 'div', - null, - _react2['default'].createElement( - 'button', - _extends({ - ref: this.setShowKeyboardShortcutsButtonRef - }, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_buttonReset, styles.DayPickerKeyboardShortcuts_show, bottomRight && styles.DayPickerKeyboardShortcuts_show__bottomRight, topRight && styles.DayPickerKeyboardShortcuts_show__topRight, topLeft && styles.DayPickerKeyboardShortcuts_show__topLeft), { - type: 'button', - 'aria-label': toggleButtonText, - onClick: this.onShowKeyboardShortcutsButtonClick, - onKeyDown: function () { - function onKeyDown(e) { - if (e.key === 'Enter') { - e.preventDefault(); - } else if (e.key === 'Space') { - _this3.onShowKeyboardShortcutsButtonClick(e); - } - } - - return onKeyDown; - }(), - onMouseUp: function () { - function onMouseUp(e) { - e.currentTarget.blur(); - } - - return onMouseUp; - }() - }), - _react2['default'].createElement( - 'span', - (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_showSpan, bottomRight && styles.DayPickerKeyboardShortcuts_showSpan__bottomRight, topRight && styles.DayPickerKeyboardShortcuts_showSpan__topRight, topLeft && styles.DayPickerKeyboardShortcuts_showSpan__topLeft), - '?' - ) - ), - showKeyboardShortcutsPanel && _react2['default'].createElement( - 'div', - _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_panel), { - role: 'dialog', - 'aria-labelledby': 'DayPickerKeyboardShortcuts_title', - 'aria-describedby': 'DayPickerKeyboardShortcuts_description' - }), - _react2['default'].createElement( - 'div', - _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_title), { - id: 'DayPickerKeyboardShortcuts_title' - }), - phrases.keyboardShortcuts - ), - _react2['default'].createElement( - 'button', - _extends({ - ref: this.setHideKeyboardShortcutsButtonRef - }, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_buttonReset, styles.DayPickerKeyboardShortcuts_close), { - type: 'button', - tabIndex: '0', - 'aria-label': phrases.hideKeyboardShortcutsPanel, - onClick: closeKeyboardShortcutsPanel, - onKeyDown: this.onKeyDown - }), - _react2['default'].createElement(_CloseButton2['default'], (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_closeSvg)) - ), - _react2['default'].createElement( - 'ul', - _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_list), { - id: 'DayPickerKeyboardShortcuts_description' - }), - this.keyboardShortcuts.map(function (_ref2) { - var unicode = _ref2.unicode, - label = _ref2.label, - action = _ref2.action; - return _react2['default'].createElement(_KeyboardShortcutRow2['default'], { - key: label, - unicode: unicode, - label: label, - action: action, - block: block - }); - }) - ) - ) - ); - } - - return render; - }() - }]); - - return DayPickerKeyboardShortcuts; -}(_react2['default'].Component); - -DayPickerKeyboardShortcuts.propTypes = propTypes; -DayPickerKeyboardShortcuts.defaultProps = defaultProps; - -exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref3) { - var _ref3$reactDates = _ref3.reactDates, - color = _ref3$reactDates.color, - font = _ref3$reactDates.font, - zIndex = _ref3$reactDates.zIndex; - return { - DayPickerKeyboardShortcuts_buttonReset: { - background: 'none', - border: 0, - borderRadius: 0, - color: 'inherit', - font: 'inherit', - lineHeight: 'normal', - overflow: 'visible', - padding: 0, - cursor: 'pointer', - fontSize: font.size, - - ':active': { - outline: 'none' - } - }, - - DayPickerKeyboardShortcuts_show: { - width: 22, - position: 'absolute', - zIndex: zIndex + 2 - }, - - DayPickerKeyboardShortcuts_show__bottomRight: { - borderTop: '26px solid transparent', - borderRight: '33px solid ' + String(color.core.primary), - bottom: 0, - right: 0, - - ':hover': { - borderRight: '33px solid ' + String(color.core.primary_dark) - } - }, - - DayPickerKeyboardShortcuts_show__topRight: { - borderBottom: '26px solid transparent', - borderRight: '33px solid ' + String(color.core.primary), - top: 0, - right: 0, - - ':hover': { - borderRight: '33px solid ' + String(color.core.primary_dark) - } - }, - - DayPickerKeyboardShortcuts_show__topLeft: { - borderBottom: '26px solid transparent', - borderLeft: '33px solid ' + String(color.core.primary), - top: 0, - left: 0, - - ':hover': { - borderLeft: '33px solid ' + String(color.core.primary_dark) - } - }, - - DayPickerKeyboardShortcuts_showSpan: { - color: color.core.white, - position: 'absolute' - }, - - DayPickerKeyboardShortcuts_showSpan__bottomRight: { - bottom: 0, - right: -28 - }, - - DayPickerKeyboardShortcuts_showSpan__topRight: { - top: 1, - right: -28 - }, - - DayPickerKeyboardShortcuts_showSpan__topLeft: { - top: 1, - left: -28 - }, - - DayPickerKeyboardShortcuts_panel: { - overflow: 'auto', - background: color.background, - border: '1px solid ' + String(color.core.border), - borderRadius: 2, - position: 'absolute', - top: 0, - bottom: 0, - right: 0, - left: 0, - zIndex: zIndex + 2, - padding: 22, - margin: 33 - }, - - DayPickerKeyboardShortcuts_title: { - fontSize: 16, - fontWeight: 'bold', - margin: 0 - }, - - DayPickerKeyboardShortcuts_list: { - listStyle: 'none', - padding: 0, - fontSize: font.size - }, - - DayPickerKeyboardShortcuts_close: { - position: 'absolute', - right: 22, - top: 22, - zIndex: zIndex + 2, - - ':active': { - outline: 'none' - } - }, - - DayPickerKeyboardShortcuts_closeSvg: { - height: 15, - width: 15, - fill: color.core.grayLighter, - - ':hover': { - fill: color.core.grayLight - }, - - ':focus': { - fill: color.core.grayLight - } - } - }; -})(DayPickerKeyboardShortcuts); - -/***/ }), -/* 330 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(31); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _airbnbPropTypes = __webpack_require__(43); - -var _reactWithStyles = __webpack_require__(56); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, { - unicode: _propTypes2['default'].string.isRequired, - label: _propTypes2['default'].string.isRequired, - action: _propTypes2['default'].string.isRequired, - block: _propTypes2['default'].bool -})); - -var defaultProps = { - block: false -}; - -function KeyboardShortcutRow(_ref) { - var unicode = _ref.unicode, - label = _ref.label, - action = _ref.action, - block = _ref.block, - styles = _ref.styles; - - return _react2['default'].createElement( - 'li', - (0, _reactWithStyles.css)(styles.KeyboardShortcutRow, block && styles.KeyboardShortcutRow__block), - _react2['default'].createElement( - 'div', - (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_keyContainer, block && styles.KeyboardShortcutRow_keyContainer__block), - _react2['default'].createElement( - 'span', - _extends({}, (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_key), { - role: 'img', - 'aria-label': String(label) + ',' // add comma so screen readers will pause before reading action - }), - unicode - ) - ), - _react2['default'].createElement( - 'div', - (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_action), - action - ) - ); -} - -KeyboardShortcutRow.propTypes = propTypes; -KeyboardShortcutRow.defaultProps = defaultProps; - -exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) { - var color = _ref2.reactDates.color; - return { - KeyboardShortcutRow: { - listStyle: 'none', - margin: '6px 0' - }, - - KeyboardShortcutRow__block: { - marginBottom: 16 - }, - - KeyboardShortcutRow_keyContainer: { - display: 'inline-block', - whiteSpace: 'nowrap', - textAlign: 'right', - marginRight: 6 - }, - - KeyboardShortcutRow_keyContainer__block: { - textAlign: 'left', - display: 'inline' - }, - - KeyboardShortcutRow_key: { - fontFamily: 'monospace', - fontSize: 12, - textTransform: 'uppercase', - background: color.core.grayLightest, - padding: '2px 6px' - }, - - KeyboardShortcutRow_action: { - display: 'inline', - wordBreak: 'break-word', - marginLeft: 8 - } - }; -})(KeyboardShortcutRow); - -/***/ }), -/* 331 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = getNumberOfCalendarMonthWeeks; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function getBlankDaysBeforeFirstDay(firstDayOfMonth, firstDayOfWeek) { - var weekDayDiff = firstDayOfMonth.day() - firstDayOfWeek; - return (weekDayDiff + 7) % 7; -} - -function getNumberOfCalendarMonthWeeks(month) { - var firstDayOfWeek = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _moment2['default'].localeData().firstDayOfWeek(); - - var firstDayOfMonth = month.clone().startOf('month'); - var numBlankDays = getBlankDaysBeforeFirstDay(firstDayOfMonth, firstDayOfWeek); - return Math.ceil((numBlankDays + month.daysInMonth()) / 7); -} - -/***/ }), -/* 332 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = getActiveElement; -function getActiveElement() { - return typeof document !== 'undefined' && document.activeElement; -} - -/***/ }), -/* 333 */ +/* 140 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var GetIntrinsic = __webpack_require__(58); + +var callBind = __webpack_require__(182); + +var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf')); + +module.exports = function callBoundIntrinsic(name, allowMissing) { + var intrinsic = GetIntrinsic(name, !!allowMissing); + if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.')) { + return callBind(intrinsic); + } + return intrinsic; +}; + + +/***/ }), +/* 141 */ +/***/ (function(module, exports, __webpack_require__) { + +var moment = __webpack_require__(43); +var momentValidationWrapper = __webpack_require__(354); +var core = __webpack_require__(355); + +module.exports = { + + momentObj : core.createMomentChecker( + 'object', + function(obj) { + return typeof obj === 'object'; + }, + function isValid(value) { + return momentValidationWrapper.isValidMoment(value); + }, + 'Moment' + ), + + momentString : core.createMomentChecker( + 'string', + function(str) { + return typeof str === 'string'; + }, + function isValid(value) { + return momentValidationWrapper.isValidMoment(moment(value)); + }, + 'Moment' + ), + + momentDurationObj : core.createMomentChecker( + 'object', + function(obj) { + return typeof obj === 'object'; + }, + function isValid(value) { + return moment.isDuration(value); + }, + 'Duration' + ), + +}; + + +/***/ }), +/* 142 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -22951,2047 +12494,94 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.PureSingleDatePicker = undefined; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _object = __webpack_require__(46); - -var _object2 = _interopRequireDefault(_object); - -var _react = __webpack_require__(27); - -var _react2 = _interopRequireDefault(_react); - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _reactWithStyles = __webpack_require__(56); - -var _reactPortal = __webpack_require__(203); - -var _airbnbPropTypes = __webpack_require__(43); - -var _consolidatedEvents = __webpack_require__(103); - -var _isTouchDevice = __webpack_require__(82); - -var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice); - -var _reactOutsideClickHandler = __webpack_require__(126); - -var _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler); - -var _SingleDatePickerShape = __webpack_require__(195); - -var _SingleDatePickerShape2 = _interopRequireDefault(_SingleDatePickerShape); - -var _defaultPhrases = __webpack_require__(47); - -var _toMomentObject = __webpack_require__(80); - -var _toMomentObject2 = _interopRequireDefault(_toMomentObject); - -var _toLocalizedDateString = __webpack_require__(129); - -var _toLocalizedDateString2 = _interopRequireDefault(_toLocalizedDateString); - -var _getResponsiveContainerStyles = __webpack_require__(176); - -var _getResponsiveContainerStyles2 = _interopRequireDefault(_getResponsiveContainerStyles); - -var _getDetachedContainerStyles = __webpack_require__(177); - -var _getDetachedContainerStyles2 = _interopRequireDefault(_getDetachedContainerStyles); - -var _getInputHeight = __webpack_require__(127); - -var _getInputHeight2 = _interopRequireDefault(_getInputHeight); - -var _isInclusivelyAfterDay = __webpack_require__(94); - -var _isInclusivelyAfterDay2 = _interopRequireDefault(_isInclusivelyAfterDay); - -var _disableScroll2 = __webpack_require__(178); - -var _disableScroll3 = _interopRequireDefault(_disableScroll2); - -var _SingleDatePickerInput = __webpack_require__(196); - -var _SingleDatePickerInput2 = _interopRequireDefault(_SingleDatePickerInput); - -var _DayPickerSingleDateController = __webpack_require__(194); - -var _DayPickerSingleDateController2 = _interopRequireDefault(_DayPickerSingleDateController); - -var _CloseButton = __webpack_require__(96); - -var _CloseButton2 = _interopRequireDefault(_CloseButton); - -var _constants = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, _SingleDatePickerShape2['default'])); - -var defaultProps = { - // required props for a functional interactive SingleDatePicker - date: null, - focused: false, - - // input related props - id: 'date', - placeholder: 'Date', - disabled: false, - required: false, - readOnly: false, - screenReaderInputMessage: '', - showClearDate: false, - showDefaultInputIcon: false, - inputIconPosition: _constants.ICON_BEFORE_POSITION, - customInputIcon: null, - customCloseIcon: null, - noBorder: false, - block: false, - small: false, - regular: false, - verticalSpacing: _constants.DEFAULT_VERTICAL_SPACING, - keepFocusOnInput: false, - - // calendar presentation and interaction related props - orientation: _constants.HORIZONTAL_ORIENTATION, - anchorDirection: _constants.ANCHOR_LEFT, - openDirection: _constants.OPEN_DOWN, - horizontalMargin: 0, - withPortal: false, - withFullScreenPortal: false, - appendToBody: false, - disableScroll: false, - initialVisibleMonth: null, - firstDayOfWeek: null, - numberOfMonths: 2, - keepOpenOnDateSelect: false, - reopenPickerOnClearDate: false, - renderCalendarInfo: null, - calendarInfoPosition: _constants.INFO_POSITION_BOTTOM, - hideKeyboardShortcutsPanel: false, - daySize: _constants.DAY_SIZE, - isRTL: false, - verticalHeight: null, - transitionDuration: undefined, - horizontalMonthPadding: 13, - - // navigation related props - navPrev: null, - navNext: null, - - onPrevMonthClick: function () { - function onPrevMonthClick() {} - - return onPrevMonthClick; - }(), - onNextMonthClick: function () { - function onNextMonthClick() {} - - return onNextMonthClick; - }(), - onClose: function () { - function onClose() {} - - return onClose; - }(), - - - // month presentation and interaction related props - renderMonthText: null, - - // day presentation and interaction related props - renderCalendarDay: undefined, - renderDayContents: null, - renderMonthElement: null, - enableOutsideDays: false, - isDayBlocked: function () { - function isDayBlocked() { - return false; - } - - return isDayBlocked; - }(), - isOutsideRange: function () { - function isOutsideRange(day) { - return !(0, _isInclusivelyAfterDay2['default'])(day, (0, _moment2['default'])()); - } - - return isOutsideRange; - }(), - isDayHighlighted: function () { - function isDayHighlighted() {} - - return isDayHighlighted; - }(), - - // internationalization props - displayFormat: function () { - function displayFormat() { - return _moment2['default'].localeData().longDateFormat('L'); - } - - return displayFormat; - }(), - monthFormat: 'MMMM YYYY', - weekDayFormat: 'dd', - phrases: _defaultPhrases.SingleDatePickerPhrases, - dayAriaLabelFormat: undefined -}; - -var SingleDatePicker = function (_React$Component) { - _inherits(SingleDatePicker, _React$Component); - - function SingleDatePicker(props) { - _classCallCheck(this, SingleDatePicker); - - var _this = _possibleConstructorReturn(this, (SingleDatePicker.__proto__ || Object.getPrototypeOf(SingleDatePicker)).call(this, props)); - - _this.isTouchDevice = false; - - _this.state = { - dayPickerContainerStyles: {}, - isDayPickerFocused: false, - isInputFocused: false, - showKeyboardShortcuts: false - }; - - _this.onDayPickerFocus = _this.onDayPickerFocus.bind(_this); - _this.onDayPickerBlur = _this.onDayPickerBlur.bind(_this); - _this.showKeyboardShortcutsPanel = _this.showKeyboardShortcutsPanel.bind(_this); - - _this.onChange = _this.onChange.bind(_this); - _this.onFocus = _this.onFocus.bind(_this); - _this.onClearFocus = _this.onClearFocus.bind(_this); - _this.clearDate = _this.clearDate.bind(_this); - - _this.responsivizePickerPosition = _this.responsivizePickerPosition.bind(_this); - _this.disableScroll = _this.disableScroll.bind(_this); - - _this.setDayPickerContainerRef = _this.setDayPickerContainerRef.bind(_this); - _this.setContainerRef = _this.setContainerRef.bind(_this); - return _this; - } - - /* istanbul ignore next */ - - - _createClass(SingleDatePicker, [{ - key: 'componentDidMount', - value: function () { - function componentDidMount() { - this.removeEventListener = (0, _consolidatedEvents.addEventListener)(window, 'resize', this.responsivizePickerPosition, { passive: true }); - this.responsivizePickerPosition(); - this.disableScroll(); - - var focused = this.props.focused; - - - if (focused) { - this.setState({ - isInputFocused: true - }); - } - - this.isTouchDevice = (0, _isTouchDevice2['default'])(); - } - - return componentDidMount; - }() - }, { - key: 'componentDidUpdate', - value: function () { - function componentDidUpdate(prevProps) { - var focused = this.props.focused; - - if (!prevProps.focused && focused) { - this.responsivizePickerPosition(); - this.disableScroll(); - } else if (prevProps.focused && !focused) { - if (this.enableScroll) this.enableScroll(); - } - } - - return componentDidUpdate; - }() - - /* istanbul ignore next */ - - }, { - key: 'componentWillUnmount', - value: function () { - function componentWillUnmount() { - if (this.removeEventListener) this.removeEventListener(); - if (this.enableScroll) this.enableScroll(); - } - - return componentWillUnmount; - }() - }, { - key: 'onChange', - value: function () { - function onChange(dateString) { - var _props = this.props, - isOutsideRange = _props.isOutsideRange, - keepOpenOnDateSelect = _props.keepOpenOnDateSelect, - onDateChange = _props.onDateChange, - onFocusChange = _props.onFocusChange, - onClose = _props.onClose; - - var newDate = (0, _toMomentObject2['default'])(dateString, this.getDisplayFormat()); - - var isValid = newDate && !isOutsideRange(newDate); - if (isValid) { - onDateChange(newDate); - if (!keepOpenOnDateSelect) { - onFocusChange({ focused: false }); - onClose({ date: newDate }); - } - } else { - onDateChange(null); - } - } - - return onChange; - }() - }, { - key: 'onFocus', - value: function () { - function onFocus() { - var _props2 = this.props, - disabled = _props2.disabled, - onFocusChange = _props2.onFocusChange, - readOnly = _props2.readOnly, - withPortal = _props2.withPortal, - withFullScreenPortal = _props2.withFullScreenPortal, - keepFocusOnInput = _props2.keepFocusOnInput; - - - var withAnyPortal = withPortal || withFullScreenPortal; - var moveFocusToDayPicker = withAnyPortal || readOnly && !keepFocusOnInput || this.isTouchDevice && !keepFocusOnInput; - - if (moveFocusToDayPicker) { - this.onDayPickerFocus(); - } else { - this.onDayPickerBlur(); - } - - if (!disabled) { - onFocusChange({ focused: true }); - } - } - - return onFocus; - }() - }, { - key: 'onClearFocus', - value: function () { - function onClearFocus(event) { - var _props3 = this.props, - date = _props3.date, - focused = _props3.focused, - onFocusChange = _props3.onFocusChange, - onClose = _props3.onClose, - appendToBody = _props3.appendToBody; - - if (!focused) return; - if (appendToBody && this.dayPickerContainer.contains(event.target)) return; - - this.setState({ - isInputFocused: false, - isDayPickerFocused: false - }); - - onFocusChange({ focused: false }); - onClose({ date: date }); - } - - return onClearFocus; - }() - }, { - key: 'onDayPickerFocus', - value: function () { - function onDayPickerFocus() { - this.setState({ - isInputFocused: false, - isDayPickerFocused: true, - showKeyboardShortcuts: false - }); - } - - return onDayPickerFocus; - }() - }, { - key: 'onDayPickerBlur', - value: function () { - function onDayPickerBlur() { - this.setState({ - isInputFocused: true, - isDayPickerFocused: false, - showKeyboardShortcuts: false - }); - } - - return onDayPickerBlur; - }() - }, { - key: 'getDateString', - value: function () { - function getDateString(date) { - var displayFormat = this.getDisplayFormat(); - if (date && displayFormat) { - return date && date.format(displayFormat); - } - return (0, _toLocalizedDateString2['default'])(date); - } - - return getDateString; - }() - }, { - key: 'getDisplayFormat', - value: function () { - function getDisplayFormat() { - var displayFormat = this.props.displayFormat; - - return typeof displayFormat === 'string' ? displayFormat : displayFormat(); - } - - return getDisplayFormat; - }() - }, { - key: 'setDayPickerContainerRef', - value: function () { - function setDayPickerContainerRef(ref) { - this.dayPickerContainer = ref; - } - - return setDayPickerContainerRef; - }() - }, { - key: 'setContainerRef', - value: function () { - function setContainerRef(ref) { - this.container = ref; - } - - return setContainerRef; - }() - }, { - key: 'clearDate', - value: function () { - function clearDate() { - var _props4 = this.props, - onDateChange = _props4.onDateChange, - reopenPickerOnClearDate = _props4.reopenPickerOnClearDate, - onFocusChange = _props4.onFocusChange; - - onDateChange(null); - if (reopenPickerOnClearDate) { - onFocusChange({ focused: true }); - } - } - - return clearDate; - }() - }, { - key: 'disableScroll', - value: function () { - function disableScroll() { - var _props5 = this.props, - appendToBody = _props5.appendToBody, - propDisableScroll = _props5.disableScroll, - focused = _props5.focused; - - if (!appendToBody && !propDisableScroll) return; - if (!focused) return; - - // Disable scroll for every ancestor of this up to the - // document level. This ensures the input and the picker never move. Other - // sibling elements or the picker itself can scroll. - this.enableScroll = (0, _disableScroll3['default'])(this.container); - } - - return disableScroll; - }() - - /* istanbul ignore next */ - - }, { - key: 'responsivizePickerPosition', - value: function () { - function responsivizePickerPosition() { - // It's possible the portal props have been changed in response to window resizes - // So let's ensure we reset this back to the base state each time - this.setState({ dayPickerContainerStyles: {} }); - - var _props6 = this.props, - openDirection = _props6.openDirection, - anchorDirection = _props6.anchorDirection, - horizontalMargin = _props6.horizontalMargin, - withPortal = _props6.withPortal, - withFullScreenPortal = _props6.withFullScreenPortal, - appendToBody = _props6.appendToBody, - focused = _props6.focused; - var dayPickerContainerStyles = this.state.dayPickerContainerStyles; - - - if (!focused) { - return; - } - - var isAnchoredLeft = anchorDirection === _constants.ANCHOR_LEFT; - - if (!withPortal && !withFullScreenPortal) { - var containerRect = this.dayPickerContainer.getBoundingClientRect(); - var currentOffset = dayPickerContainerStyles[anchorDirection] || 0; - var containerEdge = isAnchoredLeft ? containerRect[_constants.ANCHOR_RIGHT] : containerRect[_constants.ANCHOR_LEFT]; - - this.setState({ - dayPickerContainerStyles: (0, _object2['default'])({}, (0, _getResponsiveContainerStyles2['default'])(anchorDirection, currentOffset, containerEdge, horizontalMargin), appendToBody && (0, _getDetachedContainerStyles2['default'])(openDirection, anchorDirection, this.container)) - }); - } - } - - return responsivizePickerPosition; - }() - }, { - key: 'showKeyboardShortcutsPanel', - value: function () { - function showKeyboardShortcutsPanel() { - this.setState({ - isInputFocused: false, - isDayPickerFocused: true, - showKeyboardShortcuts: true - }); - } - - return showKeyboardShortcutsPanel; - }() - }, { - key: 'maybeRenderDayPickerWithPortal', - value: function () { - function maybeRenderDayPickerWithPortal() { - var _props7 = this.props, - focused = _props7.focused, - withPortal = _props7.withPortal, - withFullScreenPortal = _props7.withFullScreenPortal, - appendToBody = _props7.appendToBody; - - - if (!focused) { - return null; - } - - if (withPortal || withFullScreenPortal || appendToBody) { - return _react2['default'].createElement( - _reactPortal.Portal, - null, - this.renderDayPicker() - ); - } - - return this.renderDayPicker(); - } - - return maybeRenderDayPickerWithPortal; - }() - }, { - key: 'renderDayPicker', - value: function () { - function renderDayPicker() { - var _props8 = this.props, - anchorDirection = _props8.anchorDirection, - openDirection = _props8.openDirection, - onDateChange = _props8.onDateChange, - date = _props8.date, - onFocusChange = _props8.onFocusChange, - focused = _props8.focused, - enableOutsideDays = _props8.enableOutsideDays, - numberOfMonths = _props8.numberOfMonths, - orientation = _props8.orientation, - monthFormat = _props8.monthFormat, - navPrev = _props8.navPrev, - navNext = _props8.navNext, - onPrevMonthClick = _props8.onPrevMonthClick, - onNextMonthClick = _props8.onNextMonthClick, - onClose = _props8.onClose, - withPortal = _props8.withPortal, - withFullScreenPortal = _props8.withFullScreenPortal, - keepOpenOnDateSelect = _props8.keepOpenOnDateSelect, - initialVisibleMonth = _props8.initialVisibleMonth, - renderMonthText = _props8.renderMonthText, - renderCalendarDay = _props8.renderCalendarDay, - renderDayContents = _props8.renderDayContents, - renderCalendarInfo = _props8.renderCalendarInfo, - renderMonthElement = _props8.renderMonthElement, - calendarInfoPosition = _props8.calendarInfoPosition, - hideKeyboardShortcutsPanel = _props8.hideKeyboardShortcutsPanel, - firstDayOfWeek = _props8.firstDayOfWeek, - customCloseIcon = _props8.customCloseIcon, - phrases = _props8.phrases, - dayAriaLabelFormat = _props8.dayAriaLabelFormat, - daySize = _props8.daySize, - isRTL = _props8.isRTL, - isOutsideRange = _props8.isOutsideRange, - isDayBlocked = _props8.isDayBlocked, - isDayHighlighted = _props8.isDayHighlighted, - weekDayFormat = _props8.weekDayFormat, - styles = _props8.styles, - verticalHeight = _props8.verticalHeight, - transitionDuration = _props8.transitionDuration, - verticalSpacing = _props8.verticalSpacing, - horizontalMonthPadding = _props8.horizontalMonthPadding, - small = _props8.small, - reactDates = _props8.theme.reactDates; - var _state = this.state, - dayPickerContainerStyles = _state.dayPickerContainerStyles, - isDayPickerFocused = _state.isDayPickerFocused, - showKeyboardShortcuts = _state.showKeyboardShortcuts; - - - var onOutsideClick = !withFullScreenPortal && withPortal ? this.onClearFocus : undefined; - var closeIcon = customCloseIcon || _react2['default'].createElement(_CloseButton2['default'], null); - - var inputHeight = (0, _getInputHeight2['default'])(reactDates, small); - - var withAnyPortal = withPortal || withFullScreenPortal; - - return _react2['default'].createElement( - 'div', - _extends({ // eslint-disable-line jsx-a11y/no-static-element-interactions - ref: this.setDayPickerContainerRef - }, (0, _reactWithStyles.css)(styles.SingleDatePicker_picker, anchorDirection === _constants.ANCHOR_LEFT && styles.SingleDatePicker_picker__directionLeft, anchorDirection === _constants.ANCHOR_RIGHT && styles.SingleDatePicker_picker__directionRight, openDirection === _constants.OPEN_DOWN && styles.SingleDatePicker_picker__openDown, openDirection === _constants.OPEN_UP && styles.SingleDatePicker_picker__openUp, !withAnyPortal && openDirection === _constants.OPEN_DOWN && { - top: inputHeight + verticalSpacing - }, !withAnyPortal && openDirection === _constants.OPEN_UP && { - bottom: inputHeight + verticalSpacing - }, orientation === _constants.HORIZONTAL_ORIENTATION && styles.SingleDatePicker_picker__horizontal, orientation === _constants.VERTICAL_ORIENTATION && styles.SingleDatePicker_picker__vertical, withAnyPortal && styles.SingleDatePicker_picker__portal, withFullScreenPortal && styles.SingleDatePicker_picker__fullScreenPortal, isRTL && styles.SingleDatePicker_picker__rtl, dayPickerContainerStyles), { - onClick: onOutsideClick - }), - _react2['default'].createElement(_DayPickerSingleDateController2['default'], { - date: date, - onDateChange: onDateChange, - onFocusChange: onFocusChange, - orientation: orientation, - enableOutsideDays: enableOutsideDays, - numberOfMonths: numberOfMonths, - monthFormat: monthFormat, - withPortal: withAnyPortal, - focused: focused, - keepOpenOnDateSelect: keepOpenOnDateSelect, - hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel, - initialVisibleMonth: initialVisibleMonth, - navPrev: navPrev, - navNext: navNext, - onPrevMonthClick: onPrevMonthClick, - onNextMonthClick: onNextMonthClick, - onClose: onClose, - renderMonthText: renderMonthText, - renderCalendarDay: renderCalendarDay, - renderDayContents: renderDayContents, - renderCalendarInfo: renderCalendarInfo, - renderMonthElement: renderMonthElement, - calendarInfoPosition: calendarInfoPosition, - isFocused: isDayPickerFocused, - showKeyboardShortcuts: showKeyboardShortcuts, - onBlur: this.onDayPickerBlur, - phrases: phrases, - dayAriaLabelFormat: dayAriaLabelFormat, - daySize: daySize, - isRTL: isRTL, - isOutsideRange: isOutsideRange, - isDayBlocked: isDayBlocked, - isDayHighlighted: isDayHighlighted, - firstDayOfWeek: firstDayOfWeek, - weekDayFormat: weekDayFormat, - verticalHeight: verticalHeight, - transitionDuration: transitionDuration, - horizontalMonthPadding: horizontalMonthPadding - }), - withFullScreenPortal && _react2['default'].createElement( - 'button', - _extends({}, (0, _reactWithStyles.css)(styles.SingleDatePicker_closeButton), { - 'aria-label': phrases.closeDatePicker, - type: 'button', - onClick: this.onClearFocus - }), - _react2['default'].createElement( - 'div', - (0, _reactWithStyles.css)(styles.SingleDatePicker_closeButton_svg), - closeIcon - ) - ) - ); - } - - return renderDayPicker; - }() - }, { - key: 'render', - value: function () { - function render() { - var _props9 = this.props, - id = _props9.id, - placeholder = _props9.placeholder, - disabled = _props9.disabled, - focused = _props9.focused, - required = _props9.required, - readOnly = _props9.readOnly, - openDirection = _props9.openDirection, - showClearDate = _props9.showClearDate, - showDefaultInputIcon = _props9.showDefaultInputIcon, - inputIconPosition = _props9.inputIconPosition, - customCloseIcon = _props9.customCloseIcon, - customInputIcon = _props9.customInputIcon, - date = _props9.date, - phrases = _props9.phrases, - withPortal = _props9.withPortal, - withFullScreenPortal = _props9.withFullScreenPortal, - screenReaderInputMessage = _props9.screenReaderInputMessage, - isRTL = _props9.isRTL, - noBorder = _props9.noBorder, - block = _props9.block, - small = _props9.small, - regular = _props9.regular, - verticalSpacing = _props9.verticalSpacing, - styles = _props9.styles; - var isInputFocused = this.state.isInputFocused; - - - var displayValue = this.getDateString(date); - - var enableOutsideClick = !withPortal && !withFullScreenPortal; - - var hideFang = verticalSpacing < _constants.FANG_HEIGHT_PX; - - var input = _react2['default'].createElement(_SingleDatePickerInput2['default'], { - id: id, - placeholder: placeholder, - focused: focused, - isFocused: isInputFocused, - disabled: disabled, - required: required, - readOnly: readOnly, - openDirection: openDirection, - showCaret: !withPortal && !withFullScreenPortal && !hideFang, - onClearDate: this.clearDate, - showClearDate: showClearDate, - showDefaultInputIcon: showDefaultInputIcon, - inputIconPosition: inputIconPosition, - customCloseIcon: customCloseIcon, - customInputIcon: customInputIcon, - displayValue: displayValue, - onChange: this.onChange, - onFocus: this.onFocus, - onKeyDownShiftTab: this.onClearFocus, - onKeyDownTab: this.onClearFocus, - onKeyDownArrowDown: this.onDayPickerFocus, - onKeyDownQuestionMark: this.showKeyboardShortcutsPanel, - screenReaderMessage: screenReaderInputMessage, - phrases: phrases, - isRTL: isRTL, - noBorder: noBorder, - block: block, - small: small, - regular: regular, - verticalSpacing: verticalSpacing - }); - - return _react2['default'].createElement( - 'div', - _extends({ - ref: this.setContainerRef - }, (0, _reactWithStyles.css)(styles.SingleDatePicker, block && styles.SingleDatePicker__block)), - enableOutsideClick && _react2['default'].createElement( - _reactOutsideClickHandler2['default'], - { onOutsideClick: this.onClearFocus }, - input, - this.maybeRenderDayPickerWithPortal() - ), - !enableOutsideClick && input, - !enableOutsideClick && this.maybeRenderDayPickerWithPortal() - ); - } - - return render; - }() - }]); - - return SingleDatePicker; -}(_react2['default'].Component); - -SingleDatePicker.propTypes = propTypes; -SingleDatePicker.defaultProps = defaultProps; - -exports.PureSingleDatePicker = SingleDatePicker; -exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) { - var _ref$reactDates = _ref.reactDates, - color = _ref$reactDates.color, - zIndex = _ref$reactDates.zIndex; - return { - SingleDatePicker: { - position: 'relative', - display: 'inline-block' - }, - - SingleDatePicker__block: { - display: 'block' - }, - - SingleDatePicker_picker: { - zIndex: zIndex + 1, - backgroundColor: color.background, - position: 'absolute' - }, - - SingleDatePicker_picker__rtl: { - direction: 'rtl' - }, - - SingleDatePicker_picker__directionLeft: { - left: 0 - }, - - SingleDatePicker_picker__directionRight: { - right: 0 - }, - - SingleDatePicker_picker__portal: { - backgroundColor: 'rgba(0, 0, 0, 0.3)', - position: 'fixed', - top: 0, - left: 0, - height: '100%', - width: '100%' - }, - - SingleDatePicker_picker__fullScreenPortal: { - backgroundColor: color.background - }, - - SingleDatePicker_closeButton: { - background: 'none', - border: 0, - color: 'inherit', - font: 'inherit', - lineHeight: 'normal', - overflow: 'visible', - cursor: 'pointer', - - position: 'absolute', - top: 0, - right: 0, - padding: 15, - zIndex: zIndex + 2, - - ':hover': { - color: 'darken(' + String(color.core.grayLighter) + ', 10%)', - textDecoration: 'none' - }, - - ':focus': { - color: 'darken(' + String(color.core.grayLighter) + ', 10%)', - textDecoration: 'none' - } - }, - - SingleDatePicker_closeButton_svg: { - height: 15, - width: 15, - fill: color.core.grayLighter - } - }; -})(SingleDatePicker); - -/***/ }), -/* 334 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = isInclusivelyBeforeDay; - -var _moment = __webpack_require__(29); - -var _moment2 = _interopRequireDefault(_moment); - -var _isAfterDay = __webpack_require__(106); - -var _isAfterDay2 = _interopRequireDefault(_isAfterDay); + +var _propTypes = __webpack_require__(28); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _constants = __webpack_require__(77); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } -function isInclusivelyBeforeDay(a, b) { - if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false; - return !(0, _isAfterDay2['default'])(a, b); -} - -/***/ }), -/* 335 */, -/* 336 */, -/* 337 */, -/* 338 */, -/* 339 */, -/* 340 */, -/* 341 */, -/* 342 */, -/* 343 */, -/* 344 */, -/* 345 */, -/* 346 */, -/* 347 */, -/* 348 */, -/* 349 */, -/* 350 */, -/* 351 */, -/* 352 */, -/* 353 */, -/* 354 */, -/* 355 */, -/* 356 */, -/* 357 */, -/* 358 */, -/* 359 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread.js -var objectSpread = __webpack_require__(7); - -// EXTERNAL MODULE: external {"this":["wp","element"]} -var external_this_wp_element_ = __webpack_require__(0); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/primitives/svg/index.js - - -/** - * WordPress dependencies - */ - -var svg_Circle = function Circle(props) { - return Object(external_this_wp_element_["createElement"])('circle', props); -}; -var svg_G = function G(props) { - return Object(external_this_wp_element_["createElement"])('g', props); -}; -var svg_Path = function Path(props) { - return Object(external_this_wp_element_["createElement"])('path', props); -}; -var svg_Polygon = function Polygon(props) { - return Object(external_this_wp_element_["createElement"])('polygon', props); -}; -var svg_Rect = function Rect(props) { - return Object(external_this_wp_element_["createElement"])('rect', props); -}; -var svg_SVG = function SVG(props) { - var appliedProps = Object(objectSpread["a" /* default */])({}, props, { - role: 'img', - 'aria-hidden': 'true', - focusable: 'false' - }); // Disable reason: We need to have a way to render HTML tag for web. - // eslint-disable-next-line react/forbid-elements - - - return Object(external_this_wp_element_["createElement"])("svg", appliedProps); -}; - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/primitives/index.js - - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js -var defineProperty = __webpack_require__(15); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules -var slicedToArray = __webpack_require__(28); - -// EXTERNAL MODULE: ./node_modules/classnames/index.js -var classnames = __webpack_require__(16); -var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/animate/index.js - - - -/** - * External dependencies - */ - - -function Animate(_ref) { - var type = _ref.type, - _ref$options = _ref.options, - options = _ref$options === void 0 ? {} : _ref$options, - children = _ref.children; - - if (type === 'appear') { - var _classnames; - - var _options$origin = options.origin, - origin = _options$origin === void 0 ? 'top' : _options$origin; - - var _origin$split = origin.split(' '), - _origin$split2 = Object(slicedToArray["a" /* default */])(_origin$split, 2), - yAxis = _origin$split2[0], - _origin$split2$ = _origin$split2[1], - xAxis = _origin$split2$ === void 0 ? 'center' : _origin$split2$; - - return children({ - className: classnames_default()('components-animate__appear', (_classnames = {}, Object(defineProperty["a" /* default */])(_classnames, 'is-from-' + xAxis, xAxis !== 'center'), Object(defineProperty["a" /* default */])(_classnames, 'is-from-' + yAxis, yAxis !== 'middle'), _classnames)) - }); - } - - if (type === 'slide-in') { - var _options$origin2 = options.origin, - _origin = _options$origin2 === void 0 ? 'left' : _options$origin2; - - return children({ - className: classnames_default()('components-animate__slide-in', 'is-from-' + _origin) - }); - } - - return children({}); -} - -/* harmony default export */ var build_module_animate = (Animate); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js -var classCallCheck = __webpack_require__(10); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js -var possibleConstructorReturn = __webpack_require__(11); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js -var getPrototypeOf = __webpack_require__(12); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js -var createClass = __webpack_require__(9); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules -var inherits = __webpack_require__(13); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js -var assertThisInitialized = __webpack_require__(3); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules -var toConsumableArray = __webpack_require__(17); - -// EXTERNAL MODULE: external "lodash" -var external_lodash_ = __webpack_require__(2); - -// EXTERNAL MODULE: external {"this":["wp","keycodes"]} -var external_this_wp_keycodes_ = __webpack_require__(18); - -// EXTERNAL MODULE: external {"this":["wp","i18n"]} -var external_this_wp_i18n_ = __webpack_require__(1); - -// EXTERNAL MODULE: external {"this":["wp","compose"]} -var external_this_wp_compose_ = __webpack_require__(6); - -// EXTERNAL MODULE: external {"this":["wp","richText"]} -var external_this_wp_richText_ = __webpack_require__(20); - -// EXTERNAL MODULE: external {"this":["wp","dom"]} -var external_this_wp_dom_ = __webpack_require__(24); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js -var esm_extends = __webpack_require__(19); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-outside/index.js - - - - - - - - - -/** - * External dependencies - */ - -/** - * WordPress dependencies - */ - - - -/** - * Input types which are classified as button types, for use in considering - * whether element is a (focus-normalized) button. - * - * @type {string[]} - */ - -var INPUT_BUTTON_TYPES = ['button', 'submit']; -/** - * Returns true if the given element is a button element subject to focus - * normalization, or false otherwise. - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus - * - * @param {Element} element Element to test. - * - * @return {boolean} Whether element is a button. - */ - -function isFocusNormalizedButton(element) { - switch (element.nodeName) { - case 'A': - case 'BUTTON': - return true; - - case 'INPUT': - return Object(external_lodash_["includes"])(INPUT_BUTTON_TYPES, element.type); - } - - return false; -} - -/* harmony default export */ var with_focus_outside = (Object(external_this_wp_compose_["createHigherOrderComponent"])(function (WrappedComponent) { +exports['default'] = _propTypes2['default'].oneOf([_constants.HORIZONTAL_ORIENTATION, _constants.VERTICAL_ORIENTATION, _constants.VERTICAL_SCROLLABLE]); + +/***/ }), +/* 143 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @providesModule shallowCompare + */ + + + +var shallowEqual = __webpack_require__(369); + +/** + * Does a shallow comparison for props and state. + * See ReactComponentWithPureRenderMixin + * See also https://facebook.github.io/react/docs/shallow-compare.html + */ +function shallowCompare(instance, nextProps, nextState) { return ( - /*#__PURE__*/ - function (_Component) { - Object(inherits["a" /* default */])(_class, _Component); - - function _class() { - var _this; - - Object(classCallCheck["a" /* default */])(this, _class); - - _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(_class).apply(this, arguments)); - _this.bindNode = _this.bindNode.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.cancelBlurCheck = _this.cancelBlurCheck.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.queueBlurCheck = _this.queueBlurCheck.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.normalizeButtonFocus = _this.normalizeButtonFocus.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - return _this; - } - - Object(createClass["a" /* default */])(_class, [{ - key: "componentWillUnmount", - value: function componentWillUnmount() { - this.cancelBlurCheck(); - } - }, { - key: "bindNode", - value: function bindNode(node) { - if (node) { - this.node = node; - } else { - delete this.node; - this.cancelBlurCheck(); - } - } - }, { - key: "queueBlurCheck", - value: function queueBlurCheck(event) { - var _this2 = this; - - // React does not allow using an event reference asynchronously - // due to recycling behavior, except when explicitly persisted. - event.persist(); // Skip blur check if clicking button. See `normalizeButtonFocus`. - - if (this.preventBlurCheck) { - return; - } - - this.blurCheckTimeout = setTimeout(function () { - if ('function' === typeof _this2.node.handleFocusOutside) { - _this2.node.handleFocusOutside(event); - } - }, 0); - } - }, { - key: "cancelBlurCheck", - value: function cancelBlurCheck() { - clearTimeout(this.blurCheckTimeout); - } - /** - * Handles a mousedown or mouseup event to respectively assign and - * unassign a flag for preventing blur check on button elements. Some - * browsers, namely Firefox and Safari, do not emit a focus event on - * button elements when clicked, while others do. The logic here - * intends to normalize this as treating click on buttons as focus. - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus - * - * @param {MouseEvent} event Event for mousedown or mouseup. - */ - - }, { - key: "normalizeButtonFocus", - value: function normalizeButtonFocus(event) { - var type = event.type, - target = event.target; - var isInteractionEnd = Object(external_lodash_["includes"])(['mouseup', 'touchend'], type); - - if (isInteractionEnd) { - this.preventBlurCheck = false; - } else if (isFocusNormalizedButton(target)) { - this.preventBlurCheck = true; - } - } - }, { - key: "render", - value: function render() { - // Disable reason: See `normalizeButtonFocus` for browser-specific - // focus event normalization. - - /* eslint-disable jsx-a11y/no-static-element-interactions */ - return Object(external_this_wp_element_["createElement"])("div", { - onFocus: this.cancelBlurCheck, - onMouseDown: this.normalizeButtonFocus, - onMouseUp: this.normalizeButtonFocus, - onTouchStart: this.normalizeButtonFocus, - onTouchEnd: this.normalizeButtonFocus, - onBlur: this.queueBlurCheck - }, Object(external_this_wp_element_["createElement"])(WrappedComponent, Object(esm_extends["a" /* default */])({ - ref: this.bindNode - }, this.props))); - /* eslint-enable jsx-a11y/no-static-element-interactions */ - } - }]); - - return _class; - }(external_this_wp_element_["Component"]) + !shallowEqual(instance.props, nextProps) || + !shallowEqual(instance.state, nextState) ); -}, 'withFocusOutside')); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js + 1 modules -var objectWithoutProperties = __webpack_require__(21); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/button/index.js - - - -/** - * External dependencies - */ - -/** - * WordPress dependencies - */ - - -function Button(props, ref) { - var href = props.href, - target = props.target, - isPrimary = props.isPrimary, - isLarge = props.isLarge, - isSmall = props.isSmall, - isTertiary = props.isTertiary, - isToggled = props.isToggled, - isBusy = props.isBusy, - isDefault = props.isDefault, - isLink = props.isLink, - isDestructive = props.isDestructive, - className = props.className, - disabled = props.disabled, - additionalProps = Object(objectWithoutProperties["a" /* default */])(props, ["href", "target", "isPrimary", "isLarge", "isSmall", "isTertiary", "isToggled", "isBusy", "isDefault", "isLink", "isDestructive", "className", "disabled"]); - - var classes = classnames_default()('components-button', className, { - 'is-button': isDefault || isPrimary || isLarge || isSmall, - 'is-default': isDefault || isLarge || isSmall, - 'is-primary': isPrimary, - 'is-large': isLarge, - 'is-small': isSmall, - 'is-tertiary': isTertiary, - 'is-toggled': isToggled, - 'is-busy': isBusy, - 'is-link': isLink, - 'is-destructive': isDestructive - }); - var tag = href !== undefined && !disabled ? 'a' : 'button'; - var tagProps = tag === 'a' ? { - href: href, - target: target - } : { - type: 'button', - disabled: disabled - }; - return Object(external_this_wp_element_["createElement"])(tag, Object(objectSpread["a" /* default */])({}, tagProps, additionalProps, { - className: classes, - ref: ref - })); -} -/* harmony default export */ var build_module_button = (Object(external_this_wp_element_["forwardRef"])(Button)); - -// EXTERNAL MODULE: external {"this":["wp","isShallowEqual"]} -var external_this_wp_isShallowEqual_ = __webpack_require__(42); -var external_this_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_isShallowEqual_); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/utils.js - - - -/** - * Module constants - */ -var HEIGHT_OFFSET = 10; // used by the arrow and a bit of empty space - -var isMobileViewport = function isMobileViewport() { - return window.innerWidth < 782; -}; - -var isRTL = function isRTL() { - return document.documentElement.dir === 'rtl'; -}; -/** - * Utility used to compute the popover position over the xAxis - * - * @param {Object} anchorRect Anchor Rect. - * @param {Object} contentSize Content Size. - * @param {string} xAxis Desired xAxis. - * @param {string} chosenYAxis yAxis to be used. - * @param {boolean} expandOnMobile Whether to expand the popover on mobile or not. - * - * @return {Object} Popover xAxis position and constraints. - */ - - -function computePopoverXAxisPosition(anchorRect, contentSize, xAxis, chosenYAxis) { - var width = contentSize.width; // Correct xAxis for RTL support - - if (xAxis === 'left' && isRTL()) { - xAxis = 'right'; - } else if (xAxis === 'right' && isRTL()) { - xAxis = 'left'; - } // x axis alignment choices - - - var anchorMidPoint = Math.round(anchorRect.left + anchorRect.width / 2); - var centerAlignment = { - popoverLeft: anchorMidPoint, - contentWidth: (anchorMidPoint - width / 2 > 0 ? width / 2 : anchorMidPoint) + (anchorMidPoint + width / 2 > window.innerWidth ? window.innerWidth - anchorMidPoint : width / 2) - }; - var leftAlignmentX = chosenYAxis === 'middle' ? anchorRect.left : anchorMidPoint; - var leftAlignment = { - popoverLeft: leftAlignmentX, - contentWidth: leftAlignmentX - width > 0 ? width : leftAlignmentX - }; - var rightAlignmentX = chosenYAxis === 'middle' ? anchorRect.right : anchorMidPoint; - var rightAlignment = { - popoverLeft: rightAlignmentX, - contentWidth: rightAlignmentX + width > window.innerWidth ? window.innerWidth - rightAlignmentX : width - }; // Choosing the x axis - - var chosenXAxis; - var contentWidth = null; - - if (xAxis === 'center' && centerAlignment.contentWidth === width) { - chosenXAxis = 'center'; - } else if (xAxis === 'left' && leftAlignment.contentWidth === width) { - chosenXAxis = 'left'; - } else if (xAxis === 'right' && rightAlignment.contentWidth === width) { - chosenXAxis = 'right'; - } else { - chosenXAxis = leftAlignment.contentWidth > rightAlignment.contentWidth ? 'left' : 'right'; - var chosenWidth = chosenXAxis === 'left' ? leftAlignment.contentWidth : rightAlignment.contentWidth; - contentWidth = chosenWidth !== width ? chosenWidth : null; - } - - var popoverLeft; - - if (chosenXAxis === 'center') { - popoverLeft = centerAlignment.popoverLeft; - } else if (chosenXAxis === 'left') { - popoverLeft = leftAlignment.popoverLeft; - } else { - popoverLeft = rightAlignment.popoverLeft; - } - - return { - xAxis: chosenXAxis, - popoverLeft: popoverLeft, - contentWidth: contentWidth - }; -} -/** - * Utility used to compute the popover position over the yAxis - * - * @param {Object} anchorRect Anchor Rect. - * @param {Object} contentSize Content Size. - * @param {string} yAxis Desired yAxis. - * @param {boolean} expandOnMobile Whether to expand the popover on mobile or not. - * - * @return {Object} Popover xAxis position and constraints. - */ - -function computePopoverYAxisPosition(anchorRect, contentSize, yAxis) { - var height = contentSize.height; // y axis alignment choices - - var anchorMidPoint = anchorRect.top + anchorRect.height / 2; - var middleAlignment = { - popoverTop: anchorMidPoint, - contentHeight: (anchorMidPoint - height / 2 > 0 ? height / 2 : anchorMidPoint) + (anchorMidPoint + height / 2 > window.innerHeight ? window.innerHeight - anchorMidPoint : height / 2) - }; - var topAlignment = { - popoverTop: anchorRect.top, - contentHeight: anchorRect.top - HEIGHT_OFFSET - height > 0 ? height : anchorRect.top - HEIGHT_OFFSET - }; - var bottomAlignment = { - popoverTop: anchorRect.bottom, - contentHeight: anchorRect.bottom + HEIGHT_OFFSET + height > window.innerHeight ? window.innerHeight - HEIGHT_OFFSET - anchorRect.bottom : height - }; // Choosing the y axis - - var chosenYAxis; - var contentHeight = null; - - if (yAxis === 'middle' && middleAlignment.contentHeight === height) { - chosenYAxis = 'middle'; - } else if (yAxis === 'top' && topAlignment.contentHeight === height) { - chosenYAxis = 'top'; - } else if (yAxis === 'bottom' && bottomAlignment.contentHeight === height) { - chosenYAxis = 'bottom'; - } else { - chosenYAxis = topAlignment.contentHeight > bottomAlignment.contentHeight ? 'top' : 'bottom'; - var chosenHeight = chosenYAxis === 'top' ? topAlignment.contentHeight : bottomAlignment.contentHeight; - contentHeight = chosenHeight !== height ? chosenHeight : null; - } - - var popoverTop; - - if (chosenYAxis === 'middle') { - popoverTop = middleAlignment.popoverTop; - } else if (chosenYAxis === 'top') { - popoverTop = topAlignment.popoverTop; - } else { - popoverTop = bottomAlignment.popoverTop; - } - - return { - yAxis: chosenYAxis, - popoverTop: popoverTop, - contentHeight: contentHeight - }; -} -/** - * Utility used to compute the popover position and the content max width/height for a popover - * given its anchor rect and its content size. - * - * @param {Object} anchorRect Anchor Rect. - * @param {Object} contentSize Content Size. - * @param {string} position Position. - * @param {boolean} expandOnMobile Whether to expand the popover on mobile or not. - * - * @return {Object} Popover position and constraints. - */ - -function utils_computePopoverPosition(anchorRect, contentSize) { - var position = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'top'; - var expandOnMobile = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - - var _position$split = position.split(' '), - _position$split2 = Object(slicedToArray["a" /* default */])(_position$split, 2), - yAxis = _position$split2[0], - _position$split2$ = _position$split2[1], - xAxis = _position$split2$ === void 0 ? 'center' : _position$split2$; - - var yAxisPosition = computePopoverYAxisPosition(anchorRect, contentSize, yAxis); - var xAxisPosition = computePopoverXAxisPosition(anchorRect, contentSize, xAxis, yAxisPosition.yAxis); - return Object(objectSpread["a" /* default */])({ - isMobile: isMobileViewport() && expandOnMobile - }, xAxisPosition, yAxisPosition); -} - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-return/context.js - - - - - - - - - -/** - * External dependencies - */ - -/** - * WordPress dependencies - */ - - - -var _createContext = Object(external_this_wp_element_["createContext"])({ - focusHistory: [] -}), - Provider = _createContext.Provider, - Consumer = _createContext.Consumer; - -Provider.displayName = 'FocusReturnProvider'; -Consumer.displayName = 'FocusReturnConsumer'; -/** - * The maximum history length to capture for the focus stack. When exceeded, - * items should be shifted from the stack for each consecutive push. - * - * @type {number} - */ - -var MAX_STACK_LENGTH = 100; - -var context_FocusReturnProvider = -/*#__PURE__*/ -function (_Component) { - Object(inherits["a" /* default */])(FocusReturnProvider, _Component); - - function FocusReturnProvider() { - var _this; - - Object(classCallCheck["a" /* default */])(this, FocusReturnProvider); - - _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(FocusReturnProvider).apply(this, arguments)); - _this.onFocus = _this.onFocus.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.state = { - focusHistory: [] - }; - return _this; - } - - Object(createClass["a" /* default */])(FocusReturnProvider, [{ - key: "onFocus", - value: function onFocus(event) { - var focusHistory = this.state.focusHistory; // Push the focused element to the history stack, keeping only unique - // members but preferring the _last_ occurrence of any duplicates. - // Lodash's `uniq` behavior favors the first occurrence, so the array - // is temporarily reversed prior to it being called upon. Uniqueness - // helps avoid situations where, such as in a constrained tabbing area, - // the user changes focus enough within a transient element that the - // stack may otherwise only consist of members pending destruction, at - // which point focus might have been lost. - - var nextFocusHistory = Object(external_lodash_["uniq"])([].concat(Object(toConsumableArray["a" /* default */])(focusHistory), [event.target]).slice(-1 * MAX_STACK_LENGTH).reverse()).reverse(); - this.setState({ - focusHistory: nextFocusHistory - }); - } - }, { - key: "render", - value: function render() { - var _this$props = this.props, - children = _this$props.children, - className = _this$props.className; - return Object(external_this_wp_element_["createElement"])(Provider, { - value: this.state - }, Object(external_this_wp_element_["createElement"])("div", { - onFocus: this.onFocus, - className: className - }, children)); - } - }]); - - return FocusReturnProvider; -}(external_this_wp_element_["Component"]); - -/* harmony default export */ var with_focus_return_context = (context_FocusReturnProvider); - - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-return/index.js - - - - - - - - - -/** - * External dependencies - */ - -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - - -/** - * Returns true if the given object is component-like. An object is component- - * like if it is an instance of wp.element.Component, or is a function. - * - * @param {*} object Object to test. - * - * @return {boolean} Whether object is component-like. - */ - -function isComponentLike(object) { - return object instanceof external_this_wp_element_["Component"] || typeof object === 'function'; -} -/** - * Higher Order Component used to be used to wrap disposable elements like - * sidebars, modals, dropdowns. When mounting the wrapped component, we track a - * reference to the current active element so we know where to restore focus - * when the component is unmounted. - * - * @param {(WPComponent|Object)} options The component to be enhanced with - * focus return behavior, or an object - * describing the component and the - * focus return characteristics. - * - * @return {Component} Component with the focus restauration behaviour. - */ - - -function withFocusReturn(options) { - // Normalize as overloaded form `withFocusReturn( options )( Component )` - // or as `withFocusReturn( Component )`. - if (isComponentLike(options)) { - var WrappedComponent = options; - return withFocusReturn({})(WrappedComponent); - } - - var _options$onFocusRetur = options.onFocusReturn, - onFocusReturn = _options$onFocusRetur === void 0 ? external_lodash_["stubTrue"] : _options$onFocusRetur; - return function (WrappedComponent) { - var FocusReturn = - /*#__PURE__*/ - function (_Component) { - Object(inherits["a" /* default */])(FocusReturn, _Component); - - function FocusReturn() { - var _this; - - Object(classCallCheck["a" /* default */])(this, FocusReturn); - - _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(FocusReturn).apply(this, arguments)); - _this.ownFocusedElements = new Set(); - _this.activeElementOnMount = document.activeElement; - - _this.setIsFocusedFalse = function () { - return _this.isFocused = false; - }; - - _this.setIsFocusedTrue = function (event) { - _this.ownFocusedElements.add(event.target); - - _this.isFocused = true; - }; - - return _this; - } - - Object(createClass["a" /* default */])(FocusReturn, [{ - key: "componentWillUnmount", - value: function componentWillUnmount() { - var activeElementOnMount = this.activeElementOnMount, - isFocused = this.isFocused, - ownFocusedElements = this.ownFocusedElements; - - if (!isFocused) { - return; - } // Defer to the component's own explicit focus return behavior, - // if specified. The function should return `false` to prevent - // the default behavior otherwise occurring here. This allows - // for support that the `onFocusReturn` decides to allow the - // default behavior to occur under some conditions. - - - if (onFocusReturn() === false) { - return; - } - - var stack = [].concat(Object(toConsumableArray["a" /* default */])(external_lodash_["without"].apply(void 0, [this.props.focusHistory].concat(Object(toConsumableArray["a" /* default */])(ownFocusedElements)))), [activeElementOnMount]); - var candidate; - - while (candidate = stack.pop()) { - if (document.body.contains(candidate)) { - candidate.focus(); - return; - } - } - } - }, { - key: "render", - value: function render() { - return Object(external_this_wp_element_["createElement"])("div", { - onFocus: this.setIsFocusedTrue, - onBlur: this.setIsFocusedFalse - }, Object(external_this_wp_element_["createElement"])(WrappedComponent, this.props)); - } - }]); - - return FocusReturn; - }(external_this_wp_element_["Component"]); - - return function (props) { - return Object(external_this_wp_element_["createElement"])(Consumer, null, function (context) { - return Object(external_this_wp_element_["createElement"])(FocusReturn, Object(esm_extends["a" /* default */])({}, props, context)); - }); - }; - }; -} - -/* harmony default export */ var with_focus_return = (Object(external_this_wp_compose_["createHigherOrderComponent"])(withFocusReturn, 'withFocusReturn')); - - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-constrained-tabbing/index.js - - - - - - - - -/** - * WordPress dependencies - */ - - - - -var withConstrainedTabbing = Object(external_this_wp_compose_["createHigherOrderComponent"])(function (WrappedComponent) { - return ( - /*#__PURE__*/ - function (_Component) { - Object(inherits["a" /* default */])(_class, _Component); - - function _class() { - var _this; - - Object(classCallCheck["a" /* default */])(this, _class); - - _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(_class).apply(this, arguments)); - _this.focusContainRef = Object(external_this_wp_element_["createRef"])(); - _this.handleTabBehaviour = _this.handleTabBehaviour.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - return _this; - } - - Object(createClass["a" /* default */])(_class, [{ - key: "handleTabBehaviour", - value: function handleTabBehaviour(event) { - if (event.keyCode !== external_this_wp_keycodes_["TAB"]) { - return; - } - - var tabbables = external_this_wp_dom_["focus"].tabbable.find(this.focusContainRef.current); - - if (!tabbables.length) { - return; - } - - var firstTabbable = tabbables[0]; - var lastTabbable = tabbables[tabbables.length - 1]; - - if (event.shiftKey && event.target === firstTabbable) { - event.preventDefault(); - lastTabbable.focus(); - } else if (!event.shiftKey && event.target === lastTabbable) { - event.preventDefault(); - firstTabbable.focus(); - /* - * When pressing Tab and none of the tabbables has focus, the keydown - * event happens on the wrapper div: move focus on the first tabbable. - */ - } else if (!tabbables.includes(event.target)) { - event.preventDefault(); - firstTabbable.focus(); - } - } - }, { - key: "render", - value: function render() { - // Disable reason: this component is non-interactive, but must capture - // events from the wrapped component to determine when the Tab key is used. - - /* eslint-disable jsx-a11y/no-static-element-interactions */ - return Object(external_this_wp_element_["createElement"])("div", { - onKeyDown: this.handleTabBehaviour, - ref: this.focusContainRef, - tabIndex: "-1" - }, Object(external_this_wp_element_["createElement"])(WrappedComponent, this.props)); - /* eslint-enable jsx-a11y/no-static-element-interactions */ - } - }]); - - return _class; - }(external_this_wp_element_["Component"]) - ); -}, 'withConstrainedTabbing'); -/* harmony default export */ var with_constrained_tabbing = (withConstrainedTabbing); - -// EXTERNAL MODULE: ./node_modules/react-click-outside/dist/index.js -var dist = __webpack_require__(108); -var dist_default = /*#__PURE__*/__webpack_require__.n(dist); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/detect-outside.js - - - - - - -/** - * External dependencies - */ - -/** - * WordPress dependencies - */ - - - -var detect_outside_PopoverDetectOutside = -/*#__PURE__*/ -function (_Component) { - Object(inherits["a" /* default */])(PopoverDetectOutside, _Component); - - function PopoverDetectOutside() { - Object(classCallCheck["a" /* default */])(this, PopoverDetectOutside); - - return Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(PopoverDetectOutside).apply(this, arguments)); - } - - Object(createClass["a" /* default */])(PopoverDetectOutside, [{ - key: "handleClickOutside", - value: function handleClickOutside(event) { - var onClickOutside = this.props.onClickOutside; - - if (onClickOutside) { - onClickOutside(event); - } - } - }, { - key: "render", - value: function render() { - return this.props.children; - } - }]); - - return PopoverDetectOutside; -}(external_this_wp_element_["Component"]); - -/* harmony default export */ var detect_outside = (dist_default()(detect_outside_PopoverDetectOutside)); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/shortcut/index.js - - -/** - * External dependencies - */ - - -function Shortcut(_ref) { - var shortcut = _ref.shortcut, - className = _ref.className; - - if (!shortcut) { - return null; - } - - var displayText; - var ariaLabel; - - if (Object(external_lodash_["isString"])(shortcut)) { - displayText = shortcut; - } - - if (Object(external_lodash_["isObject"])(shortcut)) { - displayText = shortcut.display; - ariaLabel = shortcut.ariaLabel; - } - - return Object(external_this_wp_element_["createElement"])("span", { - className: className, - "aria-label": ariaLabel - }, displayText); -} - -/* harmony default export */ var build_module_shortcut = (Shortcut); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tooltip/index.js - - - - - - - -/** - * External dependencies - */ - -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - - -/** - * Time over children to wait before showing tooltip - * - * @type {Number} - */ - -var TOOLTIP_DELAY = 700; - -var tooltip_Tooltip = -/*#__PURE__*/ -function (_Component) { - Object(inherits["a" /* default */])(Tooltip, _Component); - - function Tooltip() { - var _this; - - Object(classCallCheck["a" /* default */])(this, Tooltip); - - _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Tooltip).apply(this, arguments)); - _this.delayedSetIsOver = Object(external_lodash_["debounce"])(function (isOver) { - return _this.setState({ - isOver: isOver - }); - }, TOOLTIP_DELAY); - _this.state = { - isOver: false - }; - return _this; - } - - Object(createClass["a" /* default */])(Tooltip, [{ - key: "componentWillUnmount", - value: function componentWillUnmount() { - this.delayedSetIsOver.cancel(); - } - }, { - key: "emitToChild", - value: function emitToChild(eventName, event) { - var children = this.props.children; - - if (external_this_wp_element_["Children"].count(children) !== 1) { - return; - } - - var child = external_this_wp_element_["Children"].only(children); - - if (typeof child.props[eventName] === 'function') { - child.props[eventName](event); - } - } - }, { - key: "createToggleIsOver", - value: function createToggleIsOver(eventName, isDelayed) { - var _this2 = this; - - return function (event) { - // Preserve original child callback behavior - _this2.emitToChild(eventName, event); // Mouse events behave unreliably in React for disabled elements, - // firing on mouseenter but not mouseleave. Further, the default - // behavior for disabled elements in some browsers is to ignore - // mouse events. Don't bother trying to to handle them. - // - // See: https://github.com/facebook/react/issues/4251 - - - if (event.currentTarget.disabled) { - return; - } // Needed in case unsetting is over while delayed set pending, i.e. - // quickly blur/mouseleave before delayedSetIsOver is called - - - _this2.delayedSetIsOver.cancel(); - - var isOver = Object(external_lodash_["includes"])(['focus', 'mouseenter'], event.type); - - if (isOver === _this2.state.isOver) { - return; - } - - if (isDelayed) { - _this2.delayedSetIsOver(isOver); - } else { - _this2.setState({ - isOver: isOver - }); - } - }; - } - }, { - key: "render", - value: function render() { - var _this$props = this.props, - children = _this$props.children, - position = _this$props.position, - text = _this$props.text, - shortcut = _this$props.shortcut; - - if (external_this_wp_element_["Children"].count(children) !== 1) { - if (false) {} - - return children; - } - - var child = external_this_wp_element_["Children"].only(children); - var isOver = this.state.isOver; - return Object(external_this_wp_element_["cloneElement"])(child, { - onMouseEnter: this.createToggleIsOver('onMouseEnter', true), - onMouseLeave: this.createToggleIsOver('onMouseLeave'), - onClick: this.createToggleIsOver('onClick'), - onFocus: this.createToggleIsOver('onFocus'), - onBlur: this.createToggleIsOver('onBlur'), - children: Object(external_this_wp_element_["concatChildren"])(child.props.children, isOver && Object(external_this_wp_element_["createElement"])(popover, { - focusOnMount: false, - position: position, - className: "components-tooltip", - "aria-hidden": "true", - animate: false - }, text, Object(external_this_wp_element_["createElement"])(build_module_shortcut, { - className: "components-tooltip__shortcut", - shortcut: shortcut - }))) - }); - } - }]); - - return Tooltip; -}(external_this_wp_element_["Component"]); - -/* harmony default export */ var build_module_tooltip = (tooltip_Tooltip); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dashicon/icon-class.js -var IconClass = function IconClass(props) { - var icon = props.icon, - className = props.className; - return ['dashicon', 'dashicons-' + icon, className].filter(Boolean).join(' '); -}; - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dashicon/index.js - - - - - - +} + +module.exports = shallowCompare; + + +/***/ }), +/* 144 */, +/* 145 */ +/***/ (function(module, exports) { + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +module.exports = _inheritsLoose; + +/***/ }), +/* 146 */, +/* 147 */, +/* 148 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Dashicon; }); +/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8); +/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15); +/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20); +/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19); +/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23); +/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16); +/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(22); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(6); +/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_8__); + + + + + + + + + +function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(this, result); }; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } /* !!! IF YOU ARE EDITING dashicon/index.jsx @@ -25004,36 +12594,29 @@ * WordPress dependencies */ -/** - * Internal dependencies - */ - - - - -var dashicon_Dashicon = -/*#__PURE__*/ -function (_Component) { - Object(inherits["a" /* default */])(Dashicon, _Component); + + +var Dashicon = /*#__PURE__*/function (_Component) { + Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(Dashicon, _Component); + + var _super = _createSuper(Dashicon); function Dashicon() { - Object(classCallCheck["a" /* default */])(this, Dashicon); - - return Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Dashicon).apply(this, arguments)); - } - - Object(createClass["a" /* default */])(Dashicon, [{ - key: "shouldComponentUpdate", - value: function shouldComponentUpdate(nextProps) { - return this.props.icon !== nextProps.icon || this.props.size !== nextProps.size || this.props.className !== nextProps.className || this.props.ariaPressed !== nextProps.ariaPressed; - } - }, { + Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, Dashicon); + + return _super.apply(this, arguments); + } + + Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(Dashicon, [{ key: "render", value: function render() { var _this$props = this.props, icon = _this$props.icon, _this$props$size = _this$props.size, - size = _this$props$size === void 0 ? 20 : _this$props$size; + size = _this$props$size === void 0 ? 20 : _this$props$size, + className = _this$props.className, + extraProps = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_this$props, ["icon", "size", "className"]); + var path; switch (icon) { @@ -26194,8 +13777,8 @@ return null; } - var iconClass = IconClass(this.props); - return Object(external_this_wp_element_["createElement"])(svg_SVG, { + var iconClass = ['dashicon', 'dashicons-' + icon, className].filter(Boolean).join(' '); + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_8__["SVG"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({ "aria-hidden": true, role: "img", focusable: "false", @@ -26204,91 +13787,281 @@ width: size, height: size, viewBox: "0 0 20 20" - }, Object(external_this_wp_element_["createElement"])(svg_Path, { + }, extraProps), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_8__["Path"], { d: path })); } }]); return Dashicon; -}(external_this_wp_element_["Component"]); - - - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/icon-button/index.js - - - - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - - - - -function IconButton(props, ref) { - var icon = props.icon, - children = props.children, - label = props.label, - className = props.className, - tooltip = props.tooltip, - shortcut = props.shortcut, - labelPosition = props.labelPosition, - additionalProps = Object(objectWithoutProperties["a" /* default */])(props, ["icon", "children", "label", "className", "tooltip", "shortcut", "labelPosition"]); - - var ariaPressed = additionalProps['aria-pressed']; - var classes = classnames_default()('components-icon-button', className, { - 'has-text': children - }); - var tooltipText = tooltip || label; // Should show the tooltip if... - - var showTooltip = !additionalProps.disabled && ( // an explicit tooltip is passed or... - tooltip || // there's a shortcut or... - shortcut || // there's a label and... - !!label && ( // the children are empty and... - !children || Object(external_lodash_["isArray"])(children) && !children.length) && // the tooltip is not explicitly disabled. - false !== tooltip); - var element = Object(external_this_wp_element_["createElement"])(build_module_button, Object(esm_extends["a" /* default */])({ - "aria-label": label - }, additionalProps, { - className: classes, - ref: ref - }), Object(external_lodash_["isString"])(icon) ? Object(external_this_wp_element_["createElement"])(dashicon_Dashicon, { - icon: icon, - ariaPressed: ariaPressed - }) : icon, children); - - if (showTooltip) { - element = Object(external_this_wp_element_["createElement"])(build_module_tooltip, { - text: tooltipText, - shortcut: shortcut, - position: labelPosition - }, element); - } - - return element; -} - -/* harmony default export */ var icon_button = (Object(external_this_wp_element_["forwardRef"])(IconButton)); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/scroll-lock/index.js - - - - - +}(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["Component"]); + + + + +/***/ }), +/* 149 */ +/***/ (function(module, exports, __webpack_require__) { + +var e=__webpack_require__(13),n={display:"block",opacity:0,position:"absolute",top:0,left:0,height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",zIndex:-1},t=function(t){var r=t.onResize,u=e.useRef();return function(n,t){var r=function(){return n.current&&n.current.contentDocument&&n.current.contentDocument.defaultView};function u(){t();var e=r();e&&e.addEventListener("resize",t)}e.useEffect((function(){return r()?u():n.current&&n.current.addEventListener&&n.current.addEventListener("load",u),function(){var e=r();e&&"function"==typeof e.removeEventListener&&e.removeEventListener("resize",t)}}),[])}(u,(function(){return r(u)})),e.createElement("iframe",{style:n,src:"about:blank",ref:u,"aria-hidden":!0,tabIndex:-1,frameBorder:0})},r=function(e){return{width:null!=e?e.offsetWidth:null,height:null!=e?e.offsetHeight:null}};module.exports=function(n){void 0===n&&(n=r);var u=e.useState(n(null)),o=u[0],i=u[1],c=e.useCallback((function(e){return i(n(e.current))}),[n]);return[e.useMemo((function(){return e.createElement(t,{onResize:c})}),[c]),o]}; + + +/***/ }), +/* 150 */, +/* 151 */, +/* 152 */, +/* 153 */, +/* 154 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); +/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__); + + +/** + * WordPress dependencies + */ + +var close = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], { + d: "M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z" +})); +/* harmony default export */ __webpack_exports__["a"] = (close); + + +/***/ }), +/* 155 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); +/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__); + + +/** + * WordPress dependencies + */ + +var check = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], { + d: "M9 18.6L3.5 13l1-1L9 16.4l9.5-9.9 1 1z" +})); +/* harmony default export */ __webpack_exports__["a"] = (check); + + +/***/ }), +/* 156 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _propTypes = __webpack_require__(28); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _constants = __webpack_require__(77); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +exports['default'] = _propTypes2['default'].oneOf(_constants.WEEKDAYS); + +/***/ }), +/* 157 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _propTypes = __webpack_require__(28); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _airbnbPropTypes = __webpack_require__(85); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +exports['default'] = (0, _airbnbPropTypes.and)([_propTypes2['default'].instanceOf(Set), function () { + function modifiers(props, propName) { + for (var _len = arguments.length, rest = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { + rest[_key - 2] = arguments[_key]; + } + + var propValue = props[propName]; + + var firstError = void 0; + [].concat(_toConsumableArray(propValue)).some(function (v, i) { + var _PropTypes$string; + + var fakePropName = String(propName) + ': index ' + String(i); + firstError = (_PropTypes$string = _propTypes2['default'].string).isRequired.apply(_PropTypes$string, [_defineProperty({}, fakePropName, v), fakePropName].concat(rest)); + return firstError != null; + }); + return firstError == null ? null : firstError; + } + + return modifiers; +}()], 'Modifiers (Set of Strings)'); + +/***/ }), +/* 158 */, +/* 159 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useSlot; }); +/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _slot_fill_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(133); + + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +/** + * WordPress dependencies + */ + +/** + * Internal dependencies + */ + + +function useSlot(name) { + var registry = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useContext"])(_slot_fill_context__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"]); + var slot = registry.slots[name] || {}; + var slotFills = registry.fills[name]; + var fills = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useMemo"])(function () { + return slotFills || []; + }, [slotFills]); + var updateSlot = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(function (fillProps) { + registry.updateSlot(name, fillProps); + }, [name, registry.updateSlot]); + var unregisterSlot = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(function (slotRef) { + registry.unregisterSlot(name, slotRef); + }, [name, registry.unregisterSlot]); + var registerFill = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(function (fillRef) { + registry.registerFill(name, fillRef); + }, [name, registry.registerFill]); + var unregisterFill = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(function (fillRef) { + registry.unregisterFill(name, fillRef); + }, [name, registry.unregisterFill]); + return _objectSpread({}, slot, { + updateSlot: updateSlot, + unregisterSlot: unregisterSlot, + fills: fills, + registerFill: registerFill, + unregisterFill: unregisterFill + }); +} + + +/***/ }), +/* 160 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); +/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__); + + + +/** + * External dependencies + */ + + +function Animate(_ref) { + var type = _ref.type, + _ref$options = _ref.options, + options = _ref$options === void 0 ? {} : _ref$options, + children = _ref.children; + + if (type === 'appear') { + var _classnames; + + var _options$origin = options.origin, + origin = _options$origin === void 0 ? 'top' : _options$origin; + + var _origin$split = origin.split(' '), + _origin$split2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_origin$split, 2), + yAxis = _origin$split2[0], + _origin$split2$ = _origin$split2[1], + xAxis = _origin$split2$ === void 0 ? 'center' : _origin$split2$; + + return children({ + className: classnames__WEBPACK_IMPORTED_MODULE_2___default()('components-animate__appear', (_classnames = {}, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_classnames, 'is-from-' + xAxis, xAxis !== 'center'), Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_classnames, 'is-from-' + yAxis, yAxis !== 'middle'), _classnames)) + }); + } + + if (type === 'slide-in') { + var _options$origin2 = options.origin, + _origin = _options$origin2 === void 0 ? 'left' : _options$origin2; + + return children({ + className: classnames__WEBPACK_IMPORTED_MODULE_2___default()('components-animate__slide-in', 'is-from-' + _origin) + }); + } + + if (type === 'loading') { + return children({ + className: classnames__WEBPACK_IMPORTED_MODULE_2___default()('components-animate__loading') + }); + } + + return children({}); +} + +/* harmony default export */ __webpack_exports__["a"] = (Animate); + + +/***/ }), +/* 161 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* unused harmony export createScrollLockComponent */ +/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20); +/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19); +/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23); +/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16); +/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__); + + + + + + +function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, result); }; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } /** * WordPress dependencies @@ -26303,7 +14076,7 @@ * @param {Object} args Keyword args. * @param {HTMLDocument} args.htmlDocument The document to lock the scroll for. * @param {string} args.className The name of the class used to lock scrolling. - * @return {Component} The bound ScrollLock component. + * @return {WPComponent} The bound ScrollLock component. */ function createScrollLockComponent() { @@ -26377,991 +14150,7445 @@ --lockCounter; } - return ( - /*#__PURE__*/ - function (_Component) { - Object(inherits["a" /* default */])(ScrollLock, _Component); - - function ScrollLock() { - Object(classCallCheck["a" /* default */])(this, ScrollLock); - - return Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(ScrollLock).apply(this, arguments)); - } - - Object(createClass["a" /* default */])(ScrollLock, [{ - key: "componentDidMount", - - /** - * Requests scroll lock on mount. - */ - value: function componentDidMount() { - requestLock(); - } - /** - * Releases scroll lock before unmount. - */ - - }, { - key: "componentWillUnmount", - value: function componentWillUnmount() { - releaseLock(); - } - /** - * Render nothing as this component is merely a way to declare scroll lock. - * - * @return {null} Render nothing by returning `null`. - */ - - }, { - key: "render", - value: function render() { - return null; - } - }]); - - return ScrollLock; - }(external_this_wp_element_["Component"]) - ); -} -/* harmony default export */ var scroll_lock = (createScrollLockComponent()); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/isolated-event-container/index.js - - - - - - - - - - -/** - * WordPress dependencies - */ - - -var isolated_event_container_IsolatedEventContainer = -/*#__PURE__*/ -function (_Component) { - Object(inherits["a" /* default */])(IsolatedEventContainer, _Component); - - function IsolatedEventContainer(props) { + return /*#__PURE__*/function (_Component) { + Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(ScrollLock, _Component); + + var _super = _createSuper(ScrollLock); + + function ScrollLock() { + Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, ScrollLock); + + return _super.apply(this, arguments); + } + + Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(ScrollLock, [{ + key: "componentDidMount", + + /** + * Requests scroll lock on mount. + */ + value: function componentDidMount() { + requestLock(); + } + /** + * Releases scroll lock before unmount. + */ + + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + releaseLock(); + } + /** + * Render nothing as this component is merely a way to declare scroll lock. + * + * @return {null} Render nothing by returning `null`. + */ + + }, { + key: "render", + value: function render() { + return null; + } + }]); + + return ScrollLock; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["Component"]); +} +/* harmony default export */ __webpack_exports__["a"] = (createScrollLockComponent()); + + +/***/ }), +/* 162 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); +/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_a11y__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(54); +/* harmony import */ var _wordpress_a11y__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_a11y__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(104); +/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_warning__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(34); + + +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +var NOTICE_TIMEOUT = 10000; +/** @typedef {import('@wordpress/element').WPElement} WPElement */ + +/** + * Custom hook which announces the message with the given politeness, if a + * valid message is provided. + * + * @param {string|WPElement} [message] Message to announce. + * @param {'polite'|'assertive'} politeness Politeness to announce. + */ + +function useSpokenMessage(message, politeness) { + var spokenMessage = typeof message === 'string' ? message : Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["renderToString"])(message); + Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () { + if (spokenMessage) { + Object(_wordpress_a11y__WEBPACK_IMPORTED_MODULE_3__["speak"])(spokenMessage, politeness); + } + }, [spokenMessage, politeness]); +} + +function Snackbar(_ref, ref) { + var className = _ref.className, + children = _ref.children, + _ref$spokenMessage = _ref.spokenMessage, + spokenMessage = _ref$spokenMessage === void 0 ? children : _ref$spokenMessage, + _ref$politeness = _ref.politeness, + politeness = _ref$politeness === void 0 ? 'polite' : _ref$politeness, + _ref$actions = _ref.actions, + actions = _ref$actions === void 0 ? [] : _ref$actions, + _ref$onRemove = _ref.onRemove, + onRemove = _ref$onRemove === void 0 ? lodash__WEBPACK_IMPORTED_MODULE_1__["noop"] : _ref$onRemove; + useSpokenMessage(spokenMessage, politeness); + Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () { + var timeoutHandle = setTimeout(function () { + onRemove(); + }, NOTICE_TIMEOUT); + return function () { + return clearTimeout(timeoutHandle); + }; + }, []); + var classes = classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'components-snackbar'); + + if (actions && actions.length > 1) { + // we need to inform developers that snackbar only accepts 1 action + typeof process !== "undefined" && process.env && "production" !== "production" ? _wordpress_warning__WEBPACK_IMPORTED_MODULE_5___default()('Snackbar can only have 1 action, use Notice if your message require many messages') : void 0; // return first element only while keeping it inside an array + + actions = [actions[0]]; + } + + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { + ref: ref, + className: classes, + onClick: onRemove, + tabIndex: "0", + role: "button", + onKeyPress: onRemove, + "aria-label": Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__["__"])('Dismiss this notice') + }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { + className: "components-snackbar__content" + }, children, actions.map(function (_ref2, index) { + var label = _ref2.label, + _onClick = _ref2.onClick, + url = _ref2.url; + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(___WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"], { + key: index, + href: url, + isTertiary: true, + onClick: function onClick(event) { + event.stopPropagation(); + + if (_onClick) { + _onClick(event); + } + }, + className: "components-snackbar__action" + }, label); + }))); +} + +/* harmony default export */ __webpack_exports__["a"] = (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(Snackbar)); + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(117))) + +/***/ }), +/* 163 */, +/* 164 */, +/* 165 */, +/* 166 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); +/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); + + +/** + * External dependencies + */ + + +function Shortcut(_ref) { + var shortcut = _ref.shortcut, + className = _ref.className; + + if (!shortcut) { + return null; + } + + var displayText; + var ariaLabel; + + if (Object(lodash__WEBPACK_IMPORTED_MODULE_1__["isString"])(shortcut)) { + displayText = shortcut; + } + + if (Object(lodash__WEBPACK_IMPORTED_MODULE_1__["isObject"])(shortcut)) { + displayText = shortcut.display; + ariaLabel = shortcut.ariaLabel; + } + + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("span", { + className: className, + "aria-label": ariaLabel + }, displayText); +} + +/* harmony default export */ __webpack_exports__["a"] = (Shortcut); + + +/***/ }), +/* 167 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useToolbarState; }); +/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62); +/* harmony import */ var _CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51); + + + + + + + + + +function useToolbarState(initialState) { + if (initialState === void 0) { + initialState = {}; + } + + var _useSealedState = Object(reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_2__[/* useSealedState */ "a"])(initialState), + _useSealedState$orien = _useSealedState.orientation, + orientation = _useSealedState$orien === void 0 ? "horizontal" : _useSealedState$orien, + sealed = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_useSealedState, ["orientation"]); + + return Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_3__[/* u */ "g"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({ + orientation: orientation + }, sealed)); +} +var keys = [].concat(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_3__[/* u */ "g"].__keys); +useToolbarState.__keys = keys; + + + + +/***/ }), +/* 168 */, +/* 169 */, +/* 170 */ +/***/ (function(module, exports) { + +function _extends() { + module.exports = _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); +} + +module.exports = _extends; + +/***/ }), +/* 171 */ +/***/ (function(module, exports) { + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +module.exports = _objectWithoutPropertiesLoose; + +/***/ }), +/* 172 */ +/***/ (function(module, exports) { + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +module.exports = _assertThisInitialized; + +/***/ }), +/* 173 */, +/* 174 */, +/* 175 */, +/* 176 */, +/* 177 */, +/* 178 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var util = __webpack_require__(179); + +function scrollIntoView(elem, container, config) { + config = config || {}; + // document 归一化到 window + if (container.nodeType === 9) { + container = util.getWindow(container); + } + + var allowHorizontalScroll = config.allowHorizontalScroll; + var onlyScrollIfNeeded = config.onlyScrollIfNeeded; + var alignWithTop = config.alignWithTop; + var alignWithLeft = config.alignWithLeft; + var offsetTop = config.offsetTop || 0; + var offsetLeft = config.offsetLeft || 0; + var offsetBottom = config.offsetBottom || 0; + var offsetRight = config.offsetRight || 0; + + allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll; + + var isWin = util.isWindow(container); + var elemOffset = util.offset(elem); + var eh = util.outerHeight(elem); + var ew = util.outerWidth(elem); + var containerOffset = undefined; + var ch = undefined; + var cw = undefined; + var containerScroll = undefined; + var diffTop = undefined; + var diffBottom = undefined; + var win = undefined; + var winScroll = undefined; + var ww = undefined; + var wh = undefined; + + if (isWin) { + win = container; + wh = util.height(win); + ww = util.width(win); + winScroll = { + left: util.scrollLeft(win), + top: util.scrollTop(win) + }; + // elem 相对 container 可视视窗的距离 + diffTop = { + left: elemOffset.left - winScroll.left - offsetLeft, + top: elemOffset.top - winScroll.top - offsetTop + }; + diffBottom = { + left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight, + top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom + }; + containerScroll = winScroll; + } else { + containerOffset = util.offset(container); + ch = container.clientHeight; + cw = container.clientWidth; + containerScroll = { + left: container.scrollLeft, + top: container.scrollTop + }; + // elem 相对 container 可视视窗的距离 + // 注意边框, offset 是边框到根节点 + diffTop = { + left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft, + top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop + }; + diffBottom = { + left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight, + top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom + }; + } + + if (diffTop.top < 0 || diffBottom.top > 0) { + // 强制向上 + if (alignWithTop === true) { + util.scrollTop(container, containerScroll.top + diffTop.top); + } else if (alignWithTop === false) { + util.scrollTop(container, containerScroll.top + diffBottom.top); + } else { + // 自动调整 + if (diffTop.top < 0) { + util.scrollTop(container, containerScroll.top + diffTop.top); + } else { + util.scrollTop(container, containerScroll.top + diffBottom.top); + } + } + } else { + if (!onlyScrollIfNeeded) { + alignWithTop = alignWithTop === undefined ? true : !!alignWithTop; + if (alignWithTop) { + util.scrollTop(container, containerScroll.top + diffTop.top); + } else { + util.scrollTop(container, containerScroll.top + diffBottom.top); + } + } + } + + if (allowHorizontalScroll) { + if (diffTop.left < 0 || diffBottom.left > 0) { + // 强制向上 + if (alignWithLeft === true) { + util.scrollLeft(container, containerScroll.left + diffTop.left); + } else if (alignWithLeft === false) { + util.scrollLeft(container, containerScroll.left + diffBottom.left); + } else { + // 自动调整 + if (diffTop.left < 0) { + util.scrollLeft(container, containerScroll.left + diffTop.left); + } else { + util.scrollLeft(container, containerScroll.left + diffBottom.left); + } + } + } else { + if (!onlyScrollIfNeeded) { + alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft; + if (alignWithLeft) { + util.scrollLeft(container, containerScroll.left + diffTop.left); + } else { + util.scrollLeft(container, containerScroll.left + diffBottom.left); + } + } + } + } +} + +module.exports = scrollIntoView; + +/***/ }), +/* 179 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; + +var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source; + +function getClientPosition(elem) { + var box = undefined; + var x = undefined; + var y = undefined; + var doc = elem.ownerDocument; + var body = doc.body; + var docElem = doc && doc.documentElement; + // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式 + box = elem.getBoundingClientRect(); + + // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop + // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确 + // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin + + x = box.left; + y = box.top; + + // In IE, most of the time, 2 extra pixels are added to the top and left + // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and + // IE6 standards mode, this border can be overridden by setting the + // document element's border to zero -- thus, we cannot rely on the + // offset always being 2 pixels. + + // In quirks mode, the offset can be determined by querying the body's + // clientLeft/clientTop, but in standards mode, it is found by querying + // the document element's clientLeft/clientTop. Since we already called + // getClientBoundingRect we have already forced a reflow, so it is not + // too expensive just to query them all. + + // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的 + // 窗口边框标准是设 documentElement ,quirks 时设置 body + // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去 + // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置 + // 标准 ie 下 docElem.clientTop 就是 border-top + // ie7 html 即窗口边框改变不了。永远为 2 + // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0 + + x -= docElem.clientLeft || body.clientLeft || 0; + y -= docElem.clientTop || body.clientTop || 0; + + return { + left: x, + top: y + }; +} + +function getScroll(w, top) { + var ret = w['page' + (top ? 'Y' : 'X') + 'Offset']; + var method = 'scroll' + (top ? 'Top' : 'Left'); + if (typeof ret !== 'number') { + var d = w.document; + // ie6,7,8 standard mode + ret = d.documentElement[method]; + if (typeof ret !== 'number') { + // quirks mode + ret = d.body[method]; + } + } + return ret; +} + +function getScrollLeft(w) { + return getScroll(w); +} + +function getScrollTop(w) { + return getScroll(w, true); +} + +function getOffset(el) { + var pos = getClientPosition(el); + var doc = el.ownerDocument; + var w = doc.defaultView || doc.parentWindow; + pos.left += getScrollLeft(w); + pos.top += getScrollTop(w); + return pos; +} +function _getComputedStyle(elem, name, computedStyle_) { + var val = ''; + var d = elem.ownerDocument; + var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null); + + // https://github.com/kissyteam/kissy/issues/61 + if (computedStyle) { + val = computedStyle.getPropertyValue(name) || computedStyle[name]; + } + + return val; +} + +var _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i'); +var RE_POS = /^(top|right|bottom|left)$/; +var CURRENT_STYLE = 'currentStyle'; +var RUNTIME_STYLE = 'runtimeStyle'; +var LEFT = 'left'; +var PX = 'px'; + +function _getComputedStyleIE(elem, name) { + // currentStyle maybe null + // http://msdn.microsoft.com/en-us/library/ms535231.aspx + var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; + + // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值 + // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19 + // 在 ie 下不对,需要直接用 offset 方式 + // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了 + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // exclude left right for relativity + if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) { + // Remember the original values + var style = elem.style; + var left = style[LEFT]; + var rsLeft = elem[RUNTIME_STYLE][LEFT]; + + // prevent flashing of content + elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; + + // Put in the new values to get a computed value out + style[LEFT] = name === 'fontSize' ? '1em' : ret || 0; + ret = style.pixelLeft + PX; + + // Revert the changed values + style[LEFT] = left; + + elem[RUNTIME_STYLE][LEFT] = rsLeft; + } + return ret === '' ? 'auto' : ret; +} + +var getComputedStyleX = undefined; +if (typeof window !== 'undefined') { + getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE; +} + +function each(arr, fn) { + for (var i = 0; i < arr.length; i++) { + fn(arr[i]); + } +} + +function isBorderBoxFn(elem) { + return getComputedStyleX(elem, 'boxSizing') === 'border-box'; +} + +var BOX_MODELS = ['margin', 'border', 'padding']; +var CONTENT_INDEX = -1; +var PADDING_INDEX = 2; +var BORDER_INDEX = 1; +var MARGIN_INDEX = 0; + +function swap(elem, options, callback) { + var old = {}; + var style = elem.style; + var name = undefined; + + // Remember the old values, and insert the new ones + for (name in options) { + if (options.hasOwnProperty(name)) { + old[name] = style[name]; + style[name] = options[name]; + } + } + + callback.call(elem); + + // Revert the old values + for (name in options) { + if (options.hasOwnProperty(name)) { + style[name] = old[name]; + } + } +} + +function getPBMWidth(elem, props, which) { + var value = 0; + var prop = undefined; + var j = undefined; + var i = undefined; + for (j = 0; j < props.length; j++) { + prop = props[j]; + if (prop) { + for (i = 0; i < which.length; i++) { + var cssProp = undefined; + if (prop === 'border') { + cssProp = prop + which[i] + 'Width'; + } else { + cssProp = prop + which[i]; + } + value += parseFloat(getComputedStyleX(elem, cssProp)) || 0; + } + } + } + return value; +} + +/** + * A crude way of determining if an object is a window + * @member util + */ +function isWindow(obj) { + // must use == for ie8 + /* eslint eqeqeq:0 */ + return obj != null && obj == obj.window; +} + +var domUtils = {}; + +each(['Width', 'Height'], function (name) { + domUtils['doc' + name] = function (refWin) { + var d = refWin.document; + return Math.max( + // firefox chrome documentElement.scrollHeight< body.scrollHeight + // ie standard mode : documentElement.scrollHeight> body.scrollHeight + d.documentElement['scroll' + name], + // quirks : documentElement.scrollHeight 最大等于可视窗口多一点? + d.body['scroll' + name], domUtils['viewport' + name](d)); + }; + + domUtils['viewport' + name] = function (win) { + // pc browser includes scrollbar in window.innerWidth + var prop = 'client' + name; + var doc = win.document; + var body = doc.body; + var documentElement = doc.documentElement; + var documentElementProp = documentElement[prop]; + // 标准模式取 documentElement + // backcompat 取 body + return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp; + }; +}); + +/* + 得到元素的大小信息 + @param elem + @param name + @param {String} [extra] 'padding' : (css width) + padding + 'border' : (css width) + padding + border + 'margin' : (css width) + padding + border + margin + */ +function getWH(elem, name, extra) { + if (isWindow(elem)) { + return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem); + } else if (elem.nodeType === 9) { + return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem); + } + var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom']; + var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight; + var computedStyle = getComputedStyleX(elem); + var isBorderBox = isBorderBoxFn(elem, computedStyle); + var cssBoxValue = 0; + if (borderBoxValue == null || borderBoxValue <= 0) { + borderBoxValue = undefined; + // Fall back to computed then un computed css if necessary + cssBoxValue = getComputedStyleX(elem, name); + if (cssBoxValue == null || Number(cssBoxValue) < 0) { + cssBoxValue = elem.style[name] || 0; + } + // Normalize '', auto, and prepare for extra + cssBoxValue = parseFloat(cssBoxValue) || 0; + } + if (extra === undefined) { + extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX; + } + var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox; + var val = borderBoxValue || cssBoxValue; + if (extra === CONTENT_INDEX) { + if (borderBoxValueOrIsBorderBox) { + return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle); + } + return cssBoxValue; + } + if (borderBoxValueOrIsBorderBox) { + var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle); + return val + (extra === BORDER_INDEX ? 0 : padding); + } + return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle); +} + +var cssShow = { + position: 'absolute', + visibility: 'hidden', + display: 'block' +}; + +// fix #119 : https://github.com/kissyteam/kissy/issues/119 +function getWHIgnoreDisplay(elem) { + var val = undefined; + var args = arguments; + // in case elem is window + // elem.offsetWidth === undefined + if (elem.offsetWidth !== 0) { + val = getWH.apply(undefined, args); + } else { + swap(elem, cssShow, function () { + val = getWH.apply(undefined, args); + }); + } + return val; +} + +function css(el, name, v) { + var value = v; + if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') { + for (var i in name) { + if (name.hasOwnProperty(i)) { + css(el, i, name[i]); + } + } + return undefined; + } + if (typeof value !== 'undefined') { + if (typeof value === 'number') { + value += 'px'; + } + el.style[name] = value; + return undefined; + } + return getComputedStyleX(el, name); +} + +each(['width', 'height'], function (name) { + var first = name.charAt(0).toUpperCase() + name.slice(1); + domUtils['outer' + first] = function (el, includeMargin) { + return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX); + }; + var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom']; + + domUtils[name] = function (elem, val) { + if (val !== undefined) { + if (elem) { + var computedStyle = getComputedStyleX(elem); + var isBorderBox = isBorderBoxFn(elem); + if (isBorderBox) { + val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle); + } + return css(elem, name, val); + } + return undefined; + } + return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX); + }; +}); + +// 设置 elem 相对 elem.ownerDocument 的坐标 +function setOffset(elem, offset) { + // set position first, in-case top/left are set even on static elem + if (css(elem, 'position') === 'static') { + elem.style.position = 'relative'; + } + + var old = getOffset(elem); + var ret = {}; + var current = undefined; + var key = undefined; + + for (key in offset) { + if (offset.hasOwnProperty(key)) { + current = parseFloat(css(elem, key)) || 0; + ret[key] = current + offset[key] - old[key]; + } + } + css(elem, ret); +} + +module.exports = _extends({ + getWindow: function getWindow(node) { + var doc = node.ownerDocument || node; + return doc.defaultView || doc.parentWindow; + }, + offset: function offset(el, value) { + if (typeof value !== 'undefined') { + setOffset(el, value); + } else { + return getOffset(el); + } + }, + + isWindow: isWindow, + each: each, + css: css, + clone: function clone(obj) { + var ret = {}; + for (var i in obj) { + if (obj.hasOwnProperty(i)) { + ret[i] = obj[i]; + } + } + var overflow = obj.overflow; + if (overflow) { + for (var i in obj) { + if (obj.hasOwnProperty(i)) { + ret.overflow[i] = obj.overflow[i]; + } + } + } + return ret; + }, + scrollLeft: function scrollLeft(w, v) { + if (isWindow(w)) { + if (v === undefined) { + return getScrollLeft(w); + } + window.scrollTo(v, getScrollTop(w)); + } else { + if (v === undefined) { + return w.scrollLeft; + } + w.scrollLeft = v; + } + }, + scrollTop: function scrollTop(w, v) { + if (isWindow(w)) { + if (v === undefined) { + return getScrollTop(w); + } + window.scrollTo(getScrollLeft(w), v); + } else { + if (v === undefined) { + return w.scrollTop; + } + w.scrollTop = v; + } + }, + + viewportWidth: 0, + viewportHeight: 0 +}, domUtils); + +/***/ }), +/* 180 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); +/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__); + + +/** + * WordPress dependencies + */ + +var link = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], { + d: "M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z" +})); +/* harmony default export */ __webpack_exports__["a"] = (link); + + +/***/ }), +/* 181 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var slice = Array.prototype.slice; +var isArgs = __webpack_require__(206); + +var origKeys = Object.keys; +var keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(311); + +var originalKeys = Object.keys; + +keysShim.shim = function shimObjectKeys() { + if (Object.keys) { + var keysWorksWithArguments = (function () { + // Safari 5.0 bug + var args = Object.keys(arguments); + return args && args.length === arguments.length; + }(1, 2)); + if (!keysWorksWithArguments) { + Object.keys = function keys(object) { // eslint-disable-line func-name-matching + if (isArgs(object)) { + return originalKeys(slice.call(object)); + } + return originalKeys(object); + }; + } + } else { + Object.keys = keysShim; + } + return Object.keys || keysShim; +}; + +module.exports = keysShim; + + +/***/ }), +/* 182 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var bind = __webpack_require__(118); + +var GetIntrinsic = __webpack_require__(58); + +var $apply = GetIntrinsic('%Function.prototype.apply%'); +var $call = GetIntrinsic('%Function.prototype.call%'); +var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); + +module.exports = function callBind() { + return $reflectApply(bind, $call, arguments); +}; + +module.exports.apply = function applyBind() { + return $reflectApply(bind, $apply, arguments); +}; + + +/***/ }), +/* 183 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var GetIntrinsic = __webpack_require__(58); + +var $TypeError = GetIntrinsic('%TypeError%'); + +var inspect = __webpack_require__(315); + +var IsPropertyKey = __webpack_require__(128); +var Type = __webpack_require__(90); + +/** + * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p + * 1. Assert: Type(O) is Object. + * 2. Assert: IsPropertyKey(P) is true. + * 3. Return O.[[Get]](P, O). + */ + +module.exports = function Get(O, P) { + // 7.3.1.1 + if (Type(O) !== 'Object') { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + // 7.3.1.2 + if (!IsPropertyKey(P)) { + throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P)); + } + // 7.3.1.3 + return O[P]; +}; + + +/***/ }), +/* 184 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var GetIntrinsic = __webpack_require__(58); + +var $Array = GetIntrinsic('%Array%'); + +// eslint-disable-next-line global-require +var toStr = !$Array.isArray && __webpack_require__(140)('Object.prototype.toString'); + +// https://www.ecma-international.org/ecma-262/6.0/#sec-isarray + +module.exports = $Array.isArray || function IsArray(argument) { + return toStr(argument) === '[object Array]'; +}; + + +/***/ }), +/* 185 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var GetIntrinsic = __webpack_require__(58); + +var $TypeError = GetIntrinsic('%TypeError%'); +var $SyntaxError = GetIntrinsic('%SyntaxError%'); + +var has = __webpack_require__(91); + +var predicates = { + // https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type + 'Property Descriptor': function isPropertyDescriptor(Type, Desc) { + if (Type(Desc) !== 'Object') { + return false; + } + var allowed = { + '[[Configurable]]': true, + '[[Enumerable]]': true, + '[[Get]]': true, + '[[Set]]': true, + '[[Value]]': true, + '[[Writable]]': true + }; + + for (var key in Desc) { // eslint-disable-line + if (has(Desc, key) && !allowed[key]) { + return false; + } + } + + var isData = has(Desc, '[[Value]]'); + var IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]'); + if (isData && IsAccessor) { + throw new $TypeError('Property Descriptors may not be both accessor and data descriptors'); + } + return true; + } +}; + +module.exports = function assertRecord(Type, recordType, argumentName, value) { + var predicate = predicates[recordType]; + if (typeof predicate !== 'function') { + throw new $SyntaxError('unknown record type: ' + recordType); + } + if (!predicate(Type, value)) { + throw new $TypeError(argumentName + ' must be a ' + recordType); + } +}; + + +/***/ }), +/* 186 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = Number.isNaN || function isNaN(a) { + return a !== a; +}; + + +/***/ }), +/* 187 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var toStr = Object.prototype.toString; +var hasSymbols = __webpack_require__(342)(); + +if (hasSymbols) { + var symToStr = Symbol.prototype.toString; + var symStringRegex = /^Symbol\(.*\)$/; + var isSymbolObject = function isRealSymbolObject(value) { + if (typeof value.valueOf() !== 'symbol') { + return false; + } + return symStringRegex.test(symToStr.call(value)); + }; + + module.exports = function isSymbol(value) { + if (typeof value === 'symbol') { + return true; + } + if (toStr.call(value) !== '[object Symbol]') { + return false; + } + try { + return isSymbolObject(value); + } catch (e) { + return false; + } + }; +} else { + + module.exports = function isSymbol(value) { + // this environment does not support Symbols. + return false && false; + }; +} + + +/***/ }), +/* 188 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var fnToStr = Function.prototype.toString; + +var constructorRegex = /^\s*class\b/; +var isES6ClassFn = function isES6ClassFunction(value) { + try { + var fnStr = fnToStr.call(value); + return constructorRegex.test(fnStr); + } catch (e) { + return false; // not a function + } +}; + +var tryFunctionObject = function tryFunctionToStr(value) { + try { + if (isES6ClassFn(value)) { return false; } + fnToStr.call(value); + return true; + } catch (e) { + return false; + } +}; +var toStr = Object.prototype.toString; +var fnClass = '[object Function]'; +var genClass = '[object GeneratorFunction]'; +var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; + +module.exports = function isCallable(value) { + if (!value) { return false; } + if (typeof value !== 'function' && typeof value !== 'object') { return false; } + if (typeof value === 'function' && !value.prototype) { return true; } + if (hasToStringTag) { return tryFunctionObject(value); } + if (isES6ClassFn(value)) { return false; } + var strClass = toStr.call(value); + return strClass === fnClass || strClass === genClass; +}; + + +/***/ }), +/* 189 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/* globals + Set, + Map, + WeakSet, + WeakMap, + + Promise, + + Symbol, + Proxy, + + Atomics, + SharedArrayBuffer, + + ArrayBuffer, + DataView, + Uint8Array, + Float32Array, + Float64Array, + Int8Array, + Int16Array, + Int32Array, + Uint8ClampedArray, + Uint16Array, + Uint32Array, +*/ + +var undefined; // eslint-disable-line no-shadow-restricted-names + +var ThrowTypeError = Object.getOwnPropertyDescriptor + ? (function () { return Object.getOwnPropertyDescriptor(arguments, 'callee').get; }()) + : function () { throw new TypeError(); }; + +var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol'; + +var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto + +var generator; // = function * () {}; +var generatorFunction = generator ? getProto(generator) : undefined; +var asyncFn; // async function() {}; +var asyncFunction = asyncFn ? asyncFn.constructor : undefined; +var asyncGen; // async function * () {}; +var asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined; +var asyncGenIterator = asyncGen ? asyncGen() : undefined; + +var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array); + +var INTRINSICS = { + '$ %Array%': Array, + '$ %ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, + '$ %ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype, + '$ %ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined, + '$ %ArrayPrototype%': Array.prototype, + '$ %ArrayProto_entries%': Array.prototype.entries, + '$ %ArrayProto_forEach%': Array.prototype.forEach, + '$ %ArrayProto_keys%': Array.prototype.keys, + '$ %ArrayProto_values%': Array.prototype.values, + '$ %AsyncFromSyncIteratorPrototype%': undefined, + '$ %AsyncFunction%': asyncFunction, + '$ %AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined, + '$ %AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined, + '$ %AsyncGeneratorFunction%': asyncGenFunction, + '$ %AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined, + '$ %AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined, + '$ %Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, + '$ %Boolean%': Boolean, + '$ %BooleanPrototype%': Boolean.prototype, + '$ %DataView%': typeof DataView === 'undefined' ? undefined : DataView, + '$ %DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype, + '$ %Date%': Date, + '$ %DatePrototype%': Date.prototype, + '$ %decodeURI%': decodeURI, + '$ %decodeURIComponent%': decodeURIComponent, + '$ %encodeURI%': encodeURI, + '$ %encodeURIComponent%': encodeURIComponent, + '$ %Error%': Error, + '$ %ErrorPrototype%': Error.prototype, + '$ %eval%': eval, // eslint-disable-line no-eval + '$ %EvalError%': EvalError, + '$ %EvalErrorPrototype%': EvalError.prototype, + '$ %Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, + '$ %Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype, + '$ %Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, + '$ %Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype, + '$ %Function%': Function, + '$ %FunctionPrototype%': Function.prototype, + '$ %Generator%': generator ? getProto(generator()) : undefined, + '$ %GeneratorFunction%': generatorFunction, + '$ %GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined, + '$ %Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, + '$ %Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype, + '$ %Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, + '$ %Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype, + '$ %Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, + '$ %Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype, + '$ %isFinite%': isFinite, + '$ %isNaN%': isNaN, + '$ %IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined, + '$ %JSON%': JSON, + '$ %JSONParse%': JSON.parse, + '$ %Map%': typeof Map === 'undefined' ? undefined : Map, + '$ %MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()), + '$ %MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype, + '$ %Math%': Math, + '$ %Number%': Number, + '$ %NumberPrototype%': Number.prototype, + '$ %Object%': Object, + '$ %ObjectPrototype%': Object.prototype, + '$ %ObjProto_toString%': Object.prototype.toString, + '$ %ObjProto_valueOf%': Object.prototype.valueOf, + '$ %parseFloat%': parseFloat, + '$ %parseInt%': parseInt, + '$ %Promise%': typeof Promise === 'undefined' ? undefined : Promise, + '$ %PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype, + '$ %PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then, + '$ %Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all, + '$ %Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject, + '$ %Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve, + '$ %Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, + '$ %RangeError%': RangeError, + '$ %RangeErrorPrototype%': RangeError.prototype, + '$ %ReferenceError%': ReferenceError, + '$ %ReferenceErrorPrototype%': ReferenceError.prototype, + '$ %Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, + '$ %RegExp%': RegExp, + '$ %RegExpPrototype%': RegExp.prototype, + '$ %Set%': typeof Set === 'undefined' ? undefined : Set, + '$ %SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()), + '$ %SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype, + '$ %SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, + '$ %SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype, + '$ %String%': String, + '$ %StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined, + '$ %StringPrototype%': String.prototype, + '$ %Symbol%': hasSymbols ? Symbol : undefined, + '$ %SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined, + '$ %SyntaxError%': SyntaxError, + '$ %SyntaxErrorPrototype%': SyntaxError.prototype, + '$ %ThrowTypeError%': ThrowTypeError, + '$ %TypedArray%': TypedArray, + '$ %TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined, + '$ %TypeError%': TypeError, + '$ %TypeErrorPrototype%': TypeError.prototype, + '$ %Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, + '$ %Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype, + '$ %Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, + '$ %Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype, + '$ %Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, + '$ %Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype, + '$ %Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, + '$ %Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype, + '$ %URIError%': URIError, + '$ %URIErrorPrototype%': URIError.prototype, + '$ %WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, + '$ %WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype, + '$ %WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet, + '$ %WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype +}; + +module.exports = function GetIntrinsic(name, allowMissing) { + if (arguments.length > 1 && typeof allowMissing !== 'boolean') { + throw new TypeError('"allowMissing" argument must be a boolean'); + } + + var key = '$ ' + name; + if (!(key in INTRINSICS)) { + throw new SyntaxError('intrinsic ' + name + ' does not exist!'); + } + + // istanbul ignore if // hopefully this is impossible to test :-) + if (typeof INTRINSICS[key] === 'undefined' && !allowMissing) { + throw new TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); + } + return INTRINSICS[key]; +}; + + +/***/ }), +/* 190 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = isSameDay; + +var _moment = __webpack_require__(43); + +var _moment2 = _interopRequireDefault(_moment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function isSameDay(a, b) { + if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false; + // Compare least significant, most likely to change units first + // Moment's isSame clones moment inputs and is a tad slow + return a.date() === b.date() && a.month() === b.month() && a.year() === b.year(); +} + +/***/ }), +/* 191 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = toISOMonthString; + +var _moment = __webpack_require__(43); + +var _moment2 = _interopRequireDefault(_moment); + +var _toMomentObject = __webpack_require__(241); + +var _toMomentObject2 = _interopRequireDefault(_toMomentObject); + +var _constants = __webpack_require__(77); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function toISOMonthString(date, currentFormat) { + var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat); + if (!dateObj) return null; + + return dateObj.format(_constants.ISO_MONTH_FORMAT); +} + +/***/ }), +/* 192 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +module.exports = isObject; + + +/***/ }), +/* 193 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Consumer; }); +/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(18); +/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20); +/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19); +/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12); +/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23); +/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16); +/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(22); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(2); +/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__); + + + + + + + + + +function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(this, result); }; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +/** + * External dependencies + */ + +/** + * WordPress dependencies + */ + + + +var _createContext = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["createContext"])({ + focusHistory: [] +}), + Provider = _createContext.Provider, + Consumer = _createContext.Consumer; + +Provider.displayName = 'FocusReturnProvider'; +Consumer.displayName = 'FocusReturnConsumer'; +/** + * The maximum history length to capture for the focus stack. When exceeded, + * items should be shifted from the stack for each consecutive push. + * + * @type {number} + */ + +var MAX_STACK_LENGTH = 100; + +var FocusReturnProvider = /*#__PURE__*/function (_Component) { + Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(FocusReturnProvider, _Component); + + var _super = _createSuper(FocusReturnProvider); + + function FocusReturnProvider() { var _this; - Object(classCallCheck["a" /* default */])(this, IsolatedEventContainer); - - _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(IsolatedEventContainer).call(this, props)); - _this.stopEventPropagationOutsideContainer = _this.stopEventPropagationOutsideContainer.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); + Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(this, FocusReturnProvider); + + _this = _super.apply(this, arguments); + _this.onFocus = _this.onFocus.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(_this)); + _this.state = { + focusHistory: [] + }; return _this; } - Object(createClass["a" /* default */])(IsolatedEventContainer, [{ - key: "stopEventPropagationOutsideContainer", - value: function stopEventPropagationOutsideContainer(event) { - event.stopPropagation(); + Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(FocusReturnProvider, [{ + key: "onFocus", + value: function onFocus(event) { + var focusHistory = this.state.focusHistory; // Push the focused element to the history stack, keeping only unique + // members but preferring the _last_ occurrence of any duplicates. + // Lodash's `uniq` behavior favors the first occurrence, so the array + // is temporarily reversed prior to it being called upon. Uniqueness + // helps avoid situations where, such as in a constrained tabbing area, + // the user changes focus enough within a transient element that the + // stack may otherwise only consist of members pending destruction, at + // which point focus might have been lost. + + var nextFocusHistory = Object(lodash__WEBPACK_IMPORTED_MODULE_8__["uniq"])([].concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(focusHistory), [event.target]).slice(-1 * MAX_STACK_LENGTH).reverse()).reverse(); + this.setState({ + focusHistory: nextFocusHistory + }); } }, { key: "render", value: function render() { var _this$props = this.props, children = _this$props.children, - props = Object(objectWithoutProperties["a" /* default */])(_this$props, ["children"]); // Disable reason: this stops certain events from propagating outside of the component. - // - onMouseDown is disabled as this can cause interactions with other DOM elements - - /* eslint-disable jsx-a11y/no-static-element-interactions */ - - - return Object(external_this_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({}, props, { - onMouseDown: this.stopEventPropagationOutsideContainer - }), children); - } - }]); - - return IsolatedEventContainer; -}(external_this_wp_element_["Component"]); - -/* harmony default export */ var isolated_event_container = (isolated_event_container_IsolatedEventContainer); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/context.js - - - - - - - - - -/** - * External dependencies - */ - -/** - * WordPress dependencies - */ - - - -var context_createContext = Object(external_this_wp_element_["createContext"])({ - registerSlot: function registerSlot() {}, - unregisterSlot: function unregisterSlot() {}, - registerFill: function registerFill() {}, - unregisterFill: function unregisterFill() {}, - getSlot: function getSlot() {}, - getFills: function getFills() {} -}), - context_Provider = context_createContext.Provider, - context_Consumer = context_createContext.Consumer; - -var context_SlotFillProvider = -/*#__PURE__*/ -function (_Component) { - Object(inherits["a" /* default */])(SlotFillProvider, _Component); - - function SlotFillProvider() { - var _this; - - Object(classCallCheck["a" /* default */])(this, SlotFillProvider); - - _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(SlotFillProvider).apply(this, arguments)); - _this.registerSlot = _this.registerSlot.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.registerFill = _this.registerFill.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.unregisterSlot = _this.unregisterSlot.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.unregisterFill = _this.unregisterFill.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.getSlot = _this.getSlot.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.getFills = _this.getFills.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.slots = {}; - _this.fills = {}; - _this.state = { - registerSlot: _this.registerSlot, - unregisterSlot: _this.unregisterSlot, - registerFill: _this.registerFill, - unregisterFill: _this.unregisterFill, - getSlot: _this.getSlot, - getFills: _this.getFills - }; - return _this; - } - - Object(createClass["a" /* default */])(SlotFillProvider, [{ - key: "registerSlot", - value: function registerSlot(name, slot) { - var previousSlot = this.slots[name]; - this.slots[name] = slot; - this.forceUpdateFills(name); // Sometimes the fills are registered after the initial render of slot - // But before the registerSlot call, we need to rerender the slot - - this.forceUpdateSlot(name); // If a new instance of a slot is being mounted while another with the - // same name exists, force its update _after_ the new slot has been - // assigned into the instance, such that its own rendering of children - // will be empty (the new Slot will subsume all fills for this name). - - if (previousSlot) { - previousSlot.forceUpdate(); - } - } - }, { - key: "registerFill", - value: function registerFill(name, instance) { - this.fills[name] = [].concat(Object(toConsumableArray["a" /* default */])(this.fills[name] || []), [instance]); - this.forceUpdateSlot(name); - } - }, { - key: "unregisterSlot", - value: function unregisterSlot(name, instance) { - // If a previous instance of a Slot by this name unmounts, do nothing, - // as the slot and its fills should only be removed for the current - // known instance. - if (this.slots[name] !== instance) { - return; - } - - delete this.slots[name]; - this.forceUpdateFills(name); - } - }, { - key: "unregisterFill", - value: function unregisterFill(name, instance) { - this.fills[name] = Object(external_lodash_["without"])(this.fills[name], instance); - this.resetFillOccurrence(name); - this.forceUpdateSlot(name); - } - }, { - key: "getSlot", - value: function getSlot(name) { - return this.slots[name]; - } - }, { - key: "getFills", - value: function getFills(name, slotInstance) { - // Fills should only be returned for the current instance of the slot - // in which they occupy. - if (this.slots[name] !== slotInstance) { - return []; - } - - return Object(external_lodash_["sortBy"])(this.fills[name], 'occurrence'); - } - }, { - key: "resetFillOccurrence", - value: function resetFillOccurrence(name) { - Object(external_lodash_["forEach"])(this.fills[name], function (instance) { - instance.resetOccurrence(); - }); - } - }, { - key: "forceUpdateFills", - value: function forceUpdateFills(name) { - Object(external_lodash_["forEach"])(this.fills[name], function (instance) { - instance.forceUpdate(); - }); - } - }, { - key: "forceUpdateSlot", - value: function forceUpdateSlot(name) { - var slot = this.getSlot(name); - - if (slot) { - slot.forceUpdate(); - } - } - }, { - key: "render", - value: function render() { - return Object(external_this_wp_element_["createElement"])(context_Provider, { + className = _this$props.className; + return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["createElement"])(Provider, { value: this.state - }, this.props.children); - } - }]); - - return SlotFillProvider; -}(external_this_wp_element_["Component"]); - -/* harmony default export */ var slot_fill_context = (context_SlotFillProvider); - - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/slot.js - - - - - - - - - -/** - * External dependencies - */ - -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - - -var slot_SlotComponent = -/*#__PURE__*/ -function (_Component) { - Object(inherits["a" /* default */])(SlotComponent, _Component); - - function SlotComponent() { - var _this; - - Object(classCallCheck["a" /* default */])(this, SlotComponent); - - _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(SlotComponent).apply(this, arguments)); - _this.bindNode = _this.bindNode.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - return _this; - } - - Object(createClass["a" /* default */])(SlotComponent, [{ - key: "componentDidMount", - value: function componentDidMount() { - var registerSlot = this.props.registerSlot; - registerSlot(this.props.name, this); - } - }, { - key: "componentWillUnmount", - value: function componentWillUnmount() { - var unregisterSlot = this.props.unregisterSlot; - unregisterSlot(this.props.name, this); - } - }, { - key: "componentDidUpdate", - value: function componentDidUpdate(prevProps) { - var _this$props = this.props, - name = _this$props.name, - unregisterSlot = _this$props.unregisterSlot, - registerSlot = _this$props.registerSlot; - - if (prevProps.name !== name) { - unregisterSlot(prevProps.name); - registerSlot(name, this); - } - } - }, { - key: "bindNode", - value: function bindNode(node) { - this.node = node; - } - }, { - key: "render", - value: function render() { - var _this$props2 = this.props, - children = _this$props2.children, - name = _this$props2.name, - _this$props2$bubblesV = _this$props2.bubblesVirtually, - bubblesVirtually = _this$props2$bubblesV === void 0 ? false : _this$props2$bubblesV, - _this$props2$fillProp = _this$props2.fillProps, - fillProps = _this$props2$fillProp === void 0 ? {} : _this$props2$fillProp, - getFills = _this$props2.getFills; - - if (bubblesVirtually) { - return Object(external_this_wp_element_["createElement"])("div", { - ref: this.bindNode - }); - } - - var fills = Object(external_lodash_["map"])(getFills(name, this), function (fill) { - var fillKey = fill.occurrence; - var fillChildren = Object(external_lodash_["isFunction"])(fill.props.children) ? fill.props.children(fillProps) : fill.props.children; - return external_this_wp_element_["Children"].map(fillChildren, function (child, childIndex) { - if (!child || Object(external_lodash_["isString"])(child)) { - return child; - } - - var childKey = "".concat(fillKey, "---").concat(child.key || childIndex); - return Object(external_this_wp_element_["cloneElement"])(child, { - key: childKey - }); - }); - }).filter( // In some cases fills are rendered only when some conditions apply. - // This ensures that we only use non-empty fills when rendering, i.e., - // it allows us to render wrappers only when the fills are actually present. - Object(external_lodash_["negate"])(external_this_wp_element_["isEmptyElement"])); - return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_lodash_["isFunction"])(children) ? children(fills) : fills); - } - }]); - - return SlotComponent; -}(external_this_wp_element_["Component"]); - -var slot_Slot = function Slot(props) { - return Object(external_this_wp_element_["createElement"])(context_Consumer, null, function (_ref) { - var registerSlot = _ref.registerSlot, - unregisterSlot = _ref.unregisterSlot, - getFills = _ref.getFills; - return Object(external_this_wp_element_["createElement"])(slot_SlotComponent, Object(esm_extends["a" /* default */])({}, props, { - registerSlot: registerSlot, - unregisterSlot: unregisterSlot, - getFills: getFills - })); - }); -}; - -/* harmony default export */ var slot_fill_slot = (slot_Slot); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/fill.js - - - - - - - - -/** - * External dependencies - */ - -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - -var occurrences = 0; - -var fill_FillComponent = -/*#__PURE__*/ -function (_Component) { - Object(inherits["a" /* default */])(FillComponent, _Component); - - function FillComponent() { - var _this; - - Object(classCallCheck["a" /* default */])(this, FillComponent); - - _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(FillComponent).apply(this, arguments)); - _this.occurrence = ++occurrences; - return _this; - } - - Object(createClass["a" /* default */])(FillComponent, [{ - key: "componentDidMount", - value: function componentDidMount() { - var registerFill = this.props.registerFill; - registerFill(this.props.name, this); - } - }, { - key: "componentWillUpdate", - value: function componentWillUpdate() { - if (!this.occurrence) { - this.occurrence = ++occurrences; - } - - var getSlot = this.props.getSlot; - var slot = getSlot(this.props.name); - - if (slot && !slot.props.bubblesVirtually) { - slot.forceUpdate(); - } - } - }, { - key: "componentWillUnmount", - value: function componentWillUnmount() { - var unregisterFill = this.props.unregisterFill; - unregisterFill(this.props.name, this); - } - }, { - key: "componentDidUpdate", - value: function componentDidUpdate(prevProps) { - var _this$props = this.props, - name = _this$props.name, - unregisterFill = _this$props.unregisterFill, - registerFill = _this$props.registerFill; - - if (prevProps.name !== name) { - unregisterFill(prevProps.name, this); - registerFill(name, this); - } - } - }, { - key: "resetOccurrence", - value: function resetOccurrence() { - this.occurrence = null; - } - }, { - key: "render", - value: function render() { - var _this$props2 = this.props, - name = _this$props2.name, - getSlot = _this$props2.getSlot; - var children = this.props.children; - var slot = getSlot(name); - - if (!slot || !slot.node || !slot.props.bubblesVirtually) { - return null; - } // If a function is passed as a child, provide it with the fillProps. - - - if (Object(external_lodash_["isFunction"])(children)) { - children = children(slot.props.fillProps); - } - - return Object(external_this_wp_element_["createPortal"])(children, slot.node); + }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["createElement"])("div", { + onFocus: this.onFocus, + className: className + }, children)); } }]); - return FillComponent; -}(external_this_wp_element_["Component"]); - -var fill_Fill = function Fill(props) { - return Object(external_this_wp_element_["createElement"])(context_Consumer, null, function (_ref) { - var getSlot = _ref.getSlot, - registerFill = _ref.registerFill, - unregisterFill = _ref.unregisterFill; - return Object(external_this_wp_element_["createElement"])(fill_FillComponent, Object(esm_extends["a" /* default */])({}, props, { - getSlot: getSlot, - registerFill: registerFill, - unregisterFill: unregisterFill - })); - }); -}; - -/* harmony default export */ var slot_fill_fill = (fill_Fill); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/index.js - - - -/** - * Internal dependencies - */ - - - - - - -function createSlotFill(name) { - var FillComponent = function FillComponent(props) { - return Object(external_this_wp_element_["createElement"])(slot_fill_fill, Object(esm_extends["a" /* default */])({ - name: name - }, props)); - }; - - FillComponent.displayName = name + 'Fill'; - - var SlotComponent = function SlotComponent(props) { - return Object(external_this_wp_element_["createElement"])(slot_fill_slot, Object(esm_extends["a" /* default */])({ - name: name - }, props)); - }; - - SlotComponent.displayName = name + 'Slot'; - return { - Fill: FillComponent, - Slot: SlotComponent - }; -} - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/index.js - - - - - - - - - - -/** - * External dependencies - */ - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - - - - - - - - - -var FocusManaged = with_constrained_tabbing(with_focus_return(function (_ref) { - var children = _ref.children; - return children; + return FocusReturnProvider; +}(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["Component"]); + +/* harmony default export */ __webpack_exports__["b"] = (FocusReturnProvider); + + + +/***/ }), +/* 194 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +if (true) { + module.exports = __webpack_require__(304); +} else {} + + +/***/ }), +/* 195 */ +/***/ (function(module, exports) { + +// Copyright (c) 2014 Rafael Caricio. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +var GradientParser = {}; + +GradientParser.parse = (function() { + + var tokens = { + linearGradient: /^(\-(webkit|o|ms|moz)\-)?(linear\-gradient)/i, + repeatingLinearGradient: /^(\-(webkit|o|ms|moz)\-)?(repeating\-linear\-gradient)/i, + radialGradient: /^(\-(webkit|o|ms|moz)\-)?(radial\-gradient)/i, + repeatingRadialGradient: /^(\-(webkit|o|ms|moz)\-)?(repeating\-radial\-gradient)/i, + sideOrCorner: /^to (left (top|bottom)|right (top|bottom)|left|right|top|bottom)/i, + extentKeywords: /^(closest\-side|closest\-corner|farthest\-side|farthest\-corner|contain|cover)/, + positionKeywords: /^(left|center|right|top|bottom)/i, + pixelValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))px/, + percentageValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))\%/, + emValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))em/, + angleValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))deg/, + startCall: /^\(/, + endCall: /^\)/, + comma: /^,/, + hexColor: /^\#([0-9a-fA-F]+)/, + literalColor: /^([a-zA-Z]+)/, + rgbColor: /^rgb/i, + rgbaColor: /^rgba/i, + number: /^(([0-9]*\.[0-9]+)|([0-9]+\.?))/ + }; + + var input = ''; + + function error(msg) { + var err = new Error(input + ': ' + msg); + err.source = input; + throw err; + } + + function getAST() { + var ast = matchListDefinitions(); + + if (input.length > 0) { + error('Invalid input not EOF'); + } + + return ast; + } + + function matchListDefinitions() { + return matchListing(matchDefinition); + } + + function matchDefinition() { + return matchGradient( + 'linear-gradient', + tokens.linearGradient, + matchLinearOrientation) || + + matchGradient( + 'repeating-linear-gradient', + tokens.repeatingLinearGradient, + matchLinearOrientation) || + + matchGradient( + 'radial-gradient', + tokens.radialGradient, + matchListRadialOrientations) || + + matchGradient( + 'repeating-radial-gradient', + tokens.repeatingRadialGradient, + matchListRadialOrientations); + } + + function matchGradient(gradientType, pattern, orientationMatcher) { + return matchCall(pattern, function(captures) { + + var orientation = orientationMatcher(); + if (orientation) { + if (!scan(tokens.comma)) { + error('Missing comma before color stops'); + } + } + + return { + type: gradientType, + orientation: orientation, + colorStops: matchListing(matchColorStop) + }; + }); + } + + function matchCall(pattern, callback) { + var captures = scan(pattern); + + if (captures) { + if (!scan(tokens.startCall)) { + error('Missing ('); + } + + result = callback(captures); + + if (!scan(tokens.endCall)) { + error('Missing )'); + } + + return result; + } + } + + function matchLinearOrientation() { + return matchSideOrCorner() || + matchAngle(); + } + + function matchSideOrCorner() { + return match('directional', tokens.sideOrCorner, 1); + } + + function matchAngle() { + return match('angular', tokens.angleValue, 1); + } + + function matchListRadialOrientations() { + var radialOrientations, + radialOrientation = matchRadialOrientation(), + lookaheadCache; + + if (radialOrientation) { + radialOrientations = []; + radialOrientations.push(radialOrientation); + + lookaheadCache = input; + if (scan(tokens.comma)) { + radialOrientation = matchRadialOrientation(); + if (radialOrientation) { + radialOrientations.push(radialOrientation); + } else { + input = lookaheadCache; + } + } + } + + return radialOrientations; + } + + function matchRadialOrientation() { + var radialType = matchCircle() || + matchEllipse(); + + if (radialType) { + radialType.at = matchAtPosition(); + } else { + var defaultPosition = matchPositioning(); + if (defaultPosition) { + radialType = { + type: 'default-radial', + at: defaultPosition + }; + } + } + + return radialType; + } + + function matchCircle() { + var circle = match('shape', /^(circle)/i, 0); + + if (circle) { + circle.style = matchLength() || matchExtentKeyword(); + } + + return circle; + } + + function matchEllipse() { + var ellipse = match('shape', /^(ellipse)/i, 0); + + if (ellipse) { + ellipse.style = matchDistance() || matchExtentKeyword(); + } + + return ellipse; + } + + function matchExtentKeyword() { + return match('extent-keyword', tokens.extentKeywords, 1); + } + + function matchAtPosition() { + if (match('position', /^at/, 0)) { + var positioning = matchPositioning(); + + if (!positioning) { + error('Missing positioning value'); + } + + return positioning; + } + } + + function matchPositioning() { + var location = matchCoordinates(); + + if (location.x || location.y) { + return { + type: 'position', + value: location + }; + } + } + + function matchCoordinates() { + return { + x: matchDistance(), + y: matchDistance() + }; + } + + function matchListing(matcher) { + var captures = matcher(), + result = []; + + if (captures) { + result.push(captures); + while (scan(tokens.comma)) { + captures = matcher(); + if (captures) { + result.push(captures); + } else { + error('One extra comma'); + } + } + } + + return result; + } + + function matchColorStop() { + var color = matchColor(); + + if (!color) { + error('Expected color definition'); + } + + color.length = matchDistance(); + return color; + } + + function matchColor() { + return matchHexColor() || + matchRGBAColor() || + matchRGBColor() || + matchLiteralColor(); + } + + function matchLiteralColor() { + return match('literal', tokens.literalColor, 0); + } + + function matchHexColor() { + return match('hex', tokens.hexColor, 1); + } + + function matchRGBColor() { + return matchCall(tokens.rgbColor, function() { + return { + type: 'rgb', + value: matchListing(matchNumber) + }; + }); + } + + function matchRGBAColor() { + return matchCall(tokens.rgbaColor, function() { + return { + type: 'rgba', + value: matchListing(matchNumber) + }; + }); + } + + function matchNumber() { + return scan(tokens.number)[1]; + } + + function matchDistance() { + return match('%', tokens.percentageValue, 1) || + matchPositionKeyword() || + matchLength(); + } + + function matchPositionKeyword() { + return match('position-keyword', tokens.positionKeywords, 1); + } + + function matchLength() { + return match('px', tokens.pixelValue, 1) || + match('em', tokens.emValue, 1); + } + + function match(type, pattern, captureIndex) { + var captures = scan(pattern); + if (captures) { + return { + type: type, + value: captures[captureIndex] + }; + } + } + + function scan(regexp) { + var captures, + blankCaptures; + + blankCaptures = /^[\n\r\t\s]+/.exec(input); + if (blankCaptures) { + consume(blankCaptures[0].length); + } + + captures = regexp.exec(input); + if (captures) { + consume(captures[0].length); + } + + return captures; + } + + function consume(size) { + input = input.substr(size); + } + + return function(code) { + input = code.toString(); + return getAST(); + }; +})(); + +exports.parse = (GradientParser || {}).parse; + + +/***/ }), +/* 196 */, +/* 197 */, +/* 198 */, +/* 199 */, +/* 200 */, +/* 201 */, +/* 202 */, +/* 203 */, +/* 204 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); +/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__); + + +/** + * WordPress dependencies + */ + +var upload = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], { + d: "M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z" +})); +/* harmony default export */ __webpack_exports__["a"] = (upload); + + +/***/ }), +/* 205 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); +/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__); + + +/** + * WordPress dependencies + */ + +var linkOff = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], { + d: "M15.6 7.3h-.7l1.6-3.5-.9-.4-3.9 8.5H9v1.5h2l-1.3 2.8H8.4c-2 0-3.7-1.7-3.7-3.7s1.7-3.7 3.7-3.7H10V7.3H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H9l-1.4 3.2.9.4 5.7-12.5h1.4c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.9 0 5.2-2.3 5.2-5.2 0-2.9-2.4-5.2-5.2-5.2z" })); -/** - * Name of slot in which popover should fill. - * - * @type {String} - */ - -var SLOT_NAME = 'Popover'; - -var popover_Popover = -/*#__PURE__*/ -function (_Component) { - Object(inherits["a" /* default */])(Popover, _Component); - - function Popover() { - var _this; - - Object(classCallCheck["a" /* default */])(this, Popover); - - _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Popover).apply(this, arguments)); - _this.getAnchorRect = _this.getAnchorRect.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.computePopoverPosition = _this.computePopoverPosition.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.maybeClose = _this.maybeClose.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.throttledRefresh = _this.throttledRefresh.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.refresh = _this.refresh.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.refreshOnAnchorMove = _this.refreshOnAnchorMove.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.contentNode = Object(external_this_wp_element_["createRef"])(); - _this.anchorNode = Object(external_this_wp_element_["createRef"])(); - _this.state = { - popoverLeft: null, - popoverTop: null, - yAxis: 'top', - xAxis: 'center', - contentHeight: null, - contentWidth: null, - isMobile: false, - popoverSize: null, - // Delay the animation after the initial render - // because the animation have impact on the height of the popover - // causing the computed position to be wrong. - isReadyToAnimate: false - }; // Property used keep track of the previous anchor rect - // used to compute the popover position and size. - - _this.anchorRect = {}; +/* harmony default export */ __webpack_exports__["a"] = (linkOff); + + +/***/ }), +/* 206 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var toStr = Object.prototype.toString; + +module.exports = function isArguments(value) { + var str = toStr.call(value); + var isArgs = str === '[object Arguments]'; + if (!isArgs) { + isArgs = str !== '[object Array]' && + value !== null && + typeof value === 'object' && + typeof value.length === 'number' && + value.length >= 0 && + toStr.call(value.callee) === '[object Function]'; + } + return isArgs; +}; + + +/***/ }), +/* 207 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { + +var origSymbol = global.Symbol; +var hasSymbolSham = __webpack_require__(313); + +module.exports = function hasNativeSymbols() { + if (typeof origSymbol !== 'function') { return false; } + if (typeof Symbol !== 'function') { return false; } + if (typeof origSymbol('foo') !== 'symbol') { return false; } + if (typeof Symbol('bar') !== 'symbol') { return false; } + + return hasSymbolSham(); +}; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(127))) + +/***/ }), +/* 208 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var ArraySpeciesCreate = __webpack_require__(314); +var FlattenIntoArray = __webpack_require__(324); +var Get = __webpack_require__(183); +var ToInteger = __webpack_require__(220); +var ToLength = __webpack_require__(219); +var ToObject = __webpack_require__(344); + +module.exports = function flat() { + var O = ToObject(this); + var sourceLen = ToLength(Get(O, 'length')); + + var depthNum = 1; + if (arguments.length > 0 && typeof arguments[0] !== 'undefined') { + depthNum = ToInteger(arguments[0]); + } + + var A = ArraySpeciesCreate(O, 0); + FlattenIntoArray(A, O, sourceLen, 0, depthNum); + return A; +}; + + +/***/ }), +/* 209 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var GetIntrinsic = __webpack_require__(58); + +var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); + +if ($defineProperty) { + try { + $defineProperty({}, 'a', { value: 1 }); + } catch (e) { + // IE 8 has a broken defineProperty + $defineProperty = null; + } +} + +var callBound = __webpack_require__(140); + +var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); + +// eslint-disable-next-line max-params +module.exports = function DefineOwnProperty(IsDataDescriptor, SameValue, FromPropertyDescriptor, O, P, desc) { + if (!$defineProperty) { + if (!IsDataDescriptor(desc)) { + // ES3 does not support getters/setters + return false; + } + if (!desc['[[Configurable]]'] || !desc['[[Writable]]']) { + return false; + } + + // fallback for ES3 + if (P in O && $isEnumerable(O, P) !== !!desc['[[Enumerable]]']) { + // a non-enumerable existing property + return false; + } + + // property does not exist at all, or exists but is enumerable + var V = desc['[[Value]]']; + // eslint-disable-next-line no-param-reassign + O[P] = V; // will use [[Define]] + return SameValue(O[P], V); + } + $defineProperty(O, P, FromPropertyDescriptor(desc)); + return true; +}; + + +/***/ }), +/* 210 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var assertRecord = __webpack_require__(185); + +var Type = __webpack_require__(90); + +// https://www.ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor + +module.exports = function FromPropertyDescriptor(Desc) { + if (typeof Desc === 'undefined') { + return Desc; + } + + assertRecord(Type, 'Property Descriptor', 'Desc', Desc); + + var obj = {}; + if ('[[Value]]' in Desc) { + obj.value = Desc['[[Value]]']; + } + if ('[[Writable]]' in Desc) { + obj.writable = Desc['[[Writable]]']; + } + if ('[[Get]]' in Desc) { + obj.get = Desc['[[Get]]']; + } + if ('[[Set]]' in Desc) { + obj.set = Desc['[[Set]]']; + } + if ('[[Enumerable]]' in Desc) { + obj.enumerable = Desc['[[Enumerable]]']; + } + if ('[[Configurable]]' in Desc) { + obj.configurable = Desc['[[Configurable]]']; + } + return obj; +}; + + +/***/ }), +/* 211 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var has = __webpack_require__(91); + +var assertRecord = __webpack_require__(185); + +var Type = __webpack_require__(90); + +// https://www.ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor + +module.exports = function IsDataDescriptor(Desc) { + if (typeof Desc === 'undefined') { + return false; + } + + assertRecord(Type, 'Property Descriptor', 'Desc', Desc); + + if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { + return false; + } + + return true; +}; + + +/***/ }), +/* 212 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $isNaN = __webpack_require__(186); + +// http://www.ecma-international.org/ecma-262/5.1/#sec-9.12 + +module.exports = function SameValue(x, y) { + if (x === y) { // 0 === -0, but they are not identical. + if (x === 0) { return 1 / x === 1 / y; } + return true; + } + return $isNaN(x) && $isNaN(y); +}; + + +/***/ }), +/* 213 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var has = __webpack_require__(91); + +var GetIntrinsic = __webpack_require__(58); + +var $TypeError = GetIntrinsic('%TypeError%'); + +var Type = __webpack_require__(90); +var ToBoolean = __webpack_require__(214); +var IsCallable = __webpack_require__(322); + +// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5 + +module.exports = function ToPropertyDescriptor(Obj) { + if (Type(Obj) !== 'Object') { + throw new $TypeError('ToPropertyDescriptor requires an object'); + } + + var desc = {}; + if (has(Obj, 'enumerable')) { + desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); + } + if (has(Obj, 'configurable')) { + desc['[[Configurable]]'] = ToBoolean(Obj.configurable); + } + if (has(Obj, 'value')) { + desc['[[Value]]'] = Obj.value; + } + if (has(Obj, 'writable')) { + desc['[[Writable]]'] = ToBoolean(Obj.writable); + } + if (has(Obj, 'get')) { + var getter = Obj.get; + if (typeof getter !== 'undefined' && !IsCallable(getter)) { + throw new TypeError('getter must be a function'); + } + desc['[[Get]]'] = getter; + } + if (has(Obj, 'set')) { + var setter = Obj.set; + if (typeof setter !== 'undefined' && !IsCallable(setter)) { + throw new $TypeError('setter must be a function'); + } + desc['[[Set]]'] = setter; + } + + if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { + throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); + } + return desc; +}; + + +/***/ }), +/* 214 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +// http://www.ecma-international.org/ecma-262/5.1/#sec-9.2 + +module.exports = function ToBoolean(value) { return !!value; }; + + +/***/ }), +/* 215 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var fnToStr = Function.prototype.toString; +var reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply; +var badArrayLike; +var isCallableMarker; +if (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') { + try { + badArrayLike = Object.defineProperty({}, 'length', { + get: function () { + throw isCallableMarker; + } + }); + isCallableMarker = {}; + } catch (_) { + reflectApply = null; + } +} else { + reflectApply = null; +} + +var constructorRegex = /^\s*class\b/; +var isES6ClassFn = function isES6ClassFunction(value) { + try { + var fnStr = fnToStr.call(value); + return constructorRegex.test(fnStr); + } catch (e) { + return false; // not a function + } +}; + +var tryFunctionObject = function tryFunctionToStr(value) { + try { + if (isES6ClassFn(value)) { return false; } + fnToStr.call(value); + return true; + } catch (e) { + return false; + } +}; +var toStr = Object.prototype.toString; +var fnClass = '[object Function]'; +var genClass = '[object GeneratorFunction]'; +var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; + +module.exports = reflectApply + ? function isCallable(value) { + if (!value) { return false; } + if (typeof value !== 'function' && typeof value !== 'object') { return false; } + if (typeof value === 'function' && !value.prototype) { return true; } + try { + reflectApply(value, null, badArrayLike); + } catch (e) { + if (e !== isCallableMarker) { return false; } + } + return !isES6ClassFn(value); + } + : function isCallable(value) { + if (!value) { return false; } + if (typeof value !== 'function' && typeof value !== 'object') { return false; } + if (typeof value === 'function' && !value.prototype) { return true; } + if (hasToStringTag) { return tryFunctionObject(value); } + if (isES6ClassFn(value)) { return false; } + var strClass = toStr.call(value); + return strClass === fnClass || strClass === genClass; + }; + + +/***/ }), +/* 216 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $isNaN = Number.isNaN || function (a) { return a !== a; }; + +module.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; }; + + +/***/ }), +/* 217 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var GetIntrinsic = __webpack_require__(58); + +var $Math = GetIntrinsic('%Math%'); +var $Number = GetIntrinsic('%Number%'); + +module.exports = $Number.MAX_SAFE_INTEGER || $Math.pow(2, 53) - 1; + + +/***/ }), +/* 218 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = function isPrimitive(value) { + return value === null || (typeof value !== 'function' && typeof value !== 'object'); +}; + + +/***/ }), +/* 219 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var MAX_SAFE_INTEGER = __webpack_require__(217); + +var ToInteger = __webpack_require__(220); + +module.exports = function ToLength(argument) { + var len = ToInteger(argument); + if (len <= 0) { return 0; } // includes converting -0 to +0 + if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } + return len; +}; + + +/***/ }), +/* 220 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var ES5ToInteger = __webpack_require__(334); + +var ToNumber = __webpack_require__(337); + +// https://www.ecma-international.org/ecma-262/6.0/#sec-tointeger + +module.exports = function ToInteger(value) { + var number = ToNumber(value); + return ES5ToInteger(number); +}; + + +/***/ }), +/* 221 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var getDay = Date.prototype.getDay; +var tryDateObject = function tryDateObject(value) { + try { + getDay.call(value); + return true; + } catch (e) { + return false; + } +}; + +var toStr = Object.prototype.toString; +var dateClass = '[object Date]'; +var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; + +module.exports = function isDateObject(value) { + if (typeof value !== 'object' || value === null) { return false; } + return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass; +}; + + +/***/ }), +/* 222 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/* eslint complexity: [2, 17], max-statements: [2, 33] */ +module.exports = function hasSymbols() { + if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } + if (typeof Symbol.iterator === 'symbol') { return true; } + + var obj = {}; + var sym = Symbol('test'); + var symObj = Object(sym); + if (typeof sym === 'string') { return false; } + + if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } + if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } + + // temp disabled per https://github.com/ljharb/object.assign/issues/17 + // if (sym instanceof Symbol) { return false; } + // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 + // if (!(symObj instanceof Symbol)) { return false; } + + // if (typeof Symbol.prototype.toString !== 'function') { return false; } + // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; } + + var symVal = 42; + obj[sym] = symVal; + for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax + if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } + + if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } + + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { return false; } + + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } + + if (typeof Object.getOwnPropertyDescriptor === 'function') { + var descriptor = Object.getOwnPropertyDescriptor(obj, sym); + if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } + } + + return true; +}; + + +/***/ }), +/* 223 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var implementation = __webpack_require__(208); + +module.exports = function getPolyfill() { + return Array.prototype.flat || implementation; +}; + + +/***/ }), +/* 224 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var styleInterface = void 0; +var styleTheme = void 0; + +var START_MARK = 'react-with-styles.resolve.start'; +var END_MARK = 'react-with-styles.resolve.end'; +var MEASURE_MARK = '\uD83D\uDC69\u200D\uD83C\uDFA8 [resolve]'; + +function registerTheme(theme) { + styleTheme = theme; +} + +function registerInterface(interfaceToRegister) { + styleInterface = interfaceToRegister; +} + +function create(makeFromTheme, createWithDirection) { + var styles = createWithDirection(makeFromTheme(styleTheme)); + return function () { + return styles; + }; +} + +function createLTR(makeFromTheme) { + return create(makeFromTheme, styleInterface.createLTR || styleInterface.create); +} + +function createRTL(makeFromTheme) { + return create(makeFromTheme, styleInterface.createRTL || styleInterface.create); +} + +function get() { + return styleTheme; +} + +function resolve() { + if (false) {} + + for (var _len = arguments.length, styles = Array(_len), _key = 0; _key < _len; _key++) { + styles[_key] = arguments[_key]; + } + + var result = styleInterface.resolve(styles); + + if (false) {} + + return result; +} + +function resolveLTR() { + for (var _len2 = arguments.length, styles = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + styles[_key2] = arguments[_key2]; + } + + if (styleInterface.resolveLTR) { + return styleInterface.resolveLTR(styles); + } + + return resolve(styles); +} + +function resolveRTL() { + for (var _len3 = arguments.length, styles = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { + styles[_key3] = arguments[_key3]; + } + + if (styleInterface.resolveRTL) { + return styleInterface.resolveRTL(styles); + } + + return resolve(styles); +} + +function flush() { + if (styleInterface.flush) { + styleInterface.flush(); + } +} + +exports['default'] = { + registerTheme: registerTheme, + registerInterface: registerInterface, + create: createLTR, + createLTR: createLTR, + createRTL: createRTL, + get: get, + resolve: resolveLTR, + resolveLTR: resolveLTR, + resolveRTL: resolveRTL, + flush: flush +}; + +/***/ }), +/* 225 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var core = { + white: '#fff', + gray: '#484848', + grayLight: '#82888a', + grayLighter: '#cacccd', + grayLightest: '#f2f2f2', + + borderMedium: '#c4c4c4', + border: '#dbdbdb', + borderLight: '#e4e7e7', + borderLighter: '#eceeee', + borderBright: '#f4f5f5', + + primary: '#00a699', + primaryShade_1: '#33dacd', + primaryShade_2: '#66e2da', + primaryShade_3: '#80e8e0', + primaryShade_4: '#b2f1ec', + primary_dark: '#008489', + + secondary: '#007a87', + + yellow: '#ffe8bc', + yellow_dark: '#ffce71' +}; + +exports['default'] = { + reactDates: { + zIndex: 0, + border: { + input: { + border: 0, + borderTop: 0, + borderRight: 0, + borderBottom: '2px solid transparent', + borderLeft: 0, + outlineFocused: 0, + borderFocused: 0, + borderTopFocused: 0, + borderLeftFocused: 0, + borderBottomFocused: '2px solid ' + String(core.primary_dark), + borderRightFocused: 0, + borderRadius: 0 + }, + pickerInput: { + borderWidth: 1, + borderStyle: 'solid', + borderRadius: 2 + } + }, + + color: { + core: core, + + disabled: core.grayLightest, + + background: core.white, + backgroundDark: '#f2f2f2', + backgroundFocused: core.white, + border: 'rgb(219, 219, 219)', + text: core.gray, + textDisabled: core.border, + textFocused: '#007a87', + placeholderText: '#757575', + + outside: { + backgroundColor: core.white, + backgroundColor_active: core.white, + backgroundColor_hover: core.white, + color: core.gray, + color_active: core.gray, + color_hover: core.gray + }, + + highlighted: { + backgroundColor: core.yellow, + backgroundColor_active: core.yellow_dark, + backgroundColor_hover: core.yellow_dark, + color: core.gray, + color_active: core.gray, + color_hover: core.gray + }, + + minimumNights: { + backgroundColor: core.white, + backgroundColor_active: core.white, + backgroundColor_hover: core.white, + borderColor: core.borderLighter, + color: core.grayLighter, + color_active: core.grayLighter, + color_hover: core.grayLighter + }, + + hoveredSpan: { + backgroundColor: core.primaryShade_4, + backgroundColor_active: core.primaryShade_3, + backgroundColor_hover: core.primaryShade_4, + borderColor: core.primaryShade_3, + borderColor_active: core.primaryShade_3, + borderColor_hover: core.primaryShade_3, + color: core.secondary, + color_active: core.secondary, + color_hover: core.secondary + }, + + selectedSpan: { + backgroundColor: core.primaryShade_2, + backgroundColor_active: core.primaryShade_1, + backgroundColor_hover: core.primaryShade_1, + borderColor: core.primaryShade_1, + borderColor_active: core.primary, + borderColor_hover: core.primary, + color: core.white, + color_active: core.white, + color_hover: core.white + }, + + selected: { + backgroundColor: core.primary, + backgroundColor_active: core.primary, + backgroundColor_hover: core.primary, + borderColor: core.primary, + borderColor_active: core.primary, + borderColor_hover: core.primary, + color: core.white, + color_active: core.white, + color_hover: core.white + }, + + blocked_calendar: { + backgroundColor: core.grayLighter, + backgroundColor_active: core.grayLighter, + backgroundColor_hover: core.grayLighter, + borderColor: core.grayLighter, + borderColor_active: core.grayLighter, + borderColor_hover: core.grayLighter, + color: core.grayLight, + color_active: core.grayLight, + color_hover: core.grayLight + }, + + blocked_out_of_range: { + backgroundColor: core.white, + backgroundColor_active: core.white, + backgroundColor_hover: core.white, + borderColor: core.borderLight, + borderColor_active: core.borderLight, + borderColor_hover: core.borderLight, + color: core.grayLighter, + color_active: core.grayLighter, + color_hover: core.grayLighter + } + }, + + spacing: { + dayPickerHorizontalPadding: 9, + captionPaddingTop: 22, + captionPaddingBottom: 37, + inputPadding: 0, + displayTextPaddingVertical: undefined, + displayTextPaddingTop: 11, + displayTextPaddingBottom: 9, + displayTextPaddingHorizontal: undefined, + displayTextPaddingLeft: 11, + displayTextPaddingRight: 11, + displayTextPaddingVertical_small: undefined, + displayTextPaddingTop_small: 7, + displayTextPaddingBottom_small: 5, + displayTextPaddingHorizontal_small: undefined, + displayTextPaddingLeft_small: 7, + displayTextPaddingRight_small: 7 + }, + + sizing: { + inputWidth: 130, + inputWidth_small: 97, + arrowWidth: 24 + }, + + noScrollBarOnVerticalScrollable: false, + + font: { + size: 14, + captionSize: 18, + input: { + size: 19, + lineHeight: '24px', + size_small: 15, + lineHeight_small: '18px', + letterSpacing_small: '0.2px', + styleDisabled: 'italic' + } + } + } +}; + +/***/ }), +/* 226 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +// modified from https://github.com/es-shims/es6-shim +var keys = __webpack_require__(181); +var bind = __webpack_require__(118); +var canBeObject = function (obj) { + return typeof obj !== 'undefined' && obj !== null; +}; +var hasSymbols = __webpack_require__(222)(); +var toObject = Object; +var push = bind.call(Function.call, Array.prototype.push); +var propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable); +var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null; + +module.exports = function assign(target, source1) { + if (!canBeObject(target)) { throw new TypeError('target must be an object'); } + var objTarget = toObject(target); + var s, source, i, props, syms, value, key; + for (s = 1; s < arguments.length; ++s) { + source = toObject(arguments[s]); + props = keys(source); + var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols); + if (getSymbols) { + syms = getSymbols(source); + for (i = 0; i < syms.length; ++i) { + key = syms[i]; + if (propIsEnumerable(source, key)) { + push(props, key); + } + } + } + for (i = 0; i < props.length; ++i) { + key = props[i]; + value = source[key]; + if (propIsEnumerable(source, key)) { + objTarget[key] = value; + } + } + } + return objTarget; +}; + + +/***/ }), +/* 227 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var implementation = __webpack_require__(226); + +var lacksProperEnumerationOrder = function () { + if (!Object.assign) { + return false; + } + // v8, specifically in node 4.x, has a bug with incorrect property enumeration order + // note: this does not detect the bug unless there's 20 characters + var str = 'abcdefghijklmnopqrst'; + var letters = str.split(''); + var map = {}; + for (var i = 0; i < letters.length; ++i) { + map[letters[i]] = letters[i]; + } + var obj = Object.assign({}, map); + var actual = ''; + for (var k in obj) { + actual += k; + } + return str !== actual; +}; + +var assignHasPendingExceptions = function () { + if (!Object.assign || !Object.preventExtensions) { + return false; + } + // Firefox 37 still has "pending exception" logic in its Object.assign implementation, + // which is 72% slower than our shim, and Firefox 40's native implementation. + var thrower = Object.preventExtensions({ 1: 2 }); + try { + Object.assign(thrower, 'xy'); + } catch (e) { + return thrower[1] === 'y'; + } + return false; +}; + +module.exports = function getPolyfill() { + if (!Object.assign) { + return implementation; + } + if (lacksProperEnumerationOrder()) { + return implementation; + } + if (assignHasPendingExceptions()) { + return implementation; + } + return Object.assign; +}; + + +/***/ }), +/* 228 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var define = __webpack_require__(101); + +var implementation = __webpack_require__(229); +var getPolyfill = __webpack_require__(237); +var shim = __webpack_require__(366); + +var polyfill = getPolyfill(); + +define(polyfill, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = polyfill; + + +/***/ }), +/* 229 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var ES = __webpack_require__(357); +var has = __webpack_require__(91); +var bind = __webpack_require__(118); +var isEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable); + +module.exports = function values(O) { + var obj = ES.RequireObjectCoercible(O); + var vals = []; + for (var key in obj) { + if (has(obj, key) && isEnumerable(obj, key)) { + vals.push(obj[key]); + } + } + return vals; +}; + + +/***/ }), +/* 230 */ +/***/ (function(module, exports) { + +module.exports = function isPrimitive(value) { + return value === null || (typeof value !== 'function' && typeof value !== 'object'); +}; + + +/***/ }), +/* 231 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var GetIntrinsic = __webpack_require__(189); + +var $TypeError = GetIntrinsic('%TypeError%'); +var $SyntaxError = GetIntrinsic('%SyntaxError%'); + +var has = __webpack_require__(91); + +var predicates = { + // https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type + 'Property Descriptor': function isPropertyDescriptor(ES, Desc) { + if (ES.Type(Desc) !== 'Object') { + return false; + } + var allowed = { + '[[Configurable]]': true, + '[[Enumerable]]': true, + '[[Get]]': true, + '[[Set]]': true, + '[[Value]]': true, + '[[Writable]]': true + }; + + for (var key in Desc) { // eslint-disable-line + if (has(Desc, key) && !allowed[key]) { + return false; + } + } + + var isData = has(Desc, '[[Value]]'); + var IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]'); + if (isData && IsAccessor) { + throw new $TypeError('Property Descriptors may not be both accessor and data descriptors'); + } + return true; + } +}; + +module.exports = function assertRecord(ES, recordType, argumentName, value) { + var predicate = predicates[recordType]; + if (typeof predicate !== 'function') { + throw new $SyntaxError('unknown record type: ' + recordType); + } + if (!predicate(ES, value)) { + throw new $TypeError(argumentName + ' must be a ' + recordType); + } + console.log(predicate(ES, value), value); +}; + + +/***/ }), +/* 232 */ +/***/ (function(module, exports) { + +module.exports = Number.isNaN || function isNaN(a) { + return a !== a; +}; + + +/***/ }), +/* 233 */ +/***/ (function(module, exports) { + +var $isNaN = Number.isNaN || function (a) { return a !== a; }; + +module.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; }; + + +/***/ }), +/* 234 */ +/***/ (function(module, exports, __webpack_require__) { + +var bind = __webpack_require__(118); +var has = bind.call(Function.call, Object.prototype.hasOwnProperty); + +var $assign = Object.assign; + +module.exports = function assign(target, source) { + if ($assign) { + return $assign(target, source); + } + + for (var key in source) { + if (has(source, key)) { + target[key] = source[key]; + } + } + return target; +}; + + +/***/ }), +/* 235 */ +/***/ (function(module, exports) { + +module.exports = function sign(number) { + return number >= 0 ? 1 : -1; +}; + + +/***/ }), +/* 236 */ +/***/ (function(module, exports) { + +module.exports = function mod(number, modulo) { + var remain = number % modulo; + return Math.floor(remain >= 0 ? remain : remain + modulo); +}; + + +/***/ }), +/* 237 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var implementation = __webpack_require__(229); + +module.exports = function getPolyfill() { + return typeof Object.values === 'function' ? Object.values : implementation; +}; + + +/***/ }), +/* 238 */ +/***/ (function(module, exports) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = isTouchDevice; +function isTouchDevice() { + return !!(typeof window !== 'undefined' && ('ontouchstart' in window || window.DocumentTouch && typeof document !== 'undefined' && document instanceof window.DocumentTouch)) || !!(typeof navigator !== 'undefined' && (navigator.maxTouchPoints || navigator.msMaxTouchPoints)); +} +module.exports = exports['default']; + +/***/ }), +/* 239 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = isAfterDay; + +var _moment = __webpack_require__(43); + +var _moment2 = _interopRequireDefault(_moment); + +var _isBeforeDay = __webpack_require__(240); + +var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay); + +var _isSameDay = __webpack_require__(190); + +var _isSameDay2 = _interopRequireDefault(_isSameDay); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function isAfterDay(a, b) { + if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false; + return !(0, _isBeforeDay2['default'])(a, b) && !(0, _isSameDay2['default'])(a, b); +} + +/***/ }), +/* 240 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = isBeforeDay; + +var _moment = __webpack_require__(43); + +var _moment2 = _interopRequireDefault(_moment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function isBeforeDay(a, b) { + if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false; + + var aYear = a.year(); + var aMonth = a.month(); + + var bYear = b.year(); + var bMonth = b.month(); + + var isSameYear = aYear === bYear; + var isSameMonth = aMonth === bMonth; + + if (isSameYear && isSameMonth) return a.date() < b.date(); + if (isSameYear) return aMonth < bMonth; + return aYear < bYear; +} + +/***/ }), +/* 241 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = toMomentObject; + +var _moment = __webpack_require__(43); + +var _moment2 = _interopRequireDefault(_moment); + +var _constants = __webpack_require__(77); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function toMomentObject(dateString, customFormat) { + var dateFormats = customFormat ? [customFormat, _constants.DISPLAY_FORMAT, _constants.ISO_FORMAT] : [_constants.DISPLAY_FORMAT, _constants.ISO_FORMAT]; + + var date = (0, _moment2['default'])(dateString, dateFormats, true); + return date.isValid() ? date.hour(12) : null; +} + +/***/ }), +/* 242 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = isDayVisible; + +var _isBeforeDay = __webpack_require__(240); + +var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay); + +var _isAfterDay = __webpack_require__(239); + +var _isAfterDay2 = _interopRequireDefault(_isAfterDay); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function isDayVisible(day, month, numberOfMonths, enableOutsideDays) { + var firstDayOfFirstMonth = month.clone().startOf('month'); + if (enableOutsideDays) firstDayOfFirstMonth = firstDayOfFirstMonth.startOf('week'); + if ((0, _isBeforeDay2['default'])(day, firstDayOfFirstMonth)) return false; + + var lastDayOfLastMonth = month.clone().add(numberOfMonths - 1, 'months').endOf('month'); + if (enableOutsideDays) lastDayOfLastMonth = lastDayOfLastMonth.endOf('week'); + return !(0, _isAfterDay2['default'])(day, lastDayOfLastMonth); +} + +/***/ }), +/* 243 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = toISODateString; + +var _moment = __webpack_require__(43); + +var _moment2 = _interopRequireDefault(_moment); + +var _toMomentObject = __webpack_require__(241); + +var _toMomentObject2 = _interopRequireDefault(_toMomentObject); + +var _constants = __webpack_require__(77); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function toISODateString(date, currentFormat) { + var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat); + if (!dateObj) return null; + + return dateObj.format(_constants.ISO_FORMAT); +} + +/***/ }), +/* 244 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _propTypes = __webpack_require__(28); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _constants = __webpack_require__(77); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +exports['default'] = _propTypes2['default'].oneOf([_constants.INFO_POSITION_TOP, _constants.INFO_POSITION_BOTTOM, _constants.INFO_POSITION_BEFORE, _constants.INFO_POSITION_AFTER]); + +/***/ }), +/* 245 */ +/***/ (function(module, exports, __webpack_require__) { + +var freeGlobal = __webpack_require__(378); + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +module.exports = root; + + +/***/ }), +/* 246 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(245); + +/** Built-in value references. */ +var Symbol = root.Symbol; + +module.exports = Symbol; + + +/***/ }), +/* 247 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addEventListener", function() { return addEventListener; }); +var CAN_USE_DOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + +// Adapted from Modernizr +// https://github.com/Modernizr/Modernizr/blob/acb3f0d9/feature-detects/dom/passiveeventlisteners.js#L26-L37 +function testPassiveEventListeners() { + if (!CAN_USE_DOM) { + return false; + } + + if (!window.addEventListener || !window.removeEventListener || !Object.defineProperty) { + return false; + } + + var supportsPassiveOption = false; + try { + var opts = Object.defineProperty({}, 'passive', { + // eslint-disable-next-line getter-return + get: function () { + function get() { + supportsPassiveOption = true; + } + + return get; + }() + }); + var noop = function noop() {}; + window.addEventListener('testPassiveEventSupport', noop, opts); + window.removeEventListener('testPassiveEventSupport', noop, opts); + } catch (e) { + // do nothing + } + + return supportsPassiveOption; +} + +var memoized = void 0; + +function canUsePassiveEventListeners() { + if (memoized === undefined) { + memoized = testPassiveEventListeners(); + } + return memoized; +} + +function normalizeEventOptions(eventOptions) { + if (!eventOptions) { + return undefined; + } + + if (!canUsePassiveEventListeners()) { + // If the browser does not support the passive option, then it is expecting + // a boolean for the options argument to specify whether it should use + // capture or not. In more modern browsers, this is passed via the `capture` + // option, so let's just hoist that value up. + return !!eventOptions.capture; + } + + return eventOptions; +} + +/* eslint-disable no-bitwise */ + +/** + * Generate a unique key for any set of event options + */ +function eventOptionsKey(normalizedEventOptions) { + if (!normalizedEventOptions) { + return 0; + } + + // If the browser does not support passive event listeners, the normalized + // event options will be a boolean. + if (normalizedEventOptions === true) { + return 100; + } + + // At this point, the browser supports passive event listeners, so we expect + // the event options to be an object with possible properties of capture, + // passive, and once. + // + // We want to consistently return the same value, regardless of the order of + // these properties, so let's use binary maths to assign each property to a + // bit, and then add those together (with an offset to account for the + // booleans at the beginning of this function). + var capture = normalizedEventOptions.capture << 0; + var passive = normalizedEventOptions.passive << 1; + var once = normalizedEventOptions.once << 2; + return capture + passive + once; +} + +function ensureCanMutateNextEventHandlers(eventHandlers) { + if (eventHandlers.handlers === eventHandlers.nextHandlers) { + // eslint-disable-next-line no-param-reassign + eventHandlers.nextHandlers = eventHandlers.handlers.slice(); + } +} + +function TargetEventHandlers(target) { + this.target = target; + this.events = {}; +} + +TargetEventHandlers.prototype.getEventHandlers = function () { + function getEventHandlers(eventName, options) { + var key = String(eventName) + ' ' + String(eventOptionsKey(options)); + + if (!this.events[key]) { + this.events[key] = { + handlers: [], + handleEvent: undefined + }; + this.events[key].nextHandlers = this.events[key].handlers; + } + + return this.events[key]; + } + + return getEventHandlers; +}(); + +TargetEventHandlers.prototype.handleEvent = function () { + function handleEvent(eventName, options, event) { + var eventHandlers = this.getEventHandlers(eventName, options); + eventHandlers.handlers = eventHandlers.nextHandlers; + eventHandlers.handlers.forEach(function (handler) { + if (handler) { + // We need to check for presence here because a handler function may + // cause later handlers to get removed. This can happen if you for + // instance have a waypoint that unmounts another waypoint as part of an + // onEnter/onLeave handler. + handler(event); + } + }); + } + + return handleEvent; +}(); + +TargetEventHandlers.prototype.add = function () { + function add(eventName, listener, options) { + var _this = this; + + // options has already been normalized at this point. + var eventHandlers = this.getEventHandlers(eventName, options); + + ensureCanMutateNextEventHandlers(eventHandlers); + + if (eventHandlers.nextHandlers.length === 0) { + eventHandlers.handleEvent = this.handleEvent.bind(this, eventName, options); + + this.target.addEventListener(eventName, eventHandlers.handleEvent, options); + } + + eventHandlers.nextHandlers.push(listener); + + var isSubscribed = true; + var unsubscribe = function () { + function unsubscribe() { + if (!isSubscribed) { + return; + } + + isSubscribed = false; + + ensureCanMutateNextEventHandlers(eventHandlers); + var index = eventHandlers.nextHandlers.indexOf(listener); + eventHandlers.nextHandlers.splice(index, 1); + + if (eventHandlers.nextHandlers.length === 0) { + // All event handlers have been removed, so we want to remove the event + // listener from the target node. + + if (_this.target) { + // There can be a race condition where the target may no longer exist + // when this function is called, e.g. when a React component is + // unmounting. Guarding against this prevents the following error: + // + // Cannot read property 'removeEventListener' of undefined + _this.target.removeEventListener(eventName, eventHandlers.handleEvent, options); + } + + eventHandlers.handleEvent = undefined; + } + } + + return unsubscribe; + }(); + return unsubscribe; + } + + return add; +}(); + +var EVENT_HANDLERS_KEY = '__consolidated_events_handlers__'; + +// eslint-disable-next-line import/prefer-default-export +function addEventListener(target, eventName, listener, options) { + if (!target[EVENT_HANDLERS_KEY]) { + // eslint-disable-next-line no-param-reassign + target[EVENT_HANDLERS_KEY] = new TargetEventHandlers(target); + } + var normalizedEventOptions = normalizeEventOptions(options); + return target[EVENT_HANDLERS_KEY].add(eventName, listener, normalizedEventOptions); +} + + + + +/***/ }), +/* 248 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = function contains(other) { + if (arguments.length < 1) { + throw new TypeError('1 argument is required'); + } + if (typeof other !== 'object') { + throw new TypeError('Argument 1 (”other“) to Node.contains must be an instance of Node'); + } + + var node = other; + do { + if (this === node) { + return true; + } + if (node) { + node = node.parentNode; + } + } while (node); + + return false; +}; + + +/***/ }), +/* 249 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var implementation = __webpack_require__(248); + +module.exports = function getPolyfill() { + if (typeof document !== 'undefined') { + if (document.contains) { + return document.contains; + } + if (document.body && document.body.contains) { + try { + if (typeof document.body.contains.call(document, '') === 'boolean') { + return document.body.contains; + } + } catch (e) { /**/ } + } + } + return implementation; +}; + + +/***/ }), +/* 250 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PureCalendarDay = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _object = __webpack_require__(92); + +var _object2 = _interopRequireDefault(_object); + +var _react = __webpack_require__(13); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(28); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactAddonsShallowCompare = __webpack_require__(143); + +var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare); + +var _reactMomentProptypes = __webpack_require__(141); + +var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes); + +var _airbnbPropTypes = __webpack_require__(85); + +var _reactWithStyles = __webpack_require__(109); + +var _moment = __webpack_require__(43); + +var _moment2 = _interopRequireDefault(_moment); + +var _defaultPhrases = __webpack_require__(107); + +var _getPhrasePropTypes = __webpack_require__(108); + +var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes); + +var _getCalendarDaySettings = __webpack_require__(251); + +var _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings); + +var _ModifiersShape = __webpack_require__(157); + +var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape); + +var _constants = __webpack_require__(77); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, { + day: _reactMomentProptypes2['default'].momentObj, + daySize: _airbnbPropTypes.nonNegativeInteger, + isOutsideDay: _propTypes2['default'].bool, + modifiers: _ModifiersShape2['default'], + isFocused: _propTypes2['default'].bool, + tabIndex: _propTypes2['default'].oneOf([0, -1]), + onDayClick: _propTypes2['default'].func, + onDayMouseEnter: _propTypes2['default'].func, + onDayMouseLeave: _propTypes2['default'].func, + renderDayContents: _propTypes2['default'].func, + ariaLabelFormat: _propTypes2['default'].string, + + // internationalization + phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)) +})); + +var defaultProps = { + day: (0, _moment2['default'])(), + daySize: _constants.DAY_SIZE, + isOutsideDay: false, + modifiers: new Set(), + isFocused: false, + tabIndex: -1, + onDayClick: function () { + function onDayClick() {} + + return onDayClick; + }(), + onDayMouseEnter: function () { + function onDayMouseEnter() {} + + return onDayMouseEnter; + }(), + onDayMouseLeave: function () { + function onDayMouseLeave() {} + + return onDayMouseLeave; + }(), + + renderDayContents: null, + ariaLabelFormat: 'dddd, LL', + + // internationalization + phrases: _defaultPhrases.CalendarDayPhrases +}; + +var CalendarDay = function (_React$Component) { + _inherits(CalendarDay, _React$Component); + + function CalendarDay() { + var _ref; + + _classCallCheck(this, CalendarDay); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var _this = _possibleConstructorReturn(this, (_ref = CalendarDay.__proto__ || Object.getPrototypeOf(CalendarDay)).call.apply(_ref, [this].concat(args))); + + _this.setButtonRef = _this.setButtonRef.bind(_this); return _this; } - Object(createClass["a" /* default */])(Popover, [{ - key: "componentDidMount", - value: function componentDidMount() { - var _this2 = this; - - this.toggleAutoRefresh(!this.props.hasOwnProperty('anchorRect')); - this.refresh(); - /* - * Without the setTimeout, the dom node is not being focused. Related: - * https://stackoverflow.com/questions/35522220/react-ref-with-focus-doesnt-work-without-settimeout-my-example - * - * TODO: Treat the cause, not the symptom. - */ - - this.focusTimeout = setTimeout(function () { - _this2.focus(); - }, 0); - } - }, { - key: "componentDidUpdate", - value: function componentDidUpdate(prevProps) { - if (prevProps.position !== this.props.position) { - this.computePopoverPosition(this.state.popoverSize, this.anchorRect); - } - - if (prevProps.anchorRect !== this.props.anchorRect) { - this.refreshOnAnchorMove(); - } - - var hasAnchorRect = this.props.hasOwnProperty('anchorRect'); - - if (hasAnchorRect !== prevProps.hasOwnProperty('anchorRect')) { - this.toggleAutoRefresh(!hasAnchorRect); - } - } - }, { - key: "componentWillUnmount", - value: function componentWillUnmount() { - clearTimeout(this.focusTimeout); - this.toggleAutoRefresh(false); - } - }, { - key: "toggleAutoRefresh", - value: function toggleAutoRefresh(isActive) { - window.cancelAnimationFrame(this.rafHandle); // Refresh the popover every time the window is resized or scrolled - - var handler = isActive ? 'addEventListener' : 'removeEventListener'; - window[handler]('resize', this.throttledRefresh); - window[handler]('scroll', this.throttledRefresh, true); - /* - * There are sometimes we need to reposition or resize the popover that are not - * handled by the resize/scroll window events (i.e. CSS changes in the layout - * that changes the position of the anchor). - * - * For these situations, we refresh the popover every 0.5s - */ - - if (isActive) { - this.autoRefresh = setInterval(this.refreshOnAnchorMove, 500); + _createClass(CalendarDay, [{ + key: 'shouldComponentUpdate', + value: function () { + function shouldComponentUpdate(nextProps, nextState) { + return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState); + } + + return shouldComponentUpdate; + }() + }, { + key: 'componentDidUpdate', + value: function () { + function componentDidUpdate(prevProps) { + var _props = this.props, + isFocused = _props.isFocused, + tabIndex = _props.tabIndex; + + if (tabIndex === 0) { + if (isFocused || tabIndex !== prevProps.tabIndex) { + this.buttonRef.focus(); + } + } + } + + return componentDidUpdate; + }() + }, { + key: 'onDayClick', + value: function () { + function onDayClick(day, e) { + var onDayClick = this.props.onDayClick; + + onDayClick(day, e); + } + + return onDayClick; + }() + }, { + key: 'onDayMouseEnter', + value: function () { + function onDayMouseEnter(day, e) { + var onDayMouseEnter = this.props.onDayMouseEnter; + + onDayMouseEnter(day, e); + } + + return onDayMouseEnter; + }() + }, { + key: 'onDayMouseLeave', + value: function () { + function onDayMouseLeave(day, e) { + var onDayMouseLeave = this.props.onDayMouseLeave; + + onDayMouseLeave(day, e); + } + + return onDayMouseLeave; + }() + }, { + key: 'onKeyDown', + value: function () { + function onKeyDown(day, e) { + var onDayClick = this.props.onDayClick; + var key = e.key; + + if (key === 'Enter' || key === ' ') { + onDayClick(day, e); + } + } + + return onKeyDown; + }() + }, { + key: 'setButtonRef', + value: function () { + function setButtonRef(ref) { + this.buttonRef = ref; + } + + return setButtonRef; + }() + }, { + key: 'render', + value: function () { + function render() { + var _this2 = this; + + var _props2 = this.props, + day = _props2.day, + ariaLabelFormat = _props2.ariaLabelFormat, + daySize = _props2.daySize, + isOutsideDay = _props2.isOutsideDay, + modifiers = _props2.modifiers, + renderDayContents = _props2.renderDayContents, + tabIndex = _props2.tabIndex, + styles = _props2.styles, + phrases = _props2.phrases; + + + if (!day) return _react2['default'].createElement('td', null); + + var _getCalendarDaySettin = (0, _getCalendarDaySettings2['default'])(day, ariaLabelFormat, daySize, modifiers, phrases), + daySizeStyles = _getCalendarDaySettin.daySizeStyles, + useDefaultCursor = _getCalendarDaySettin.useDefaultCursor, + selected = _getCalendarDaySettin.selected, + hoveredSpan = _getCalendarDaySettin.hoveredSpan, + isOutsideRange = _getCalendarDaySettin.isOutsideRange, + ariaLabel = _getCalendarDaySettin.ariaLabel; + + return _react2['default'].createElement( + 'td', + _extends({}, (0, _reactWithStyles.css)(styles.CalendarDay, useDefaultCursor && styles.CalendarDay__defaultCursor, styles.CalendarDay__default, isOutsideDay && styles.CalendarDay__outside, modifiers.has('today') && styles.CalendarDay__today, modifiers.has('first-day-of-week') && styles.CalendarDay__firstDayOfWeek, modifiers.has('last-day-of-week') && styles.CalendarDay__lastDayOfWeek, modifiers.has('hovered-offset') && styles.CalendarDay__hovered_offset, modifiers.has('highlighted-calendar') && styles.CalendarDay__highlighted_calendar, modifiers.has('blocked-minimum-nights') && styles.CalendarDay__blocked_minimum_nights, modifiers.has('blocked-calendar') && styles.CalendarDay__blocked_calendar, hoveredSpan && styles.CalendarDay__hovered_span, modifiers.has('selected-span') && styles.CalendarDay__selected_span, modifiers.has('last-in-range') && styles.CalendarDay__last_in_range, modifiers.has('selected-start') && styles.CalendarDay__selected_start, modifiers.has('selected-end') && styles.CalendarDay__selected_end, selected && styles.CalendarDay__selected, isOutsideRange && styles.CalendarDay__blocked_out_of_range, daySizeStyles), { + role: 'button' // eslint-disable-line jsx-a11y/no-noninteractive-element-to-interactive-role + , ref: this.setButtonRef, + 'aria-label': ariaLabel, + onMouseEnter: function () { + function onMouseEnter(e) { + _this2.onDayMouseEnter(day, e); + } + + return onMouseEnter; + }(), + onMouseLeave: function () { + function onMouseLeave(e) { + _this2.onDayMouseLeave(day, e); + } + + return onMouseLeave; + }(), + onMouseUp: function () { + function onMouseUp(e) { + e.currentTarget.blur(); + } + + return onMouseUp; + }(), + onClick: function () { + function onClick(e) { + _this2.onDayClick(day, e); + } + + return onClick; + }(), + onKeyDown: function () { + function onKeyDown(e) { + _this2.onKeyDown(day, e); + } + + return onKeyDown; + }(), + tabIndex: tabIndex + }), + renderDayContents ? renderDayContents(day, modifiers) : day.format('D') + ); + } + + return render; + }() + }]); + + return CalendarDay; +}(_react2['default'].Component); + +CalendarDay.propTypes = propTypes; +CalendarDay.defaultProps = defaultProps; + +exports.PureCalendarDay = CalendarDay; +exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) { + var _ref2$reactDates = _ref2.reactDates, + color = _ref2$reactDates.color, + font = _ref2$reactDates.font; + return { + CalendarDay: { + boxSizing: 'border-box', + cursor: 'pointer', + fontSize: font.size, + textAlign: 'center', + + ':active': { + outline: 0 + } + }, + + CalendarDay__defaultCursor: { + cursor: 'default' + }, + + CalendarDay__default: { + border: '1px solid ' + String(color.core.borderLight), + color: color.text, + background: color.background, + + ':hover': { + background: color.core.borderLight, + border: '1px double ' + String(color.core.borderLight), + color: 'inherit' + } + }, + + CalendarDay__hovered_offset: { + background: color.core.borderBright, + border: '1px double ' + String(color.core.borderLight), + color: 'inherit' + }, + + CalendarDay__outside: { + border: 0, + background: color.outside.backgroundColor, + color: color.outside.color, + + ':hover': { + border: 0 + } + }, + + CalendarDay__blocked_minimum_nights: { + background: color.minimumNights.backgroundColor, + border: '1px solid ' + String(color.minimumNights.borderColor), + color: color.minimumNights.color, + + ':hover': { + background: color.minimumNights.backgroundColor_hover, + color: color.minimumNights.color_active + }, + + ':active': { + background: color.minimumNights.backgroundColor_active, + color: color.minimumNights.color_active + } + }, + + CalendarDay__highlighted_calendar: { + background: color.highlighted.backgroundColor, + color: color.highlighted.color, + + ':hover': { + background: color.highlighted.backgroundColor_hover, + color: color.highlighted.color_active + }, + + ':active': { + background: color.highlighted.backgroundColor_active, + color: color.highlighted.color_active + } + }, + + CalendarDay__selected_span: { + background: color.selectedSpan.backgroundColor, + border: '1px solid ' + String(color.selectedSpan.borderColor), + color: color.selectedSpan.color, + + ':hover': { + background: color.selectedSpan.backgroundColor_hover, + border: '1px solid ' + String(color.selectedSpan.borderColor), + color: color.selectedSpan.color_active + }, + + ':active': { + background: color.selectedSpan.backgroundColor_active, + border: '1px solid ' + String(color.selectedSpan.borderColor), + color: color.selectedSpan.color_active + } + }, + + CalendarDay__last_in_range: { + borderRight: color.core.primary + }, + + CalendarDay__selected: { + background: color.selected.backgroundColor, + border: '1px solid ' + String(color.selected.borderColor), + color: color.selected.color, + + ':hover': { + background: color.selected.backgroundColor_hover, + border: '1px solid ' + String(color.selected.borderColor), + color: color.selected.color_active + }, + + ':active': { + background: color.selected.backgroundColor_active, + border: '1px solid ' + String(color.selected.borderColor), + color: color.selected.color_active + } + }, + + CalendarDay__hovered_span: { + background: color.hoveredSpan.backgroundColor, + border: '1px solid ' + String(color.hoveredSpan.borderColor), + color: color.hoveredSpan.color, + + ':hover': { + background: color.hoveredSpan.backgroundColor_hover, + border: '1px solid ' + String(color.hoveredSpan.borderColor), + color: color.hoveredSpan.color_active + }, + + ':active': { + background: color.hoveredSpan.backgroundColor_active, + border: '1px solid ' + String(color.hoveredSpan.borderColor), + color: color.hoveredSpan.color_active + } + }, + + CalendarDay__blocked_calendar: { + background: color.blocked_calendar.backgroundColor, + border: '1px solid ' + String(color.blocked_calendar.borderColor), + color: color.blocked_calendar.color, + + ':hover': { + background: color.blocked_calendar.backgroundColor_hover, + border: '1px solid ' + String(color.blocked_calendar.borderColor), + color: color.blocked_calendar.color_active + }, + + ':active': { + background: color.blocked_calendar.backgroundColor_active, + border: '1px solid ' + String(color.blocked_calendar.borderColor), + color: color.blocked_calendar.color_active + } + }, + + CalendarDay__blocked_out_of_range: { + background: color.blocked_out_of_range.backgroundColor, + border: '1px solid ' + String(color.blocked_out_of_range.borderColor), + color: color.blocked_out_of_range.color, + + ':hover': { + background: color.blocked_out_of_range.backgroundColor_hover, + border: '1px solid ' + String(color.blocked_out_of_range.borderColor), + color: color.blocked_out_of_range.color_active + }, + + ':active': { + background: color.blocked_out_of_range.backgroundColor_active, + border: '1px solid ' + String(color.blocked_out_of_range.borderColor), + color: color.blocked_out_of_range.color_active + } + }, + + CalendarDay__selected_start: {}, + CalendarDay__selected_end: {}, + CalendarDay__today: {}, + CalendarDay__firstDayOfWeek: {}, + CalendarDay__lastDayOfWeek: {} + }; +})(CalendarDay); + +/***/ }), +/* 251 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = getCalendarDaySettings; + +var _getPhrase = __webpack_require__(392); + +var _getPhrase2 = _interopRequireDefault(_getPhrase); + +var _constants = __webpack_require__(77); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function getCalendarDaySettings(day, ariaLabelFormat, daySize, modifiers, phrases) { + var chooseAvailableDate = phrases.chooseAvailableDate, + dateIsUnavailable = phrases.dateIsUnavailable, + dateIsSelected = phrases.dateIsSelected; + + + var daySizeStyles = { + width: daySize, + height: daySize - 1 + }; + + var useDefaultCursor = modifiers.has('blocked-minimum-nights') || modifiers.has('blocked-calendar') || modifiers.has('blocked-out-of-range'); + + var selected = modifiers.has('selected') || modifiers.has('selected-start') || modifiers.has('selected-end'); + + var hoveredSpan = !selected && (modifiers.has('hovered-span') || modifiers.has('after-hovered-start')); + + var isOutsideRange = modifiers.has('blocked-out-of-range'); + + var formattedDate = { date: day.format(ariaLabelFormat) }; + + var ariaLabel = (0, _getPhrase2['default'])(chooseAvailableDate, formattedDate); + if (modifiers.has(_constants.BLOCKED_MODIFIER)) { + ariaLabel = (0, _getPhrase2['default'])(dateIsUnavailable, formattedDate); + } else if (selected) { + ariaLabel = (0, _getPhrase2['default'])(dateIsSelected, formattedDate); + } + + return { + daySizeStyles: daySizeStyles, + useDefaultCursor: useDefaultCursor, + selected: selected, + hoveredSpan: hoveredSpan, + isOutsideRange: isOutsideRange, + ariaLabel: ariaLabel + }; +} + +/***/ }), +/* 252 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = calculateDimension; +function calculateDimension(el, axis) { + var borderBox = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var withMargin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + + if (!el) { + return 0; + } + + var axisStart = axis === 'width' ? 'Left' : 'Top'; + var axisEnd = axis === 'width' ? 'Right' : 'Bottom'; + + // Only read styles if we need to + var style = !borderBox || withMargin ? window.getComputedStyle(el) : null; + + // Offset includes border and padding + var offsetWidth = el.offsetWidth, + offsetHeight = el.offsetHeight; + + var size = axis === 'width' ? offsetWidth : offsetHeight; + + // Get the inner size + if (!borderBox) { + size -= parseFloat(style['padding' + axisStart]) + parseFloat(style['padding' + axisEnd]) + parseFloat(style['border' + axisStart + 'Width']) + parseFloat(style['border' + axisEnd + 'Width']); + } + + // Apply margin + if (withMargin) { + size += parseFloat(style['margin' + axisStart]) + parseFloat(style['margin' + axisEnd]); + } + + return size; +} + +/***/ }), +/* 253 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = getCalendarMonthWidth; +function getCalendarMonthWidth(daySize, calendarMonthPadding) { + return 7 * daySize + 2 * calendarMonthPadding + 1; +} + +/***/ }), +/* 254 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = isSameMonth; + +var _moment = __webpack_require__(43); + +var _moment2 = _interopRequireDefault(_moment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function isSameMonth(a, b) { + if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false; + // Compare least significant, most likely to change units first + // Moment's isSame clones moment inputs and is a tad slow + return a.month() === b.month() && a.year() === b.year(); +} + +/***/ }), +/* 255 */, +/* 256 */, +/* 257 */, +/* 258 */, +/* 259 */, +/* 260 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, "SVG", function() { return /* reexport */ external_this_wp_primitives_["SVG"]; }); +__webpack_require__.d(__webpack_exports__, "Path", function() { return /* reexport */ external_this_wp_primitives_["Path"]; }); +__webpack_require__.d(__webpack_exports__, "Circle", function() { return /* reexport */ external_this_wp_primitives_["Circle"]; }); +__webpack_require__.d(__webpack_exports__, "Polygon", function() { return /* reexport */ external_this_wp_primitives_["Polygon"]; }); +__webpack_require__.d(__webpack_exports__, "Rect", function() { return /* reexport */ external_this_wp_primitives_["Rect"]; }); +__webpack_require__.d(__webpack_exports__, "G", function() { return /* reexport */ external_this_wp_primitives_["G"]; }); +__webpack_require__.d(__webpack_exports__, "HorizontalRule", function() { return /* reexport */ external_this_wp_primitives_["HorizontalRule"]; }); +__webpack_require__.d(__webpack_exports__, "BlockQuotation", function() { return /* reexport */ external_this_wp_primitives_["BlockQuotation"]; }); +__webpack_require__.d(__webpack_exports__, "__experimentalAlignmentMatrixControl", function() { return /* reexport */ AlignmentMatrixControl; }); +__webpack_require__.d(__webpack_exports__, "Animate", function() { return /* reexport */ animate["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "AnglePickerControl", function() { return /* reexport */ AnglePickerControl; }); +__webpack_require__.d(__webpack_exports__, "Autocomplete", function() { return /* reexport */ autocomplete; }); +__webpack_require__.d(__webpack_exports__, "BaseControl", function() { return /* reexport */ base_control; }); +__webpack_require__.d(__webpack_exports__, "__experimentalBoxControl", function() { return /* reexport */ BoxControl; }); +__webpack_require__.d(__webpack_exports__, "Button", function() { return /* reexport */ build_module_button["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "ButtonGroup", function() { return /* reexport */ button_group; }); +__webpack_require__.d(__webpack_exports__, "Card", function() { return /* reexport */ card; }); +__webpack_require__.d(__webpack_exports__, "CardBody", function() { return /* reexport */ card_body; }); +__webpack_require__.d(__webpack_exports__, "CardDivider", function() { return /* reexport */ divider; }); +__webpack_require__.d(__webpack_exports__, "CardFooter", function() { return /* reexport */ footer; }); +__webpack_require__.d(__webpack_exports__, "CardHeader", function() { return /* reexport */ card_header; }); +__webpack_require__.d(__webpack_exports__, "CardMedia", function() { return /* reexport */ media; }); +__webpack_require__.d(__webpack_exports__, "CheckboxControl", function() { return /* reexport */ CheckboxControl; }); +__webpack_require__.d(__webpack_exports__, "ClipboardButton", function() { return /* reexport */ ClipboardButton; }); +__webpack_require__.d(__webpack_exports__, "ColorIndicator", function() { return /* reexport */ color_indicator; }); +__webpack_require__.d(__webpack_exports__, "ColorPalette", function() { return /* reexport */ ColorPalette; }); +__webpack_require__.d(__webpack_exports__, "ColorPicker", function() { return /* reexport */ color_picker_ColorPicker; }); +__webpack_require__.d(__webpack_exports__, "CustomSelectControl", function() { return /* reexport */ CustomSelectControl; }); +__webpack_require__.d(__webpack_exports__, "Dashicon", function() { return /* reexport */ dashicon["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "DateTimePicker", function() { return /* reexport */ date_time_DateTimePicker; }); +__webpack_require__.d(__webpack_exports__, "DatePicker", function() { return /* reexport */ date_time_date; }); +__webpack_require__.d(__webpack_exports__, "TimePicker", function() { return /* reexport */ time; }); +__webpack_require__.d(__webpack_exports__, "__experimentalDimensionControl", function() { return /* reexport */ dimension_control; }); +__webpack_require__.d(__webpack_exports__, "Disabled", function() { return /* reexport */ build_module_disabled; }); +__webpack_require__.d(__webpack_exports__, "Draggable", function() { return /* reexport */ draggable; }); +__webpack_require__.d(__webpack_exports__, "DropZone", function() { return /* reexport */ drop_zone; }); +__webpack_require__.d(__webpack_exports__, "__unstableUseDropZone", function() { return /* reexport */ useDropZone; }); +__webpack_require__.d(__webpack_exports__, "DropZoneProvider", function() { return /* reexport */ provider; }); +__webpack_require__.d(__webpack_exports__, "Dropdown", function() { return /* reexport */ Dropdown; }); +__webpack_require__.d(__webpack_exports__, "DropdownMenu", function() { return /* reexport */ dropdown_menu; }); +__webpack_require__.d(__webpack_exports__, "ExternalLink", function() { return /* reexport */ external_link; }); +__webpack_require__.d(__webpack_exports__, "Flex", function() { return /* reexport */ flex; }); +__webpack_require__.d(__webpack_exports__, "FlexBlock", function() { return /* reexport */ block; }); +__webpack_require__.d(__webpack_exports__, "FlexItem", function() { return /* reexport */ flex_item; }); +__webpack_require__.d(__webpack_exports__, "FocalPointPicker", function() { return /* reexport */ focal_point_picker; }); +__webpack_require__.d(__webpack_exports__, "FocusableIframe", function() { return /* reexport */ focusable_iframe; }); +__webpack_require__.d(__webpack_exports__, "FontSizePicker", function() { return /* reexport */ FontSizePicker; }); +__webpack_require__.d(__webpack_exports__, "FormFileUpload", function() { return /* reexport */ form_file_upload; }); +__webpack_require__.d(__webpack_exports__, "FormToggle", function() { return /* reexport */ form_toggle; }); +__webpack_require__.d(__webpack_exports__, "FormTokenField", function() { return /* reexport */ form_token_field; }); +__webpack_require__.d(__webpack_exports__, "__experimentalGradientPicker", function() { return /* reexport */ GradientPicker; }); +__webpack_require__.d(__webpack_exports__, "__experimentalCustomGradientPicker", function() { return /* reexport */ CustomGradientPicker; }); +__webpack_require__.d(__webpack_exports__, "Guide", function() { return /* reexport */ Guide; }); +__webpack_require__.d(__webpack_exports__, "GuidePage", function() { return /* reexport */ GuidePage; }); +__webpack_require__.d(__webpack_exports__, "Icon", function() { return /* reexport */ components_build_module_icon["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "IconButton", function() { return /* reexport */ deprecated; }); +__webpack_require__.d(__webpack_exports__, "__experimentalInputControl", function() { return /* reexport */ input_control; }); +__webpack_require__.d(__webpack_exports__, "KeyboardShortcuts", function() { return /* reexport */ keyboard_shortcuts; }); +__webpack_require__.d(__webpack_exports__, "MenuGroup", function() { return /* reexport */ menu_group; }); +__webpack_require__.d(__webpack_exports__, "MenuItem", function() { return /* reexport */ menu_item; }); +__webpack_require__.d(__webpack_exports__, "MenuItemsChoice", function() { return /* reexport */ MenuItemsChoice; }); +__webpack_require__.d(__webpack_exports__, "Modal", function() { return /* reexport */ modal; }); +__webpack_require__.d(__webpack_exports__, "ScrollLock", function() { return /* reexport */ scroll_lock["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "NavigableMenu", function() { return /* reexport */ menu; }); +__webpack_require__.d(__webpack_exports__, "TabbableContainer", function() { return /* reexport */ tabbable; }); +__webpack_require__.d(__webpack_exports__, "Notice", function() { return /* reexport */ build_module_notice; }); +__webpack_require__.d(__webpack_exports__, "__experimentalNumberControl", function() { return /* reexport */ number_control; }); +__webpack_require__.d(__webpack_exports__, "NoticeList", function() { return /* reexport */ list; }); +__webpack_require__.d(__webpack_exports__, "Panel", function() { return /* reexport */ panel; }); +__webpack_require__.d(__webpack_exports__, "PanelBody", function() { return /* reexport */ panel_body; }); +__webpack_require__.d(__webpack_exports__, "PanelHeader", function() { return /* reexport */ panel_header; }); +__webpack_require__.d(__webpack_exports__, "PanelRow", function() { return /* reexport */ row; }); +__webpack_require__.d(__webpack_exports__, "Placeholder", function() { return /* reexport */ placeholder; }); +__webpack_require__.d(__webpack_exports__, "Popover", function() { return /* reexport */ popover["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "QueryControls", function() { return /* reexport */ QueryControls; }); +__webpack_require__.d(__webpack_exports__, "__experimentalRadio", function() { return /* reexport */ build_module_radio; }); +__webpack_require__.d(__webpack_exports__, "__experimentalRadioGroup", function() { return /* reexport */ radio_group; }); +__webpack_require__.d(__webpack_exports__, "RadioControl", function() { return /* reexport */ RadioControl; }); +__webpack_require__.d(__webpack_exports__, "RangeControl", function() { return /* reexport */ range_control; }); +__webpack_require__.d(__webpack_exports__, "ResizableBox", function() { return /* reexport */ resizable_box; }); +__webpack_require__.d(__webpack_exports__, "ResponsiveWrapper", function() { return /* reexport */ responsive_wrapper; }); +__webpack_require__.d(__webpack_exports__, "SandBox", function() { return /* reexport */ sandbox; }); +__webpack_require__.d(__webpack_exports__, "SelectControl", function() { return /* reexport */ SelectControl; }); +__webpack_require__.d(__webpack_exports__, "Snackbar", function() { return /* reexport */ snackbar["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "SnackbarList", function() { return /* reexport */ snackbar_list; }); +__webpack_require__.d(__webpack_exports__, "Spinner", function() { return /* reexport */ Spinner; }); +__webpack_require__.d(__webpack_exports__, "TabPanel", function() { return /* reexport */ TabPanel; }); +__webpack_require__.d(__webpack_exports__, "__experimentalText", function() { return /* reexport */ build_module_text; }); +__webpack_require__.d(__webpack_exports__, "TextControl", function() { return /* reexport */ TextControl; }); +__webpack_require__.d(__webpack_exports__, "TextareaControl", function() { return /* reexport */ TextareaControl; }); +__webpack_require__.d(__webpack_exports__, "TextHighlight", function() { return /* reexport */ text_highlight; }); +__webpack_require__.d(__webpack_exports__, "Tip", function() { return /* reexport */ tip; }); +__webpack_require__.d(__webpack_exports__, "ToggleControl", function() { return /* reexport */ ToggleControl; }); +__webpack_require__.d(__webpack_exports__, "Toolbar", function() { return /* reexport */ toolbar; }); +__webpack_require__.d(__webpack_exports__, "ToolbarButton", function() { return /* reexport */ toolbar_button; }); +__webpack_require__.d(__webpack_exports__, "__experimentalToolbarContext", function() { return /* reexport */ toolbar_context["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "ToolbarGroup", function() { return /* reexport */ toolbar_group; }); +__webpack_require__.d(__webpack_exports__, "__experimentalToolbarItem", function() { return /* reexport */ toolbar_item["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "Tooltip", function() { return /* reexport */ build_module_tooltip["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "__experimentalTreeGrid", function() { return /* reexport */ TreeGrid; }); +__webpack_require__.d(__webpack_exports__, "__experimentalTreeGridRow", function() { return /* reexport */ tree_grid_row; }); +__webpack_require__.d(__webpack_exports__, "__experimentalTreeGridCell", function() { return /* reexport */ tree_grid_cell; }); +__webpack_require__.d(__webpack_exports__, "__experimentalTreeGridItem", function() { return /* reexport */ tree_grid_item; }); +__webpack_require__.d(__webpack_exports__, "TreeSelect", function() { return /* reexport */ TreeSelect; }); +__webpack_require__.d(__webpack_exports__, "__experimentalUnitControl", function() { return /* reexport */ unit_control; }); +__webpack_require__.d(__webpack_exports__, "VisuallyHidden", function() { return /* reexport */ visually_hidden; }); +__webpack_require__.d(__webpack_exports__, "IsolatedEventContainer", function() { return /* reexport */ isolated_event_container["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "createSlotFill", function() { return /* reexport */ slot_fill["c" /* createSlotFill */]; }); +__webpack_require__.d(__webpack_exports__, "Slot", function() { return /* reexport */ slot_fill["b" /* Slot */]; }); +__webpack_require__.d(__webpack_exports__, "Fill", function() { return /* reexport */ slot_fill["a" /* Fill */]; }); +__webpack_require__.d(__webpack_exports__, "SlotFillProvider", function() { return /* reexport */ slot_fill_context["b" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "__experimentalUseSlot", function() { return /* reexport */ use_slot["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "navigateRegions", function() { return /* reexport */ navigate_regions; }); +__webpack_require__.d(__webpack_exports__, "withConstrainedTabbing", function() { return /* reexport */ with_constrained_tabbing["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "withFallbackStyles", function() { return /* reexport */ with_fallback_styles; }); +__webpack_require__.d(__webpack_exports__, "withFilters", function() { return /* reexport */ withFilters; }); +__webpack_require__.d(__webpack_exports__, "withFocusOutside", function() { return /* reexport */ with_focus_outside["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "withFocusReturn", function() { return /* reexport */ with_focus_return["a" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "FocusReturnProvider", function() { return /* reexport */ with_focus_return_context["b" /* default */]; }); +__webpack_require__.d(__webpack_exports__, "withNotices", function() { return /* reexport */ with_notices; }); +__webpack_require__.d(__webpack_exports__, "withSpokenMessages", function() { return /* reexport */ with_spoken_messages; }); + +// EXTERNAL MODULE: external {"this":["wp","primitives"]} +var external_this_wp_primitives_ = __webpack_require__(6); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js +var esm_extends = __webpack_require__(8); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules +var slicedToArray = __webpack_require__(14); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +var objectWithoutProperties = __webpack_require__(15); + +// EXTERNAL MODULE: external {"this":["wp","element"]} +var external_this_wp_element_ = __webpack_require__(0); + +// EXTERNAL MODULE: external {"this":"lodash"} +var external_this_lodash_ = __webpack_require__(2); + +// EXTERNAL MODULE: ./node_modules/classnames/index.js +var classnames = __webpack_require__(11); +var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames); + +// EXTERNAL MODULE: ./node_modules/reakit/es/CompositeState-3a25dcee.js +var CompositeState_3a25dcee = __webpack_require__(51); + +// EXTERNAL MODULE: ./node_modules/reakit/es/Composite/Composite.js +var Composite = __webpack_require__(119); + +// EXTERNAL MODULE: ./node_modules/reakit/es/_rollupPluginBabelHelpers-1f0bf8c2.js +var _rollupPluginBabelHelpers_1f0bf8c2 = __webpack_require__(17); + +// EXTERNAL MODULE: ./node_modules/reakit-system/es/createComponent.js + 1 modules +var createComponent = __webpack_require__(49); + +// EXTERNAL MODULE: ./node_modules/reakit-system/es/createHook.js + 4 modules +var createHook = __webpack_require__(48); + +// EXTERNAL MODULE: external {"this":"React"} +var external_this_React_ = __webpack_require__(13); +var external_this_React_default = /*#__PURE__*/__webpack_require__.n(external_this_React_); + +// EXTERNAL MODULE: ./node_modules/reakit-utils/es/useForkRef.js +var useForkRef = __webpack_require__(63); + +// EXTERNAL MODULE: ./node_modules/reakit-utils/es/useIsomorphicEffect.js +var useIsomorphicEffect = __webpack_require__(59); + +// EXTERNAL MODULE: ./node_modules/reakit/es/Box/Box.js +var Box = __webpack_require__(67); + +// CONCATENATED MODULE: ./node_modules/reakit/es/Group/Group.js + + + + + + +var useGroup = Object(createHook["a" /* createHook */])({ + name: "Group", + compose: Box["a" /* useBox */], + useProps: function useProps(_, htmlProps) { + return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({ + role: "group" + }, htmlProps); + } +}); +var Group = Object(createComponent["a" /* createComponent */])({ + as: "div", + useHook: useGroup +}); + + + +// EXTERNAL MODULE: ./node_modules/reakit/es/Id/Id.js +var Id = __webpack_require__(93); + +// CONCATENATED MODULE: ./node_modules/reakit/es/Composite/CompositeGroup.js + + + + + + + + + + + + + + + + +var useCompositeGroup = Object(createHook["a" /* createHook */])({ + name: "CompositeGroup", + compose: [useGroup, Id["a" /* unstable_useId */]], + useState: CompositeState_3a25dcee["g" /* u */], + propsAreEqual: function propsAreEqual(prev, next) { + if (!next.id || prev.id !== next.id) { + return useGroup.unstable_propsAreEqual(prev, next); + } + + var prevCurrentId = prev.currentId, + prevMoves = prev.unstable_moves, + prevProps = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(prev, ["currentId", "unstable_moves"]); + + var nextCurrentId = next.currentId, + nextMoves = next.unstable_moves, + nextProps = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(next, ["currentId", "unstable_moves"]); + + if (prev.items && next.items) { + var prevCurrentItem = Object(CompositeState_3a25dcee["d" /* f */])(prev.items, prevCurrentId); + var nextCurrentItem = Object(CompositeState_3a25dcee["d" /* f */])(next.items, nextCurrentId); + var prevGroupId = prevCurrentItem === null || prevCurrentItem === void 0 ? void 0 : prevCurrentItem.groupId; + var nextGroupId = nextCurrentItem === null || nextCurrentItem === void 0 ? void 0 : nextCurrentItem.groupId; + + if (next.id === nextGroupId || next.id === prevGroupId) { + return false; + } + } + + return useGroup.unstable_propsAreEqual(prevProps, nextProps); + }, + useProps: function useProps(options, _ref) { + var htmlRef = _ref.ref, + htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(_ref, ["ref"]); + + var ref = Object(external_this_React_["useRef"])(null); + var id = options.id; // We need this to be called before CompositeItems' register + + Object(useIsomorphicEffect["a" /* useIsomorphicEffect */])(function () { + var _options$registerGrou; + + if (!id) return undefined; + (_options$registerGrou = options.registerGroup) === null || _options$registerGrou === void 0 ? void 0 : _options$registerGrou.call(options, { + id: id, + ref: ref + }); + return function () { + var _options$unregisterGr; + + (_options$unregisterGr = options.unregisterGroup) === null || _options$unregisterGr === void 0 ? void 0 : _options$unregisterGr.call(options, id); + }; + }, [id, options.registerGroup, options.unregisterGroup]); + return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({ + ref: Object(useForkRef["a" /* useForkRef */])(ref, htmlRef) + }, htmlProps); + } +}); +var CompositeGroup = Object(createComponent["a" /* createComponent */])({ + as: "div", + useHook: useCompositeGroup +}); + + + +// EXTERNAL MODULE: external {"this":["wp","i18n"]} +var external_this_wp_i18n_ = __webpack_require__(1); + +// EXTERNAL MODULE: external {"this":["wp","compose"]} +var external_this_wp_compose_ = __webpack_require__(9); + +// EXTERNAL MODULE: ./node_modules/reakit/es/Composite/CompositeItem.js +var CompositeItem = __webpack_require__(120); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/tooltip/index.js +var build_module_tooltip = __webpack_require__(86); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js +var defineProperty = __webpack_require__(5); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/visually-hidden/utils.js + + + +/** + * Utility Functions + */ + +/** + * renderAsRenderProps is used to wrap a component and convert + * the passed property "as" either a string or component, to the + * rendered tag if a string, or component. + * + * See VisuallyHidden hidden for example. + * + * @param {string|WPComponent} as A tag or component to render. + * @return {WPComponent} The rendered component. + */ +function renderAsRenderProps(_ref) { + var _ref$as = _ref.as, + Component = _ref$as === void 0 ? 'div' : _ref$as, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["as"]); + + if (typeof props.children === 'function') { + return props.children(props); + } + + return Object(external_this_wp_element_["createElement"])(Component, props); +} + + + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/visually-hidden/index.js + + + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +/** + * External dependencies + */ + +/** + * Internal dependencies + */ + + +/** + * VisuallyHidden component to render text out non-visually + * for use in devices such as a screen reader. + * + * @param {Object} props Component props. + * @param {string|WPComponent} [props.as="div"] A tag or component to render. + * @param {string} [props.className] Class to set on the container. + */ + +function VisuallyHidden(_ref) { + var _ref$as = _ref.as, + as = _ref$as === void 0 ? 'div' : _ref$as, + className = _ref.className, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["as", "className"]); + + return renderAsRenderProps(_objectSpread({ + as: as, + className: classnames_default()('components-visually-hidden', className) + }, props)); +} + +/* harmony default export */ var visually_hidden = (VisuallyHidden); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/utils.js +/** + * External dependencies + */ + +/** + * WordPress dependencies + */ + + +var GRID = [['top left', 'top center', 'top right'], ['center left', 'center center', 'center right'], ['bottom left', 'bottom center', 'bottom right']]; // Stored as map as i18n __() only accepts strings (not variables) + +var ALIGNMENT_LABEL = { + 'top left': Object(external_this_wp_i18n_["__"])('Top Left'), + 'top center': Object(external_this_wp_i18n_["__"])('Top Center'), + 'top right': Object(external_this_wp_i18n_["__"])('Top Right'), + 'center left': Object(external_this_wp_i18n_["__"])('Center Left'), + 'center center': Object(external_this_wp_i18n_["__"])('Center Center'), + 'center right': Object(external_this_wp_i18n_["__"])('Center Right'), + 'bottom left': Object(external_this_wp_i18n_["__"])('Bottom Left'), + 'bottom center': Object(external_this_wp_i18n_["__"])('Bottom Center'), + 'bottom right': Object(external_this_wp_i18n_["__"])('Bottom Right') +}; // Transforms GRID into a flat Array of values + +var ALIGNMENTS = Object(external_this_lodash_["flattenDeep"])(GRID); +/** + * Parses and transforms an incoming value to better match the alignment values + * + * @param {string} value An alignment value to parse. + * + * @return {string} The parsed value. + */ + +function transformValue(value) { + var nextValue = value === 'center' ? 'center center' : value; + return nextValue.replace('-', ' '); +} +/** + * Creates an item ID based on a prefix ID and an alignment value. + * + * @param {string} prefixId An ID to prefix. + * @param {string} value An alignment value. + * + * @return {string} The item id. + */ + +function getItemId(prefixId, value) { + var valueId = transformValue(value).replace(' ', '-'); + return "".concat(prefixId, "-").concat(valueId); +} +/** + * Retrieves the alignment index from a value. + * + * @param {string} alignment Value to check. + * + * @return {number} The index of a matching alignment. + */ + +function getAlignmentIndex() { + var alignment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'center'; + var item = transformValue(alignment).replace('-', ' '); + var index = ALIGNMENTS.indexOf(item); + return index > -1 ? index : undefined; +} + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js +var helpers_defineProperty = __webpack_require__(270); +var defineProperty_default = /*#__PURE__*/__webpack_require__.n(helpers_defineProperty); + +// CONCATENATED MODULE: ./node_modules/@emotion/memoize/dist/memoize.browser.esm.js +function memoize(fn) { + var cache = {}; + return function (arg) { + if (cache[arg] === undefined) cache[arg] = fn(arg); + return cache[arg]; + }; +} + +/* harmony default export */ var memoize_browser_esm = (memoize); + +// CONCATENATED MODULE: ./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js + + +var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23 + +var is_prop_valid_browser_esm_index = memoize_browser_esm(function (prop) { + return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111 + /* o */ + && prop.charCodeAt(1) === 110 + /* n */ + && prop.charCodeAt(2) < 91; +} +/* Z+1 */ +); + +/* harmony default export */ var is_prop_valid_browser_esm = (is_prop_valid_browser_esm_index); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/inheritsLoose.js +var inheritsLoose = __webpack_require__(145); +var inheritsLoose_default = /*#__PURE__*/__webpack_require__.n(inheritsLoose); + +// CONCATENATED MODULE: ./node_modules/@emotion/sheet/dist/sheet.browser.esm.js +/* + +Based off glamor's StyleSheet, thanks Sunil ❤️ + +high performance StyleSheet for css-in-js systems + +- uses multiple style tags behind the scenes for millions of rules +- uses `insertRule` for appending in production for *much* faster performance + +// usage + +import { StyleSheet } from '@emotion/sheet' + +let styleSheet = new StyleSheet({ key: '', container: document.head }) + +styleSheet.insert('#box { border: 1px solid red; }') +- appends a css rule into the stylesheet + +styleSheet.flush() +- empties the stylesheet of all its contents + +*/ +// $FlowFixMe +function sheetForTag(tag) { + if (tag.sheet) { + // $FlowFixMe + return tag.sheet; + } // this weirdness brought to you by firefox + + /* istanbul ignore next */ + + + for (var i = 0; i < document.styleSheets.length; i++) { + if (document.styleSheets[i].ownerNode === tag) { + // $FlowFixMe + return document.styleSheets[i]; + } + } +} + +function createStyleElement(options) { + var tag = document.createElement('style'); + tag.setAttribute('data-emotion', options.key); + + if (options.nonce !== undefined) { + tag.setAttribute('nonce', options.nonce); + } + + tag.appendChild(document.createTextNode('')); + return tag; +} + +var StyleSheet = +/*#__PURE__*/ +function () { + function StyleSheet(options) { + this.isSpeedy = options.speedy === undefined ? "production" === 'production' : options.speedy; + this.tags = []; + this.ctr = 0; + this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets + + this.key = options.key; + this.container = options.container; + this.before = null; + } + + var _proto = StyleSheet.prototype; + + _proto.insert = function insert(rule) { + // the max length is how many rules we have per style tag, it's 65000 in speedy mode + // it's 1 in dev because we insert source maps that map a single rule to a location + // and you can only have one source map per style tag + if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) { + var _tag = createStyleElement(this); + + var before; + + if (this.tags.length === 0) { + before = this.before; } else { - clearInterval(this.autoRefresh); - } - } - }, { - key: "throttledRefresh", - value: function throttledRefresh(event) { - window.cancelAnimationFrame(this.rafHandle); - - if (event && event.type === 'scroll' && this.contentNode.current.contains(event.target)) { - return; - } - - this.rafHandle = window.requestAnimationFrame(this.refresh); - } - /** - * Calling refreshOnAnchorMove - * will only refresh the popover position if the anchor moves. - */ - - }, { - key: "refreshOnAnchorMove", - value: function refreshOnAnchorMove() { - var anchorRect = this.getAnchorRect(this.anchorNode.current); - var didAnchorRectChange = !external_this_wp_isShallowEqual_default()(anchorRect, this.anchorRect); - - if (didAnchorRectChange) { - this.anchorRect = anchorRect; - this.computePopoverPosition(this.state.popoverSize, anchorRect); - } - } - /** - * Calling `refresh()` will force the Popover to recalculate its size and - * position. This is useful when a DOM change causes the anchor node to change - * position. - */ - - }, { - key: "refresh", - value: function refresh() { - var anchorRect = this.getAnchorRect(this.anchorNode.current); - var contentRect = this.contentNode.current.getBoundingClientRect(); - var popoverSize = { - width: contentRect.width, - height: contentRect.height - }; - var didPopoverSizeChange = !this.state.popoverSize || popoverSize.width !== this.state.popoverSize.width || popoverSize.height !== this.state.popoverSize.height; - - if (didPopoverSizeChange) { - this.setState({ - popoverSize: popoverSize, - isReadyToAnimate: true - }); - } - - this.anchorRect = anchorRect; - this.computePopoverPosition(popoverSize, anchorRect); - } - }, { - key: "focus", - value: function focus() { - var focusOnMount = this.props.focusOnMount; - - if (!focusOnMount || !this.contentNode.current) { - return; - } - - if (focusOnMount === 'firstElement') { - // Find first tabbable node within content and shift focus, falling - // back to the popover panel itself. - var firstTabbable = external_this_wp_dom_["focus"].tabbable.find(this.contentNode.current)[0]; - - if (firstTabbable) { - firstTabbable.focus(); + before = this.tags[this.tags.length - 1].nextSibling; + } + + this.container.insertBefore(_tag, before); + this.tags.push(_tag); + } + + var tag = this.tags[this.tags.length - 1]; + + if (this.isSpeedy) { + var sheet = sheetForTag(tag); + + try { + // this is a really hot path + // we check the second character first because having "i" + // as the second character will happen less often than + // having "@" as the first character + var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers + // the big drawback is that the css won't be editable in devtools + + sheet.insertRule(rule, // we need to insert @import rules before anything else + // otherwise there will be an error + // technically this means that the @import rules will + // _usually_(not always since there could be multiple style tags) + // be the first ones in prod and generally later in dev + // this shouldn't really matter in the real world though + // @import is generally only used for font faces from google fonts and etc. + // so while this could be technically correct then it would be slower and larger + // for a tiny bit of correctness that won't matter in the real world + isImportRule ? 0 : sheet.cssRules.length); + } catch (e) { + if (false) {} + } + } else { + tag.appendChild(document.createTextNode(rule)); + } + + this.ctr++; + }; + + _proto.flush = function flush() { + // $FlowFixMe + this.tags.forEach(function (tag) { + return tag.parentNode.removeChild(tag); + }); + this.tags = []; + this.ctr = 0; + }; + + return StyleSheet; +}(); + + + +// CONCATENATED MODULE: ./node_modules/@emotion/stylis/dist/stylis.browser.esm.js +function stylis_min (W) { + function M(d, c, e, h, a) { + for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) { + g = e.charCodeAt(l); + l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++); + + if (0 === b + n + v + m) { + if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) { + switch (g) { + case 32: + case 9: + case 59: + case 13: + case 10: + break; + + default: + f += e.charAt(l); + } + + g = 59; + } + + switch (g) { + case 123: + f = f.trim(); + q = f.charCodeAt(0); + k = 1; + + for (t = ++l; l < B;) { + switch (g = e.charCodeAt(l)) { + case 123: + k++; + break; + + case 125: + k--; + break; + + case 47: + switch (g = e.charCodeAt(l + 1)) { + case 42: + case 47: + a: { + for (u = l + 1; u < J; ++u) { + switch (e.charCodeAt(u)) { + case 47: + if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) { + l = u + 1; + break a; + } + + break; + + case 10: + if (47 === g) { + l = u + 1; + break a; + } + + } + } + + l = u; + } + + } + + break; + + case 91: + g++; + + case 40: + g++; + + case 34: + case 39: + for (; l++ < J && e.charCodeAt(l) !== g;) { + } + + } + + if (0 === k) break; + l++; + } + + k = e.substring(t, l); + 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0)); + + switch (q) { + case 64: + 0 < r && (f = f.replace(N, '')); + g = f.charCodeAt(1); + + switch (g) { + case 100: + case 109: + case 115: + case 45: + r = c; + break; + + default: + r = O; + } + + k = M(c, r, k, g, a + 1); + t = k.length; + 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = '')); + if (0 < t) switch (g) { + case 115: + f = f.replace(da, ea); + + case 100: + case 109: + case 45: + k = f + '{' + k + '}'; + break; + + case 107: + f = f.replace(fa, '$1 $2'); + k = f + '{' + k + '}'; + k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k; + break; + + default: + k = f + k, 112 === h && (k = (p += k, '')); + } else k = ''; + break; + + default: + k = M(c, X(c, f, I), k, h, a + 1); + } + + F += k; + k = I = r = u = q = 0; + f = ''; + g = e.charCodeAt(++l); + break; + + case 125: + case 59: + f = (0 < r ? f.replace(N, '') : f).trim(); + if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\x00\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) { + case 0: + break; + + case 64: + if (105 === g || 99 === g) { + G += f + e.charAt(l); + break; + } + + default: + 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2))); + } + I = r = u = q = 0; + f = ''; + g = e.charCodeAt(++l); + } + } + + switch (g) { + case 13: + case 10: + 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\x00'); + 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h); + z = 1; + D++; + break; + + case 59: + case 125: + if (0 === b + n + v + m) { + z++; + break; + } + + default: + z++; + y = e.charAt(l); + + switch (g) { + case 9: + case 32: + if (0 === n + m + b) switch (x) { + case 44: + case 58: + case 9: + case 32: + y = ''; + break; + + default: + 32 !== g && (y = ' '); + } + break; + + case 0: + y = '\\0'; + break; + + case 12: + y = '\\f'; + break; + + case 11: + y = '\\v'; + break; + + case 38: + 0 === n + b + m && (r = I = 1, y = '\f' + y); + break; + + case 108: + if (0 === n + b + m + E && 0 < u) switch (l - u) { + case 2: + 112 === x && 58 === e.charCodeAt(l - 3) && (E = x); + + case 8: + 111 === K && (E = K); + } + break; + + case 58: + 0 === n + b + m && (u = l); + break; + + case 44: + 0 === b + v + n + m && (r = 1, y += '\r'); + break; + + case 34: + case 39: + 0 === b && (n = n === g ? 0 : 0 === n ? g : n); + break; + + case 91: + 0 === n + b + v && m++; + break; + + case 93: + 0 === n + b + v && m--; + break; + + case 41: + 0 === n + b + m && v--; + break; + + case 40: + if (0 === n + b + m) { + if (0 === q) switch (2 * x + 3 * K) { + case 533: + break; + + default: + q = 1; + } + v++; + } + + break; + + case 64: + 0 === b + v + n + m + u + k && (k = 1); + break; + + case 42: + case 47: + if (!(0 < n + m + v)) switch (b) { + case 0: + switch (2 * g + 3 * e.charCodeAt(l + 1)) { + case 235: + b = 47; + break; + + case 220: + t = l, b = 42; + } + + break; + + case 42: + 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0); + } + } + + 0 === b && (f += y); + } + + K = x; + x = g; + l++; + } + + t = p.length; + + if (0 < t) { + r = c; + if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F; + p = r.join(',') + '{' + p + '}'; + + if (0 !== w * E) { + 2 !== w || L(p, 2) || (E = 0); + + switch (E) { + case 111: + p = p.replace(ha, ':-moz-$1') + p; + break; + + case 112: + p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p; + } + + E = 0; + } + } + + return G + p + F; + } + + function X(d, c, e) { + var h = c.trim().split(ia); + c = h; + var a = h.length, + m = d.length; + + switch (m) { + case 0: + case 1: + var b = 0; + + for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) { + c[b] = Z(d, c[b], e).trim(); + } + + break; + + default: + var v = b = 0; + + for (c = []; b < a; ++b) { + for (var n = 0; n < m; ++n) { + c[v++] = Z(d[n] + ' ', h[b], e).trim(); + } + } + + } + + return c; + } + + function Z(d, c, e) { + var h = c.charCodeAt(0); + 33 > h && (h = (c = c.trim()).charCodeAt(0)); + + switch (h) { + case 38: + return c.replace(F, '$1' + d.trim()); + + case 58: + return d.trim() + c.replace(F, '$1' + d.trim()); + + default: + if (0 < 1 * e && 0 < c.indexOf('\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim()); + } + + return d + c; + } + + function P(d, c, e, h) { + var a = d + ';', + m = 2 * c + 3 * e + 4 * h; + + if (944 === m) { + d = a.indexOf(':', 9) + 1; + var b = a.substring(d, a.length - 1).trim(); + b = a.substring(0, d).trim() + b + ';'; + return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b; + } + + if (0 === w || 2 === w && !L(a, 1)) return a; + + switch (m) { + case 1015: + return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a; + + case 951: + return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a; + + case 963: + return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a; + + case 1009: + if (100 !== a.charCodeAt(4)) break; + + case 969: + case 942: + return '-webkit-' + a + a; + + case 978: + return '-webkit-' + a + '-moz-' + a + a; + + case 1019: + case 983: + return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a; + + case 883: + if (45 === a.charCodeAt(8)) return '-webkit-' + a + a; + if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a; + break; + + case 932: + if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) { + case 103: + return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a; + + case 115: + return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a; + + case 98: + return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a; + } + return '-webkit-' + a + '-ms-' + a + a; + + case 964: + return '-webkit-' + a + '-ms-flex-' + a + a; + + case 1023: + if (99 !== a.charCodeAt(8)) break; + b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify'); + return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a; + + case 1005: + return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a; + + case 1e3: + b = a.substring(13).trim(); + c = b.indexOf('-') + 1; + + switch (b.charCodeAt(0) + b.charCodeAt(c)) { + case 226: + b = a.replace(G, 'tb'); + break; + + case 232: + b = a.replace(G, 'tb-rl'); + break; + + case 220: + b = a.replace(G, 'lr'); + break; + + default: + return a; + } + + return '-webkit-' + a + '-ms-' + b + a; + + case 1017: + if (-1 === a.indexOf('sticky', 9)) break; + + case 975: + c = (a = d).length - 10; + b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim(); + + switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) { + case 203: + if (111 > b.charCodeAt(8)) break; + + case 115: + a = a.replace(b, '-webkit-' + b) + ';' + a; + break; + + case 207: + case 102: + a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a; + } + + return a + ';'; + + case 938: + if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) { + case 105: + return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a; + + case 115: + return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a; + + default: + return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a; + } + break; + + case 973: + case 989: + if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break; + + case 931: + case 953: + if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a; + break; + + case 962: + if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a; + } + + return a; + } + + function L(d, c) { + var e = d.indexOf(1 === c ? ':' : '{'), + h = d.substring(0, 3 !== c ? e : 10); + e = d.substring(e + 1, d.length - 1); + return R(2 !== c ? h : h.replace(na, '$1'), e, c); + } + + function ea(d, c) { + var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2)); + return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')'; + } + + function H(d, c, e, h, a, m, b, v, n, q) { + for (var g = 0, x = c, w; g < A; ++g) { + switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) { + case void 0: + case !1: + case !0: + case null: + break; + + default: + x = w; + } + } + + if (x !== c) return x; + } + + function T(d) { + switch (d) { + case void 0: + case null: + A = S.length = 0; + break; + + default: + if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) { + T(d[c]); + } else Y = !!d | 0; + } + + return T; + } + + function U(d) { + d = d.prefix; + void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0); + return U; + } + + function B(d, c) { + var e = d; + 33 > e.charCodeAt(0) && (e = e.trim()); + V = e; + e = [V]; + + if (0 < A) { + var h = H(-1, c, e, e, D, z, 0, 0, 0, 0); + void 0 !== h && 'string' === typeof h && (c = h); + } + + var a = M(O, e, c, 0, 0); + 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h)); + V = ''; + E = 0; + z = D = 1; + return a; + } + + var ca = /^\0+/g, + N = /[\0\r\f]/g, + aa = /: */g, + ka = /zoo|gra/, + ma = /([,: ])(transform)/g, + ia = /,\r+?/g, + F = /([\t\r\n ])*\f?&/g, + fa = /@(k\w+)\s*(\S*)\s*/, + Q = /::(place)/g, + ha = /:(read-only)/g, + G = /[svh]\w+-[tblr]{2}/, + da = /\(\s*(.*)\s*\)/g, + oa = /([\s\S]*?);/g, + ba = /-self|flex-/g, + na = /[^]*?(:[rp][el]a[\w-]+)[^]*/, + la = /stretch|:\s*\w+\-(?:conte|avail)/, + ja = /([^-])(image-set\()/, + z = 1, + D = 1, + E = 0, + w = 1, + O = [], + S = [], + A = 0, + R = null, + Y = 0, + V = ''; + B.use = T; + B.set = U; + void 0 !== W && U(W); + return B; +} + +/* harmony default export */ var stylis_browser_esm = (stylis_min); + +// CONCATENATED MODULE: ./node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js +var weakMemoize = function weakMemoize(func) { + // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps + var cache = new WeakMap(); + return function (arg) { + if (cache.has(arg)) { + // $FlowFixMe + return cache.get(arg); + } + + var ret = func(arg); + cache.set(arg, ret); + return ret; + }; +}; + +/* harmony default export */ var weak_memoize_browser_esm = (weakMemoize); + +// CONCATENATED MODULE: ./node_modules/@emotion/cache/dist/cache.browser.esm.js + + + + +// https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet +// inlined to avoid umd wrapper and peerDep warnings/installing stylis +// since we use stylis after closure compiler +var delimiter = '/*|*/'; +var needle = delimiter + '}'; + +function toSheet(block) { + if (block) { + Sheet.current.insert(block + '}'); + } +} + +var Sheet = { + current: null +}; +var ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) { + switch (context) { + // property + case 1: + { + switch (content.charCodeAt(0)) { + case 64: + { + // @import + Sheet.current.insert(content + ';'); + return ''; + } + // charcode for l + + case 108: + { + // charcode for b + // this ignores label + if (content.charCodeAt(2) === 98) { + return ''; + } + } + } + + break; + } + // selector + + case 2: + { + if (ns === 0) return content + delimiter; + break; + } + // at-rule + + case 3: + { + switch (ns) { + // @font-face, @page + case 102: + case 112: + { + Sheet.current.insert(selectors[0] + content); + return ''; + } + + default: + { + return content + (at === 0 ? delimiter : ''); + } + } + } + + case -2: + { + content.split(needle).forEach(toSheet); + } + } +}; + +var cache_browser_esm_createCache = function createCache(options) { + if (options === undefined) options = {}; + var key = options.key || 'css'; + var stylisOptions; + + if (options.prefix !== undefined) { + stylisOptions = { + prefix: options.prefix + }; + } + + var stylis = new stylis_browser_esm(stylisOptions); + + if (false) {} + + var inserted = {}; // $FlowFixMe + + var container; + + { + container = options.container || document.head; + var nodes = document.querySelectorAll("style[data-emotion-" + key + "]"); + Array.prototype.forEach.call(nodes, function (node) { + var attrib = node.getAttribute("data-emotion-" + key); // $FlowFixMe + + attrib.split(' ').forEach(function (id) { + inserted[id] = true; + }); + + if (node.parentNode !== container) { + container.appendChild(node); + } + }); + } + + var _insert; + + { + stylis.use(options.stylisPlugins)(ruleSheet); + + _insert = function insert(selector, serialized, sheet, shouldCache) { + var name = serialized.name; + Sheet.current = sheet; + + if (false) { var map; } + + stylis(selector, serialized.styles); + + if (shouldCache) { + cache.inserted[name] = true; + } + }; + } + + if (false) { var commentEnd, commentStart; } + + var cache = { + key: key, + sheet: new StyleSheet({ + key: key, + container: container, + nonce: options.nonce, + speedy: options.speedy + }), + nonce: options.nonce, + inserted: inserted, + registered: {}, + insert: _insert + }; + return cache; +}; + +/* harmony default export */ var cache_browser_esm = (cache_browser_esm_createCache); + +// CONCATENATED MODULE: ./node_modules/@emotion/utils/dist/utils.browser.esm.js +var isBrowser = "object" !== 'undefined'; +function getRegisteredStyles(registered, registeredStyles, classNames) { + var rawClassName = ''; + classNames.split(' ').forEach(function (className) { + if (registered[className] !== undefined) { + registeredStyles.push(registered[className]); + } else { + rawClassName += className + " "; + } + }); + return rawClassName; +} +var insertStyles = function insertStyles(cache, serialized, isStringTag) { + var className = cache.key + "-" + serialized.name; + + if ( // we only need to add the styles to the registered cache if the + // class name could be used further down + // the tree but if it's a string tag, we know it won't + // so we don't have to add it to registered cache. + // this improves memory usage since we can avoid storing the whole style string + (isStringTag === false || // we need to always store it if we're in compat mode and + // in node since emotion-server relies on whether a style is in + // the registered cache to know whether a style is global or not + // also, note that this check will be dead code eliminated in the browser + isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) { + cache.registered[className] = serialized.styles; + } + + if (cache.inserted[serialized.name] === undefined) { + var current = serialized; + + do { + var maybeStyles = cache.insert("." + className, current, cache.sheet, true); + + current = current.next; + } while (current !== undefined); + } +}; + + + +// CONCATENATED MODULE: ./node_modules/@emotion/hash/dist/hash.browser.esm.js +/* eslint-disable */ +// Inspired by https://github.com/garycourt/murmurhash-js +// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86 +function murmur2(str) { + // 'm' and 'r' are mixing constants generated offline. + // They're not really 'magic', they just happen to work well. + // const m = 0x5bd1e995; + // const r = 24; + // Initialize the hash + var h = 0; // Mix 4 bytes at a time into the hash + + var k, + i = 0, + len = str.length; + + for (; len >= 4; ++i, len -= 4) { + k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24; + k = + /* Math.imul(k, m): */ + (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16); + k ^= + /* k >>> r: */ + k >>> 24; + h = + /* Math.imul(k, m): */ + (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^ + /* Math.imul(h, m): */ + (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16); + } // Handle the last few bytes of the input array + + + switch (len) { + case 3: + h ^= (str.charCodeAt(i + 2) & 0xff) << 16; + + case 2: + h ^= (str.charCodeAt(i + 1) & 0xff) << 8; + + case 1: + h ^= str.charCodeAt(i) & 0xff; + h = + /* Math.imul(h, m): */ + (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16); + } // Do a few final mixes of the hash to ensure the last few + // bytes are well-incorporated. + + + h ^= h >>> 13; + h = + /* Math.imul(h, m): */ + (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16); + return ((h ^ h >>> 15) >>> 0).toString(36); +} + +/* harmony default export */ var hash_browser_esm = (murmur2); + +// CONCATENATED MODULE: ./node_modules/@emotion/unitless/dist/unitless.browser.esm.js +var unitlessKeys = { + animationIterationCount: 1, + borderImageOutset: 1, + borderImageSlice: 1, + borderImageWidth: 1, + boxFlex: 1, + boxFlexGroup: 1, + boxOrdinalGroup: 1, + columnCount: 1, + columns: 1, + flex: 1, + flexGrow: 1, + flexPositive: 1, + flexShrink: 1, + flexNegative: 1, + flexOrder: 1, + gridRow: 1, + gridRowEnd: 1, + gridRowSpan: 1, + gridRowStart: 1, + gridColumn: 1, + gridColumnEnd: 1, + gridColumnSpan: 1, + gridColumnStart: 1, + msGridRow: 1, + msGridRowSpan: 1, + msGridColumn: 1, + msGridColumnSpan: 1, + fontWeight: 1, + lineHeight: 1, + opacity: 1, + order: 1, + orphans: 1, + tabSize: 1, + widows: 1, + zIndex: 1, + zoom: 1, + WebkitLineClamp: 1, + // SVG-related properties + fillOpacity: 1, + floodOpacity: 1, + stopOpacity: 1, + strokeDasharray: 1, + strokeDashoffset: 1, + strokeMiterlimit: 1, + strokeOpacity: 1, + strokeWidth: 1 +}; + +/* harmony default export */ var unitless_browser_esm = (unitlessKeys); + +// CONCATENATED MODULE: ./node_modules/@emotion/serialize/dist/serialize.browser.esm.js + + + + +var ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences"; +var UNDEFINED_AS_OBJECT_KEY_ERROR = "You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key)."; +var hyphenateRegex = /[A-Z]|^ms/g; +var animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g; + +var isCustomProperty = function isCustomProperty(property) { + return property.charCodeAt(1) === 45; +}; + +var isProcessableValue = function isProcessableValue(value) { + return value != null && typeof value !== 'boolean'; +}; + +var processStyleName = memoize_browser_esm(function (styleName) { + return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase(); +}); + +var serialize_browser_esm_processStyleValue = function processStyleValue(key, value) { + switch (key) { + case 'animation': + case 'animationName': + { + if (typeof value === 'string') { + return value.replace(animationRegex, function (match, p1, p2) { + cursor = { + name: p1, + styles: p2, + next: cursor + }; + return p1; + }); + } + } + } + + if (unitless_browser_esm[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) { + return value + 'px'; + } + + return value; +}; + +if (false) { var hyphenatedCache, hyphenPattern, msPattern, oldProcessStyleValue, contentValues, contentValuePattern; } + +var shouldWarnAboutInterpolatingClassNameFromCss = true; + +function handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) { + if (interpolation == null) { + return ''; + } + + if (interpolation.__emotion_styles !== undefined) { + if (false) {} + + return interpolation; + } + + switch (typeof interpolation) { + case 'boolean': + { + return ''; + } + + case 'object': + { + if (interpolation.anim === 1) { + cursor = { + name: interpolation.name, + styles: interpolation.styles, + next: cursor + }; + return interpolation.name; + } + + if (interpolation.styles !== undefined) { + var next = interpolation.next; + + if (next !== undefined) { + // not the most efficient thing ever but this is a pretty rare case + // and there will be very few iterations of this generally + while (next !== undefined) { + cursor = { + name: next.name, + styles: next.styles, + next: cursor + }; + next = next.next; + } + } + + var styles = interpolation.styles + ";"; + + if (false) {} + + return styles; + } + + return createStringFromObject(mergedProps, registered, interpolation); + } + + case 'function': + { + if (mergedProps !== undefined) { + var previousCursor = cursor; + var result = interpolation(mergedProps); + cursor = previousCursor; + return handleInterpolation(mergedProps, registered, result, couldBeSelectorInterpolation); + } else if (false) {} + + break; + } + + case 'string': + if (false) { var replaced, matched; } + + break; + } // finalize string values (regular strings and functions interpolated into css calls) + + + if (registered == null) { + return interpolation; + } + + var cached = registered[interpolation]; + + if (false) {} + + return cached !== undefined && !couldBeSelectorInterpolation ? cached : interpolation; +} + +function createStringFromObject(mergedProps, registered, obj) { + var string = ''; + + if (Array.isArray(obj)) { + for (var i = 0; i < obj.length; i++) { + string += handleInterpolation(mergedProps, registered, obj[i], false); + } + } else { + for (var _key in obj) { + var value = obj[_key]; + + if (typeof value !== 'object') { + if (registered != null && registered[value] !== undefined) { + string += _key + "{" + registered[value] + "}"; + } else if (isProcessableValue(value)) { + string += processStyleName(_key) + ":" + serialize_browser_esm_processStyleValue(_key, value) + ";"; + } + } else { + if (_key === 'NO_COMPONENT_SELECTOR' && "production" !== 'production') { + throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.'); + } + + if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) { + for (var _i = 0; _i < value.length; _i++) { + if (isProcessableValue(value[_i])) { + string += processStyleName(_key) + ":" + serialize_browser_esm_processStyleValue(_key, value[_i]) + ";"; + } + } } else { - this.contentNode.current.focus(); - } - - return; - } - - if (focusOnMount === 'container') { - // Focus the popover panel itself so items in the popover are easily - // accessed via keyboard navigation. - this.contentNode.current.focus(); - } - } - }, { - key: "getAnchorRect", - value: function getAnchorRect(anchor) { - var _this$props = this.props, - getAnchorRect = _this$props.getAnchorRect, - anchorRect = _this$props.anchorRect; - - if (anchorRect) { - return anchorRect; - } - - if (getAnchorRect) { - return getAnchorRect(anchor); - } - - if (!anchor || !anchor.parentNode) { - return; - } - - var rect = anchor.parentNode.getBoundingClientRect(); // subtract padding - - var _window$getComputedSt = window.getComputedStyle(anchor.parentNode), - paddingTop = _window$getComputedSt.paddingTop, - paddingBottom = _window$getComputedSt.paddingBottom; - - var topPad = parseInt(paddingTop, 10); - var bottomPad = parseInt(paddingBottom, 10); - return { - x: rect.left, - y: rect.top + topPad, - width: rect.width, - height: rect.height - topPad - bottomPad, - left: rect.left, - right: rect.right, - top: rect.top + topPad, - bottom: rect.bottom - bottomPad - }; - } - }, { - key: "computePopoverPosition", - value: function computePopoverPosition(popoverSize, anchorRect) { - var _this$props2 = this.props, - _this$props2$position = _this$props2.position, - position = _this$props2$position === void 0 ? 'top' : _this$props2$position, - expandOnMobile = _this$props2.expandOnMobile; - - var newPopoverPosition = utils_computePopoverPosition(anchorRect, popoverSize, position, expandOnMobile); - - if (this.state.yAxis !== newPopoverPosition.yAxis || this.state.xAxis !== newPopoverPosition.xAxis || this.state.popoverLeft !== newPopoverPosition.popoverLeft || this.state.popoverTop !== newPopoverPosition.popoverTop || this.state.contentHeight !== newPopoverPosition.contentHeight || this.state.contentWidth !== newPopoverPosition.contentWidth || this.state.isMobile !== newPopoverPosition.isMobile) { - this.setState(newPopoverPosition); - } - } - }, { - key: "maybeClose", - value: function maybeClose(event) { - var _this$props3 = this.props, - onKeyDown = _this$props3.onKeyDown, - onClose = _this$props3.onClose; // Close on escape - - if (event.keyCode === external_this_wp_keycodes_["ESCAPE"] && onClose) { - event.stopPropagation(); - onClose(); - } // Preserve original content prop behavior - - - if (onKeyDown) { - onKeyDown(event); - } - } - }, { - key: "render", - value: function render() { - var _this3 = this; - - var _this$props4 = this.props, - headerTitle = _this$props4.headerTitle, - onClose = _this$props4.onClose, - children = _this$props4.children, - className = _this$props4.className, - _this$props4$onClickO = _this$props4.onClickOutside, - onClickOutside = _this$props4$onClickO === void 0 ? onClose : _this$props4$onClickO, - noArrow = _this$props4.noArrow, - position = _this$props4.position, - range = _this$props4.range, - focusOnMount = _this$props4.focusOnMount, - getAnchorRect = _this$props4.getAnchorRect, - expandOnMobile = _this$props4.expandOnMobile, - _this$props4$animate = _this$props4.animate, - animate = _this$props4$animate === void 0 ? true : _this$props4$animate, - contentProps = Object(objectWithoutProperties["a" /* default */])(_this$props4, ["headerTitle", "onClose", "children", "className", "onClickOutside", "noArrow", "position", "range", "focusOnMount", "getAnchorRect", "expandOnMobile", "animate"]); - - var _this$state = this.state, - popoverLeft = _this$state.popoverLeft, - popoverTop = _this$state.popoverTop, - yAxis = _this$state.yAxis, - xAxis = _this$state.xAxis, - contentHeight = _this$state.contentHeight, - contentWidth = _this$state.contentWidth, - popoverSize = _this$state.popoverSize, - isMobile = _this$state.isMobile, - isReadyToAnimate = _this$state.isReadyToAnimate; // Compute the animation position - - var yAxisMapping = { - top: 'bottom', - bottom: 'top' - }; - var xAxisMapping = { - left: 'right', - right: 'left' - }; - var animateYAxis = yAxisMapping[yAxis] || 'middle'; - var animateXAxis = xAxisMapping[xAxis] || 'center'; - var classes = classnames_default()('components-popover', className, 'is-' + yAxis, 'is-' + xAxis, { - 'is-mobile': isMobile, - 'is-without-arrow': noArrow || xAxis === 'center' && yAxis === 'middle' - }); // Disable reason: We care to capture the _bubbled_ events from inputs - // within popover as inferring close intent. - - /* eslint-disable jsx-a11y/no-static-element-interactions */ - - var content = Object(external_this_wp_element_["createElement"])(detect_outside, { - onClickOutside: onClickOutside - }, Object(external_this_wp_element_["createElement"])(build_module_animate, { - type: animate && isReadyToAnimate ? 'appear' : null, - options: { - origin: animateYAxis + ' ' + animateXAxis - } - }, function (_ref2) { - var animateClassName = _ref2.className; - return Object(external_this_wp_element_["createElement"])(isolated_event_container, Object(esm_extends["a" /* default */])({ - className: classnames_default()(classes, animateClassName), - style: { - top: !isMobile && popoverTop ? popoverTop + 'px' : undefined, - left: !isMobile && popoverLeft ? popoverLeft + 'px' : undefined, - visibility: popoverSize ? undefined : 'hidden' - } - }, contentProps, { - onKeyDown: _this3.maybeClose - }), isMobile && Object(external_this_wp_element_["createElement"])("div", { - className: "components-popover__header" - }, Object(external_this_wp_element_["createElement"])("span", { - className: "components-popover__header-title" - }, headerTitle), Object(external_this_wp_element_["createElement"])(icon_button, { - className: "components-popover__close", - icon: "no-alt", - onClick: onClose - })), Object(external_this_wp_element_["createElement"])("div", { - ref: _this3.contentNode, - className: "components-popover__content", - style: { - maxHeight: !isMobile && contentHeight ? contentHeight + 'px' : undefined, - maxWidth: !isMobile && contentWidth ? contentWidth + 'px' : undefined - }, - tabIndex: "-1" - }, children)); + var interpolated = handleInterpolation(mergedProps, registered, value, false); + + switch (_key) { + case 'animation': + case 'animationName': + { + string += processStyleName(_key) + ":" + interpolated + ";"; + break; + } + + default: + { + if (false) {} + + string += _key + "{" + interpolated + "}"; + } + } + } + } + } + } + + return string; +} + +var labelPattern = /label:\s*([^\s;\n{]+)\s*;/g; +var sourceMapPattern; + +if (false) {} // this is the cursor for keyframes +// keyframes are stored on the SerializedStyles object as a linked list + + +var cursor; +var serialize_browser_esm_serializeStyles = function serializeStyles(args, registered, mergedProps) { + if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) { + return args[0]; + } + + var stringMode = true; + var styles = ''; + cursor = undefined; + var strings = args[0]; + + if (strings == null || strings.raw === undefined) { + stringMode = false; + styles += handleInterpolation(mergedProps, registered, strings, false); + } else { + if (false) {} + + styles += strings[0]; + } // we start at 1 since we've already handled the first arg + + + for (var i = 1; i < args.length; i++) { + styles += handleInterpolation(mergedProps, registered, args[i], styles.charCodeAt(styles.length - 1) === 46); + + if (stringMode) { + if (false) {} + + styles += strings[i]; + } + } + + var sourceMap; + + if (false) {} // using a global regex with .exec is stateful so lastIndex has to be reset each time + + + labelPattern.lastIndex = 0; + var identifierName = ''; + var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5 + + while ((match = labelPattern.exec(styles)) !== null) { + identifierName += '-' + // $FlowFixMe we know it's not null + match[1]; + } + + var name = hash_browser_esm(styles) + identifierName; + + if (false) {} + + return { + name: name, + styles: styles, + next: cursor + }; +}; + + + +// CONCATENATED MODULE: ./node_modules/@emotion/css/dist/css.browser.esm.js + + +function css_browser_esm_css() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return serialize_browser_esm_serializeStyles(args); +} + +/* harmony default export */ var css_browser_esm = (css_browser_esm_css); + +// CONCATENATED MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + + + + + + + + + +var EmotionCacheContext = Object(external_this_React_["createContext"])( // we're doing this to avoid preconstruct's dead code elimination in this one case +// because this module is primarily intended for the browser and node +// but it's also required in react native and similar environments sometimes +// and we could have a special build just for that +// but this is much easier and the native packages +// might use a different theme context in the future anyway +typeof HTMLElement !== 'undefined' ? cache_browser_esm() : null); +var ThemeContext = Object(external_this_React_["createContext"])({}); +var CacheProvider = EmotionCacheContext.Provider; + +var core_browser_esm_withEmotionCache = function withEmotionCache(func) { + var render = function render(props, ref) { + return Object(external_this_React_["createElement"])(EmotionCacheContext.Consumer, null, function (cache) { + return func(props, cache, ref); + }); + }; // $FlowFixMe + + + return Object(external_this_React_["forwardRef"])(render); +}; + +// thus we only need to replace what is a valid character for JS, but not for CSS + +var sanitizeIdentifier = function sanitizeIdentifier(identifier) { + return identifier.replace(/\$/g, '-'); +}; + +var typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__'; +var labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__'; +var core_browser_esm_hasOwnProperty = Object.prototype.hasOwnProperty; + +var core_browser_esm_render = function render(cache, props, theme, ref) { + var cssProp = theme === null ? props.css : props.css(theme); // so that using `css` from `emotion` and passing the result to the css prop works + // not passing the registered cache to serializeStyles because it would + // make certain babel optimisations not possible + + if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) { + cssProp = cache.registered[cssProp]; + } + + var type = props[typePropName]; + var registeredStyles = [cssProp]; + var className = ''; + + if (typeof props.className === 'string') { + className = getRegisteredStyles(cache.registered, registeredStyles, props.className); + } else if (props.className != null) { + className = props.className + " "; + } + + var serialized = serialize_browser_esm_serializeStyles(registeredStyles); + + if (false) { var labelFromStack; } + + var rules = insertStyles(cache, serialized, typeof type === 'string'); + className += cache.key + "-" + serialized.name; + var newProps = {}; + + for (var key in props) { + if (core_browser_esm_hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && ( true || false)) { + newProps[key] = props[key]; + } + } + + newProps.ref = ref; + newProps.className = className; + var ele = Object(external_this_React_["createElement"])(type, newProps); + + return ele; +}; + +var Emotion = +/* #__PURE__ */ +core_browser_esm_withEmotionCache(function (props, cache, ref) { + // use Context.read for the theme when it's stable + if (typeof props.css === 'function') { + return Object(external_this_React_["createElement"])(ThemeContext.Consumer, null, function (theme) { + return core_browser_esm_render(cache, props, theme, ref); + }); + } + + return core_browser_esm_render(cache, props, null, ref); +}); + +if (false) {} // $FlowFixMe + + +var core_browser_esm_jsx = function jsx(type, props) { + var args = arguments; + + if (props == null || !core_browser_esm_hasOwnProperty.call(props, 'css')) { + // $FlowFixMe + return external_this_React_["createElement"].apply(undefined, args); + } + + if (false) {} + + var argsLength = args.length; + var createElementArgArray = new Array(argsLength); + createElementArgArray[0] = Emotion; + var newProps = {}; + + for (var key in props) { + if (core_browser_esm_hasOwnProperty.call(props, key)) { + newProps[key] = props[key]; + } + } + + newProps[typePropName] = type; + + if (false) { var match, error; } + + createElementArgArray[1] = newProps; + + for (var i = 2; i < argsLength; i++) { + createElementArgArray[i] = args[i]; + } // $FlowFixMe + + + return external_this_React_["createElement"].apply(null, createElementArgArray); +}; + +var warnedAboutCssPropForGlobal = false; +var Global = +/* #__PURE__ */ +core_browser_esm_withEmotionCache(function (props, cache) { + if (false) {} + + var styles = props.styles; + + if (typeof styles === 'function') { + return Object(external_this_React_["createElement"])(ThemeContext.Consumer, null, function (theme) { + var serialized = serialize_browser_esm_serializeStyles([styles(theme)]); + return Object(external_this_React_["createElement"])(core_browser_esm_InnerGlobal, { + serialized: serialized, + cache: cache + }); + }); + } + + var serialized = serialize_browser_esm_serializeStyles([styles]); + return Object(external_this_React_["createElement"])(core_browser_esm_InnerGlobal, { + serialized: serialized, + cache: cache + }); +}); + +// maintain place over rerenders. +// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild +// initial client-side render from SSR, use place of hydrating tag +var core_browser_esm_InnerGlobal = +/*#__PURE__*/ +function (_React$Component) { + inheritsLoose_default()(InnerGlobal, _React$Component); + + function InnerGlobal(props, context, updater) { + return _React$Component.call(this, props, context, updater) || this; + } + + var _proto = InnerGlobal.prototype; + + _proto.componentDidMount = function componentDidMount() { + this.sheet = new StyleSheet({ + key: this.props.cache.key + "-global", + nonce: this.props.cache.sheet.nonce, + container: this.props.cache.sheet.container + }); // $FlowFixMe + + var node = document.querySelector("style[data-emotion-" + this.props.cache.key + "=\"" + this.props.serialized.name + "\"]"); + + if (node !== null) { + this.sheet.tags.push(node); + } + + if (this.props.cache.sheet.tags.length) { + this.sheet.before = this.props.cache.sheet.tags[0]; + } + + this.insertStyles(); + }; + + _proto.componentDidUpdate = function componentDidUpdate(prevProps) { + if (prevProps.serialized.name !== this.props.serialized.name) { + this.insertStyles(); + } + }; + + _proto.insertStyles = function insertStyles$1() { + if (this.props.serialized.next !== undefined) { + // insert keyframes + insertStyles(this.props.cache, this.props.serialized.next, true); + } + + if (this.sheet.tags.length) { + // if this doesn't exist then it will be null so the style element will be appended + var element = this.sheet.tags[this.sheet.tags.length - 1].nextElementSibling; + this.sheet.before = element; + this.sheet.flush(); + } + + this.props.cache.insert("", this.props.serialized, this.sheet, false); + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + this.sheet.flush(); + }; + + _proto.render = function render() { + + return null; + }; + + return InnerGlobal; +}(external_this_React_["Component"]); + +var core_browser_esm_keyframes = function keyframes() { + var insertable = css_browser_esm.apply(void 0, arguments); + var name = "animation-" + insertable.name; // $FlowFixMe + + return { + name: name, + styles: "@keyframes " + name + "{" + insertable.styles + "}", + anim: 1, + toString: function toString() { + return "_EMO_" + this.name + "_" + this.styles + "_EMO_"; + } + }; +}; + +var core_browser_esm_classnames = function classnames(args) { + var len = args.length; + var i = 0; + var cls = ''; + + for (; i < len; i++) { + var arg = args[i]; + if (arg == null) continue; + var toAdd = void 0; + + switch (typeof arg) { + case 'boolean': + break; + + case 'object': + { + if (Array.isArray(arg)) { + toAdd = classnames(arg); + } else { + toAdd = ''; + + for (var k in arg) { + if (arg[k] && k) { + toAdd && (toAdd += ' '); + toAdd += k; + } + } + } + + break; + } + + default: + { + toAdd = arg; + } + } + + if (toAdd) { + cls && (cls += ' '); + cls += toAdd; + } + } + + return cls; +}; + +function merge(registered, css, className) { + var registeredStyles = []; + var rawClassName = getRegisteredStyles(registered, registeredStyles, className); + + if (registeredStyles.length < 2) { + return className; + } + + return rawClassName + css(registeredStyles); +} + +var ClassNames = core_browser_esm_withEmotionCache(function (props, context) { + return Object(external_this_React_["createElement"])(ThemeContext.Consumer, null, function (theme) { + var hasRendered = false; + + var css = function css() { + if (hasRendered && "production" !== 'production') { + throw new Error('css can only be used during render'); + } + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var serialized = serialize_browser_esm_serializeStyles(args, context.registered); + + { + insertStyles(context, serialized, false); + } + + return context.key + "-" + serialized.name; + }; + + var cx = function cx() { + if (hasRendered && "production" !== 'production') { + throw new Error('cx can only be used during render'); + } + + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + return merge(context.registered, css, core_browser_esm_classnames(args)); + }; + + var content = { + css: css, + cx: cx, + theme: theme + }; + var ele = props.children(content); + hasRendered = true; + + return ele; + }); +}); + + + +// CONCATENATED MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + + + + + + + +var testOmitPropsOnStringTag = is_prop_valid_browser_esm; + +var testOmitPropsOnComponent = function testOmitPropsOnComponent(key) { + return key !== 'theme' && key !== 'innerRef'; +}; + +var getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) { + return typeof tag === 'string' && // 96 is one less than the char code + // for "a" so this is checking that + // it's a lowercase character + tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent; +}; + +function styled_base_browser_esm_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function styled_base_browser_esm_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { styled_base_browser_esm_ownKeys(source, true).forEach(function (key) { defineProperty_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { styled_base_browser_esm_ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } +var styled_base_browser_esm_ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences"; + +var styled_base_browser_esm_createStyled = function createStyled(tag, options) { + if (false) {} + + var identifierName; + var shouldForwardProp; + var targetClassName; + + if (options !== undefined) { + identifierName = options.label; + targetClassName = options.target; + shouldForwardProp = tag.__emotion_forwardProp && options.shouldForwardProp ? function (propName) { + return tag.__emotion_forwardProp(propName) && // $FlowFixMe + options.shouldForwardProp(propName); + } : options.shouldForwardProp; + } + + var isReal = tag.__emotion_real === tag; + var baseTag = isReal && tag.__emotion_base || tag; + + if (typeof shouldForwardProp !== 'function' && isReal) { + shouldForwardProp = tag.__emotion_forwardProp; + } + + var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag); + var shouldUseAs = !defaultShouldForwardProp('as'); + return function () { + var args = arguments; + var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : []; + + if (identifierName !== undefined) { + styles.push("label:" + identifierName + ";"); + } + + if (args[0] == null || args[0].raw === undefined) { + styles.push.apply(styles, args); + } else { + if (false) {} + + styles.push(args[0][0]); + var len = args.length; + var i = 1; + + for (; i < len; i++) { + if (false) {} + + styles.push(args[i], args[0][i]); + } + } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class + + + var Styled = core_browser_esm_withEmotionCache(function (props, context, ref) { + return Object(external_this_React_["createElement"])(ThemeContext.Consumer, null, function (theme) { + var finalTag = shouldUseAs && props.as || baseTag; + var className = ''; + var classInterpolations = []; + var mergedProps = props; + + if (props.theme == null) { + mergedProps = {}; + + for (var key in props) { + mergedProps[key] = props[key]; + } + + mergedProps.theme = theme; + } + + if (typeof props.className === 'string') { + className = getRegisteredStyles(context.registered, classInterpolations, props.className); + } else if (props.className != null) { + className = props.className + " "; + } + + var serialized = serialize_browser_esm_serializeStyles(styles.concat(classInterpolations), context.registered, mergedProps); + var rules = insertStyles(context, serialized, typeof finalTag === 'string'); + className += context.key + "-" + serialized.name; + + if (targetClassName !== undefined) { + className += " " + targetClassName; + } + + var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(finalTag) : defaultShouldForwardProp; + var newProps = {}; + + for (var _key in props) { + if (shouldUseAs && _key === 'as') continue; + + if ( // $FlowFixMe + finalShouldForwardProp(_key)) { + newProps[_key] = props[_key]; + } + } + + newProps.className = className; + newProps.ref = ref || props.innerRef; + + if (false) {} + + var ele = Object(external_this_React_["createElement"])(finalTag, newProps); + + return ele; + }); + }); + Styled.displayName = identifierName !== undefined ? identifierName : "Styled(" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + ")"; + Styled.defaultProps = tag.defaultProps; + Styled.__emotion_real = Styled; + Styled.__emotion_base = baseTag; + Styled.__emotion_styles = styles; + Styled.__emotion_forwardProp = shouldForwardProp; + Object.defineProperty(Styled, 'toString', { + value: function value() { + if (targetClassName === undefined && "production" !== 'production') { + return 'NO_COMPONENT_SELECTOR'; + } // $FlowFixMe: coerce undefined to string + + + return "." + targetClassName; + } + }); + + Styled.withComponent = function (nextTag, nextOptions) { + return createStyled(nextTag, nextOptions !== undefined ? styled_base_browser_esm_objectSpread({}, options || {}, {}, nextOptions) : options).apply(void 0, styles); + }; + + return Styled; + }; +}; + +/* harmony default export */ var styled_base_browser_esm = (styled_base_browser_esm_createStyled); + +// EXTERNAL MODULE: ./node_modules/tinycolor2/tinycolor.js +var tinycolor = __webpack_require__(66); +var tinycolor_default = /*#__PURE__*/__webpack_require__.n(tinycolor); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/colors-values.js + + +function colors_values_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function colors_values_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { colors_values_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { colors_values_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +/** + * External dependencies + */ + +/** + * Internal dependencies + */ + + +var BASE = { + black: '#000', + white: '#fff' +}; +/** + * TODO: Continue to update values as "G2" design evolves. + * + * "G2" refers to the movement to advance the interface of the block editor. + * https://github.com/WordPress/gutenberg/issues/18667 + */ + +var G2 = { + blue: { + medium: { + focus: '#007cba', + focusDark: '#fff' + } + }, + darkGray: { + primary: '#1e1e1e' + }, + mediumGray: { + text: '#757575' + }, + lightGray: { + ui: '#949494', + secondary: '#ccc', + tertiary: '#e7e8e9' + } +}; +var DARK_GRAY = { + 900: '#191e23', + 800: '#23282d', + 700: '#32373c', + 600: '#40464d', + 500: '#555d66', + // Use this most of the time for dark items. + 400: '#606a73', + 300: '#6c7781', + // Lightest gray that can be used for AA text contrast. + 200: '#7e8993', + 150: '#8d96a0', + // Lightest gray that can be used for AA non-text contrast. + 100: '#8f98a1' +}; +var DARK_OPACITY = { + 900: rgba('#000510', 0.9), + 800: rgba('#00000a', 0.85), + 700: rgba('#06060b', 0.8), + 600: rgba('#000913', 0.75), + 500: rgba('#0a1829', 0.7), + 400: rgba('#0a1829', 0.65), + 300: rgba('#0e1c2e', 0.62), + 200: rgba('#162435', 0.55), + 100: rgba('#223443', 0.5), + backgroundFill: rgba(DARK_GRAY[700], 0.7) +}; +var DARK_OPACITY_LIGHT = { + 900: rgba('#304455', 0.45), + 800: rgba('#425863', 0.4), + 700: rgba('#667886', 0.35), + 600: rgba('#7b86a2', 0.3), + 500: rgba('#9197a2', 0.25), + 400: rgba('#95959c', 0.2), + 300: rgba('#829493', 0.15), + 200: rgba('#8b8b96', 0.1), + 100: rgba('#747474', 0.05) +}; +var LIGHT_GRAY = { + 900: '#a2aab2', + 800: '#b5bcc2', + 700: '#ccd0d4', + 600: '#d7dade', + 500: '#e2e4e7', + // Good for "grayed" items and borders. + 400: '#e8eaeb', + // Good for "readonly" input fields and special text selection. + 300: '#edeff0', + 200: '#f3f4f5', + 100: '#f8f9f9' +}; +var LIGHT_OPACITY_LIGHT = { + 900: rgba(BASE.white, 0.5), + 800: rgba(BASE.white, 0.45), + 700: rgba(BASE.white, 0.4), + 600: rgba(BASE.white, 0.35), + 500: rgba(BASE.white, 0.3), + 400: rgba(BASE.white, 0.25), + 300: rgba(BASE.white, 0.2), + 200: rgba(BASE.white, 0.15), + 100: rgba(BASE.white, 0.1), + backgroundFill: rgba(LIGHT_GRAY[300], 0.8) +}; // Additional colors. +// Some are from https://make.wordpress.org/design/handbook/foundations/colors/. + +var BLUE = { + wordpress: { + 700: '#00669b' + }, + dark: { + 900: '#0071a1' + }, + medium: { + 900: '#006589', + 800: '#00739c', + 700: '#007fac', + 600: '#008dbe', + 500: '#00a0d2', + 400: '#33b3db', + 300: '#66c6e4', + 200: '#bfe7f3', + 100: '#e5f5fa', + highlight: '#b3e7fe', + focus: '#007cba' + } +}; +var ALERT = { + yellow: '#f0b849', + red: '#d94f4f', + green: '#4ab866' +}; +var ADMIN = { + theme: "var( --wp-admin-theme-color, ".concat(BLUE.wordpress[700], ")"), + themeDark10: "var( --wp-admin-theme-color-darker-10, ".concat(BLUE.medium.focus, ")") +}; // Namespaced values for raw colors hex codes + +var UI = { + theme: ADMIN.theme, + background: BASE.white, + backgroundDisabled: LIGHT_GRAY[200], + border: G2.darkGray.primary, + borderFocus: ADMIN.themeDark10, + borderDisabled: DARK_GRAY[700], + borderLight: LIGHT_GRAY[600], + label: DARK_GRAY[500], + textDisabled: DARK_GRAY[150], + textDark: BASE.white, + textLight: BASE.black +}; +var COLORS = colors_values_objectSpread({}, BASE, { + darkGray: Object(external_this_lodash_["merge"])({}, DARK_GRAY, G2.darkGray), + darkOpacity: DARK_OPACITY, + darkOpacityLight: DARK_OPACITY_LIGHT, + mediumGray: G2.mediumGray, + lightGray: Object(external_this_lodash_["merge"])({}, LIGHT_GRAY, G2.lightGray), + lightGrayLight: LIGHT_OPACITY_LIGHT, + blue: Object(external_this_lodash_["merge"])({}, BLUE, G2.blue), + alert: ALERT, + admin: ADMIN, + ui: UI +}); +/* harmony default export */ var colors_values = (COLORS); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/colors.js +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +/** + * Generating a CSS complient rgba() color value. + * + * @param {string} hexValue The hex value to convert to rgba(). + * @param {number} alpha The alpha value for opacity. + * @return {string} The converted rgba() color value. + * + * @example + * rgba( '#000000', 0.5 ) + * // rgba(0, 0, 0, 0.5) + */ + +function rgba() { + var hexValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; + var alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + + var _tinycolor$toRgb = tinycolor_default()(hexValue).toRgb(), + r = _tinycolor$toRgb.r, + g = _tinycolor$toRgb.g, + b = _tinycolor$toRgb.b; + + return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(alpha, ")"); +} +/** + * Retrieves a color from the color palette. + * + * @param {string} value The value to retrieve. + * @return {string} The color (or fallback, if not found). + * + * @example + * color( 'blue.wordpress.700' ) + * // #00669b + */ + +function colors_color(value) { + var fallbackColor = '#000'; + return Object(external_this_lodash_["get"])(COLORS, value, fallbackColor); +} + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/reduce-motion.js +/** + * Allows users to opt-out of animations via OS-level preferences. + * + * @param {string} prop CSS Property name + * @return {string} Generated CSS code for the reduced style + */ +function reduceMotion() { + var prop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transition'; + var style; + + switch (prop) { + case 'transition': + style = 'transition-duration: 0ms;'; + break; + + case 'animation': + style = 'animation-duration: 1ms;'; + break; + + default: + style = "\n\t\t\t\tanimation-duration: 1ms;\n\t\t\t\ttransition-duration: 0ms;\n\t\t\t"; + } + + return "\n\t\t@media ( prefers-reduced-motion: reduce ) {\n\t\t\t".concat(style, ";\n\t\t}\n\t"); +} + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js + + +function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } + + +/** + * Internal dependencies + */ + + + +var alignment_matrix_control_styles_ref = true ? { + name: "1xiracb", + styles: "border-radius:2px;box-sizing:border-box;display:grid;grid-template-columns:repeat( 3,1fr );outline:none;" +} : undefined; + +var rootBase = function rootBase() { + return alignment_matrix_control_styles_ref; +}; + +var alignment_matrix_control_styles_rootSize = function rootSize(_ref2) { + var _ref2$size = _ref2.size, + size = _ref2$size === void 0 ? 92 : _ref2$size; + return /*#__PURE__*/css_browser_esm("grid-template-rows:repeat( 3,calc( ", size, "px / 3 ) );width:", size, "px;" + ( true ? "" : undefined)); +}; + +var Root = styled_base_browser_esm("div", { + target: "e1od1u4s0", + label: "Root" +})(rootBase, ";border:1px solid transparent;cursor:pointer;grid-template-columns:auto;", alignment_matrix_control_styles_rootSize, ";" + ( true ? "" : undefined)); +var Row = styled_base_browser_esm("div", { + target: "e1od1u4s1", + label: "Row" +})( true ? { + name: "1177s8r", + styles: "box-sizing:border-box;display:grid;grid-template-columns:repeat( 3,1fr );" +} : undefined); + +var alignment_matrix_control_styles_pointActive = function pointActive(_ref3) { + var isActive = _ref3.isActive; + var boxShadow = isActive ? "0 0 0 2px ".concat(colors_color('black')) : null; + var pointColor = isActive ? colors_color('black') : colors_color('lightGray.800'); + var pointColorHover = isActive ? colors_color('black') : colors_color('blue.medium.focus'); + return /*#__PURE__*/css_browser_esm("box-shadow:", boxShadow, ";color:", pointColor, ";*:hover > &{color:", pointColorHover, ";}" + ( true ? "" : undefined)); +}; + +var alignment_matrix_control_styles_pointBase = function pointBase(props) { + return /*#__PURE__*/css_browser_esm("background:currentColor;box-sizing:border-box;display:grid;margin:auto;transition:all 120ms linear;", reduceMotion('transition'), " ", alignment_matrix_control_styles_pointActive(props), true ? "" : undefined); +}; +var Point = styled_base_browser_esm("span", { + target: "e1od1u4s2", + label: "Point" +})("height:6px;width:6px;", alignment_matrix_control_styles_pointBase, true ? "" : undefined); +var Cell = styled_base_browser_esm("span", { + target: "e1od1u4s3", + label: "Cell" +})( true ? { + name: "10ro24i", + styles: "appearance:none;border:none;box-sizing:border-box;margin:0;display:flex;position:relative;outline:none;align-items:center;justify-content:center;padding:0;" +} : undefined); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/cell.js + + + + +/** + * External dependencies + */ + +/** + * Internal dependencies + */ + + + +/** + * Internal dependencies + */ + + + +function cell_Cell(_ref) { + var _ref$isActive = _ref.isActive, + isActive = _ref$isActive === void 0 ? false : _ref$isActive, + value = _ref.value, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["isActive", "value"]); + + var tooltipText = ALIGNMENT_LABEL[value]; + return Object(external_this_wp_element_["createElement"])(build_module_tooltip["a" /* default */], { + text: tooltipText + }, Object(external_this_wp_element_["createElement"])(CompositeItem["a" /* CompositeItem */], Object(esm_extends["a" /* default */])({ + as: Cell, + role: "gridcell" + }, props), Object(external_this_wp_element_["createElement"])(visually_hidden, null, value), Object(external_this_wp_element_["createElement"])(Point, { + isActive: isActive, + role: "presentation" + }))); +} + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/rtl.js +/** + * External dependencies + */ + + +var LOWER_LEFT_REGEXP = new RegExp(/-left/g); +var LOWER_RIGHT_REGEXP = new RegExp(/-right/g); +var UPPER_LEFT_REGEXP = new RegExp(/Left/g); +var UPPER_RIGHT_REGEXP = new RegExp(/Right/g); +/** + * Checks to see whether the document is set to rtl. + * + * @return {boolean} Whether document is RTL. + */ + +function getRTL() { + return !!(document && document.documentElement.dir === 'rtl'); +} +/** + * Simple hook to retrieve RTL direction value + * + * @return {boolean} Whether document is RTL. + */ + +function useRTL() { + return getRTL(); +} +/** + * Flips a CSS property from left <-> right. + * + * @param {string} key The CSS property name. + * + * @return {string} The flipped CSS property name, if applicable. + */ + +function getConvertedKey(key) { + if (key === 'left') { + return 'right'; + } + + if (key === 'right') { + return 'left'; + } + + if (LOWER_LEFT_REGEXP.test(key)) { + return key.replace(LOWER_LEFT_REGEXP, '-right'); + } + + if (LOWER_RIGHT_REGEXP.test(key)) { + return key.replace(LOWER_RIGHT_REGEXP, '-left'); + } + + if (UPPER_LEFT_REGEXP.test(key)) { + return key.replace(UPPER_LEFT_REGEXP, 'Right'); + } + + if (UPPER_RIGHT_REGEXP.test(key)) { + return key.replace(UPPER_RIGHT_REGEXP, 'Left'); + } + + return key; +} +/** + * An incredibly basic ltr -> rtl converter for style properties + * + * @param {Object} ltrStyles + * + * @return {Object} Converted ltr -> rtl styles + */ + + +var rtl_convertLTRToRTL = function convertLTRToRTL() { + var ltrStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + return Object(external_this_lodash_["mapKeys"])(ltrStyles, function (_value, key) { + return getConvertedKey(key); + }); +}; +/** + * A higher-order function that create an incredibly basic ltr -> rtl style converter for CSS objects. + * + * @param {Object} ltrStyles Ltr styles. Converts and renders from ltr -> rtl styles, if applicable. + * @param {null|Object} rtlStyles Rtl styles. Renders if provided. + * + * @return {Function} A function to output CSS styles for Emotion's renderer + */ + +function rtl() { + var ltrStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var rtlStyles = arguments.length > 1 ? arguments[1] : undefined; + return function () { + var isRTL = getRTL(); + + if (rtlStyles) { + return isRTL ? /*#__PURE__*/css_browser_esm(rtlStyles, true ? "" : undefined) : /*#__PURE__*/css_browser_esm(ltrStyles, true ? "" : undefined); + } + + return isRTL ? /*#__PURE__*/css_browser_esm(rtl_convertLTRToRTL(ltrStyles), true ? "" : undefined) : /*#__PURE__*/css_browser_esm(ltrStyles, true ? "" : undefined); + }; +} + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js + + +function alignment_matrix_control_icon_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } + + +/** + * Internal dependencies + */ + + + +var alignment_matrix_control_icon_styles_rootSize = function rootSize() { + var padding = 1.5; + var size = 24; + return /*#__PURE__*/css_browser_esm({ + gridTemplateRows: "repeat( 3, calc( ".concat(size - padding * 2, "px / 3))"), + padding: padding, + maxHeight: size, + maxWidth: size + }, true ? "" : undefined); +}; + +var alignment_matrix_control_icon_styles_rootPointerEvents = function rootPointerEvents(_ref) { + var disablePointerEvents = _ref.disablePointerEvents; + return /*#__PURE__*/css_browser_esm({ + pointerEvents: disablePointerEvents ? 'none' : null + }, true ? "" : undefined); +}; + +var alignment_matrix_control_icon_styles_Wrapper = styled_base_browser_esm("div", { + target: "elqsdmc0", + label: "Wrapper" +})( true ? { + name: "co61ta", + styles: "box-sizing:border-box;padding:2px;" +} : undefined); +var alignment_matrix_control_icon_styles_Root = styled_base_browser_esm("div", { + target: "elqsdmc1", + label: "Root" +})("transform-origin:top left;height:100%;width:100%;", rootBase, ";", alignment_matrix_control_icon_styles_rootSize, ";", alignment_matrix_control_icon_styles_rootPointerEvents, ";" + ( true ? "" : undefined)); + +var alignment_matrix_control_icon_styles_pointActive = function pointActive(_ref2) { + var isActive = _ref2.isActive; + var boxShadow = isActive ? "0 0 0 1px currentColor" : null; + return /*#__PURE__*/css_browser_esm("box-shadow:", boxShadow, ";color:currentColor;*:hover > &{color:currentColor;}" + ( true ? "" : undefined)); +}; + +var alignment_matrix_control_icon_styles_Point = styled_base_browser_esm("span", { + target: "elqsdmc2", + label: "Point" +})("height:2px;width:2px;", alignment_matrix_control_styles_pointBase, ";", alignment_matrix_control_icon_styles_pointActive, ";" + ( true ? "" : undefined)); +var alignment_matrix_control_icon_styles_Cell = Cell; + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/icon.js + + + + + +function icon_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function icon_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { icon_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { icon_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +/** + * External dependencies + */ + +/** + * Internal dependencies + */ + + + +var BASE_SIZE = 24; +function AlignmentMatrixControlIcon(_ref) { + var className = _ref.className, + _ref$disablePointerEv = _ref.disablePointerEvents, + disablePointerEvents = _ref$disablePointerEv === void 0 ? true : _ref$disablePointerEv, + _ref$size = _ref.size, + size = _ref$size === void 0 ? BASE_SIZE : _ref$size, + _ref$style = _ref.style, + style = _ref$style === void 0 ? {} : _ref$style, + _ref$value = _ref.value, + value = _ref$value === void 0 ? 'center' : _ref$value, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "disablePointerEvents", "size", "style", "value"]); + + var alignIndex = getAlignmentIndex(value); + var scale = (size / BASE_SIZE).toFixed(2); + var classes = classnames_default()('component-alignment-matrix-control-icon', className); + + var styles = icon_objectSpread({}, style, { + transform: "scale(".concat(scale, ")") + }); + + return Object(external_this_wp_element_["createElement"])(alignment_matrix_control_icon_styles_Root, Object(esm_extends["a" /* default */])({}, props, { + className: classes, + disablePointerEvents: disablePointerEvents, + role: "presentation", + size: size, + style: styles + }), ALIGNMENTS.map(function (align, index) { + var isActive = alignIndex === index; + return Object(external_this_wp_element_["createElement"])(alignment_matrix_control_icon_styles_Cell, { + key: align + }, Object(external_this_wp_element_["createElement"])(alignment_matrix_control_icon_styles_Point, { + isActive: isActive + })); + })); +} + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/index.js + + + + + +/** + * External dependencies + */ + + + +/** + * WordPress dependencies + */ + + + + +/** + * Internal dependencies + */ + + + + + + + +function useBaseId(id) { + var instanceId = Object(external_this_wp_compose_["useInstanceId"])(AlignmentMatrixControl, 'alignment-matrix-control'); + return id || instanceId; +} + +function AlignmentMatrixControl(_ref) { + var className = _ref.className, + id = _ref.id, + _ref$label = _ref.label, + label = _ref$label === void 0 ? Object(external_this_wp_i18n_["__"])('Alignment Matrix Control') : _ref$label, + _ref$defaultValue = _ref.defaultValue, + defaultValue = _ref$defaultValue === void 0 ? 'center center' : _ref$defaultValue, + value = _ref.value, + _ref$onChange = _ref.onChange, + onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange, + _ref$width = _ref.width, + width = _ref$width === void 0 ? 92 : _ref$width, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "id", "label", "defaultValue", "value", "onChange", "width"]); + + var _useState = Object(external_this_wp_element_["useState"])(value !== null && value !== void 0 ? value : defaultValue), + _useState2 = Object(slicedToArray["a" /* default */])(_useState, 1), + immutableDefaultValue = _useState2[0]; + + var isRTL = useRTL(); + var baseId = useBaseId(id); + var initialCurrentId = getItemId(baseId, immutableDefaultValue); + var composite = Object(CompositeState_3a25dcee["g" /* u */])({ + baseId: baseId, + currentId: initialCurrentId, + rtl: isRTL + }); + + var handleOnChange = function handleOnChange(nextValue) { + onChange(nextValue); + }; + + Object(external_this_wp_element_["useEffect"])(function () { + if (typeof value !== 'undefined') { + composite.setCurrentId(getItemId(baseId, value)); + } + }, [value, composite.setCurrentId]); + var classes = classnames_default()('component-alignment-matrix-control', className); + return Object(external_this_wp_element_["createElement"])(Composite["a" /* Composite */], Object(esm_extends["a" /* default */])({}, props, composite, { + "aria-label": label, + as: Root, + className: classes, + role: "grid", + width: width + }), GRID.map(function (cells, index) { + return Object(external_this_wp_element_["createElement"])(CompositeGroup, Object(esm_extends["a" /* default */])({}, composite, { + as: Row, + role: "row", + key: index + }), cells.map(function (cell) { + var cellId = getItemId(baseId, cell); + var isActive = composite.currentId === cellId; + return Object(external_this_wp_element_["createElement"])(cell_Cell, Object(esm_extends["a" /* default */])({}, composite, { + id: cellId, + isActive: isActive, + key: cell, + value: cell, + onFocus: function onFocus() { + return handleOnChange(cell); + } })); - /* eslint-enable jsx-a11y/no-static-element-interactions */ - // Apply focus to element as long as focusOnMount is truthy; false is - // the only "disabled" value. - - if (focusOnMount) { - content = Object(external_this_wp_element_["createElement"])(FocusManaged, null, content); - } - - return Object(external_this_wp_element_["createElement"])(context_Consumer, null, function (_ref3) { - var getSlot = _ref3.getSlot; - - // In case there is no slot context in which to render, - // default to an in-place rendering. - if (getSlot && getSlot(SLOT_NAME)) { - content = Object(external_this_wp_element_["createElement"])(slot_fill_fill, { - name: SLOT_NAME - }, content); - } - - return Object(external_this_wp_element_["createElement"])("span", { - ref: _this3.anchorNode - }, content, isMobile && expandOnMobile && Object(external_this_wp_element_["createElement"])(scroll_lock, null)); - }); - } - }]); - - return Popover; -}(external_this_wp_element_["Component"]); - -popover_Popover.defaultProps = { - focusOnMount: 'firstElement', - noArrow: false -}; -var PopoverContainer = popover_Popover; - -PopoverContainer.Slot = function () { - return Object(external_this_wp_element_["createElement"])(slot_fill_slot, { - bubblesVirtually: true, - name: SLOT_NAME - }); -}; - -/* harmony default export */ var popover = (PopoverContainer); + })); + })); +} +AlignmentMatrixControl.Icon = AlignmentMatrixControlIcon; + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/animate/index.js +var animate = __webpack_require__(160); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/base-control/index.js + + +/** + * External dependencies + */ + +/** + * Internal dependencies + */ + + + +function BaseControl(_ref) { + var id = _ref.id, + label = _ref.label, + hideLabelFromVision = _ref.hideLabelFromVision, + help = _ref.help, + className = _ref.className, + children = _ref.children; + return Object(external_this_wp_element_["createElement"])("div", { + className: classnames_default()('components-base-control', className) + }, Object(external_this_wp_element_["createElement"])("div", { + className: "components-base-control__field" + }, label && id && (hideLabelFromVision ? Object(external_this_wp_element_["createElement"])(visually_hidden, { + as: "label", + htmlFor: id + }, label) : Object(external_this_wp_element_["createElement"])("label", { + className: "components-base-control__label", + htmlFor: id + }, label)), label && !id && (hideLabelFromVision ? Object(external_this_wp_element_["createElement"])(visually_hidden, { + as: "label" + }, label) : Object(external_this_wp_element_["createElement"])(BaseControl.VisualLabel, null, label)), children), !!help && Object(external_this_wp_element_["createElement"])("p", { + id: id + '__help', + className: "components-base-control__help" + }, help)); +} + +BaseControl.VisualLabel = function (_ref2) { + var className = _ref2.className, + children = _ref2.children; + className = classnames_default()('components-base-control__label', className); + return Object(external_this_wp_element_["createElement"])("span", { + className: className + }, children); +}; + +/* harmony default export */ var base_control = (BaseControl); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/angle-picker-control/index.js + + + + +/** + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ + + + +function getAngle(centerX, centerY, pointX, pointY) { + var y = pointY - centerY; + var x = pointX - centerX; + var angleInRadians = Math.atan2(y, x); + var angleInDeg = Math.round(angleInRadians * (180 / Math.PI)) + 90; + + if (angleInDeg < 0) { + return 360 + angleInDeg; + } + + return angleInDeg; +} + +var angle_picker_control_AngleCircle = function AngleCircle(_ref) { + var value = _ref.value, + onChange = _ref.onChange, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["value", "onChange"]); + + var angleCircleRef = Object(external_this_wp_element_["useRef"])(); + var angleCircleCenter = Object(external_this_wp_element_["useRef"])(); + + var setAngleCircleCenter = function setAngleCircleCenter() { + var rect = angleCircleRef.current.getBoundingClientRect(); + angleCircleCenter.current = { + x: rect.x + rect.width / 2, + y: rect.y + rect.height / 2 + }; + }; + + var changeAngleToPosition = function changeAngleToPosition(event) { + var _angleCircleCenter$cu = angleCircleCenter.current, + centerX = _angleCircleCenter$cu.x, + centerY = _angleCircleCenter$cu.y; // Prevent (drag) mouse events from selecting and accidentally + // triggering actions from other elements. + + event.preventDefault(); + onChange(getAngle(centerX, centerY, event.clientX, event.clientY)); + }; + + var _useDragging = Object(external_this_wp_compose_["__experimentalUseDragging"])({ + onDragStart: function onDragStart(event) { + setAngleCircleCenter(); + changeAngleToPosition(event); + }, + onDragMove: changeAngleToPosition, + onDragEnd: changeAngleToPosition + }), + startDrag = _useDragging.startDrag, + isDragging = _useDragging.isDragging; + + return ( + /* eslint-disable jsx-a11y/no-static-element-interactions */ + Object(external_this_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({ + ref: angleCircleRef, + onMouseDown: startDrag, + className: "components-angle-picker-control__angle-circle", + style: isDragging ? { + cursor: 'grabbing' + } : undefined + }, props), Object(external_this_wp_element_["createElement"])("div", { + style: value ? { + transform: "rotate(".concat(value, "deg)") + } : undefined, + className: "components-angle-picker-control__angle-circle-indicator-wrapper" + }, Object(external_this_wp_element_["createElement"])("span", { + className: "components-angle-picker-control__angle-circle-indicator" + }))) + /* eslint-enable jsx-a11y/no-static-element-interactions */ + + ); +}; + +function AnglePickerControl(_ref2) { + var value = _ref2.value, + _onChange = _ref2.onChange, + _ref2$label = _ref2.label, + label = _ref2$label === void 0 ? Object(external_this_wp_i18n_["__"])('Angle') : _ref2$label; + var instanceId = Object(external_this_wp_compose_["useInstanceId"])(AnglePickerControl); + var inputId = "components-angle-picker-control__input-".concat(instanceId); + return Object(external_this_wp_element_["createElement"])(base_control, { + label: label, + id: inputId, + className: "components-angle-picker-control" + }, Object(external_this_wp_element_["createElement"])(angle_picker_control_AngleCircle, { + value: value, + onChange: _onChange, + "aria-hidden": "true" + }), Object(external_this_wp_element_["createElement"])("input", { + className: "components-angle-picker-control__input-field", + type: "number", + id: inputId, + onChange: function onChange(event) { + var unprocessedValue = event.target.value; + var inputValue = unprocessedValue !== '' ? parseInt(event.target.value, 10) : 0; + + _onChange(inputValue); + }, + value: value, + min: 0, + max: 360, + step: "1" + })); +} + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js +var classCallCheck = __webpack_require__(20); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +var assertThisInitialized = __webpack_require__(12); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js +var createClass = __webpack_require__(19); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +var possibleConstructorReturn = __webpack_require__(23); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +var getPrototypeOf = __webpack_require__(16); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules +var inherits = __webpack_require__(22); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules +var toConsumableArray = __webpack_require__(18); + +// EXTERNAL MODULE: external {"this":["wp","keycodes"]} +var external_this_wp_keycodes_ = __webpack_require__(21); + +// EXTERNAL MODULE: external {"this":["wp","richText"]} +var external_this_wp_richText_ = __webpack_require__(25); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/button/index.js +var build_module_button = __webpack_require__(34); + +// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/popover/index.js + 2 modules +var popover = __webpack_require__(112); // EXTERNAL MODULE: external {"this":["wp","a11y"]} -var external_this_wp_a11y_ = __webpack_require__(48); +var external_this_wp_a11y_ = __webpack_require__(54); // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-spoken-messages/index.js @@ -27373,6 +21600,10 @@ +function _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + /** * External dependencies */ @@ -27388,52 +21619,51 @@ * A Higher Order Component used to be provide a unique instance ID by * component. * - * @param {WPElement} WrappedComponent The wrapped component. - * - * @return {Component} Component with an instanceId prop. + * @param {WPComponent} WrappedComponent The wrapped component. + * + * @return {WPComponent} The component to be rendered. */ /* harmony default export */ var with_spoken_messages = (Object(external_this_wp_compose_["createHigherOrderComponent"])(function (WrappedComponent) { - return ( - /*#__PURE__*/ - function (_Component) { - Object(inherits["a" /* default */])(_class, _Component); - - function _class() { - var _this; - - Object(classCallCheck["a" /* default */])(this, _class); - - _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(_class).apply(this, arguments)); - _this.debouncedSpeak = Object(external_lodash_["debounce"])(_this.speak.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))), 500); - return _this; - } - - Object(createClass["a" /* default */])(_class, [{ - key: "speak", - value: function speak(message) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'polite'; - - Object(external_this_wp_a11y_["speak"])(message, type); - } - }, { - key: "componentWillUnmount", - value: function componentWillUnmount() { - this.debouncedSpeak.cancel(); - } - }, { - key: "render", - value: function render() { - return Object(external_this_wp_element_["createElement"])(WrappedComponent, Object(esm_extends["a" /* default */])({}, this.props, { - speak: this.speak, - debouncedSpeak: this.debouncedSpeak - })); - } - }]); - - return _class; - }(external_this_wp_element_["Component"]) - ); + return /*#__PURE__*/function (_Component) { + Object(inherits["a" /* default */])(_class, _Component); + + var _super = _createSuper(_class); + + function _class() { + var _this; + + Object(classCallCheck["a" /* default */])(this, _class); + + _this = _super.apply(this, arguments); + _this.debouncedSpeak = Object(external_this_lodash_["debounce"])(_this.speak.bind(Object(assertThisInitialized["a" /* default */])(_this)), 500); + return _this; + } + + Object(createClass["a" /* default */])(_class, [{ + key: "speak", + value: function speak(message) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'polite'; + + Object(external_this_wp_a11y_["speak"])(message, type); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + this.debouncedSpeak.cancel(); + } + }, { + key: "render", + value: function render() { + return Object(external_this_wp_element_["createElement"])(WrappedComponent, Object(esm_extends["a" /* default */])({}, this.props, { + speak: this.speak, + debouncedSpeak: this.debouncedSpeak + })); + } + }]); + + return _class; + }(external_this_wp_element_["Component"]); }, 'withSpokenMessages')); // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/autocomplete/index.js @@ -27447,109 +21677,103 @@ - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - - - - - -/** - * Internal dependencies - */ - +function autocomplete_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (autocomplete_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; } + +function autocomplete_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ + + + + + + +/** + * Internal dependencies + */ /** * A raw completer option. + * * @typedef {*} CompleterOption */ /** * @callback FnGetOptions * - * @returns {(CompleterOption[]|Promise.)} The completer options or a promise for them. + * @return {(CompleterOption[]|Promise.)} The completer options or a promise for them. */ /** * @callback FnGetOptionKeywords * @param {CompleterOption} option a completer option. * - * @returns {string[]} list of key words to search. + * @return {string[]} list of key words to search. */ /** * @callback FnIsOptionDisabled * @param {CompleterOption} option a completer option. * - * @returns {string[]} whether or not the given option is disabled. + * @return {string[]} whether or not the given option is disabled. */ /** * @callback FnGetOptionLabel * @param {CompleterOption} option a completer option. * - * @returns {(string|Array.<(string|Component)>)} list of react components to render. - */ - -/** - * @callback FnAllowNode - * @param {Node} textNode check if the completer can handle this text node. - * - * @returns {boolean} true if the completer can handle this text node. + * @return {(string|Array.<(string|Component)>)} list of react components to render. */ /** * @callback FnAllowContext - * @param {Range} before the range before the auto complete trigger and query. - * @param {Range} after the range after the autocomplete trigger and query. - * - * @returns {boolean} true if the completer can handle these ranges. + * @param {string} before the string before the auto complete trigger and query. + * @param {string} after the string after the autocomplete trigger and query. + * + * @return {boolean} true if the completer can handle. */ /** * @typedef {Object} OptionCompletion - * @property {('insert-at-caret', 'replace')} action the intended placement of the completion. + * @property {'insert-at-caret'|'replace'} action the intended placement of the completion. * @property {OptionCompletionValue} value the completion value. */ /** * A completion value. - * @typedef {(String|WPElement|Object)} OptionCompletionValue + * + * @typedef {(string|WPElement|Object)} OptionCompletionValue */ /** * @callback FnGetOptionCompletion * @param {CompleterOption} value the value of the completer option. - * @param {Range} range the nodes included in the autocomplete trigger and query. - * @param {String} query the text value of the autocomplete query. - * - * @returns {(OptionCompletion|OptionCompletionValue)} the completion for the given option. If an + * @param {string} query the text value of the autocomplete query. + * + * @return {(OptionCompletion|OptionCompletionValue)} the completion for the given option. If an * OptionCompletionValue is returned, the * completion action defaults to `insert-at-caret`. */ /** - * @typedef {Object} Completer - * @property {String} name a way to identify a completer, useful for selective overriding. - * @property {?String} className A class to apply to the popup menu. - * @property {String} triggerPrefix the prefix that will display the menu. + * @typedef {Object} WPCompleter + * @property {string} name a way to identify a completer, useful for selective overriding. + * @property {?string} className A class to apply to the popup menu. + * @property {string} triggerPrefix the prefix that will display the menu. * @property {(CompleterOption[]|FnGetOptions)} options the completer options or a function to get them. * @property {?FnGetOptionKeywords} getOptionKeywords get the keywords for a given option. * @property {?FnIsOptionDisabled} isOptionDisabled get whether or not the given option is disabled. * @property {FnGetOptionLabel} getOptionLabel get the label for a given option. - * @property {?FnAllowNode} allowNode filter the allowed text nodes in the autocomplete. * @property {?FnAllowContext} allowContext filter the context under which the autocomplete activates. * @property {FnGetOptionCompletion} getOptionCompletion get the completion associated with a given option. */ @@ -27570,7 +21794,7 @@ } var isMatch = keywords.some(function (keyword) { - return search.test(Object(external_lodash_["deburr"])(keyword)); + return search.test(Object(external_this_lodash_["deburr"])(keyword)); }); if (!isMatch) { @@ -27587,29 +21811,132 @@ return filtered; } -function getCaretRect() { - var range = window.getSelection().getRangeAt(0); - - if (range) { - return Object(external_this_wp_dom_["getRectangleFromRange"])(range); - } -} - -var autocomplete_Autocomplete = -/*#__PURE__*/ -function (_Component) { +function getRange() { + var selection = window.getSelection(); + return selection.rangeCount ? selection.getRangeAt(0) : null; +} + +var autocomplete_getAutoCompleterUI = function getAutoCompleterUI(autocompleter) { + var useItems = autocompleter.useItems ? autocompleter.useItems : function (filterValue) { + var _useState = Object(external_this_wp_element_["useState"])([]), + _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2), + items = _useState2[0], + setItems = _useState2[1]; + /* + * We support both synchronous and asynchronous retrieval of completer options + * but internally treat all as async so we maintain a single, consistent code path. + * + * Because networks can be slow, and the internet is wonderfully unpredictable, + * we don't want two promises updating the state at once. This ensures that only + * the most recent promise will act on `optionsData`. This doesn't use the state + * because `setState` is batched, and so there's no guarantee that setting + * `activePromise` in the state would result in it actually being in `this.state` + * before the promise resolves and we check to see if this is the active promise or not. + */ + + + Object(external_this_wp_element_["useLayoutEffect"])(function () { + var options = autocompleter.options, + isDebounced = autocompleter.isDebounced; + var loadOptions = Object(external_this_lodash_["debounce"])(function () { + var promise = Promise.resolve(typeof options === 'function' ? options(filterValue) : options).then(function (optionsData) { + if (promise.canceled) { + return; + } + + var keyedOptions = optionsData.map(function (optionData, optionIndex) { + return { + key: "".concat(autocompleter.name, "-").concat(optionIndex), + value: optionData, + label: autocompleter.getOptionLabel(optionData), + keywords: autocompleter.getOptionKeywords ? autocompleter.getOptionKeywords(optionData) : [], + isDisabled: autocompleter.isOptionDisabled ? autocompleter.isOptionDisabled(optionData) : false + }; + }); // create a regular expression to filter the options + + var search = new RegExp('(?:\\b|\\s|^)' + Object(external_this_lodash_["escapeRegExp"])(filterValue), 'i'); + setItems(filterOptions(search, keyedOptions)); + }); + return promise; + }, isDebounced ? 250 : 0); + var promise = loadOptions(); + return function () { + loadOptions.cancel(); + + if (promise) { + promise.canceled = true; + } + }; + }, [filterValue]); + return [items]; + }; + + function AutocompleterUI(_ref) { + var filterValue = _ref.filterValue, + instanceId = _ref.instanceId, + listBoxId = _ref.listBoxId, + className = _ref.className, + selectedIndex = _ref.selectedIndex, + onChangeOptions = _ref.onChangeOptions, + onSelect = _ref.onSelect, + onReset = _ref.onReset; + + var _useItems = useItems(filterValue), + _useItems2 = Object(slicedToArray["a" /* default */])(_useItems, 1), + items = _useItems2[0]; + + Object(external_this_wp_element_["useLayoutEffect"])(function () { + onChangeOptions(items); + }, [items]); + + if (!items.length > 0) { + return null; + } + + return Object(external_this_wp_element_["createElement"])(popover["a" /* default */], { + focusOnMount: false, + onClose: onReset, + position: "top right", + className: "components-autocomplete__popover", + anchorRef: getRange() + }, Object(external_this_wp_element_["createElement"])("div", { + id: listBoxId, + role: "listbox", + className: "components-autocomplete__results" + }, Object(external_this_lodash_["map"])(items, function (option, index) { + return Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], { + key: option.key, + id: "components-autocomplete-item-".concat(instanceId, "-").concat(option.key), + role: "option", + "aria-selected": index === selectedIndex, + disabled: option.isDisabled, + className: classnames_default()('components-autocomplete__result', className, { + 'is-selected': index === selectedIndex + }), + onClick: function onClick() { + return onSelect(option); + } + }, option.label); + }))); + } + + return AutocompleterUI; +}; + +var autocomplete_Autocomplete = /*#__PURE__*/function (_Component) { Object(inherits["a" /* default */])(Autocomplete, _Component); + var _super = autocomplete_createSuper(Autocomplete); + Object(createClass["a" /* default */])(Autocomplete, null, [{ key: "getInitialState", value: function getInitialState() { return { - search: /./, selectedIndex: 0, - suppress: undefined, - open: undefined, - query: undefined, - filteredOptions: [] + filteredOptions: [], + filterValue: '', + autocompleter: null, + AutocompleterUI: null }; } }]); @@ -27619,33 +21946,26 @@ Object(classCallCheck["a" /* default */])(this, Autocomplete); - _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Autocomplete).apply(this, arguments)); - _this.bindNode = _this.bindNode.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.select = _this.select.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.reset = _this.reset.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.resetWhenSuppressed = _this.resetWhenSuppressed.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.handleKeyDown = _this.handleKeyDown.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); - _this.debouncedLoadOptions = Object(external_lodash_["debounce"])(_this.loadOptions, 250); + _this = _super.apply(this, arguments); + _this.select = _this.select.bind(Object(assertThisInitialized["a" /* default */])(_this)); + _this.reset = _this.reset.bind(Object(assertThisInitialized["a" /* default */])(_this)); + _this.onChangeOptions = _this.onChangeOptions.bind(Object(assertThisInitialized["a" /* default */])(_this)); + _this.handleKeyDown = _this.handleKeyDown.bind(Object(assertThisInitialized["a" /* default */])(_this)); _this.state = _this.constructor.getInitialState(); return _this; } Object(createClass["a" /* default */])(Autocomplete, [{ - key: "bindNode", - value: function bindNode(node) { - this.node = node; - } - }, { key: "insertCompletion", value: function insertCompletion(replacement) { var _this$state = this.state, - open = _this$state.open, - query = _this$state.query; + autocompleter = _this$state.autocompleter, + filterValue = _this$state.filterValue; var _this$props = this.props, record = _this$props.record, onChange = _this$props.onChange; var end = record.start; - var start = end - open.triggerPrefix.length - query.length; + var start = end - autocompleter.triggerPrefix.length - filterValue.length; var toInsert = Object(external_this_wp_richText_["create"])({ html: Object(external_this_wp_element_["renderToString"])(replacement) }); @@ -27656,25 +21976,25 @@ value: function select(option) { var onReplace = this.props.onReplace; var _this$state2 = this.state, - open = _this$state2.open, - query = _this$state2.query; - - var _ref = open || {}, - getOptionCompletion = _ref.getOptionCompletion; + autocompleter = _this$state2.autocompleter, + filterValue = _this$state2.filterValue; + + var _ref2 = autocompleter || {}, + getOptionCompletion = _ref2.getOptionCompletion; if (option.isDisabled) { return; } if (getOptionCompletion) { - var completion = getOptionCompletion(option.value, query); - - var _ref2 = undefined === completion.action || undefined === completion.value ? { + var completion = getOptionCompletion(option.value, filterValue); + + var _ref3 = undefined === completion.action || undefined === completion.value ? { action: 'insert-at-caret', value: completion } : completion, - action = _ref2.action, - value = _ref2.value; + action = _ref3.action, + value = _ref3.value; if ('replace' === action) { onReplace([value]); @@ -27690,28 +22010,7 @@ }, { key: "reset", value: function reset() { - var isMounted = !!this.node; // Autocompletions may replace the block containing this component, - // so we make sure it is mounted before resetting the state. - - if (isMounted) { - this.setState(this.constructor.getInitialState()); - } - } - }, { - key: "resetWhenSuppressed", - value: function resetWhenSuppressed() { - var _this$state3 = this.state, - open = _this$state3.open, - suppress = _this$state3.suppress; - - if (open && suppress === open.idx) { - this.reset(); - } - } - }, { - key: "handleFocusOutside", - value: function handleFocusOutside() { - this.reset(); + this.setState(this.constructor.getInitialState()); } }, { key: "announce", @@ -27723,7 +22022,9 @@ } if (!!filteredOptions.length) { - debouncedSpeak(Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["_n"])('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', filteredOptions.length), filteredOptions.length), 'assertive'); + debouncedSpeak(Object(external_this_wp_i18n_["sprintf"])( + /* translators: %d: number of results. */ + Object(external_this_wp_i18n_["_n"])('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', filteredOptions.length), filteredOptions.length), 'assertive'); } else { debouncedSpeak(Object(external_this_wp_i18n_["__"])('No results.'), 'assertive'); } @@ -27731,94 +22032,28 @@ /** * Load options for an autocompleter. * - * @param {Completer} completer The autocompleter. - * @param {string} query The query, if any. + * @param {Array} filteredOptions */ }, { - key: "loadOptions", - value: function loadOptions(completer, query) { - var _this2 = this; - - var options = completer.options; - /* - * We support both synchronous and asynchronous retrieval of completer options - * but internally treat all as async so we maintain a single, consistent code path. - * - * Because networks can be slow, and the internet is wonderfully unpredictable, - * we don't want two promises updating the state at once. This ensures that only - * the most recent promise will act on `optionsData`. This doesn't use the state - * because `setState` is batched, and so there's no guarantee that setting - * `activePromise` in the state would result in it actually being in `this.state` - * before the promise resolves and we check to see if this is the active promise or not. - */ - - var promise = this.activePromise = Promise.resolve(typeof options === 'function' ? options(query) : options).then(function (optionsData) { - var _this2$setState; - - if (promise !== _this2.activePromise) { - // Another promise has become active since this one was asked to resolve, so do nothing, - // or else we might end triggering a race condition updating the state. - return; - } - - var keyedOptions = optionsData.map(function (optionData, optionIndex) { - return { - key: "".concat(completer.idx, "-").concat(optionIndex), - value: optionData, - label: completer.getOptionLabel(optionData), - keywords: completer.getOptionKeywords ? completer.getOptionKeywords(optionData) : [], - isDisabled: completer.isOptionDisabled ? completer.isOptionDisabled(optionData) : false - }; - }); - var filteredOptions = filterOptions(_this2.state.search, keyedOptions); - var selectedIndex = filteredOptions.length === _this2.state.filteredOptions.length ? _this2.state.selectedIndex : 0; - - _this2.setState((_this2$setState = {}, Object(defineProperty["a" /* default */])(_this2$setState, 'options_' + completer.idx, keyedOptions), Object(defineProperty["a" /* default */])(_this2$setState, "filteredOptions", filteredOptions), Object(defineProperty["a" /* default */])(_this2$setState, "selectedIndex", selectedIndex), _this2$setState)); - - _this2.announce(filteredOptions); - }); + key: "onChangeOptions", + value: function onChangeOptions(filteredOptions) { + var selectedIndex = filteredOptions.length === this.state.filteredOptions.length ? this.state.selectedIndex : 0; + this.setState({ + filteredOptions: filteredOptions, + selectedIndex: selectedIndex + }); + this.announce(filteredOptions); } }, { key: "handleKeyDown", value: function handleKeyDown(event) { - var _this$state4 = this.state, - open = _this$state4.open, - suppress = _this$state4.suppress, - selectedIndex = _this$state4.selectedIndex, - filteredOptions = _this$state4.filteredOptions; - - if (!open) { - return; - } - - if (suppress === open.idx) { - switch (event.keyCode) { - // cancel popup suppression on CTRL+SPACE - case external_this_wp_keycodes_["SPACE"]: - var ctrlKey = event.ctrlKey, - shiftKey = event.shiftKey, - altKey = event.altKey, - metaKey = event.metaKey; - - if (ctrlKey && !(shiftKey || altKey || metaKey)) { - this.setState({ - suppress: undefined - }); - event.preventDefault(); - event.stopPropagation(); - } - - break; - // reset on cursor movement - - case external_this_wp_keycodes_["UP"]: - case external_this_wp_keycodes_["DOWN"]: - case external_this_wp_keycodes_["LEFT"]: - case external_this_wp_keycodes_["RIGHT"]: - this.reset(); - } - + var _this$state3 = this.state, + autocompleter = _this$state3.autocompleter, + selectedIndex = _this$state3.selectedIndex, + filteredOptions = _this$state3.filteredOptions; + + if (!autocompleter) { return; } @@ -27845,7 +22080,8 @@ case external_this_wp_keycodes_["ESCAPE"]: this.setState({ - suppress: open.idx + autocompleter: null, + AutocompleterUI: null }); break; @@ -27868,43 +22104,22 @@ event.stopPropagation(); } }, { - key: "toggleKeyEvents", - value: function toggleKeyEvents(isListening) { - // This exists because we must capture ENTER key presses before RichText. - // It seems that react fires the simulated capturing events after the - // native browser event has already bubbled so we can't stopPropagation - // and avoid RichText getting the event from TinyMCE, hence we must - // register a native event handler. - var handler = isListening ? 'addEventListener' : 'removeEventListener'; - this.node[handler]('keydown', this.handleKeyDown, true); - } - }, { key: "componentDidUpdate", - value: function componentDidUpdate(prevProps, prevState) { + value: function componentDidUpdate(prevProps) { var _this$props2 = this.props, record = _this$props2.record, completers = _this$props2.completers; var prevRecord = prevProps.record; - var prevOpen = prevState.open; - - if (!this.state.open !== !prevOpen) { - this.toggleKeyEvents(!!this.state.open); - } if (Object(external_this_wp_richText_["isCollapsed"])(record)) { - var text = Object(external_lodash_["deburr"])(Object(external_this_wp_richText_["getTextContent"])(Object(external_this_wp_richText_["slice"])(record, 0))); - var prevText = Object(external_lodash_["deburr"])(Object(external_this_wp_richText_["getTextContent"])(Object(external_this_wp_richText_["slice"])(prevRecord, 0))); + var text = Object(external_this_lodash_["deburr"])(Object(external_this_wp_richText_["getTextContent"])(Object(external_this_wp_richText_["slice"])(record, 0))); + var prevText = Object(external_this_lodash_["deburr"])(Object(external_this_wp_richText_["getTextContent"])(Object(external_this_wp_richText_["slice"])(prevRecord, 0))); if (text !== prevText) { var textAfterSelection = Object(external_this_wp_richText_["getTextContent"])(Object(external_this_wp_richText_["slice"])(record, undefined, Object(external_this_wp_richText_["getTextContent"])(record).length)); - var allCompleters = Object(external_lodash_["map"])(completers, function (completer, idx) { - return Object(objectSpread["a" /* default */])({}, completer, { - idx: idx - }); - }); - var open = Object(external_lodash_["find"])(allCompleters, function (_ref3) { - var triggerPrefix = _ref3.triggerPrefix, - allowContext = _ref3.allowContext; + var autocompleter = Object(external_this_lodash_["find"])(completers, function (_ref4) { + var triggerPrefix = _ref4.triggerPrefix, + allowContext = _ref4.allowContext; var index = text.lastIndexOf(triggerPrefix); if (index === -1) { @@ -27918,157 +22133,6054 @@ return /^\S*$/.test(text.slice(index + triggerPrefix.length)); }); - if (!open) { + if (!autocompleter) { this.reset(); return; } - var safeTrigger = Object(external_lodash_["escapeRegExp"])(open.triggerPrefix); + var safeTrigger = Object(external_this_lodash_["escapeRegExp"])(autocompleter.triggerPrefix); var match = text.match(new RegExp("".concat(safeTrigger, "(\\S*)$"))); var query = match && match[1]; - var _this$state5 = this.state, - wasOpen = _this$state5.open, - wasSuppress = _this$state5.suppress, - wasQuery = _this$state5.query; - - if (open && (!wasOpen || open.idx !== wasOpen.idx || query !== wasQuery)) { - if (open.isDebounced) { - this.debouncedLoadOptions(open, query); - } else { - this.loadOptions(open, query); - } - } // create a regular expression to filter the options - - - var search = open ? new RegExp('(?:\\b|\\s|^)' + Object(external_lodash_["escapeRegExp"])(query), 'i') : /./; // filter the options we already have - - var filteredOptions = open ? filterOptions(search, this.state['options_' + open.idx]) : []; // check if we should still suppress the popover - - var suppress = open && wasSuppress === open.idx ? wasSuppress : undefined; // update the state - - if (wasOpen || open) { - this.setState({ - selectedIndex: 0, - filteredOptions: filteredOptions, - suppress: suppress, - search: search, - open: open, - query: query - }); - } // announce the count of filtered options but only if they have loaded - - - if (open && this.state['options_' + open.idx]) { - this.announce(filteredOptions); - } - } - } - } - }, { - key: "componentWillUnmount", - value: function componentWillUnmount() { - this.toggleKeyEvents(false); - this.debouncedLoadOptions.cancel(); + this.setState({ + autocompleter: autocompleter, + AutocompleterUI: autocompleter !== this.state.autocompleter ? autocomplete_getAutoCompleterUI(autocompleter) : this.state.AutocompleterUI, + filterValue: query + }); + } + } } }, { key: "render", value: function render() { - var _this3 = this; - var _this$props3 = this.props, children = _this$props3.children, - instanceId = _this$props3.instanceId; - var _this$state6 = this.state, - open = _this$state6.open, - suppress = _this$state6.suppress, - selectedIndex = _this$state6.selectedIndex, - filteredOptions = _this$state6.filteredOptions; - - var _ref4 = filteredOptions[selectedIndex] || {}, - _ref4$key = _ref4.key, - selectedKey = _ref4$key === void 0 ? '' : _ref4$key; - - var _ref5 = open || {}, - className = _ref5.className, - idx = _ref5.idx; - - var isExpanded = suppress !== idx && filteredOptions.length > 0; + instanceId = _this$props3.instanceId, + isSelected = _this$props3.isSelected; + var _this$state4 = this.state, + autocompleter = _this$state4.autocompleter, + selectedIndex = _this$state4.selectedIndex, + filteredOptions = _this$state4.filteredOptions, + AutocompleterUI = _this$state4.AutocompleterUI, + filterValue = _this$state4.filterValue; + + var _ref5 = filteredOptions[selectedIndex] || {}, + _ref5$key = _ref5.key, + selectedKey = _ref5$key === void 0 ? '' : _ref5$key; + + var _ref6 = autocompleter || {}, + className = _ref6.className; + + var isExpanded = !!autocompleter && filteredOptions.length > 0; var listBoxId = isExpanded ? "components-autocomplete-listbox-".concat(instanceId) : null; - var activeId = isExpanded ? "components-autocomplete-item-".concat(instanceId, "-").concat(selectedKey) : null; // Disable reason: Clicking the editor should reset the autocomplete when the menu is suppressed - - /* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */ - - return Object(external_this_wp_element_["createElement"])("div", { - ref: this.bindNode, - onClick: this.resetWhenSuppressed, - className: "components-autocomplete" - }, children({ + var activeId = isExpanded ? "components-autocomplete-item-".concat(instanceId, "-").concat(selectedKey) : null; + return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, children({ isExpanded: isExpanded, listBoxId: listBoxId, - activeId: activeId - }), isExpanded && Object(external_this_wp_element_["createElement"])(popover, { - focusOnMount: false, - onClose: this.reset, - position: "top right", - className: "components-autocomplete__popover", - getAnchorRect: getCaretRect - }, Object(external_this_wp_element_["createElement"])("div", { - id: listBoxId, - role: "listbox", - className: "components-autocomplete__results" - }, isExpanded && Object(external_lodash_["map"])(filteredOptions, function (option, index) { - return Object(external_this_wp_element_["createElement"])(build_module_button, { - key: option.key, - id: "components-autocomplete-item-".concat(instanceId, "-").concat(option.key), - role: "option", - "aria-selected": index === selectedIndex, - disabled: option.isDisabled, - className: classnames_default()('components-autocomplete__result', className, { - 'is-selected': index === selectedIndex - }), - onClick: function onClick() { - return _this3.select(option); - } - }, option.label); - })))); - /* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */ + activeId: activeId, + onKeyDown: this.handleKeyDown + }), isSelected && AutocompleterUI && Object(external_this_wp_element_["createElement"])(AutocompleterUI, { + className: className, + filterValue: filterValue, + instanceId: instanceId, + listBoxId: listBoxId, + selectedIndex: selectedIndex, + onChangeOptions: this.onChangeOptions, + onSelect: this.select, + onReset: this.onReset + })); } }]); return Autocomplete; }(external_this_wp_element_["Component"]); -/* harmony default export */ var autocomplete = (Object(external_this_wp_compose_["compose"])([with_spoken_messages, external_this_wp_compose_["withInstanceId"], with_focus_outside])(autocomplete_Autocomplete)); - -// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/base-control/index.js - - -/** - * External dependencies - */ - - -function BaseControl(_ref) { - var id = _ref.id, - label = _ref.label, - help = _ref.help, +/* harmony default export */ var autocomplete = (Object(external_this_wp_compose_["compose"])([with_spoken_messages, external_this_wp_compose_["withInstanceId"]])(autocomplete_Autocomplete)); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/styles/flex-styles.js + + +function flex_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } + +/** + * External dependencies + */ + + +var flex_styles_alignStyle = function alignStyle(_ref2) { + var align = _ref2.align; + var aligns = { + top: 'flex-start', + bottom: 'flex-end' + }; + var value = aligns[align] || align; + return /*#__PURE__*/css_browser_esm({ + alignItems: value + }, true ? "" : undefined); +}; + +var flex_styles_justifyStyle = function justifyStyle(_ref3) { + var justify = _ref3.justify, + isReversed = _ref3.isReversed; + var justifies = { + left: 'flex-start', + right: 'flex-end' + }; + var value = justifies[justify] || justify; + + if (isReversed && justifies[justify]) { + value = justify === 'left' ? justifies.right : justifies.left; + } + + return /*#__PURE__*/css_browser_esm({ + justifyContent: value + }, true ? "" : undefined); +}; + +var flex_styles_gapStyle = function gapStyle(_ref4) { + var gap = _ref4.gap, + isReversed = _ref4.isReversed; + var base = 4; + var value = typeof gap === 'number' ? base * gap : base; + var dir = isReversed ? 'left' : 'right'; + var padding = "padding-".concat(dir); + return /*#__PURE__*/css_browser_esm("> *{", padding, ":", value, "px;&:last-child{", padding, ":0;}}" + ( true ? "" : undefined)); +}; + +var flex_styles_ref = true ? { + name: "8kj89b", + styles: "flex-direction:row-reverse;" +} : undefined; + +var reversedStyles = function reversedStyles(_ref5) { + var isReversed = _ref5.isReversed; + if (!isReversed) return ''; + return flex_styles_ref; +}; + +var Flex = styled_base_browser_esm("div", { + target: "eboqfv50", + label: "Flex" +})("box-sizing:border-box;display:flex;", flex_styles_alignStyle, ";", flex_styles_justifyStyle, ";", flex_styles_gapStyle, ";", reversedStyles, ";" + ( true ? "" : undefined)); +var Item = styled_base_browser_esm("div", { + target: "eboqfv51", + label: "Item" +})( true ? { + name: "13luw5d", + styles: "box-sizing:border-box;min-width:0;max-width:100%;" +} : undefined); +var Block = /*#__PURE__*/styled_base_browser_esm(Item, { + target: "eboqfv52", + label: "Block" +})( true ? { + name: "1rr4qq7", + styles: "flex:1;" +} : undefined); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/item.js + + + + +/** + * External dependencies + */ + +/** + * Internal dependencies + */ + + +/** + * WordPress dependencies + */ + + + +function FlexItem(_ref, ref) { + var className = _ref.className, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className"]); + + var classes = classnames_default()('components-flex__item', className); + return Object(external_this_wp_element_["createElement"])(Item, Object(esm_extends["a" /* default */])({}, props, { + className: classes, + ref: ref + })); +} + +/* harmony default export */ var flex_item = (Object(external_this_wp_element_["forwardRef"])(FlexItem)); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/block.js + + + + +/** + * External dependencies + */ + +/** + * Internal dependencies + */ + + +/** + * WordPress dependencies + */ + + + +function FlexBlock(_ref, ref) { + var className = _ref.className, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className"]); + + var classes = classnames_default()('components-flex__block', className); + return Object(external_this_wp_element_["createElement"])(Block, Object(esm_extends["a" /* default */])({}, props, { + className: classes, + ref: ref + })); +} + +/* harmony default export */ var block = (Object(external_this_wp_element_["forwardRef"])(FlexBlock)); + +// CONCATENATED MODULE: ./node_modules/react-use-gesture/dist/react-use-gesture.esm.js + + +// vector add +function addV(v1, v2) { + return v1.map(function (v, i) { + return v + v2[i]; + }); +} // vector substract + +function subV(v1, v2) { + return v1.map(function (v, i) { + return v - v2[i]; + }); +} +/** + * Calculates velocity + * @param delta the difference between current and previous vectors + * @param delta_t the time offset + * @param len the length of the delta vector + * @returns velocity + */ + +function calculateVelocity(delta, delta_t, len) { + len = len || Math.hypot.apply(Math, delta); + return delta_t ? len / delta_t : 0; +} +/** + * Calculates velocities vector + * @template T the expected vector type + * @param delta the difference between current and previous vectors + * @param delta_t the time offset + * @returns velocities vector + */ + +function calculateVelocities(delta, delta_t) { + return delta_t ? delta.map(function (v) { + return v / delta_t; + }) : Array(delta.length).fill(0); +} +/** + * Calculates distance + * @param movement the difference between current and initial vectors + * @returns distance + */ + +function calculateDistance(movement) { + return Math.hypot.apply(Math, movement); +} +/** + * Calculates direction + * @template T the expected vector type + * @param delta + * @param len + * @returns direction + */ + +function calculateDirection(delta, len) { + len = len || Math.hypot.apply(Math, delta) || 1; + return delta.map(function (v) { + return v / len; + }); +} +/** + * Calculates all kinematics + * @template T the expected vector type + * @param movement the difference between current and initial vectors + * @param delta the difference between current and previous vectors + * @param delta_t the time difference between current and previous timestamps + * @returns all kinematics + */ + +function calculateAllKinematics(movement, delta, delta_t) { + var len = Math.hypot.apply(Math, delta); + return { + velocities: calculateVelocities(delta, delta_t), + velocity: calculateVelocity(delta, delta_t, len), + distance: calculateDistance(movement), + direction: calculateDirection(delta, len) + }; +} +function getIntentionalDisplacement(movement, threshold) { + var abs = Math.abs(movement); + return abs >= threshold ? Math.sign(movement) * threshold : false; +} + +function minMax(value, min, max) { + return Math.max(min, Math.min(value, max)); +} // Based on @aholachek ;) +// https://twitter.com/chpwn/status/285540192096497664 +// iOS constant = 0.55 +// https://medium.com/@nathangitter/building-fluid-interfaces-ios-swift-9732bb934bf5 + + +function rubberband2(distance, constant) { + // default constant from the article is 0.7 + return Math.pow(distance, constant * 5); +} + +function rubberband(distance, dimension, constant) { + if (dimension === 0 || Math.abs(dimension) === Infinity) return rubberband2(distance, constant); + return distance * dimension * constant / (dimension + constant * distance); +} + +function rubberbandIfOutOfBounds(position, min, max, constant) { + if (constant === void 0) { + constant = 0.15; + } + + if (constant === 0) return minMax(position, min, max); + + if (position < min) { + return -rubberband(min - position, max - min, constant) + min; + } + + if (position > max) { + return rubberband(position - max, max - min, constant) + max; + } + + return position; +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(n); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} + +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; +} + +function _createForOfIteratorHelperLoose(o) { + var i = 0; + + if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { + if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) return function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }; + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + i = o[Symbol.iterator](); + return i.next.bind(i); +} + +// blank function +function noop() {} // returns a function that chains all functions given as parameters + +var chainFns = function chainFns() { + for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) { + fns[_key] = arguments[_key]; + } + + return function () { + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + return fns.forEach(function (fn) { + return fn.apply(void 0, args); + }); + }; +}; +var def = { + array: function array(value) { + return Array.isArray(value) ? value : [value, value]; + }, + withDefault: function withDefault(value, defaultIfUndefined) { + return value !== void 0 ? value : defaultIfUndefined; + } +}; +function matchKeysFromObject(obj, matchingObject) { + var o = {}; + Object.entries(obj).forEach(function (_ref) { + var key = _ref[0], + value = _ref[1]; + return (value !== void 0 || key in matchingObject) && (o[key] = value); + }); + return o; +} +function valueFn(v) { + return typeof v === 'function' ? v() : v; +} + +function getInitialState() { + // common initial state for all gestures + var initialCommon = { + _active: false, + _blocked: false, + _intentional: [false, false], + _movement: [0, 0], + _initial: [0, 0], + _lastEventType: undefined, + event: undefined, + // currentTarget: undefined, + // pointerId: undefined, + values: [0, 0], + velocities: [0, 0], + delta: [0, 0], + movement: [0, 0], + offset: [0, 0], + lastOffset: [0, 0], + direction: [0, 0], + initial: [0, 0], + previous: [0, 0], + first: false, + last: false, + active: false, + timeStamp: 0, + startTime: 0, + elapsedTime: 0, + cancel: noop, + canceled: false, + memo: undefined, + args: undefined + }; // initial state for coordinates-based gestures + + var initialCoordinates = { + axis: undefined, + xy: [0, 0], + vxvy: [0, 0], + velocity: 0, + distance: 0 + }; // initial state for distance and angle-based gestures (pinch) + + var initialDistanceAngle = { + da: [0, 0], + vdva: [0, 0], + origin: undefined, + turns: 0 + }; // initial state object (used by the gesture controller) + + return { + shared: { + hovering: false, + scrolling: false, + wheeling: false, + dragging: false, + moving: false, + pinching: false, + touches: 0, + buttons: 0, + down: false, + shiftKey: false, + altKey: false, + metaKey: false, + ctrlKey: false + }, + drag: _extends({}, initialCommon, {}, initialCoordinates, { + _isTap: true, + _delayedEvent: false, + tap: false, + swipe: [0, 0] + }), + pinch: _extends({}, initialCommon, {}, initialDistanceAngle), + wheel: _extends({}, initialCommon, {}, initialCoordinates), + move: _extends({}, initialCommon, {}, initialCoordinates), + scroll: _extends({}, initialCommon, {}, initialCoordinates) + }; +} + +var setListeners = function setListeners(add) { + return function (el, listeners, options) { + var action = add ? 'addEventListener' : 'removeEventListener'; + listeners.forEach(function (_ref) { + var eventName = _ref[0], + fn = _ref[1]; + return el[action](eventName, fn, options); + }); + }; +}; +/** + * Whether the browser supports GestureEvent (ie Safari) + * @returns true if the browser supports gesture event + */ + + +function supportsGestureEvents() { + try { + // TODO [TS] possibly find GestureEvent definitions? + // @ts-ignore: no type definitions for webkit GestureEvents + return 'constructor' in GestureEvent; + } catch (e) { + return false; + } +} +var addListeners = /*#__PURE__*/setListeners(true); +var removeListeners = /*#__PURE__*/setListeners(false); +/** + * Gets modifier keys from event + * @param event + * @returns modifier keys + */ + +function getModifierKeys(event) { + var shiftKey = event.shiftKey, + altKey = event.altKey, + metaKey = event.metaKey, + ctrlKey = event.ctrlKey; + return { + shiftKey: shiftKey, + altKey: altKey, + metaKey: metaKey, + ctrlKey: ctrlKey + }; +} + +function getTouchEvents(event) { + if ('touches' in event) { + var touches = event.touches, + changedTouches = event.changedTouches; + return touches.length > 0 ? touches : changedTouches; + } + + return null; +} + +function getGenericEventData(event) { + var buttons = 'buttons' in event ? event.buttons : 0; + var touchEvents = getTouchEvents(event); + var touches = touchEvents && touchEvents.length || 0; + var down = touches > 0 || buttons > 0; + return _extends({ + touches: touches, + down: down, + buttons: buttons + }, getModifierKeys(event)); +} +/** + * Gets scroll event values + * @param event + * @returns scroll event values + */ + +function getScrollEventValues(event) { + // If the currentTarget is the window then we return the scrollX/Y position. + // If not (ie the currentTarget is a DOM element), then we return scrollLeft/Top + var _event$currentTarget = event.currentTarget, + scrollX = _event$currentTarget.scrollX, + scrollY = _event$currentTarget.scrollY, + scrollLeft = _event$currentTarget.scrollLeft, + scrollTop = _event$currentTarget.scrollTop; + return { + values: [scrollX || scrollLeft || 0, scrollY || scrollTop || 0] + }; +} +/** + * Gets wheel event values. + * @param event + * @returns wheel event values + */ + +function getWheelEventValues(event) { + var deltaX = event.deltaX, + deltaY = event.deltaY; //TODO implement polyfill ? + // https://developer.mozilla.org/en-US/docs/Web/Events/wheel#Polyfill + + return { + values: [deltaX, deltaY] + }; +} +/** + * Gets pointer event values. + * @param event + * @returns pointer event values + */ + +function getPointerEventValues(event) { + var touchEvents = getTouchEvents(event); + + var _ref2 = touchEvents ? touchEvents[0] : event, + clientX = _ref2.clientX, + clientY = _ref2.clientY; + + return { + values: [clientX, clientY] + }; +} +var WEBKIT_DISTANCE_SCALE_FACTOR = 260; +/** + * Gets webkit gesture event values. + * @param event + * @returns webkit gesture event values + */ + +function getWebkitGestureEventValues(event) { + return { + values: [event.scale * WEBKIT_DISTANCE_SCALE_FACTOR, event.rotation] + }; +} +/** + * Gets two touches event data + * @param event + * @returns two touches event data + */ + +function getTwoTouchesEventData(event) { + var touches = event.touches; + var dx = touches[1].clientX - touches[0].clientX; + var dy = touches[1].clientY - touches[0].clientY; + var values = [Math.hypot(dx, dy), -(Math.atan2(dx, dy) * 180) / Math.PI]; + var origin = [(touches[1].clientX + touches[0].clientX) / 2, (touches[1].clientY + touches[0].clientY) / 2]; + return { + values: values, + origin: origin + }; +} + +/** + * The controller will keep track of the state for all gestures and also keep + * track of timeouts, and window listeners. + * + * @template BinderType the type the bind function should return + */ + +var Controller = function Controller() { + var _this = this; + + this.state = getInitialState(); // state for all gestures + + this.timeouts = {}; // keeping track of timeouts for debounced gestures (such as move, scroll, wheel) + + this.domListeners = []; // when config.domTarget is set, we attach events directly to the dom + + this.windowListeners = {}; // keeps track of window listeners added by gestures (drag only at the moment) + + this.bindings = {}; // an object holding the handlers associated to the gestures + + /** + * Function ran on component unmount: cleans timeouts and removes dom listeners set by the bind function. + */ + + this.clean = function () { + _this.resetBindings(); + + Object.values(_this.timeouts).forEach(clearTimeout); + Object.keys(_this.windowListeners).forEach(function (stateKey) { + return _this.removeWindowListeners(stateKey); + }); + }; + /** + * Function run every time the bind function is run (ie on every render). + * Resets the binding object and remove dom listeners attached to config.domTarget + */ + + + this.resetBindings = function () { + _this.bindings = {}; + + var domTarget = _this.getDomTarget(); + + if (domTarget) { + removeListeners(domTarget, _this.domListeners, _this.config.eventOptions); + _this.domListeners = []; + } + }; + /** + * Returns the domTarget element and parses a ref if needed. + */ + + + this.getDomTarget = function () { + var domTarget = _this.config.domTarget; + return domTarget && 'current' in domTarget ? domTarget.current : domTarget; + }; + /** + * Commodity function to let recognizers simply add listeners to config.window. + */ + + + this.addWindowListeners = function (stateKey, listeners) { + if (!_this.config.window) return; // we use this.windowListeners to keep track of the listeners we add + + _this.windowListeners[stateKey] = listeners; + addListeners(_this.config.window, listeners, _this.config.eventOptions); + }; + /** + * Commodity function to let recognizers simply remove listeners to config.window. + */ + + + this.removeWindowListeners = function (stateKey) { + if (!_this.config.window) return; + var listeners = _this.windowListeners[stateKey]; + + if (listeners) { + removeListeners(_this.config.window, listeners, _this.config.eventOptions); + delete _this.windowListeners[stateKey]; + } + }; + /** + * When config.domTarget is set, this function will add dom listeners to it + */ + + + this.addDomTargetListeners = function (target) { + /** We iterate on the entries of this.binding for each event, then we chain + * the array of functions mapped to it and push them to this.domListeners + */ + Object.entries(_this.bindings).forEach(function (_ref) { + var event = _ref[0], + fns = _ref[1]; + + _this.domListeners.push([event.substr(2).toLowerCase(), chainFns.apply(void 0, fns)]); + }); + addListeners(target, _this.domListeners, _this.config.eventOptions); + }; + /** + * this.bindings is an object which keys match ReactEventHandlerKeys. + * Since a recognizer might want to bind a handler function to an event key already used by a previously + * added recognizer, we need to make sure that each event key is an array of all the functions mapped for + * that key. + */ + + + this.addBindings = function (eventNames, fn) { + var eventNamesArray = !Array.isArray(eventNames) ? [eventNames] : eventNames; + eventNamesArray.forEach(function (eventName) { + if (_this.bindings[eventName]) _this.bindings[eventName].push(fn);else _this.bindings[eventName] = [fn]; + }); + }; + /** + * getBindings will return an object that will be bound by users + * to the react component they want to interact with. + */ + + + this.getBindings = function () { + var bindings = {}; + var captureString = _this.config.captureString; + Object.entries(_this.bindings).forEach(function (_ref2) { + var event = _ref2[0], + fns = _ref2[1]; + var fnsArray = Array.isArray(fns) ? fns : [fns]; + var key = event + captureString; + bindings[key] = chainFns.apply(void 0, fnsArray); + }); + return bindings; + }; + + this.getBind = function () { + // If config.domTarget is set we add event listeners to it and return the clean function. + if (_this.config.domTarget) { + var domTarget = _this.getDomTarget(); + + domTarget && _this.addDomTargetListeners(domTarget); + return _this.clean; + } // If not, we return an object that contains gesture handlers mapped to react handler event keys. + + + return _this.getBindings(); + }; +}; + +/** + * @private + * + * Utility hook called by all gesture hooks and that will be responsible for the internals. + * + * @param {Partial} handlers + * @param {RecognizerClasses} classes + * @param {InternalConfig} config + * @param {NativeHandlersPartial} nativeHandlers - native handlers such as onClick, onMouseDown, etc. + * @returns {(...args: any[]) => HookReturnType} + */ + +function useRecognizers(handlers, classes, config, nativeHandlers) { + // The gesture controller keeping track of all gesture states + var controller = external_this_React_default.a.useMemo(function () { + var current = new Controller(); + /** + * The bind function will create gesture recognizers and return the right + * bind object depending on whether `domTarget` was specified in the config object. + */ + + var bind = function bind() { + current.resetBindings(); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + for (var _iterator = _createForOfIteratorHelperLoose(classes), _step; !(_step = _iterator()).done;) { + var RecognizerClass = _step.value; + new RecognizerClass(current, args).addBindings(); + } // we also add event bindings for native handlers + + + if (controller.nativeRefs) { + for (var eventName in controller.nativeRefs) { + current.addBindings(eventName, // @ts-ignore we're cheating when it comes to event type :( + controller.nativeRefs[eventName]); + } + } + + return current.getBind(); + }; + + return { + nativeRefs: nativeHandlers, + current: current, + bind: bind + }; + }, []); // We reassign the config and handlers to the controller on every render. + + controller.current.config = config; + controller.current.handlers = handlers; // We assign nativeHandlers, otherwise they won't be refreshed on the next render. + + controller.nativeRefs = nativeHandlers; // Run controller clean functions on unmount. + + external_this_React_default.a.useEffect(function () { + return controller.current.clean; + }, []); + return controller.bind; +} + +/** + * @private + * Recognizer abstract class. + * + * @protected + * @abstract + * @type {StateKey} whether the Recognizer should deal with coordinates or distance / angle + */ + +var Recognizer = /*#__PURE__*/function () { + /** + * Creates an instance of a gesture recognizer. + * @param stateKey drag, move, pinch, etc. + * @param controller the controller attached to the gesture + * @param [args] the args that should be passed to the gesture handler + */ + function Recognizer(stateKey, controller, args) { + var _this = this; + + if (args === void 0) { + args = []; + } + + this.stateKey = stateKey; + this.controller = controller; + this.args = args; + this.debounced = true; // Convenience method to set a timeout for a given gesture + + this.setTimeout = function (callback, ms) { + var _window; + + if (ms === void 0) { + ms = 140; + } + + for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { + args[_key - 2] = arguments[_key]; + } + + _this.controller.timeouts[_this.stateKey] = (_window = window).setTimeout.apply(_window, [callback, ms].concat(args)); + }; // Convenience method to clear a timeout for a given gesture + + + this.clearTimeout = function () { + clearTimeout(_this.controller.timeouts[_this.stateKey]); + }; // Convenience method to add window listeners for a given gesture + + + this.addWindowListeners = function (listeners) { + _this.controller.addWindowListeners(_this.stateKey, listeners); + }; // Convenience method to remove window listeners for a given gesture + + + this.removeWindowListeners = function () { + _this.controller.removeWindowListeners(_this.stateKey); + }; + /** + * Returns the reinitialized start state for the gesture. + * Should be common to all gestures. + * + * @param {Vector2} values + * @param {UseGestureEvent} event + * @returns - the start state for the gesture + */ + + + this.getStartGestureState = function (values, event) { + return _extends({}, getInitialState()[_this.stateKey], { + _active: true, + values: values, + initial: values, + offset: _this.state.offset, + lastOffset: _this.state.offset, + startTime: event.timeStamp + }); + }; // Runs rubberband on a vector + + + this.rubberband = function (vector, rubberband) { + var bounds = _this.config.bounds; + /** + * [x, y]: [rubberband(x, min, max), rubberband(y, min, max)] + */ + + return vector.map(function (v, i) { + return rubberbandIfOutOfBounds(v, bounds[i][0], bounds[i][1], rubberband[i]); + }); + }; + /** + * Fires the gesture handler + * + * @param {boolean} [forceFlag] - if true, then the handler will fire even if the gesture is not intentional + */ + + + this.fireGestureHandler = function (forceFlag) { + /** + * If the gesture has been blocked (this can happen when the gesture has started in an unwanted direction), + * clean everything and don't do anything. + */ + if (_this.state._blocked) { + // we need debounced gestures to end by themselves + if (!_this.debounced) { + _this.state._active = false; + + _this.clean(); + } + + return null; + } // If the gesture has no intentional dimension, don't do fire the handler. + + + var _this$state$_intentio = _this.state._intentional, + intentionalX = _this$state$_intentio[0], + intentionalY = _this$state$_intentio[1]; + if (!forceFlag && intentionalX === false && intentionalY === false) return null; + var _this$state = _this.state, + _active = _this$state._active, + active = _this$state.active; + _this.state.active = _active; + _this.state.first = _active && !active; // `first` is true when the gesture becomes active + + _this.state.last = active && !_active; // `last` is true when the gesture becomes inactive + + _this.controller.state.shared[_this.ingKey] = _active; // Sets dragging, pinching, etc. to the gesture active state + + var state = _extends({}, _this.controller.state.shared, {}, _this.state, {}, _this.mapStateValues(_this.state)); // @ts-ignore + + + var newMemo = _this.handler(state); // Sets memo to the returned value of the handler (unless it's not undefined) + + + _this.state.memo = newMemo !== void 0 ? newMemo : _this.state.memo; // Cleans the gesture when the gesture is no longer active. + + if (!_active) _this.clean(); + return state; + }; + } // Returns the gesture config + + + var _proto = Recognizer.prototype; + + // Conveninence method to update the shared state + _proto.updateSharedState = function updateSharedState(sharedState) { + Object.assign(this.controller.state.shared, sharedState); + } // Conveninence method to update the gesture state + ; + + _proto.updateGestureState = function updateGestureState(gestureState) { + Object.assign(this.state, gestureState); + } + /** + * Returns a generic, common payload for all gestures from an event. + * + * @param {UseGestureEvent} event + * @param {boolean} [isStartEvent] + * @returns - the generic gesture payload + */ + ; + + _proto.getGenericPayload = function getGenericPayload(event, isStartEvent) { + var timeStamp = event.timeStamp, + type = event.type; + var _this$state2 = this.state, + values = _this$state2.values, + startTime = _this$state2.startTime; + return { + _lastEventType: type, + event: event, + timeStamp: timeStamp, + elapsedTime: isStartEvent ? 0 : timeStamp - startTime, + args: this.args, + previous: values + }; + } + /** + * Returns state properties depending on the movement and state. + * + * Should be overriden for custom behavior, doesn't do anything in the implementation + * below. + */ + ; + + _proto.checkIntentionality = function checkIntentionality(_intentional, _movement, _state) { + return { + _intentional: _intentional, + _blocked: false + }; + } + /** + * Returns basic movement properties for the gesture based on the next values and current state. + */ + ; + + _proto.getMovement = function getMovement(values, state) { + if (state === void 0) { + state = this.state; + } + + var _this$config = this.config, + initial = _this$config.initial, + threshold = _this$config.threshold, + rubberband = _this$config.rubberband; + var t0 = threshold[0], + t1 = threshold[1]; + var _state2 = state, + _initial = _state2._initial, + _active = _state2._active, + intentional = _state2._intentional, + lastOffset = _state2.lastOffset, + prevMovement = _state2.movement; + var i0 = intentional[0], + i1 = intentional[1]; + + var _this$getInternalMove = this.getInternalMovement(values, state), + _m0 = _this$getInternalMove[0], + _m1 = _this$getInternalMove[1]; + /** + * For both dimensions of the gesture, check its intentionality on each frame. + */ + + + if (i0 === false) { + i0 = getIntentionalDisplacement(_m0, t0); + } + + if (i1 === false) { + i1 = getIntentionalDisplacement(_m1, t1); + } // Get gesture specific state properties based on intentionality and movement. + + + var intentionalityCheck = this.checkIntentionality([i0, i1], [_m0, _m1], state); + var _intentional = intentionalityCheck._intentional, + _blocked = intentionalityCheck._blocked; + var _i0 = _intentional[0], + _i1 = _intentional[1]; + var _movement = [_m0, _m1]; + if (_i0 !== false && intentional[0] === false) _initial[0] = valueFn(initial)[0]; + if (_i1 !== false && intentional[1] === false) _initial[1] = valueFn(initial)[1]; + /** + * If the gesture has been blocked (from gesture specific checkIntentionality), + * stop right there. + */ + + if (_blocked) return _extends({}, intentionalityCheck, { + _movement: _movement, + delta: [0, 0] + }); + /** + * The movement sent to the handler has 0 in its dimensions when intentionality is false. + * It is calculated from the actual movement minus the threshold. + */ + + var movement = [_i0 !== false ? _m0 - _i0 : valueFn(initial)[0], _i1 !== false ? _m1 - _i1 : valueFn(initial)[1]]; + var offset = addV(movement, lastOffset); + /** + * Rubberband should be 0 when the gesture is no longer active, so that movement + * and offset can return within their bounds. + */ + + var _rubberband = _active ? rubberband : [0, 0]; + + movement = this.rubberband(addV(movement, _initial), _rubberband); // rubberbanded movement + + return _extends({}, intentionalityCheck, { + _initial: _initial, + _movement: _movement, + movement: movement, + offset: this.rubberband(offset, _rubberband), + delta: subV(movement, prevMovement) + }); + } // Cleans the gesture. Can be overriden by gestures. + ; + + _proto.clean = function clean() { + this.clearTimeout(); + this.removeWindowListeners(); + }; + + _createClass(Recognizer, [{ + key: "config", + get: function get() { + return this.controller.config[this.stateKey]; + } // Is the gesture enabled + + }, { + key: "enabled", + get: function get() { + return this.controller.config.enabled && this.config.enabled; + } // Returns the controller state for a given gesture + + }, { + key: "state", + get: function get() { + return this.controller.state[this.stateKey]; + } // Returns the gesture handler + + }, { + key: "handler", + get: function get() { + return this.controller.handlers[this.stateKey]; + } + }]); + + return Recognizer; +}(); + +/** + * @private + * Abstract class for coordinates-based gesture recongizers + * @abstract + * @class CoordinatesRecognizer + * @extends {Recognizer} + * @template T + */ + +var CoordinatesRecognizer = /*#__PURE__*/function (_Recognizer) { + _inheritsLoose(CoordinatesRecognizer, _Recognizer); + + function CoordinatesRecognizer() { + return _Recognizer.apply(this, arguments) || this; + } + + var _proto = CoordinatesRecognizer.prototype; + + /** + * Returns the real movement (without taking intentionality into acount) + */ + _proto.getInternalMovement = function getInternalMovement(values, state) { + return subV(values, state.initial); + } + /** + * In coordinates-based gesture, this function will detect the first intentional axis, + * lock the gesture axis if lockDirection is specified in the config, block the gesture + * if the first intentional axis doesn't match the specified axis in config. + * + * @param {[FalseOrNumber, FalseOrNumber]} _intentional + * @param {Vector2} _movement + * @param {PartialGestureState} state + */ + ; + + _proto.checkIntentionality = function checkIntentionality(_intentional, _movement, state) { + var _intentional2 = _intentional, + _ix = _intentional2[0], + _iy = _intentional2[1]; + var intentionalMovement = _ix !== false || _iy !== false; + var axis = state.axis; + var _blocked = false; // If the movement is intentional, we can compute axis. + + if (intentionalMovement) { + var _movement$map = _movement.map(Math.abs), + absX = _movement$map[0], + absY = _movement$map[1]; + + var _this$config = this.config, + configAxis = _this$config.axis, + lockDirection = _this$config.lockDirection; // We make sure we only set axis value if it hadn't been detected before. + + axis = axis || (absX > absY ? 'x' : absX < absY ? 'y' : undefined); + + if (!!configAxis || lockDirection) { + if (!!axis) { + // If the detected axis doesn't match the config axis we block the gesture + if (!!configAxis && axis !== configAxis) _blocked = true;else { + // Otherwise we prevent the gesture from updating the unwanted axis. + var lockedIndex = axis === 'x' ? 1 : 0; + _intentional[lockedIndex] = false; + } + } else { + // Until we've detected the axis, we prevent the hnadler from updating. + _intentional = [false, false]; + } + } + } + + return { + _intentional: _intentional, + _blocked: _blocked, + axis: axis + }; + }; + + _proto.getKinematics = function getKinematics(values, event) { + var timeStamp = this.state.timeStamp; + var movementDetection = this.getMovement(values, this.state); + var _blocked = movementDetection._blocked, + delta = movementDetection.delta, + movement = movementDetection.movement; + if (_blocked) return movementDetection; + var delta_t = event.timeStamp - timeStamp; + var kinematics = calculateAllKinematics(movement, delta, delta_t); + return _extends({ + values: values, + delta: delta + }, movementDetection, {}, kinematics); + }; + + _proto.mapStateValues = function mapStateValues(state) { + return { + xy: state.values, + vxvy: state.velocities + }; + }; + + return CoordinatesRecognizer; +}(Recognizer); + +var TAP_DISTANCE_THRESHOLD = 3; +var SWIPE_MAX_ELAPSED_TIME = 220; +var FILTER_REPEATED_EVENTS_DELAY = 200; + +var DragRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) { + _inheritsLoose(DragRecognizer, _CoordinatesRecognize); + + function DragRecognizer(controller, args) { + var _this; + + _this = _CoordinatesRecognize.call(this, 'drag', controller, args) || this; + _this.ingKey = 'dragging'; + _this.wasTouch = false; + + _this.isEventTypeTouch = function (type) { + return !!type && type.indexOf('touch') === 0; + }; + + _this.dragShouldStart = function (event) { + var _getGenericEventData = getGenericEventData(event), + touches = _getGenericEventData.touches; + + var _lastEventType = _this.state._lastEventType; + /** + * This tries to filter out mouse events triggered by touch screens + * */ + // If the previous gesture was touch-based, and the current one is mouse based, + // this means that we might be dealing with mouse simulated events if they're close to + // each other. We're only doing this check when we're not using pointer events. + + if (!_this.controller.config.pointer && _this.isEventTypeTouch(_lastEventType) && !_this.isEventTypeTouch(event.type)) { + var delay = Math.abs(event.timeStamp - _this.state.startTime); + if (delay < FILTER_REPEATED_EVENTS_DELAY) return false; + } + + return _this.enabled && touches < 2; + }; + + _this.setPointers = function (event) { + var currentTarget = event.currentTarget, + pointerId = event.pointerId; + if (currentTarget) currentTarget.setPointerCapture(pointerId); + + _this.updateGestureState({ + currentTarget: currentTarget, + pointerId: pointerId + }); + }; + + _this.removePointers = function () { + var _this$state = _this.state, + currentTarget = _this$state.currentTarget, + pointerId = _this$state.pointerId; + if (currentTarget && pointerId) currentTarget.releasePointerCapture(pointerId); + }; + + _this.setListeners = function (isTouch) { + _this.removeWindowListeners(); + + var dragListeners = isTouch ? [['touchmove', _this.onDragChange], ['touchend', _this.onDragEnd], ['touchcancel', _this.onDragEnd]] : [['mousemove', _this.onDragChange], ['mouseup', _this.onDragEnd]]; + + _this.addWindowListeners(dragListeners); + }; + + _this.onDragStart = function (event) { + if (!_this.dragShouldStart(event)) return; // if pointers events + + if (_this.controller.config.pointer) _this.setPointers(event);else _this.setListeners(_this.isEventTypeTouch(event.type)); + + if (_this.config.delay > 0) { + _this.state._delayedEvent = true; + if (typeof event.persist === 'function') event.persist(); + + _this.setTimeout(function () { + return _this.startDrag(event); + }, _this.config.delay); + } else { + _this.startDrag(event); + } + }; + + _this.onDragChange = function (event) { + var canceled = _this.state.canceled; + if (canceled) return; + + if (!_this.state._active) { + if (_this.state._delayedEvent) { + _this.clearTimeout(); + + _this.startDrag(event); + } + + return; + } + + var genericEventData = getGenericEventData(event); + + if (!genericEventData.down) { + _this.onDragEnd(event); + + return; + } + + _this.updateSharedState(genericEventData); + + var _getPointerEventValue = getPointerEventValues(event), + values = _getPointerEventValue.values; + + var kinematics = _this.getKinematics(values, event); + + var _isTap = _this.state._isTap; + if (_isTap && calculateDistance(kinematics._movement) >= TAP_DISTANCE_THRESHOLD) _isTap = false; + + _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics, { + _isTap: _isTap, + cancel: function cancel() { + return _this.onCancel(); + } + })); + + _this.fireGestureHandler(); + }; + + _this.onDragEnd = function (event) { + _this.state._active = false; + + _this.updateSharedState({ + down: false, + buttons: 0, + touches: 0 + }); + + var _this$state2 = _this.state, + _isTap = _this$state2._isTap, + values = _this$state2.values, + _this$state2$velociti = _this$state2.velocities, + vx = _this$state2$velociti[0], + vy = _this$state2$velociti[1], + _this$state2$movement = _this$state2.movement, + mx = _this$state2$movement[0], + my = _this$state2$movement[1], + _this$state2$_intenti = _this$state2._intentional, + ix = _this$state2$_intenti[0], + iy = _this$state2$_intenti[1]; + + var endState = _extends({}, _this.getGenericPayload(event), {}, _this.getMovement(values)); + + var elapsedTime = endState.elapsedTime; + var _this$config = _this.config, + _this$config$swipeVel = _this$config.swipeVelocity, + svx = _this$config$swipeVel[0], + svy = _this$config$swipeVel[1], + _this$config$swipeDis = _this$config.swipeDistance, + sx = _this$config$swipeDis[0], + sy = _this$config$swipeDis[1]; + var swipe = [0, 0]; + + if (elapsedTime < SWIPE_MAX_ELAPSED_TIME) { + if (ix !== false && Math.abs(vx) > svx && Math.abs(mx) > sx) swipe[0] = Math.sign(vx); + if (iy !== false && Math.abs(vy) > svy && Math.abs(my) > sy) swipe[1] = Math.sign(vy); + } + + _this.updateGestureState(_extends({ + event: event + }, endState, { + tap: _isTap, + swipe: swipe + })); + + _this.fireGestureHandler(_this.config.filterTaps && _this.state._isTap); + }; + + _this.clean = function () { + _CoordinatesRecognize.prototype.clean.call(_assertThisInitialized(_this)); + + _this.state._delayedEvent = false; + if (_this.controller.config.pointer) _this.removePointers(); + }; + + _this.onCancel = function () { + _this.updateGestureState({ + canceled: true, + cancel: noop + }); + + _this.state._active = false; + + _this.updateSharedState({ + down: false, + buttons: 0, + touches: 0 + }); + + requestAnimationFrame(function () { + return _this.fireGestureHandler(); + }); + }; + + return _this; + } + + var _proto = DragRecognizer.prototype; + + _proto.startDrag = function startDrag(event) { + var _this2 = this; + + var _getPointerEventValue2 = getPointerEventValues(event), + values = _getPointerEventValue2.values; + + this.updateSharedState(getGenericEventData(event)); + + var startState = _extends({}, this.getStartGestureState(values, event), {}, this.getGenericPayload(event, true)); + + this.updateGestureState(_extends({}, startState, {}, this.getMovement(values, startState), { + cancel: function cancel() { + return _this2.onCancel(); + } + })); + this.fireGestureHandler(); + }; + + _proto.addBindings = function addBindings() { + if (this.controller.config.pointer) { + this.controller.addBindings('onPointerDown', this.onDragStart); + this.controller.addBindings('onPointerMove', this.onDragChange); + this.controller.addBindings(['onPointerUp', 'onPointerCancel'], this.onDragEnd); + } else { + this.controller.addBindings(['onTouchStart', 'onMouseDown'], this.onDragStart); + } + }; + + return DragRecognizer; +}(CoordinatesRecognizer); + +var DEFAULT_DRAG_DELAY = 180; +var DEFAULT_RUBBERBAND = 0.15; +var DEFAULT_SWIPE_VELOCITY = 0.5; +var DEFAULT_SWIPE_DISTANCE = 60; +var defaultWindow = typeof window !== 'undefined' ? window : undefined; +var defaultCoordinatesOptions = { + lockDirection: false, + axis: undefined, + bounds: undefined +}; +/** + * @private + * + * Returns the internal generic option object. + * + * @param {Partial} [config={}] + * @returns {InternalGenericOptions} + */ + +function getInternalGenericOptions(config) { + if (config === void 0) { + config = {}; + } + + var _config = config, + _config$eventOptions = _config.eventOptions; + _config$eventOptions = _config$eventOptions === void 0 ? {} : _config$eventOptions; + + var _config$eventOptions$ = _config$eventOptions.passive, + passive = _config$eventOptions$ === void 0 ? true : _config$eventOptions$, + _config$eventOptions$2 = _config$eventOptions.capture, + capture = _config$eventOptions$2 === void 0 ? false : _config$eventOptions$2, + _config$eventOptions$3 = _config$eventOptions.pointer, + pointer = _config$eventOptions$3 === void 0 ? false : _config$eventOptions$3, + _config$window = _config.window, + window = _config$window === void 0 ? defaultWindow : _config$window, + _config$domTarget = _config.domTarget, + domTarget = _config$domTarget === void 0 ? undefined : _config$domTarget, + _config$enabled = _config.enabled, + enabled = _config$enabled === void 0 ? true : _config$enabled, + restConfig = _objectWithoutPropertiesLoose(_config, ["eventOptions", "window", "domTarget", "enabled"]); + + return _extends({}, restConfig, { + enabled: enabled, + domTarget: domTarget, + window: window, + // passive is always true if there's no domTarget + eventOptions: { + passive: !domTarget || !!passive, + capture: !!capture + }, + captureString: capture ? 'Capture' : '', + pointer: !!pointer + }); +} +function getInternalGestureOptions(gestureConfig) { + var _gestureConfig$thresh = gestureConfig.threshold, + threshold = _gestureConfig$thresh === void 0 ? undefined : _gestureConfig$thresh, + _gestureConfig$rubber = gestureConfig.rubberband, + rubberband = _gestureConfig$rubber === void 0 ? 0 : _gestureConfig$rubber, + _gestureConfig$enable = gestureConfig.enabled, + enabled = _gestureConfig$enable === void 0 ? true : _gestureConfig$enable, + _gestureConfig$initia = gestureConfig.initial, + initial = _gestureConfig$initia === void 0 ? [0, 0] : _gestureConfig$initia; + if (typeof rubberband === 'boolean') rubberband = rubberband ? DEFAULT_RUBBERBAND : 0; + if (threshold === void 0) threshold = 0; + return { + enabled: enabled, + initial: initial, + threshold: def.array(threshold), + rubberband: def.array(rubberband) + }; +} +function getInternalCoordinatesOptions(coordinatesConfig) { + if (coordinatesConfig === void 0) { + coordinatesConfig = {}; + } + + var _coordinatesConfig = coordinatesConfig, + axis = _coordinatesConfig.axis, + lockDirection = _coordinatesConfig.lockDirection, + _coordinatesConfig$bo = _coordinatesConfig.bounds, + bounds = _coordinatesConfig$bo === void 0 ? {} : _coordinatesConfig$bo, + internalOptions = _objectWithoutPropertiesLoose(_coordinatesConfig, ["axis", "lockDirection", "bounds"]); + + var boundsArray = [[def.withDefault(bounds.left, -Infinity), def.withDefault(bounds.right, Infinity)], [def.withDefault(bounds.top, -Infinity), def.withDefault(bounds.bottom, Infinity)]]; + return _extends({}, getInternalGestureOptions(internalOptions), {}, defaultCoordinatesOptions, {}, matchKeysFromObject({ + axis: axis, + lockDirection: lockDirection + }, coordinatesConfig), { + bounds: boundsArray + }); +} +function getInternalDistanceAngleOptions(distanceAngleConfig) { + if (distanceAngleConfig === void 0) { + distanceAngleConfig = {}; + } + + var _distanceAngleConfig = distanceAngleConfig, + _distanceAngleConfig$ = _distanceAngleConfig.distanceBounds, + distanceBounds = _distanceAngleConfig$ === void 0 ? {} : _distanceAngleConfig$, + _distanceAngleConfig$2 = _distanceAngleConfig.angleBounds, + angleBounds = _distanceAngleConfig$2 === void 0 ? {} : _distanceAngleConfig$2, + internalOptions = _objectWithoutPropertiesLoose(_distanceAngleConfig, ["distanceBounds", "angleBounds"]); + + var boundsArray = [[def.withDefault(distanceBounds.min, -Infinity), def.withDefault(distanceBounds.max, Infinity)], [def.withDefault(angleBounds.min, -Infinity), def.withDefault(angleBounds.max, Infinity)]]; + return _extends({}, getInternalGestureOptions(internalOptions), { + bounds: boundsArray + }); +} +function getInternalDragOptions(dragConfig) { + if (dragConfig === void 0) { + dragConfig = {}; + } + + var _dragConfig = dragConfig, + enabled = _dragConfig.enabled, + threshold = _dragConfig.threshold, + bounds = _dragConfig.bounds, + rubberband = _dragConfig.rubberband, + initial = _dragConfig.initial, + dragOptions = _objectWithoutPropertiesLoose(_dragConfig, ["enabled", "threshold", "bounds", "rubberband", "initial"]); + + var _dragOptions$swipeVel = dragOptions.swipeVelocity, + swipeVelocity = _dragOptions$swipeVel === void 0 ? DEFAULT_SWIPE_VELOCITY : _dragOptions$swipeVel, + _dragOptions$swipeDis = dragOptions.swipeDistance, + swipeDistance = _dragOptions$swipeDis === void 0 ? DEFAULT_SWIPE_DISTANCE : _dragOptions$swipeDis, + _dragOptions$delay = dragOptions.delay, + delay = _dragOptions$delay === void 0 ? false : _dragOptions$delay, + _dragOptions$filterTa = dragOptions.filterTaps, + filterTaps = _dragOptions$filterTa === void 0 ? false : _dragOptions$filterTa, + axis = dragOptions.axis, + lockDirection = dragOptions.lockDirection; + + if (threshold === void 0) { + threshold = Math.max(0, filterTaps ? 3 : 0, lockDirection || axis ? 1 : 0); + } else { + filterTaps = true; + } + + var internalCoordinatesOptions = getInternalCoordinatesOptions(matchKeysFromObject({ + enabled: enabled, + threshold: threshold, + bounds: bounds, + rubberband: rubberband, + axis: axis, + lockDirection: lockDirection, + initial: initial + }, dragConfig)); + return _extends({}, internalCoordinatesOptions, { + filterTaps: filterTaps || internalCoordinatesOptions.threshold[0] + internalCoordinatesOptions.threshold[1] > 0, + swipeVelocity: def.array(swipeVelocity), + swipeDistance: def.array(swipeDistance), + delay: typeof delay === 'number' ? delay : delay ? DEFAULT_DRAG_DELAY : 0 + }); +} + +/** + * @public + * + * Drag hook. + * + * @param {Handler<'drag'>} handler - the function fired every time the drag gesture updates + * @param {(Config | {})} [config={}] - the config object including generic options and drag options + * @returns {(...args: any[]) => HookReturnType} + */ + +function useDrag(handler, config) { + if (config === void 0) { + config = {}; + } + + var _config = config, + domTarget = _config.domTarget, + eventOptions = _config.eventOptions, + window = _config.window, + drag = _objectWithoutPropertiesLoose(_config, ["domTarget", "eventOptions", "window"]); + /** + * TODO: at the moment we recompute the config object at every render + * this could probably be optimized + */ + + + var mergedConfig = _extends({}, getInternalGenericOptions({ + domTarget: domTarget, + eventOptions: eventOptions, + window: window + }), { + drag: getInternalDragOptions(drag) + }); + + return useRecognizers({ + drag: handler + }, [DragRecognizer], mergedConfig); +} + +/** + * @private + * Abstract class for distance/angle-based gesture recongizers + * @abstract + * @class DistanceAngleRecognizer + * @extends {Recognizer} + * @template T + */ + +var DistanceAngleRecognizer = /*#__PURE__*/function (_Recognizer) { + _inheritsLoose(DistanceAngleRecognizer, _Recognizer); + + function DistanceAngleRecognizer() { + return _Recognizer.apply(this, arguments) || this; + } + + var _proto = DistanceAngleRecognizer.prototype; + + /** + * Returns the real movement (without taking intentionality into acount) + */ + _proto.getInternalMovement = function getInternalMovement(_ref, state) { + var d = _ref[0], + a = _ref[1]; + var da = state.values, + turns = state.turns, + initial = state.initial; // angle might not be defined when ctrl wheel is used for zoom only + // in that case we set it to the previous angle value + + a = a !== void 0 ? a : da[1]; + var delta_a = a - da[1]; + /** + * The angle value might jump from 179deg to -179deg when we actually want to + * read 181deg to ensure continuity. To make that happen, we detect when the jump + * is supsiciously high (ie > 270deg) and increase the `turns` value + */ + + var newTurns = Math.abs(delta_a) > 270 ? turns + Math.sign(delta_a) : turns; // we update the angle difference to its corrected value + + var movement_d = d - initial[0]; + var movement_a = a - 360 * newTurns - initial[1]; + return [movement_d, movement_a]; + }; + + _proto.getKinematics = function getKinematics(values, event) { + var _this$state = this.state, + timeStamp = _this$state.timeStamp, + initial = _this$state.initial; + var movementDetection = this.getMovement(values, this.state); + var delta = movementDetection.delta, + movement = movementDetection.movement; + var turns = (values[1] - movement[1] - initial[1]) / 360; + var delta_t = event.timeStamp - timeStamp; + var kinematics = calculateAllKinematics(movement, delta, delta_t); + return _extends({ + values: values, + delta: delta, + turns: turns + }, movementDetection, {}, kinematics); + }; + + _proto.mapStateValues = function mapStateValues(state) { + return { + da: state.values, + vdva: state.velocities + }; + }; + + return DistanceAngleRecognizer; +}(Recognizer); + +var PinchRecognizer = /*#__PURE__*/function (_DistanceAngleRecogni) { + _inheritsLoose(PinchRecognizer, _DistanceAngleRecogni); + + function PinchRecognizer(controller, args) { + var _this; + + _this = _DistanceAngleRecogni.call(this, 'pinch', controller, args) || this; + _this.ingKey = 'pinching'; + + _this.pinchShouldStart = function (event) { + var _getGenericEventData = getGenericEventData(event), + touches = _getGenericEventData.touches; + + return _this.enabled && touches === 2; + }; + + _this.onPinchStart = function (event) { + if (!_this.pinchShouldStart(event)) return; + + var _getTwoTouchesEventDa = getTwoTouchesEventData(event), + values = _getTwoTouchesEventDa.values, + origin = _getTwoTouchesEventDa.origin; + + _this.updateSharedState(getGenericEventData(event)); + + var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true)); + + _this.updateGestureState(_extends({}, startState, {}, _this.getMovement(values, startState), { + origin: origin, + cancel: function cancel() { + return _this.onCancel(); + } + })); + + _this.fireGestureHandler(); + }; + + _this.onPinchChange = function (event) { + var _this$state = _this.state, + canceled = _this$state.canceled, + timeStamp = _this$state.timeStamp, + _active = _this$state._active; + if (canceled || !_active) return; + var genericEventData = getGenericEventData(event); + if (genericEventData.touches !== 2 || event.timeStamp === timeStamp) return; + + _this.updateSharedState(genericEventData); + + var _getTwoTouchesEventDa2 = getTwoTouchesEventData(event), + values = _getTwoTouchesEventDa2.values, + origin = _getTwoTouchesEventDa2.origin; + + var kinematics = _this.getKinematics(values, event); + + _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics, { + origin: origin, + cancel: function cancel() { + return _this.onCancel(); + } + })); + + _this.fireGestureHandler(); + }; + + _this.onPinchEnd = function (event) { + if (!_this.state.active) return; + _this.state._active = false; + + _this.updateSharedState({ + down: false, + touches: 0 + }); + + _this.updateGestureState(_extends({ + event: event + }, _this.getGenericPayload(event), {}, _this.getMovement(_this.state.values))); + + _this.fireGestureHandler(); + }; + + _this.onCancel = function () { + _this.state._active = false; + + _this.updateGestureState({ + canceled: true, + cancel: noop + }); + + _this.updateSharedState({ + down: false, + touches: 0 + }); + + requestAnimationFrame(function () { + return _this.fireGestureHandler(); + }); + }; + /** + * PINCH WITH WEBKIT GESTURES + */ + + + _this.onGestureStart = function (event) { + if (!_this.enabled) return; + event.preventDefault(); + + var _getWebkitGestureEven = getWebkitGestureEventValues(event), + values = _getWebkitGestureEven.values; + + _this.updateSharedState(getGenericEventData(event)); + + var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true)); + + _this.updateGestureState(_extends({}, startState, {}, _this.getMovement(values, startState), { + cancel: function cancel() { + return _this.onCancel(); + } + })); + + _this.fireGestureHandler(); + }; + + _this.onGestureChange = function (event) { + var _this$state2 = _this.state, + canceled = _this$state2.canceled, + _active = _this$state2._active; + if (canceled || !_active) return; + event.preventDefault(); + var genericEventData = getGenericEventData(event); + + _this.updateSharedState(genericEventData); + + var _getWebkitGestureEven2 = getWebkitGestureEventValues(event), + values = _getWebkitGestureEven2.values; + + var kinematics = _this.getKinematics(values, event); + + _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics, { + cancel: function cancel() { + return _this.onCancel(); + } + })); + + _this.fireGestureHandler(); + }; + + _this.onGestureEnd = function (event) { + event.preventDefault(); + if (!_this.state.active) return; + _this.state._active = false; + + _this.updateSharedState({ + down: false, + touches: 0 + }); + + _this.updateGestureState(_extends({ + event: event + }, _this.getGenericPayload(event), {}, _this.getMovement(_this.state.values))); + + _this.fireGestureHandler(); + }; + + _this.updateTouchData = function (event) { + if (!_this.enabled || event.touches.length !== 2 || !_this.state._active) return; + + var _getTwoTouchesEventDa3 = getTwoTouchesEventData(event), + origin = _getTwoTouchesEventDa3.origin; + + _this.state.origin = origin; + }; + /** + * PINCH WITH WHEEL + */ + + + _this.wheelShouldRun = function (event) { + return _this.enabled && event.ctrlKey; + }; + + _this.getWheelValuesFromEvent = function (event) { + var _getWheelEventValues = getWheelEventValues(event), + _getWheelEventValues$ = _getWheelEventValues.values, + delta_d = _getWheelEventValues$[1]; + + var _this$state$values = _this.state.values, + prev_d = _this$state$values[0], + prev_a = _this$state$values[1]; + var d = prev_d - delta_d; + var a = prev_a !== void 0 ? prev_a : 0; + return { + values: [d, a], + origin: [event.clientX, event.clientY], + delta: [0, delta_d] + }; + }; + + _this.onWheel = function (event) { + if (!_this.wheelShouldRun(event)) return; + + _this.clearTimeout(); + + _this.setTimeout(_this.onWheelEnd); + + if (!_this.state._active) _this.onWheelStart(event);else _this.onWheelChange(event); + }; + + _this.onWheelStart = function (event) { + var _this$getWheelValuesF = _this.getWheelValuesFromEvent(event), + values = _this$getWheelValuesF.values, + delta = _this$getWheelValuesF.delta, + origin = _this$getWheelValuesF.origin; + + if (!_this.controller.config.eventOptions.passive) { + event.preventDefault(); + } else if (false) {} + + _this.updateSharedState(getGenericEventData(event)); + + var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true), { + initial: _this.state.values + }); + + _this.updateGestureState(_extends({}, startState, {}, _this.getMovement(values, startState), { + offset: values, + delta: delta, + origin: origin + })); + + _this.fireGestureHandler(); + }; + + _this.onWheelChange = function (event) { + var genericEventData = getGenericEventData(event); + + _this.updateSharedState(genericEventData); + + var _this$getWheelValuesF2 = _this.getWheelValuesFromEvent(event), + values = _this$getWheelValuesF2.values, + origin = _this$getWheelValuesF2.origin, + delta = _this$getWheelValuesF2.delta; + + var kinematics = _this.getKinematics(values, event); + + _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics, { + origin: origin, + delta: delta + })); + + _this.fireGestureHandler(); + }; + + _this.onWheelEnd = function () { + _this.state._active = false; + + _this.updateGestureState(_this.getMovement(_this.state.values)); + + _this.fireGestureHandler(); + }; + + return _this; + } + + var _proto = PinchRecognizer.prototype; + + _proto.addBindings = function addBindings() { + // Only try to use gesture events when they are supported and domTarget is set + // as React doesn't support gesture handlers. + if (this.controller.config.domTarget && supportsGestureEvents()) { + this.controller.addBindings('onGestureStart', this.onGestureStart); + this.controller.addBindings('onGestureChange', this.onGestureChange); + this.controller.addBindings(['onGestureEnd', 'onTouchCancel'], this.onGestureEnd); + this.controller.addBindings(['onTouchStart', 'onTouchMove'], this.updateTouchData); + } else { + this.controller.addBindings('onTouchStart', this.onPinchStart); + this.controller.addBindings('onTouchMove', this.onPinchChange); + this.controller.addBindings(['onTouchEnd', 'onTouchCancel'], this.onPinchEnd); + this.controller.addBindings('onWheel', this.onWheel); + } + }; + + return PinchRecognizer; +}(DistanceAngleRecognizer); + +/** + * @public + * + * Pinch hook. + * + * @param {Handler<'pinch'>} handler - the function fired every time the pinch gesture updates + * @param {(Config | {})} [config={}] - the config object including generic options and pinch options + * @returns {(...args: any[]) => HookReturnType} + */ + +function usePinch(handler, config) { + if (config === void 0) { + config = {}; + } + + var _config = config, + domTarget = _config.domTarget, + eventOptions = _config.eventOptions, + window = _config.window, + pinch = _objectWithoutPropertiesLoose(_config, ["domTarget", "eventOptions", "window"]); + /** + * TODO: at the moment we recompute the config object at every render + * this could probably be optimized + */ + + + var mergedConfig = _extends({}, getInternalGenericOptions({ + domTarget: domTarget, + eventOptions: eventOptions, + window: window + }), { + pinch: getInternalDistanceAngleOptions(pinch) + }); + + return useRecognizers({ + pinch: handler + }, [PinchRecognizer], mergedConfig); +} + +var WheelRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) { + _inheritsLoose(WheelRecognizer, _CoordinatesRecognize); + + function WheelRecognizer(controller, args) { + var _this; + + _this = _CoordinatesRecognize.call(this, 'wheel', controller, args) || this; + _this.ingKey = 'wheeling'; + _this.debounced = true; + + _this.wheelShouldRun = function (event) { + if (event.ctrlKey && 'pinch' in _this.controller.handlers) return false; + return _this.enabled; + }; + + _this.getValuesFromEvent = function (event) { + var prevValues = _this.state.values; + + var _getWheelEventValues = getWheelEventValues(event), + values = _getWheelEventValues.values; + + return { + values: addV(values, prevValues) + }; + }; + + _this.onWheel = function (event) { + if (!_this.wheelShouldRun(event)) return; + + _this.clearTimeout(); + + _this.setTimeout(_this.onWheelEnd); + + if (!_this.state._active) _this.onWheelStart(event);else _this.onWheelChange(event); + }; + + _this.onWheelStart = function (event) { + var _this$getValuesFromEv = _this.getValuesFromEvent(event), + values = _this$getValuesFromEv.values; + + _this.updateSharedState(getGenericEventData(event)); + + var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true), { + initial: _this.state.values + }); + + var movementDetection = _this.getMovement(values, startState); + + var delta = movementDetection.delta; + + _this.updateGestureState(_extends({}, startState, {}, movementDetection, { + distance: calculateDistance(delta), + direction: calculateDirection(delta) + })); + + _this.fireGestureHandler(); + }; + + _this.onWheelChange = function (event) { + var genericEventData = getGenericEventData(event); + + _this.updateSharedState(genericEventData); + + var _this$getValuesFromEv2 = _this.getValuesFromEvent(event), + values = _this$getValuesFromEv2.values; + + var kinematics = _this.getKinematics(values, event); + + _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics)); + + _this.fireGestureHandler(); + }; + + _this.onWheelEnd = function () { + _this.state._active = false; + + _this.updateGestureState(_extends({}, _this.getMovement(_this.state.values), { + velocities: [0, 0], + velocity: 0 + })); + + _this.fireGestureHandler(); + }; + + return _this; + } + + var _proto = WheelRecognizer.prototype; + + _proto.addBindings = function addBindings() { + this.controller.addBindings('onWheel', this.onWheel); + }; + + return WheelRecognizer; +}(CoordinatesRecognizer); + +/** + * @public + * + * Wheel hook. + * + * @param {Handler<'wheel'>} handler - the function fired every time the wheel gesture updates + * @param {(Config | {})} [config={}] - the config object including generic options and wheel options + * @returns {(...args: any[]) => HookReturnType} + */ + +function useWheel(handler, config) { + if (config === void 0) { + config = {}; + } + + var _config = config, + domTarget = _config.domTarget, + eventOptions = _config.eventOptions, + window = _config.window, + wheel = _objectWithoutPropertiesLoose(_config, ["domTarget", "eventOptions", "window"]); + /** + * TODO: at the moment we recompute the config object at every render + * this could probably be optimized + */ + + + var mergedConfig = _extends({}, getInternalGenericOptions({ + domTarget: domTarget, + eventOptions: eventOptions, + window: window + }), { + wheel: getInternalCoordinatesOptions(wheel) + }); + + return useRecognizers({ + wheel: handler + }, [WheelRecognizer], mergedConfig); +} + +var MoveRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) { + _inheritsLoose(MoveRecognizer, _CoordinatesRecognize); + + function MoveRecognizer(controller, args) { + var _this; + + _this = _CoordinatesRecognize.call(this, 'move', controller, args) || this; + _this.ingKey = 'moving'; + _this.debounced = true; + + _this.moveShouldRun = function () { + return _this.enabled; + }; + + _this.onMove = function (event) { + if (!_this.moveShouldRun()) return; + + _this.clearTimeout(); + + _this.setTimeout(_this.onMoveEnd); + + if (!_this.state._active) _this.onMoveStart(event);else _this.onMoveChange(event); + }; + + _this.onMoveStart = function (event) { + var _getPointerEventValue = getPointerEventValues(event), + values = _getPointerEventValue.values; + + _this.updateSharedState(getGenericEventData(event)); + + var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true)); + + _this.updateGestureState(_extends({}, startState, {}, _this.getMovement(values, startState))); + + _this.fireGestureHandler(); + }; + + _this.onMoveChange = function (event) { + var genericEventData = getGenericEventData(event); + + _this.updateSharedState(genericEventData); + + var _getPointerEventValue2 = getPointerEventValues(event), + values = _getPointerEventValue2.values; + + var kinematics = _this.getKinematics(values, event); + + _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics)); + + _this.fireGestureHandler(); + }; + + _this.onMoveEnd = function () { + _this.state._active = false; + + _this.updateGestureState(_extends({}, _this.getMovement(_this.state.values), { + velocities: [0, 0], + velocity: 0 + })); + + _this.fireGestureHandler(); + }; + + _this.onPointerEnter = function (event) { + _this.controller.state.shared.hovering = true; + if (!_this.controller.config.enabled) return; + + if (_this.controller.config.hover.enabled) { + var _getPointerEventValue3 = getPointerEventValues(event), + values = _getPointerEventValue3.values; + + var state = _extends({}, _this.controller.state.shared, {}, _this.state, {}, _this.getGenericPayload(event, true), { + values: values, + active: true, + hovering: true + }); + + _this.controller.handlers.hover(_extends({}, state, {}, _this.mapStateValues(state))); + } + + if ('move' in _this.controller.handlers) _this.onMoveStart(event); + }; + + _this.onPointerLeave = function (event) { + _this.controller.state.shared.hovering = false; + if ('move' in _this.controller.handlers) _this.onMoveEnd(); + + if (_this.controller.config.hover.enabled) { + var _getPointerEventValue4 = getPointerEventValues(event), + values = _getPointerEventValue4.values; + + var state = _extends({}, _this.controller.state.shared, {}, _this.state, {}, _this.getGenericPayload(event), { + values: values, + active: false + }); + + _this.controller.handlers.hover(_extends({}, state, {}, _this.mapStateValues(state))); + } + }; + + return _this; + } + + var _proto = MoveRecognizer.prototype; + + _proto.addBindings = function addBindings() { + if (this.controller.config.pointer) { + if ('move' in this.controller.handlers) { + this.controller.addBindings('onPointerMove', this.onMove); + } + + if ('hover' in this.controller.handlers) { + this.controller.addBindings('onPointerEnter', this.onPointerEnter); + this.controller.addBindings('onPointerLeave', this.onPointerLeave); + } + } else { + if ('move' in this.controller.handlers) { + this.controller.addBindings('onMouseMove', this.onMove); + } + + if ('hover' in this.controller.handlers) { + this.controller.addBindings('onMouseEnter', this.onPointerEnter); + this.controller.addBindings('onMouseLeave', this.onPointerLeave); + } + } + }; + + return MoveRecognizer; +}(CoordinatesRecognizer); + +/** + * @public + * + * Move hook. + * + * @param {Handler<'move'>} handler - the function fired every time the move gesture updates + * @param {(Config | {})} [config={}] - the config object including generic options and move options + * @returns {(...args: any[]) => HookReturnType} + */ + +function useMove(handler, config) { + if (config === void 0) { + config = {}; + } + + var _config = config, + domTarget = _config.domTarget, + eventOptions = _config.eventOptions, + window = _config.window, + move = _objectWithoutPropertiesLoose(_config, ["domTarget", "eventOptions", "window"]); + /** + * TODO: at the moment we recompute the config object at every render + * this could probably be optimized + */ + + + var mergedConfig = _extends({}, getInternalGenericOptions({ + domTarget: domTarget, + eventOptions: eventOptions, + window: window + }), { + move: getInternalCoordinatesOptions(move) + }); + + return useRecognizers({ + move: handler + }, [MoveRecognizer], mergedConfig); +} + +/** + * @public + * + * Hover hook. + * + * @param {Handler<'hover'>} handler - the function fired every time the hover gesture updates + * @param {(Config | {})} [config={}] - the config object including generic options and hover options + * @returns {(...args: any[]) => HookReturnType} + */ + +function useHover(handler, config) { + if (config === void 0) { + config = {}; + } + + var _config = config, + domTarget = _config.domTarget, + eventOptions = _config.eventOptions, + window = _config.window, + hover = _objectWithoutPropertiesLoose(_config, ["domTarget", "eventOptions", "window"]); + /** + * TODO: at the moment we recompute the config object at every render + * this could probably be optimized + */ + + + var mergedConfig = _extends({}, getInternalGenericOptions({ + domTarget: domTarget, + eventOptions: eventOptions, + window: window + }), { + hover: _extends({ + enabled: true + }, hover) + }); + + return useRecognizers({ + hover: handler + }, [MoveRecognizer], mergedConfig); +} + +var ScrollRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) { + _inheritsLoose(ScrollRecognizer, _CoordinatesRecognize); + + function ScrollRecognizer(controller, args) { + var _this; + + _this = _CoordinatesRecognize.call(this, 'scroll', controller, args) || this; + _this.ingKey = 'scrolling'; + _this.debounced = true; + + _this.scrollShouldRun = function () { + return _this.enabled; + }; + + _this.onScroll = function (event) { + if (!_this.scrollShouldRun()) return; + + _this.clearTimeout(); + + _this.setTimeout(_this.onScrollEnd); + + if (!_this.state._active) _this.onScrollStart(event);else _this.onScrollChange(event); + }; + + _this.onScrollStart = function (event) { + var _getScrollEventValues = getScrollEventValues(event), + values = _getScrollEventValues.values; + + _this.updateSharedState(getGenericEventData(event)); + + var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true), { + initial: _this.state.values + }); + + var movementDetection = _this.getMovement(values, startState); + + var delta = movementDetection.delta; + + _this.updateGestureState(_extends({}, startState, {}, movementDetection, { + distance: calculateDistance(delta), + direction: calculateDirection(delta) + })); + + _this.fireGestureHandler(); + }; + + _this.onScrollChange = function (event) { + var genericEventData = getGenericEventData(event); + + _this.updateSharedState(genericEventData); + + var _getScrollEventValues2 = getScrollEventValues(event), + values = _getScrollEventValues2.values; + + var kinematics = _this.getKinematics(values, event); + + _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics)); + + _this.fireGestureHandler(); + }; + + _this.onScrollEnd = function () { + _this.state._active = false; + + _this.updateGestureState(_extends({}, _this.getMovement(_this.state.values), { + velocities: [0, 0], + velocity: 0 + })); + + _this.fireGestureHandler(); + }; + + return _this; + } + + var _proto = ScrollRecognizer.prototype; + + _proto.addBindings = function addBindings() { + this.controller.addBindings('onScroll', this.onScroll); + }; + + return ScrollRecognizer; +}(CoordinatesRecognizer); + +/** + * @public + * + * Scroll hook. + * + * @param {Handler<'scroll'>} handler - the function fired every time the scroll gesture updates + * @param {(Config | {})} [config={}] - the config object including generic options and scroll options + * @returns {(...args: any[]) => HookReturnType} + */ + +function useScroll(handler, config) { + if (config === void 0) { + config = {}; + } + + var _config = config, + domTarget = _config.domTarget, + eventOptions = _config.eventOptions, + window = _config.window, + scroll = _objectWithoutPropertiesLoose(_config, ["domTarget", "eventOptions", "window"]); + /** + * TODO: at the moment we recompute the config object at every render + * this could probably be optimized + */ + + + var mergedConfig = _extends({}, getInternalGenericOptions({ + domTarget: domTarget, + eventOptions: eventOptions, + window: window + }), { + scroll: getInternalCoordinatesOptions(scroll) + }); + + return useRecognizers({ + scroll: handler + }, [ScrollRecognizer], mergedConfig); +} + +/** + * @public + * + * The most complete gesture hook, allowing support for multiple gestures. + * + * @param {UserHandlersPartial} handlers - an object with on[Gesture] keys containg gesture handlers + * @param {UseGestureConfig} [config={}] - the full config object + * @returns {(...args: any[]) => HookReturnType} + */ + +function useGesture(handlers, config) { + if (config === void 0) { + config = {}; + } + + /** + * If handlers contains {onDragStart, onDrag, onDragEnd, onMoveStart, onMove} + * actions will include 'onDrag' and 'onMove. + */ + var _React$useState = external_this_React_default.a.useState(function () { + return new Set(Object.keys(handlers).map(function (k) { + return k.replace(/End|Start/, ''); + })); + }), + actions = _React$useState[0]; + /** + * Here we compute the derived internal config based on the provided config object. + * We decompose the config into its generic and gesture options and compute each. + * TODO: this is currently done on every render! + */ + + + var _config = config, + drag = _config.drag, + wheel = _config.wheel, + move = _config.move, + scroll = _config.scroll, + pinch = _config.pinch, + hover = _config.hover, + restConfig = _objectWithoutPropertiesLoose(_config, ["drag", "wheel", "move", "scroll", "pinch", "hover"]); + + var mergedConfig = getInternalGenericOptions(restConfig); + var classes = []; + var internalHandlers = {}; // will hold reference to native handlers such as onClick, onMouseDown, etc. + + var _nativeHandlers = _extends({}, handlers); + + if (actions.has('onDrag')) { + classes.push(DragRecognizer); + internalHandlers.drag = includeStartEndHandlers(handlers, 'onDrag', _nativeHandlers); + mergedConfig.drag = getInternalDragOptions(drag); + } + + if (actions.has('onWheel')) { + classes.push(WheelRecognizer); + internalHandlers.wheel = includeStartEndHandlers(handlers, 'onWheel', _nativeHandlers); + mergedConfig.wheel = getInternalCoordinatesOptions(wheel); + } + + if (actions.has('onScroll')) { + classes.push(ScrollRecognizer); + internalHandlers.scroll = includeStartEndHandlers(handlers, 'onScroll', _nativeHandlers); + mergedConfig.scroll = getInternalCoordinatesOptions(scroll); + } + + if (actions.has('onMove')) { + classes.push(MoveRecognizer); + internalHandlers.move = includeStartEndHandlers(handlers, 'onMove', _nativeHandlers); + mergedConfig.move = getInternalCoordinatesOptions(move); + } + + if (actions.has('onPinch')) { + classes.push(PinchRecognizer); + internalHandlers.pinch = includeStartEndHandlers(handlers, 'onPinch', _nativeHandlers); + mergedConfig.pinch = getInternalDistanceAngleOptions(pinch); + } + + if (actions.has('onHover')) { + if (!actions.has('onMove')) classes.push(MoveRecognizer); + internalHandlers.hover = handlers.onHover; + mergedConfig.hover = _extends({ + enabled: true + }, hover); + delete _nativeHandlers.onHover; + } + + return useRecognizers(internalHandlers, classes, mergedConfig, _nativeHandlers); +} +/** + * @private + * + * This utility function will integrate start and end handlers into the regular + * handler function by using first and last conditions. + * + * @param {UserHandlersPartial} handlers - the handlers function object + * @param {HandlerKey} handlerKey - the key for which to integrate start and end handlers + * @returns + */ + +function includeStartEndHandlers(handlers, handlerKey, _nativeHandlers) { + var startKey = handlerKey + 'Start'; + var endKey = handlerKey + 'End'; + delete _nativeHandlers[handlerKey]; + delete _nativeHandlers[startKey]; + delete _nativeHandlers[endKey]; + + var fn = function fn(state) { + var memo = undefined; + if (state.first && startKey in handlers) handlers[startKey](state); + if (handlerKey in handlers) memo = handlers[handlerKey](state); + if (state.last && endKey in handlers) handlers[endKey](state); + return memo; + }; + + return fn; +} + + + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/index.js + + + + +/** + * External dependencies + */ + +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + + + + +function FlexComponent(_ref, ref) { + var _ref$align = _ref.align, + align = _ref$align === void 0 ? 'center' : _ref$align, className = _ref.className, - children = _ref.children; - return Object(external_this_wp_element_["createElement"])("div", { - className: classnames_default()('components-base-control', className) - }, Object(external_this_wp_element_["createElement"])("div", { - className: "components-base-control__field" - }, label && id && Object(external_this_wp_element_["createElement"])("label", { - className: "components-base-control__label", - htmlFor: id - }, label), label && !id && Object(external_this_wp_element_["createElement"])("span", { - className: "components-base-control__label" - }, label), children), !!help && Object(external_this_wp_element_["createElement"])("p", { - id: id + '__help', - className: "components-base-control__help" - }, help)); -} - -/* harmony default export */ var base_control = (BaseControl); + _ref$gap = _ref.gap, + gap = _ref$gap === void 0 ? 2 : _ref$gap, + _ref$justify = _ref.justify, + justify = _ref$justify === void 0 ? 'space-between' : _ref$justify, + _ref$isReversed = _ref.isReversed, + isReversed = _ref$isReversed === void 0 ? false : _ref$isReversed, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["align", "className", "gap", "justify", "isReversed"]); + + var classes = classnames_default()('components-flex', className); + return Object(external_this_wp_element_["createElement"])(Flex, Object(esm_extends["a" /* default */])({}, props, { + align: align, + className: classes, + ref: ref, + gap: gap, + justify: justify, + isReversed: isReversed + })); +} + +var flex_Flex = Object(external_this_wp_element_["forwardRef"])(FlexComponent); +/* harmony default export */ var flex = (flex_Flex); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/state.js + + + +function state_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function state_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { state_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { state_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +/** + * External dependencies + */ + +/** + * WordPress dependencies + */ + + + +var initialStateReducer = function initialStateReducer(state) { + return state; +}; + +var initialInputControlState = { + _event: {}, + error: null, + initialValue: '', + isDirty: false, + isDragEnabled: false, + isDragging: false, + isPressEnterToChange: false, + value: '' +}; +var actionTypes = { + CHANGE: 'CHANGE', + COMMIT: 'COMMIT', + DRAG_END: 'DRAG_END', + DRAG_START: 'DRAG_START', + DRAG: 'DRAG', + INVALIDATE: 'INVALIDATE', + PRESS_DOWN: 'PRESS_DOWN', + PRESS_ENTER: 'PRESS_ENTER', + PRESS_UP: 'PRESS_UP', + RESET: 'RESET', + UPDATE: 'UPDATE' +}; +var inputControlActionTypes = actionTypes; +/** + * Prepares initialState for the reducer. + * + * @param {Object} initialState The initial state. + * @return {Object} Prepared initialState for the reducer + */ + +function mergeInitialState() { + var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialInputControlState; + var value = initialState.value; + return state_objectSpread({}, initialInputControlState, {}, initialState, { + initialValue: value + }); +} +/** + * Composes multiple stateReducers into a single stateReducer, building + * the pipeline to control the flow for state and actions. + * + * @param {...Function} fns State reducers. + * @return {Function} The single composed stateReducer. + */ + + +var state_composeStateReducers = function composeStateReducers() { + for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) { + fns[_key] = arguments[_key]; + } + + return function () { + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + return fns.reduceRight(function (state, fn) { + var fnState = fn.apply(void 0, args); + return Object(external_this_lodash_["isEmpty"])(fnState) ? state : state_objectSpread({}, state, {}, fnState); + }, {}); + }; +}; +/** + * Creates a reducer that opens the channel for external state subscription + * and modification. + * + * This technique uses the "stateReducer" design pattern: + * https://kentcdodds.com/blog/the-state-reducer-pattern/ + * + * @param {Function} composedStateReducers A custom reducer that can subscribe and modify state. + * @return {Function} The reducer. + */ + +function inputControlStateReducer(composedStateReducers) { + return function (state, action) { + var nextState = state_objectSpread({}, state); + + var type = action.type, + payload = action.payload; + + switch (type) { + /** + * Keyboard events + */ + case actionTypes.PRESS_UP: + nextState.isDirty = false; + break; + + case actionTypes.PRESS_DOWN: + nextState.isDirty = false; + break; + + /** + * Drag events + */ + + case actionTypes.DRAG_START: + nextState.isDragging = true; + break; + + case actionTypes.DRAG_END: + nextState.isDragging = false; + break; + + /** + * Input events + */ + + case actionTypes.CHANGE: + nextState.error = null; + nextState.value = payload.value; + + if (state.isPressEnterToChange) { + nextState.isDirty = true; + } + + break; + + case actionTypes.COMMIT: + nextState.value = payload.value; + nextState.isDirty = false; + break; + + case actionTypes.RESET: + nextState.error = null; + nextState.isDirty = false; + nextState.value = payload.value || state.initialValue; + break; + + case actionTypes.UPDATE: + if (payload.value !== state.value) { + nextState.value = payload.value; + nextState.isDirty = false; + } + + break; + + /** + * Validation + */ + + case actionTypes.INVALIDATE: + nextState.error = payload.error; + break; + } + + if (payload.event) { + nextState._event = payload.event; + } + /** + * Send the nextState + action to the composedReducers via + * this "bridge" mechanism. This allows external stateReducers + * to hook into actions, and modify state if needed. + */ + + + return composedStateReducers(nextState, action); + }; +} +/** + * A custom hook that connects and external stateReducer with an internal + * reducer. This hook manages the internal state of InputControl. + * However, by connecting an external stateReducer function, other + * components can react to actions as well as modify state before it is + * applied. + * + * This technique uses the "stateReducer" design pattern: + * https://kentcdodds.com/blog/the-state-reducer-pattern/ + * + * @param {Function} stateReducer An external state reducer. + * @param {Object} initialState The initial state for the reducer. + * @return {Object} State, dispatch, and a collection of actions. + */ + + +function useInputControlStateReducer() { + var stateReducer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialStateReducer; + var initialState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : initialInputControlState; + + var _useReducer = Object(external_this_wp_element_["useReducer"])(inputControlStateReducer(stateReducer), mergeInitialState(initialState)), + _useReducer2 = Object(slicedToArray["a" /* default */])(_useReducer, 2), + state = _useReducer2[0], + dispatch = _useReducer2[1]; + + var createChangeEvent = function createChangeEvent(type) { + return function (nextValue, event) { + /** + * Persist allows for the (Synthetic) event to be used outside of + * this function call. + * https://reactjs.org/docs/events.html#event-pooling + */ + if (event && event.persist) { + event.persist(); + } + + dispatch({ + type: type, + payload: { + value: nextValue, + event: event + } + }); + }; + }; + + var createKeyEvent = function createKeyEvent(type) { + return function (event) { + /** + * Persist allows for the (Synthetic) event to be used outside of + * this function call. + * https://reactjs.org/docs/events.html#event-pooling + */ + if (event && event.persist) { + event.persist(); + } + + dispatch({ + type: type, + payload: { + event: event + } + }); + }; + }; + + var createDragEvent = function createDragEvent(type) { + return function (dragProps) { + dispatch({ + type: type, + payload: dragProps + }); + }; + }; + /** + * Actions for the reducer + */ + + + var change = createChangeEvent(actionTypes.CHANGE); + var inValidate = createChangeEvent(actionTypes.INVALIDATE); + var reset = createChangeEvent(actionTypes.RESET); + var commit = createChangeEvent(actionTypes.COMMIT); + var update = createChangeEvent(actionTypes.UPDATE); + var dragStart = createDragEvent(actionTypes.DRAG_START); + var drag = createDragEvent(actionTypes.DRAG); + var dragEnd = createDragEvent(actionTypes.DRAG_END); + var pressUp = createKeyEvent(actionTypes.PRESS_UP); + var pressDown = createKeyEvent(actionTypes.PRESS_DOWN); + var pressEnter = createKeyEvent(actionTypes.PRESS_ENTER); + return { + change: change, + commit: commit, + dispatch: dispatch, + drag: drag, + dragEnd: dragEnd, + dragStart: dragStart, + inValidate: inValidate, + pressDown: pressDown, + pressEnter: pressEnter, + pressUp: pressUp, + reset: reset, + state: state, + update: update + }; +} + +// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js +function _taggedTemplateLiteral(strings, raw) { + if (!raw) { + raw = strings.slice(0); + } + + return Object.freeze(Object.defineProperties(strings, { + raw: { + value: Object.freeze(raw) + } + })); +} +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/styles/font-family.js +var fontFamily = "font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto,\nOxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;"; + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/styles/emotion-css.js +/** + * External dependencies + */ + +/* harmony default export */ var emotion_css = (css_browser_esm); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/styles/text-mixins.js + + +function _templateObject9() { + var data = _taggedTemplateLiteral(["\n\t", "\n\t", "\n"]); + + _templateObject9 = function _templateObject9() { + return data; + }; + + return data; +} + +function _templateObject8() { + var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t"]); + + _templateObject8 = function _templateObject8() { + return data; + }; + + return data; +} + +function _templateObject7() { + var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t"]); + + _templateObject7 = function _templateObject7() { + return data; + }; + + return data; +} + +function _templateObject6() { + var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t"]); + + _templateObject6 = function _templateObject6() { + return data; + }; + + return data; +} + +function _templateObject5() { + var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t"]); + + _templateObject5 = function _templateObject5() { + return data; + }; + + return data; +} + +function _templateObject4() { + var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t"]); + + _templateObject4 = function _templateObject4() { + return data; + }; + + return data; +} + +function _templateObject3() { + var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t"]); + + _templateObject3 = function _templateObject3() { + return data; + }; + + return data; +} + +function _templateObject2() { + var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t"]); + + _templateObject2 = function _templateObject2() { + return data; + }; + + return data; +} + +function _templateObject() { + var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t"]); + + _templateObject = function _templateObject() { + return data; + }; + + return data; +} + +/** + * Internal dependencies + */ + + +var fontWeightNormal = "font-weight: 400;"; +var fontWeightSemibold = "font-weight: 600;"; +var text_mixins_title = "\n ".concat(fontWeightNormal, "\n"); +var titleLarge = "\n\tfont-size: 32px;\n\tline-height: 40px;\n"; +var titleMedium = "\n\tfont-size: 24px;\n\tline-height: 32px;\n"; +var titleSmall = "\n\tfont-size: 20px;\n\tline-height: 28px;\n"; +var subtitle = "\n\t".concat(fontWeightSemibold, "\n\tfont-size: 14px;\n\tline-height: 20px;\n"); +var subtitleLarge = "\n\tfont-size: 16px;\n\tline-height: 24px;\n"; +var subtitleSmall = "\n\tfont-size: 14px;\n\tline-height: 20px;\n"; +var text_mixins_body = "\n\t".concat(fontWeightNormal, "\n"); +var bodyLarge = "\n\tfont-size: 16px;\n\tline-height: 24px;\n"; +var bodySmall = "\n\tfont-size: 14px;\n\tline-height: 20px;\n"; +var text_mixins_button = "\n ".concat(fontWeightSemibold, "\n font-size: 14px;\n line-height: 20px;\n"); +var caption = "\n\t".concat(fontWeightNormal, "\n\tfont-size: 12px;\n\tline-height: 16px;\n"); +var text_mixins_label = "\n\t".concat(fontWeightSemibold, "\n\tfont-size: 12px;\n\tline-height: 16px;\n"); +/** + * @typedef {'title.large'|'title.medium'|'title.small'|'subtitle'|'subtitle.small'|'body'|'body.large'|'body.small'|'button'|'caption'|'label'} TextVariant + */ + +/** + * @param {TextVariant} variantName + */ + +var text_mixins_variant = function variant() { + var variantName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'body'; + + switch (variantName) { + case 'title.large': + return emotion_css(_templateObject(), text_mixins_title, titleLarge); + + case 'title.medium': + return emotion_css(_templateObject2(), text_mixins_title, titleMedium); + + case 'title.small': + return emotion_css(_templateObject3(), text_mixins_title, titleSmall); + + case 'subtitle': + return emotion_css(_templateObject4(), subtitle, subtitleLarge); + + case 'subtitle.small': + return emotion_css(_templateObject5(), subtitle, subtitleSmall); + + case 'body': + return emotion_css(_templateObject6(), text_mixins_body); + + case 'body.large': + return emotion_css(_templateObject7(), text_mixins_body, bodyLarge); + + case 'body.small': + return emotion_css(_templateObject8(), text_mixins_body, bodySmall); + + case 'button': + return text_mixins_button; + + case 'caption': + return caption; + + case 'label': + return text_mixins_label; + } +}; +/** + * @typedef {Object} TextProps + * @property {TextVariant} variant one of TextVariant to be used + */ + +/** + * @param {TextProps} props + */ + + +var text_mixins_text = function text(props) { + return emotion_css(_templateObject9(), fontFamily, text_mixins_variant(props.variant)); +}; + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/index.js + + +/** + * Internal dependencies + */ + + +var Text = styled_base_browser_esm("p", { + target: "e15wbhsk0", + label: "Text" +})("\n\tbox-sizing: border-box;\n\tmargin: 0;\n", text_mixins_text, true ? "" : undefined); + +/* harmony default export */ var build_module_text = (Text); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/styles/input-control-styles.js + + + + +function input_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +var FLOATING_LABEL_TRANSITION_SPEED = '60ms'; + +var input_control_styles_rootFloatLabelStyles = function rootFloatLabelStyles(_ref3) { + var isFloatingLabel = _ref3.isFloatingLabel; + var paddingTop = isFloatingLabel ? 5 : 0; + return /*#__PURE__*/css_browser_esm({ + paddingTop: paddingTop + }, true ? "" : undefined); +}; + +var input_control_styles_ref = true ? { + name: "r6z5ec", + styles: "z-index:1;" +} : undefined; + +var rootFocusedStyles = function rootFocusedStyles(_ref4) { + var isFocused = _ref4.isFocused; + if (!isFocused) return ''; + return input_control_styles_ref; +}; + +var input_control_styles_Root = styled_base_browser_esm("div", { + target: "e1cr7zh10", + label: "Root" +})("box-sizing:border-box;position:relative;border-radius:2px;", input_control_styles_rootFloatLabelStyles, ";", rootFocusedStyles, ";" + ( true ? "" : undefined)); + +var input_control_styles_containerDisabledStyle = function containerDisabledStyle(_ref5) { + var disabled = _ref5.disabled; + var backgroundColor = disabled ? colors_color('ui.backgroundDisabled') : colors_color('ui.background'); + return /*#__PURE__*/css_browser_esm({ + backgroundColor: backgroundColor + }, true ? "" : undefined); +}; + +var Container = styled_base_browser_esm("div", { + target: "e1cr7zh11", + label: "Container" +})("align-items:center;box-sizing:border-box;border-radius:inherit;display:flex;position:relative;", input_control_styles_containerDisabledStyle, ";" + ( true ? "" : undefined)); + +var input_control_styles_disabledStyles = function disabledStyles(_ref6) { + var disabled = _ref6.disabled; + if (!disabled) return ''; + return /*#__PURE__*/css_browser_esm({ + color: colors_color('ui.textDisabled') + }, true ? "" : undefined); +}; + +var input_control_styles_fontSizeStyles = function fontSizeStyles(_ref7) { + var size = _ref7.size; + var sizes = { + default: '13px', + small: '11px' + }; + var fontSize = sizes[size]; + var fontSizeMobile = '16px'; + if (!fontSize) return ''; + return /*#__PURE__*/css_browser_esm("font-size:", fontSizeMobile, ";@media ( min-width:600px ){font-size:", fontSize, ";}" + ( true ? "" : undefined)); +}; + +var input_control_styles_sizeStyles = function sizeStyles(_ref8) { + var size = _ref8.size; + var sizes = { + default: { + height: 30, + lineHeight: 1, + minHeight: 30 + }, + small: { + height: 24, + lineHeight: 1, + minHeight: 24 + } + }; + var style = sizes[size] || sizes.default; + return /*#__PURE__*/css_browser_esm(style, true ? "" : undefined); +}; + +var input_control_styles_placeholderStyles = function placeholderStyles(_ref9) { + var isFilled = _ref9.isFilled, + isFloating = _ref9.isFloating, + isFloatingLabel = _ref9.isFloatingLabel; + var opacity = 1; + + if (isFloatingLabel) { + if (!isFilled && !isFloating) { + opacity = 0; + } + } + + return /*#__PURE__*/css_browser_esm("&::placeholder{opacity:", opacity, ";}&::-webkit-input-placeholder{line-height:normal;}" + ( true ? "" : undefined)); +}; + +var input_control_styles_dragStyles = function dragStyles(_ref10) { + var isDragging = _ref10.isDragging, + dragCursor = _ref10.dragCursor; + var defaultArrowStyles = ''; + var activeDragCursorStyles = ''; + + if (isDragging) { + defaultArrowStyles = /*#__PURE__*/css_browser_esm("cursor:", dragCursor, ";user-select:none;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none !important;margin:0 !important;}" + ( true ? "" : undefined)); + } + + if (isDragging && dragCursor) { + activeDragCursorStyles = /*#__PURE__*/css_browser_esm("&:active{cursor:", dragCursor, ";}" + ( true ? "" : undefined)); + } + + return /*#__PURE__*/css_browser_esm(defaultArrowStyles, ";", activeDragCursorStyles, ";" + ( true ? "" : undefined)); +}; // TODO: Resolve need to use &&& to increase specificity +// https://github.com/WordPress/gutenberg/issues/18483 + + +var input_control_styles_Input = styled_base_browser_esm("input", { + target: "e1cr7zh12", + label: "Input" +})("&&&{background-color:transparent;box-sizing:border-box;border:none;box-shadow:none !important;color:", colors_color('black'), ";display:block;outline:none;padding-left:8px;padding-right:8px;width:100%;", input_control_styles_dragStyles, ";", input_control_styles_disabledStyles, ";", input_control_styles_fontSizeStyles, ";", input_control_styles_sizeStyles, ";", input_control_styles_placeholderStyles, ";}" + ( true ? "" : undefined)); + +var input_control_styles_laberColor = function laberColor(_ref11) { + var isFloatingLabel = _ref11.isFloatingLabel, + isFilled = _ref11.isFilled, + isFloating = _ref11.isFloating; + var isPlaceholder = isFloatingLabel && !isFilled; + var textColor = isPlaceholder || isFloating ? colors_color('ui.textDisabled') : 'currentColor'; + return /*#__PURE__*/css_browser_esm({ + color: textColor + }, true ? "" : undefined); +}; + +var input_control_styles_labelFontSize = function labelFontSize(_ref12) { + var isFloatingLabel = _ref12.isFloatingLabel, + size = _ref12.size; + var sizes = { + default: '13px', + small: '11px' + }; + var fontSize = sizes[size]; + var lineHeight = isFloatingLabel ? 1.2 : null; + return /*#__PURE__*/css_browser_esm({ + fontSize: fontSize, + lineHeight: lineHeight + }, true ? "" : undefined); +}; + +var input_control_styles_labelPosition = function labelPosition(_ref13) { + var isFloatingLabel = _ref13.isFloatingLabel, + isFloating = _ref13.isFloating, + size = _ref13.size; + var paddingBottom = isFloatingLabel ? 0 : 4; + var position = isFloatingLabel ? 'absolute' : null; + var pointerEvents = isFloating ? null : 'none'; + var isSmall = size === 'small'; + var offsetTop = isSmall ? 1 : 2; + var offset = isSmall ? '-1px' : '-3px'; + var marginTop = isFloating ? 0 : offsetTop; + var marginLeft = isFloatingLabel ? 8 : 0; + var transform = isFloating ? "translate( 0, calc(-100% + ".concat(offset, ") ) scale( 0.75 )") : 'translate( 0, -50%) scale(1)'; + + if (!isFloatingLabel) { + transform = null; + } + + var transition = isFloatingLabel ? "transform ".concat(FLOATING_LABEL_TRANSITION_SPEED, " linear") : null; + return /*#__PURE__*/css_browser_esm({ + marginTop: marginTop, + paddingBottom: paddingBottom, + position: position, + pointerEvents: pointerEvents, + transition: transition, + transform: transform + }, rtl({ + marginLeft: marginLeft + })(), rtl({ + transformOrigin: 'top left' + }, { + transformOrigin: 'top right' + })(), true ? "" : undefined); +}; + +var input_control_styles_ref2 = true ? { + name: "fjfd5j", + styles: "max-width:calc( 100% - 10px );overflow:hidden;text-overflow:ellipsis;white-space:nowrap;" +} : undefined; + +var labelTruncation = function labelTruncation(_ref14) { + var isFloating = _ref14.isFloating; + if (isFloating) return ''; + return input_control_styles_ref2; +}; + +var BaseLabel = /*#__PURE__*/styled_base_browser_esm(build_module_text, { + target: "e1cr7zh13", + label: "BaseLabel" +})("&&&{box-sizing:border-box;display:block;margin:0;max-width:100%;padding:0;pointer-events:none;top:50%;transition:transform ", FLOATING_LABEL_TRANSITION_SPEED, " linear,max-width ", FLOATING_LABEL_TRANSITION_SPEED, " linear;z-index:1;", input_control_styles_laberColor, ";", input_control_styles_labelFontSize, ";", input_control_styles_labelPosition, ";", labelTruncation, ";", reduceMotion('transition'), ";", rtl({ + left: 0 +}), "}" + ( true ? "" : undefined)); + +var input_control_styles_Label = function Label(props) { + return Object(external_this_wp_element_["createElement"])(BaseLabel, Object(esm_extends["a" /* default */])({}, props, { + as: "label" + })); +}; + +var input_control_styles_fieldsetTopStyles = function fieldsetTopStyles(_ref15) { + var isFloatingLabel = _ref15.isFloatingLabel; + var top = isFloatingLabel ? -5 : 0; + return /*#__PURE__*/css_browser_esm({ + top: top + }, true ? "" : undefined); +}; + +var input_control_styles_fieldsetFocusedStyles = function fieldsetFocusedStyles(_ref16) { + var disabled = _ref16.disabled, + isFocused = _ref16.isFocused; + var borderColor = isFocused ? colors_color('ui.borderFocus') : colors_color('ui.border'); + + if (disabled) { + borderColor = 'ui.borderDisabled'; + } + + var borderWidth = isFocused ? 2 : 1; + var borderStyle = 'solid'; + return /*#__PURE__*/css_browser_esm({ + borderColor: borderColor, + borderStyle: borderStyle, + borderWidth: borderWidth + }, true ? "" : undefined); +}; + +var Fieldset = styled_base_browser_esm("fieldset", { + target: "e1cr7zh14", + label: "Fieldset" +})("&&&{box-sizing:border-box;border-radius:inherit;bottom:0;left:0;margin:0;padding:0;pointer-events:none;position:absolute;right:0;", input_control_styles_fieldsetFocusedStyles, ";", input_control_styles_fieldsetTopStyles, ";", rtl({ + paddingLeft: 2 +}), "}" + ( true ? "" : undefined)); + +var input_control_styles_legendSize = function legendSize(_ref17) { + var isFloating = _ref17.isFloating, + size = _ref17.size; + var maxWidth = isFloating ? 1000 : 0.01; + var sizes = { + default: 9.75, + small: 8.25 + }; + var fontSize = sizes[size]; + return /*#__PURE__*/css_browser_esm({ + fontSize: fontSize, + maxWidth: maxWidth + }, true ? "" : undefined); +}; + +var Legend = styled_base_browser_esm("legend", { + target: "e1cr7zh15", + label: "Legend" +})("&&&{box-sizing:border-box;display:block;height:11px;line-height:11px;margin:0;padding:0;transition:max-width ", FLOATING_LABEL_TRANSITION_SPEED, " linear;visibility:hidden;width:auto;", input_control_styles_legendSize, ";", reduceMotion('transition'), ";}" + ( true ? "" : undefined)); + +var BaseLegendText = /*#__PURE__*/styled_base_browser_esm(build_module_text, { + target: "e1cr7zh16", + label: "BaseLegendText" +})("box-sizing:border-box;display:inline-block;", rtl({ + paddingLeft: 4, + paddingRight: 5 +}), true ? "" : undefined); + +var input_control_styles_LegendText = function LegendText(props) { + return Object(external_this_wp_element_["createElement"])(BaseLegendText, Object(esm_extends["a" /* default */])({}, props, { + as: "span" + })); +}; +var Suffix = styled_base_browser_esm("span", { + target: "e1cr7zh17", + label: "Suffix" +})( true ? { + name: "1pxuk39", + styles: "box-sizing:border-box;display:block;" +} : undefined); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/backdrop.js + + +/** + * WordPress dependencies + */ + +/** + * Internal dependencies + */ + + + +function Backdrop(_ref) { + var _ref$disabled = _ref.disabled, + disabled = _ref$disabled === void 0 ? false : _ref$disabled, + _ref$isFloating = _ref.isFloating, + isFloating = _ref$isFloating === void 0 ? false : _ref$isFloating, + _ref$isFloatingLabel = _ref.isFloatingLabel, + isFloatingLabel = _ref$isFloatingLabel === void 0 ? false : _ref$isFloatingLabel, + _ref$isFocused = _ref.isFocused, + isFocused = _ref$isFocused === void 0 ? false : _ref$isFocused, + label = _ref.label, + _ref$size = _ref.size, + size = _ref$size === void 0 ? 'default' : _ref$size; + return Object(external_this_wp_element_["createElement"])(Fieldset, { + "aria-hidden": "true", + className: "components-input-control__backdrop", + disabled: disabled, + isFloatingLabel: isFloatingLabel, + isFocused: isFocused + }, isFloatingLabel && Object(external_this_wp_element_["createElement"])(Legend, { + "aria-hidden": "true", + className: "components-input-control__backdrop-label", + isFloating: isFloating, + size: size + }, Object(external_this_wp_element_["createElement"])(input_control_styles_LegendText, { + className: "components-input-control__backdrop-text" + }, label))); +} + +var MemoizedBackdrop = Object(external_this_wp_element_["memo"])(Backdrop); +/* harmony default export */ var backdrop = (MemoizedBackdrop); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/utils.js +/** + * WordPress dependencies + */ + +/** + * Gets a CSS cursor value based on a drag direction. + * + * @param {string} dragDirection The drag direction. + * @return {string} The CSS cursor value. + */ + +function getDragCursor(dragDirection) { + var dragCursor = 'ns-resize'; + + switch (dragDirection) { + case 'n': + case 's': + dragCursor = 'ns-resize'; + break; + + case 'e': + case 'w': + dragCursor = 'ew-resize'; + break; + } + + return dragCursor; +} +/** + * Custom hook that renders a drag cursor when dragging. + * + * @param {boolean} isDragging The dragging state. + * @param {string} dragDirection The drag direction. + * + * @return {string} The CSS cursor value. + */ + +function useDragCursor(isDragging, dragDirection) { + var dragCursor = getDragCursor(dragDirection); + Object(external_this_wp_element_["useEffect"])(function () { + if (isDragging) { + document.documentElement.style.cursor = dragCursor; + document.documentElement.style.pointerEvents = 'none'; + } else { + document.documentElement.style.cursor = null; + document.documentElement.style.pointerEvents = null; + } + }, [isDragging]); + return dragCursor; +} + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/values.js +/** + * Determines if a value is null or undefined. + * + * @param {any} value The value to check. + * @return {boolean} Whether value is null or undefined. + */ +function isValueDefined(value) { + return value !== undefined && value !== null; +} +/** + * Determines if a value is empty, null, or undefined. + * + * @param {any} value The value to check. + * @return {boolean} Whether value is empty. + */ + +function isValueEmpty(value) { + var isEmptyString = value === ''; + return !isValueDefined(value) || isEmptyString; +} +/** + * Attempts to get a defined/non-null value from a collection of arguments. + * + * @param {Array} values Values to derive from. + * @param {any} fallbackValue Fallback value if there are no defined values. + * @return {any} A defined value or the fallback value. + */ + +function getDefinedValue() { + var _values$find; + + var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var fallbackValue = arguments.length > 1 ? arguments[1] : undefined; + return (_values$find = values.find(isValueDefined)) !== null && _values$find !== void 0 ? _values$find : fallbackValue; +} + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/input-field.js + + + + +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ + + + + + + +function InputField(_ref, ref) { + var _ref$disabled = _ref.disabled, + disabled = _ref$disabled === void 0 ? false : _ref$disabled, + _ref$dragDirection = _ref.dragDirection, + dragDirection = _ref$dragDirection === void 0 ? 'n' : _ref$dragDirection, + _ref$dragThreshold = _ref.dragThreshold, + dragThreshold = _ref$dragThreshold === void 0 ? 10 : _ref$dragThreshold, + id = _ref.id, + _ref$isDragEnabled = _ref.isDragEnabled, + isDragEnabled = _ref$isDragEnabled === void 0 ? false : _ref$isDragEnabled, + _ref$isFloating = _ref.isFloating, + isFloating = _ref$isFloating === void 0 ? false : _ref$isFloating, + _ref$isFloatingLabelS = _ref.isFloatingLabelSet, + isFloatingLabelSet = _ref$isFloatingLabelS === void 0 ? false : _ref$isFloatingLabelS, + _ref$isPressEnterToCh = _ref.isPressEnterToChange, + isPressEnterToChange = _ref$isPressEnterToCh === void 0 ? false : _ref$isPressEnterToCh, + _ref$onBlur = _ref.onBlur, + onBlur = _ref$onBlur === void 0 ? external_this_lodash_["noop"] : _ref$onBlur, + _ref$onChange = _ref.onChange, + onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange, + _ref$onDrag = _ref.onDrag, + onDrag = _ref$onDrag === void 0 ? external_this_lodash_["noop"] : _ref$onDrag, + _ref$onDragEnd = _ref.onDragEnd, + onDragEnd = _ref$onDragEnd === void 0 ? external_this_lodash_["noop"] : _ref$onDragEnd, + _ref$onDragStart = _ref.onDragStart, + onDragStart = _ref$onDragStart === void 0 ? external_this_lodash_["noop"] : _ref$onDragStart, + _ref$onFocus = _ref.onFocus, + onFocus = _ref$onFocus === void 0 ? external_this_lodash_["noop"] : _ref$onFocus, + _ref$onKeyDown = _ref.onKeyDown, + onKeyDown = _ref$onKeyDown === void 0 ? external_this_lodash_["noop"] : _ref$onKeyDown, + onUpdateValue = _ref.onUpdateValue, + _ref$onValidate = _ref.onValidate, + onValidate = _ref$onValidate === void 0 ? external_this_lodash_["noop"] : _ref$onValidate, + _ref$size = _ref.size, + size = _ref$size === void 0 ? 'default' : _ref$size, + _ref$stateReducer = _ref.stateReducer, + stateReducer = _ref$stateReducer === void 0 ? function (state) { + return state; + } : _ref$stateReducer, + valueProp = _ref.value, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["disabled", "dragDirection", "dragThreshold", "id", "isDragEnabled", "isFloating", "isFloatingLabelSet", "isPressEnterToChange", "onBlur", "onChange", "onDrag", "onDragEnd", "onDragStart", "onFocus", "onKeyDown", "onUpdateValue", "onValidate", "size", "stateReducer", "value"]); + + var _useInputControlState = useInputControlStateReducer(stateReducer, { + isDragEnabled: isDragEnabled, + value: valueProp, + isPressEnterToChange: isPressEnterToChange + }), + state = _useInputControlState.state, + change = _useInputControlState.change, + commit = _useInputControlState.commit, + drag = _useInputControlState.drag, + dragEnd = _useInputControlState.dragEnd, + dragStart = _useInputControlState.dragStart, + invalidate = _useInputControlState.invalidate, + pressDown = _useInputControlState.pressDown, + pressEnter = _useInputControlState.pressEnter, + pressUp = _useInputControlState.pressUp, + reset = _useInputControlState.reset, + update = _useInputControlState.update; + + var _event = state._event, + value = state.value, + isDragging = state.isDragging, + isDirty = state.isDirty; + var valueRef = Object(external_this_wp_element_["useRef"])(value); + var dragCursor = useDragCursor(isDragging, dragDirection); + Object(external_this_wp_element_["useEffect"])(function () { + /** + * Handles syncing incoming value changes with internal state. + * This effectively enables a "controlled" state. + * https://reactjs.org/docs/forms.html#controlled-components + */ + if (valueProp !== valueRef.current) { + update(valueProp); + valueRef.current = valueProp; // Quick return to avoid firing the onChange callback + + return; + } + /** + * Fires the onChange callback when internal state value changes. + */ + + + if (value !== valueRef.current && !isDirty) { + onChange(value, { + event: _event + }); + onUpdateValue(!isValueEmpty(value)); + valueRef.current = value; + } + }, [value, isDirty, valueProp]); + + var handleOnBlur = function handleOnBlur(event) { + onBlur(event); + /** + * If isPressEnterToChange is set, this commits the value to + * the onChange callback. + */ + + if (isPressEnterToChange && isDirty) { + if (!isValueEmpty(value)) { + handleOnCommit({ + target: { + value: value + } + }, event); + } else { + reset(valueProp); + } + } + }; + + var handleOnFocus = function handleOnFocus(event) { + onFocus(event); + }; + + var handleOnChange = function handleOnChange(event) { + var nextValue = event.target.value; + change(nextValue, event); + }; + + var handleOnCommit = function handleOnCommit(event) { + var nextValue = event.target.value; + + try { + onValidate(nextValue, { + event: event + }); + commit(nextValue, event); + } catch (err) { + invalidate(err, { + event: event + }); + } + }; + + var handleOnKeyDown = function handleOnKeyDown(event) { + var keyCode = event.keyCode; + onKeyDown(event); + + switch (keyCode) { + case external_this_wp_keycodes_["UP"]: + pressUp(event); + break; + + case external_this_wp_keycodes_["DOWN"]: + pressDown(event); + break; + + case external_this_wp_keycodes_["ENTER"]: + pressEnter(event); + + if (isPressEnterToChange) { + event.preventDefault(); + handleOnCommit(event); + } + + break; + } + }; + + var dragGestureProps = useDrag(function (dragProps) { + var distance = dragProps.distance, + dragging = dragProps.dragging, + event = dragProps.event; + if (!isDragEnabled) return; + if (!distance) return; + event.stopPropagation(); + /** + * Quick return if no longer dragging. + * This prevents unnecessary value calculations. + */ + + if (!dragging) { + onDragEnd(dragProps); + dragEnd(dragProps); + return; + } + + onDrag(dragProps); + drag(dragProps); + + if (!isDragging) { + onDragStart(dragProps); + dragStart(dragProps); + } + }, { + threshold: dragThreshold, + enabled: isDragEnabled + }); + return Object(external_this_wp_element_["createElement"])(input_control_styles_Input, Object(esm_extends["a" /* default */])({}, props, dragGestureProps(), { + className: "components-input-control__input", + disabled: disabled, + dragCursor: dragCursor, + isDragging: isDragging, + id: id, + isFloating: isFloating, + isFloatingLabel: isFloatingLabelSet, + onBlur: handleOnBlur, + onChange: handleOnChange, + onFocus: handleOnFocus, + onKeyDown: handleOnKeyDown, + ref: ref, + size: size, + value: value + })); +} + +var ForwardedComponent = Object(external_this_wp_element_["forwardRef"])(InputField); +/* harmony default export */ var input_field = (ForwardedComponent); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/label.js + + + + +/** + * Internal dependencies + */ + + +function label_Label(_ref) { + var children = _ref.children, + hideLabelFromVision = _ref.hideLabelFromVision, + htmlFor = _ref.htmlFor, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["children", "hideLabelFromVision", "htmlFor"]); + + if (!children) return null; + + if (hideLabelFromVision) { + return Object(external_this_wp_element_["createElement"])(visually_hidden, { + as: "label", + htmlFor: htmlFor + }, children); + } + + return Object(external_this_wp_element_["createElement"])(input_control_styles_Label, Object(esm_extends["a" /* default */])({ + htmlFor: htmlFor + }, props), children); +} + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/index.js + + + + + +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ + + + + + + + +function useUniqueId(idProp) { + var instanceId = Object(external_this_wp_compose_["useInstanceId"])(InputControl); + var id = "inspector-input-control-".concat(instanceId); + return idProp || id; +} + +function InputControl(_ref, ref) { + var _ref$__unstableStateR = _ref.__unstableStateReducer, + stateReducer = _ref$__unstableStateR === void 0 ? function (state) { + return state; + } : _ref$__unstableStateR, + children = _ref.children, + className = _ref.className, + _ref$disabled = _ref.disabled, + disabled = _ref$disabled === void 0 ? false : _ref$disabled, + _ref$hideLabelFromVis = _ref.hideLabelFromVision, + hideLabelFromVision = _ref$hideLabelFromVis === void 0 ? false : _ref$hideLabelFromVis, + idProp = _ref.id, + _ref$isPressEnterToCh = _ref.isPressEnterToChange, + isPressEnterToChange = _ref$isPressEnterToCh === void 0 ? false : _ref$isPressEnterToCh, + _ref$isFloatingLabel = _ref.isFloatingLabel, + isFloatingLabel = _ref$isFloatingLabel === void 0 ? false : _ref$isFloatingLabel, + label = _ref.label, + _ref$onBlur = _ref.onBlur, + onBlur = _ref$onBlur === void 0 ? external_this_lodash_["noop"] : _ref$onBlur, + _ref$onChange = _ref.onChange, + onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange, + _ref$onFocus = _ref.onFocus, + onFocus = _ref$onFocus === void 0 ? external_this_lodash_["noop"] : _ref$onFocus, + _ref$onValidate = _ref.onValidate, + onValidate = _ref$onValidate === void 0 ? external_this_lodash_["noop"] : _ref$onValidate, + _ref$onKeyDown = _ref.onKeyDown, + onKeyDown = _ref$onKeyDown === void 0 ? external_this_lodash_["noop"] : _ref$onKeyDown, + _ref$size = _ref.size, + size = _ref$size === void 0 ? 'default' : _ref$size, + suffix = _ref.suffix, + value = _ref.value, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["__unstableStateReducer", "children", "className", "disabled", "hideLabelFromVision", "id", "isPressEnterToChange", "isFloatingLabel", "label", "onBlur", "onChange", "onFocus", "onValidate", "onKeyDown", "size", "suffix", "value"]); + + var _useState = Object(external_this_wp_element_["useState"])(false), + _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2), + isFocused = _useState2[0], + setIsFocused = _useState2[1]; + + var _useState3 = Object(external_this_wp_element_["useState"])(!isValueEmpty(value)), + _useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2), + isFilled = _useState4[0], + setIsFilled = _useState4[1]; + + var id = useUniqueId(idProp); + var classes = classnames_default()('components-input-control', className); + + var handleOnBlur = function handleOnBlur(event) { + onBlur(event); + setIsFocused(false); + }; + + var handleOnFocus = function handleOnFocus(event) { + onFocus(event); + setIsFocused(true); + }; + + var isInputFilled = isFilled || !isValueEmpty(value); + var isFloating = isFloatingLabel ? isInputFilled || isFocused : false; + var isFloatingLabelSet = !hideLabelFromVision && isFloatingLabel && label; + return Object(external_this_wp_element_["createElement"])(input_control_styles_Root, { + className: classes, + isFloatingLabel: isFloatingLabelSet, + isFocused: isFocused + }, Object(external_this_wp_element_["createElement"])(label_Label, { + className: "components-input-control__label", + hideLabelFromVision: hideLabelFromVision, + htmlFor: id, + isFilled: isFilled, + isFloating: isFloating, + isFloatingLabel: isFloatingLabel, + size: size + }, label), Object(external_this_wp_element_["createElement"])(Container, { + className: "components-input-control__container", + disabled: disabled, + isFocused: isFocused + }, Object(external_this_wp_element_["createElement"])(input_field, Object(esm_extends["a" /* default */])({}, props, { + className: "components-input-control__input", + disabled: disabled, + id: id, + isFloating: isFloating, + isFloatingLabelSet: isFloatingLabelSet, + isPressEnterToChange: isPressEnterToChange, + onBlur: handleOnBlur, + onChange: onChange, + onFocus: handleOnFocus, + onKeyDown: onKeyDown, + onUpdateValue: setIsFilled, + onValidate: onValidate, + ref: ref, + setIsFocused: setIsFocused, + size: size, + stateReducer: stateReducer, + value: value + })), suffix && Object(external_this_wp_element_["createElement"])(Suffix, { + className: "components-input-control__suffix" + }, suffix), Object(external_this_wp_element_["createElement"])(backdrop, { + "aria-hidden": "true", + disabled: disabled, + isFloating: isFloating, + isFloatingLabel: isFloatingLabelSet, + isFocused: isFocused, + label: label, + size: size + }), children)); +} +/* harmony default export */ var input_control = (Object(external_this_wp_element_["forwardRef"])(InputControl)); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/number-control/styles/number-control-styles.js + + +function number_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +var number_control_styles_ref = true ? { + name: "1b9wwt5", + styles: "&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none !important;margin:0 !important;}" +} : undefined; + +var htmlArrowStyles = function htmlArrowStyles(_ref2) { + var hideHTMLArrows = _ref2.hideHTMLArrows; + if (!hideHTMLArrows) return ""; + return number_control_styles_ref; +}; + +var number_control_styles_Input = /*#__PURE__*/styled_base_browser_esm(input_control, { + target: "ep48uk90", + label: "Input" +})(htmlArrowStyles, ";" + ( true ? "" : undefined)); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/math.js +/** + * External dependencies + */ + +/** + * Parses and retrieves a number value. + * + * @param {any} value The incoming value. + * + * @return {number} The parsed number value. + */ + +function getNumber(value) { + var number = Number(value); + return isNaN(number) ? 0 : number; +} +/** + * Safely adds 2 values. + * + * @param {number|string} args Values to add together. + * + * @return {number} The sum of values. + */ + +function add() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return args.reduce(function (sum, arg) { + return sum + getNumber(arg); + }, 0); +} +/** + * Safely subtracts 2 values. + * + * @param {number|string} args Values to subtract together. + * + * @return {number} The difference of the 2 values. + */ + +function subtract() { + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + return args.reduce(function (diff, arg, index) { + var value = getNumber(arg); + return index === 0 ? value : diff - value; + }); +} +/** + * Determines the decimal position of a number value. + * + * @param {number} value The number to evaluate. + * + * @return {number} The number of decimal places. + */ + +function getPrecision(value) { + var split = (value + '').split('.'); + return split[1] !== undefined ? split[1].length : 0; +} +/** + * Clamps a value based on a min/max range with rounding + * + * @param {number} value The value. + * @param {number} min The minimum range. + * @param {number} max The maximum range. + * @param {number} step A multiplier for the value. + * + * @return {number} The rounded and clamped value. + */ + + +function roundClamp() { + var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity; + var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Infinity; + var step = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; + var baseValue = getNumber(value); + var stepValue = getNumber(step); + var precision = getPrecision(step); + var rounded = Math.round(baseValue / stepValue) * stepValue; + var clampedValue = Object(external_this_lodash_["clamp"])(rounded, min, max); + return precision ? getNumber(clampedValue.toFixed(precision)) : clampedValue; +} +/** + * Clamps a value based on a min/max range with rounding. + * Returns a string. + * + * @param {any} args Arguments for roundClamp(). + * @property {number} value The value. + * @property {number} min The minimum range. + * @property {number} max The maximum range. + * @property {number} step A multiplier for the value. + * + * @return {string} The rounded and clamped value. + */ + +function roundClampString() { + return roundClamp.apply(void 0, arguments).toString(); +} + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/hooks/use-jump-step.js + + +/** + * WordPress dependencies + */ + +/** + * A custom hook that calculates a step value (used by elements like input + * [type="number"]). This value can be modified based on whether the Shift + * key is being held down. + * + * For example, a shiftStep of 10, and a step of 1... + * Starting from 10, the next incremented value will be 11. + * + * Holding down shift... + * Starting from 10, the next incremented value will be 20. + * + * @param {Object} props Properties for the hook. + * @param {boolean} [props.isShiftStepEnabled=true] Determines if jumping values with shift is enabled + * @param {number} [props.shiftStep=10] Multiplier to jump by, when holding shift key. + * @param {number} [props.step=1] Multiplier to jump by, when not-holding shift key. + * + * @return {number} The jump step value. + */ + +function useJumpStep(_ref) { + var _ref$isShiftStepEnabl = _ref.isShiftStepEnabled, + isShiftStepEnabled = _ref$isShiftStepEnabl === void 0 ? true : _ref$isShiftStepEnabl, + _ref$shiftStep = _ref.shiftStep, + shiftStep = _ref$shiftStep === void 0 ? 10 : _ref$shiftStep, + _ref$step = _ref.step, + step = _ref$step === void 0 ? 1 : _ref$step; + + var _useState = Object(external_this_wp_element_["useState"])(false), + _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2), + isShiftKey = _useState2[0], + setIsShiftKey = _useState2[1]; + + Object(external_this_wp_element_["useEffect"])(function () { + var handleShiftKeyToggle = function handleShiftKeyToggle(event) { + setIsShiftKey(event.shiftKey); + }; + + window.addEventListener('keydown', handleShiftKeyToggle); + window.addEventListener('keyup', handleShiftKeyToggle); + return function () { + window.removeEventListener('keydown', handleShiftKeyToggle); + window.removeEventListener('keyup', handleShiftKeyToggle); + }; + }, []); + var isEnabled = isShiftStepEnabled && isShiftKey; + return isEnabled ? shiftStep * step : step; +} + +/* harmony default export */ var use_jump_step = (useJumpStep); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/number-control/index.js + + + + + +/** + * External dependencies + */ + +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + + + + + + +function NumberControl(_ref, ref) { + var _ref$__unstableStateR = _ref.__unstableStateReducer, + stateReducer = _ref$__unstableStateR === void 0 ? function (state) { + return state; + } : _ref$__unstableStateR, + className = _ref.className, + _ref$dragDirection = _ref.dragDirection, + dragDirection = _ref$dragDirection === void 0 ? 'n' : _ref$dragDirection, + _ref$hideHTMLArrows = _ref.hideHTMLArrows, + hideHTMLArrows = _ref$hideHTMLArrows === void 0 ? false : _ref$hideHTMLArrows, + _ref$isDragEnabled = _ref.isDragEnabled, + isDragEnabled = _ref$isDragEnabled === void 0 ? true : _ref$isDragEnabled, + _ref$isShiftStepEnabl = _ref.isShiftStepEnabled, + isShiftStepEnabled = _ref$isShiftStepEnabl === void 0 ? true : _ref$isShiftStepEnabl, + label = _ref.label, + _ref$max = _ref.max, + max = _ref$max === void 0 ? Infinity : _ref$max, + _ref$min = _ref.min, + min = _ref$min === void 0 ? -Infinity : _ref$min, + _ref$shiftStep = _ref.shiftStep, + shiftStep = _ref$shiftStep === void 0 ? 10 : _ref$shiftStep, + _ref$step = _ref.step, + step = _ref$step === void 0 ? 1 : _ref$step, + _ref$type = _ref.type, + typeProp = _ref$type === void 0 ? 'number' : _ref$type, + valueProp = _ref.value, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["__unstableStateReducer", "className", "dragDirection", "hideHTMLArrows", "isDragEnabled", "isShiftStepEnabled", "label", "max", "min", "shiftStep", "step", "type", "value"]); + + var isRtl = useRTL(); + var baseValue = roundClamp(0, min, max, step); + var jumpStep = use_jump_step({ + step: step, + shiftStep: shiftStep, + isShiftStepEnabled: isShiftStepEnabled + }); + var autoComplete = typeProp === 'number' ? 'off' : null; + var classes = classnames_default()('components-number-control', className); + /** + * "Middleware" function that intercepts updates from InputControl. + * This allows us to tap into actions to transform the (next) state for + * InputControl. + * + * @param {Object} state State from InputControl + * @param {Object} action Action triggering state change + * @return {Object} The updated state to apply to InputControl + */ + + var numberControlStateReducer = function numberControlStateReducer(state, action) { + var type = action.type, + payload = action.payload; + var event = payload === null || payload === void 0 ? void 0 : payload.event; + var currentValue = state.value; + /** + * Handles custom UP and DOWN Keyboard events + */ + + if (type === inputControlActionTypes.PRESS_UP || type === inputControlActionTypes.PRESS_DOWN) { + var enableShift = event.shiftKey && isShiftStepEnabled; + var incrementalValue = enableShift ? parseFloat(shiftStep) * parseFloat(step) : parseFloat(step); + var nextValue = isValueEmpty(currentValue) ? baseValue : currentValue; + + if (event === null || event === void 0 ? void 0 : event.preventDefault) { + event.preventDefault(); + } + + if (type === inputControlActionTypes.PRESS_UP) { + nextValue = add(nextValue, incrementalValue); + } + + if (type === inputControlActionTypes.PRESS_DOWN) { + nextValue = subtract(nextValue, incrementalValue); + } + + nextValue = roundClamp(nextValue, min, max, incrementalValue); + state.value = nextValue; + } + /** + * Handles drag to update events + */ + + + if (type === inputControlActionTypes.DRAG && isDragEnabled) { + var delta = payload.delta, + shiftKey = payload.shiftKey; + + var _delta = Object(slicedToArray["a" /* default */])(delta, 2), + x = _delta[0], + y = _delta[1]; + + var modifier = shiftKey ? parseFloat(shiftStep) * parseFloat(step) : parseFloat(step); + var directionModifier; + var directionBaseValue; + + switch (dragDirection) { + case 'n': + directionBaseValue = y; + directionModifier = -1; + break; + + case 'e': + directionBaseValue = x; + directionModifier = isRtl ? -1 : 1; + break; + + case 's': + directionBaseValue = y; + directionModifier = 1; + break; + + case 'w': + directionBaseValue = x; + directionModifier = isRtl ? 1 : -1; + break; + } + + var distance = directionBaseValue * modifier * directionModifier; + + var _nextValue; + + if (distance !== 0) { + _nextValue = roundClamp(add(currentValue, distance), min, max, modifier); + state.value = _nextValue; + } + } + /** + * Handles ENTER key press and submit + */ + + + if (type === inputControlActionTypes.PRESS_ENTER || type === inputControlActionTypes.SUBMIT) { + state.value = roundClamp(currentValue, min, max); + } + + return state; + }; + + return Object(external_this_wp_element_["createElement"])(number_control_styles_Input, Object(esm_extends["a" /* default */])({ + autoComplete: autoComplete, + inputMode: "numeric" + }, props, { + className: classes, + dragDirection: dragDirection, + hideHTMLArrows: hideHTMLArrows, + isDragEnabled: isDragEnabled, + label: label, + max: max, + min: min, + ref: ref, + step: jumpStep, + type: typeProp, + value: valueProp, + __unstableStateReducer: state_composeStateReducers(numberControlStateReducer, stateReducer) + })); +} +/* harmony default export */ var number_control = (Object(external_this_wp_element_["forwardRef"])(NumberControl)); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/styles/unit-control-styles.js + + +function unit_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +var unit_control_styles_Root = styled_base_browser_esm("div", { + target: "e1agakv00", + label: "Root" +})( true ? { + name: "1bt0omd", + styles: "box-sizing:border-box;position:relative;" +} : undefined); + +var unit_control_styles_paddingStyles = function paddingStyles(_ref2) { + var disableUnits = _ref2.disableUnits; + var value = disableUnits ? 3 : 24; + return /*#__PURE__*/css_browser_esm(rtl({ + paddingRight: value + })(), ";" + ( true ? "" : undefined)); +}; + +var unit_control_styles_ref = true ? { + name: "1y65o8", + styles: "&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}" +} : undefined; + +var arrowStyles = function arrowStyles(_ref3) { + var disableUnits = _ref3.disableUnits; + if (disableUnits) return ''; + return unit_control_styles_ref; +}; // TODO: Resolve need to use &&& to increase specificity +// https://github.com/WordPress/gutenberg/issues/18483 + + +var ValueInput = /*#__PURE__*/styled_base_browser_esm(number_control, { + target: "e1agakv01", + label: "ValueInput" +})("&&&{input{appearance:none;-moz-appearance:textfield;display:block;width:100%;", arrowStyles, ";", unit_control_styles_paddingStyles, ";}}" + ( true ? "" : undefined)); + +var unit_control_styles_unitSizeStyles = function unitSizeStyles(_ref4) { + var size = _ref4.size; + var sizes = { + default: { + height: 28, + lineHeight: '24px', + minHeight: 28, + top: 1 + }, + small: { + height: 22, + lineHeight: '18px', + minHeight: 22, + top: 1 + } + }; + return /*#__PURE__*/css_browser_esm(sizes[size], true ? "" : undefined); +}; + +var unit_control_styles_baseUnitLabelStyles = function baseUnitLabelStyles(props) { + return /*#__PURE__*/css_browser_esm("appearance:none;background:transparent;border-radius:2px;border:none;box-sizing:border-box;color:", colors_color('darkGray.500'), ";display:block;font-size:8px;line-height:1;letter-spacing:-0.5px;outline:none;padding:2px 1px;position:absolute;text-align-last:center;text-transform:uppercase;width:20px;", rtl({ + borderTopLeftRadius: 0, + borderBottomLeftRadius: 0 + })(), " ", rtl({ + right: 0 + })(), " ", unit_control_styles_unitSizeStyles(props), true ? "" : undefined); +}; + +var UnitLabel = styled_base_browser_esm("div", { + target: "e1agakv02", + label: "UnitLabel" +})("&&&{pointer-events:none;", unit_control_styles_baseUnitLabelStyles, ";}" + ( true ? "" : undefined)); +var UnitSelect = styled_base_browser_esm("select", { + target: "e1agakv03", + label: "UnitSelect" +})("&&&{", unit_control_styles_baseUnitLabelStyles, ";cursor:pointer;border:1px solid transparent;&:hover{background-color:", colors_color('lightGray.300'), ";}&:focus{border-color:", colors_color('ui.borderFocus'), ";outline:2px solid transparent;outline-offset:0;}&:disabled{cursor:initial;&:hover{background-color:transparent;}}}" + ( true ? "" : undefined)); + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/utils.js + + +/** + * External dependencies + */ + +var CSS_UNITS = [{ + value: 'px', + label: 'px', + default: 0 +}, { + value: '%', + label: '%', + default: 10 +}, { + value: 'em', + label: 'em', + default: 0 +}, { + value: 'rem', + label: 'rem', + default: 0 +}, { + value: 'vw', + label: 'vw', + default: 10 +}, { + value: 'vh', + label: 'vh', + default: 10 +}]; +var DEFAULT_UNIT = CSS_UNITS[0]; +/** + * Handles legacy value + unit handling. + * This component use to manage both incoming value and units separately. + * + * Moving forward, ideally the value should be a string that contains both + * the value and unit, example: '10px' + * + * @param {number|string} value Value + * @param {string} unit Unit value + * @param {Array} units Units to derive from. + * @return {Array} The extracted number and unit. + */ + +function getParsedValue(value, unit, units) { + var initialValue = unit ? "".concat(value).concat(unit) : value; + return parseUnit(initialValue, units); +} +/** + * Checks if units are defined. + * + * @param {any} units Units to check. + * @return {boolean} Whether units are defined. + */ + +function hasUnits(units) { + return !Object(external_this_lodash_["isEmpty"])(units) && units.length > 1 && units !== false; +} +/** + * Parses a number and unit from a value. + * + * @param {string} initialValue Value to parse + * @param {Array} units Units to derive from. + * @return {Array} The extracted number and unit. + */ + +function parseUnit(initialValue) { + var units = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CSS_UNITS; + var value = String(initialValue).trim(); + var num = parseFloat(value, 10); + num = isNaN(num) ? '' : num; + var unitMatch = value.match(/[\d.\-\+]*\s*(.*)/)[1]; + var unit = unitMatch !== undefined ? unitMatch : ''; + unit = unit.toLowerCase(); + + if (hasUnits(units)) { + var match = units.find(function (item) { + return item.value === unit; + }); + unit = match === null || match === void 0 ? void 0 : match.value; + } + + return [num, unit]; +} +/** + * Parses a number and unit from a value. Validates parsed value, using fallback + * value if invalid. + * + * @param {number|string} next The next value. + * @param {Array} units Units to derive from. + * @param {number|string} fallbackValue The fallback value. + * @param {string} fallbackUnit The fallback value. + * @return {Array} The extracted number and unit. + */ + +function getValidParsedUnit(next, units, fallbackValue, fallbackUnit) { + var _parseUnit = parseUnit(next, units), + _parseUnit2 = Object(slicedToArray["a" /* default */])(_parseUnit, 2), + parsedValue = _parseUnit2[0], + parsedUnit = _parseUnit2[1]; + + var baseValue = parsedValue; + var baseUnit; + + if (isNaN(parsedValue) || parsedValue === '') { + baseValue = fallbackValue; + } + + baseUnit = parsedUnit || fallbackUnit; + /** + * If no unit is found, attempt to use the first value from the collection + * of units as a default fallback. + */ + + if (hasUnits(units) && !baseUnit) { + var _units$; + + baseUnit = (_units$ = units[0]) === null || _units$ === void 0 ? void 0 : _units$.value; + } + + return [baseValue, baseUnit]; +} + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/unit-select-control.js + + + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + +/** + * Renders a `select` if there are multiple units. + * Otherwise, renders a non-selectable label. + * + * @param {Object} props Component props. + * @param {string} [props.className] Class to set on the `select` element. + * @param {boolean} [props.isTabbable=true] Whether the control can be focused via keyboard navigation. + * @param {Array} [props.options=CSS_UNITS] Available units to select from. + * @param {Function} [props.onChange=noop] A callback function invoked when the value is changed. + * @param {string} [props.size="default"] Size of the control option. Supports "default" and "small". + * @param {string} [props.value="px"] Current unit. + */ + +function UnitSelectControl(_ref) { + var className = _ref.className, + _ref$isTabbable = _ref.isTabbable, + isTabbable = _ref$isTabbable === void 0 ? true : _ref$isTabbable, + _ref$options = _ref.options, + options = _ref$options === void 0 ? CSS_UNITS : _ref$options, + _ref$onChange = _ref.onChange, + onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange, + _ref$size = _ref.size, + size = _ref$size === void 0 ? 'default' : _ref$size, + _ref$value = _ref.value, + value = _ref$value === void 0 ? 'px' : _ref$value, + props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "isTabbable", "options", "onChange", "size", "value"]); + + if (!hasUnits(options)) { + return Object(external_this_wp_element_["createElement"])(UnitLabel, { + className: "components-unit-control__unit-label", + size: size + }, value); + } + + var handleOnChange = function handleOnChange(event) { + var unitValue = event.target.value; + var data = options.find(function (option) { + return option.value === unitValue; + }); + onChange(unitValue, { + event: event, + data: data + }); + }; + + var classes = classnames_default()('components-unit-control__select', className); + return Object(external_this_wp_element_["createElement"])(UnitSelect, Object(esm_extends["a" /* default */])({ + className: classes, + onChange: handleOnChange, + size: size, + tabIndex: isTabbable ? null : '-1', + value: value + }, props), options.map(function (option) { + return Object(external_this_wp_element_["createElement"])("option", { + value: option.value, + key: option.value + }, option.label); + })); +} + +// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/hooks/use-controlled-state.js + + + +function use_controlled_state_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function use_controlled_state_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { use_controlled_state_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { use_controlled_state_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +/** + * WordPress dependencies + */ + +/** + * Internal dependencies + */ + + +var defaultOptions = { + initial: undefined, + + /** + * Defaults to empty string, as that is preferred for usage with + * ,