From f999b34dfcb359a27fd04d213d583a8f3693c471 Mon Sep 17 00:00:00 2001 From: Andy Edwards Date: Wed, 29 Jul 2015 11:38:35 -0500 Subject: [PATCH 1/2] fix issue #23: Muliple copies of GoogleMapMarkers get created when map is unmounted/remounted repeatedly --- src/google_map.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/google_map.js b/src/google_map.js index 3425ec6..0206fb7 100644 --- a/src/google_map.js +++ b/src/google_map.js @@ -141,7 +141,7 @@ export default class GoogleMap extends Component { // render in overlay const this_ = this; - const overlay = assign(new maps.OverlayView(), { + const overlay = this.overlay_ = assign(new maps.OverlayView(), { onAdd() { const K_MAX_WIDTH = (typeof screen !== 'undefined') ? `${screen.width}px` : '2000px'; const K_MAX_HEIGHT = (typeof screen !== 'undefined') ? `${screen.height}px` : '2000px'; @@ -176,6 +176,10 @@ export default class GoogleMap extends Component { ); }, + onRemove() { + React.unmountComponentAtNode(this.div); + }, + draw() { const div = overlay.div; const overlayProjection = overlay.getProjection(); @@ -385,6 +389,11 @@ export default class GoogleMap extends Component { window.removeEventListener('resize', this._onWindowResize); + if (this.overlay_) { + // this triggers overlay_.onRemove(), which will unmount the + this.overlay_.setMap(null); + } + if (this.maps_ && this.map_) { this.maps_.event.clearInstanceListeners(this.map_); } From 8435eaf3c50c21649d8e02a3150990b27546ab1f Mon Sep 17 00:00:00 2001 From: Andy Edwards Date: Wed, 29 Jul 2015 11:48:40 -0500 Subject: [PATCH 2/2] build fix #23 --- lib/umd/GoogleMapReact.js | 3232 ++++++++++++++++++++++----------- lib/umd/GoogleMapReact.min.js | 6 +- 2 files changed, 2208 insertions(+), 1030 deletions(-) diff --git a/lib/umd/GoogleMapReact.js b/lib/umd/GoogleMapReact.js index 804c53b..3dc7bbe 100644 --- a/lib/umd/GoogleMapReact.js +++ b/lib/umd/GoogleMapReact.js @@ -60,7 +60,7 @@ return /******/ (function(modules) { // webpackBootstrap function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - var _google_mapJs = __webpack_require__(15); + var _google_mapJs = __webpack_require__(9); var _google_mapJs2 = _interopRequireDefault(_google_mapJs); @@ -75,300 +75,6 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 2 */ -/***/ function(module, exports) { - - /** - * lodash 3.0.3 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]'; - - /** - * Checks if `value` is object-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - */ - function isObjectLike(value) { - return !!value && typeof value == 'object'; - } - - /** Used for native method references. */ - var objectProto = Object.prototype; - - /** - * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring) - * of values. - */ - var objToString = objectProto.toString; - - /** - * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) - * of an array-like value. - */ - var MAX_SAFE_INTEGER = 9007199254740991; - - /** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new function. - */ - function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; - } - - /** - * Gets the "length" property value of `object`. - * - * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) - * that affects Safari on at least iOS 8.1-8.3 ARM64. - * - * @private - * @param {Object} object The object to query. - * @returns {*} Returns the "length" value. - */ - var getLength = baseProperty('length'); - - /** - * Checks if `value` is array-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - */ - function isArrayLike(value) { - return value != null && isLength(getLength(value)); - } - - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength). - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - */ - function isLength(value) { - return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is classified as an `arguments` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - function isArguments(value) { - return isObjectLike(value) && isArrayLike(value) && objToString.call(value) == argsTag; - } - - module.exports = isArguments; - - -/***/ }, -/* 3 */ -/***/ function(module, exports) { - - /** - * lodash 3.0.3 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - - /** `Object#toString` result references. */ - var arrayTag = '[object Array]', - funcTag = '[object Function]'; - - /** - * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special). - * In addition to special characters the forward slash is escaped to allow for - * easier `eval` use and `Function` compilation. - */ - var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g, - reHasRegExpChars = RegExp(reRegExpChars.source); - - /** Used to detect host constructors (Safari > 5). */ - var reIsHostCtor = /^\[object .+?Constructor\]$/; - - /** - * Converts `value` to a string if it's not one. An empty string is returned - * for `null` or `undefined` values. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - if (typeof value == 'string') { - return value; - } - return value == null ? '' : (value + ''); - } - - /** - * Checks if `value` is object-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - */ - function isObjectLike(value) { - return !!value && typeof value == 'object'; - } - - /** Used for native method references. */ - var objectProto = Object.prototype; - - /** Used to resolve the decompiled source of functions. */ - var fnToString = Function.prototype.toString; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring) - * of values. - */ - var objToString = objectProto.toString; - - /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + - escapeRegExp(fnToString.call(hasOwnProperty)) - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' - ); - - /* Native method references for those with the same name as other `lodash` methods. */ - var nativeIsArray = getNative(Array, 'isArray'); - - /** - * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) - * of an array-like value. - */ - var MAX_SAFE_INTEGER = 9007199254740991; - - /** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ - function getNative(object, key) { - var value = object == null ? undefined : object[key]; - return isNative(value) ? value : undefined; - } - - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength). - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - */ - function isLength(value) { - return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(function() { return arguments; }()); - * // => false - */ - var isArray = nativeIsArray || function(value) { - return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; - }; - - /** - * Checks if `value` is a native function. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ - function isNative(value) { - if (value == null) { - return false; - } - if (objToString.call(value) == funcTag) { - return reIsNative.test(fnToString.call(value)); - } - return isObjectLike(value) && reIsHostCtor.test(value); - } - - /** - * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?", - * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escapeRegExp('[lodash](https://lodash.com/)'); - * // => '\[lodash\]\(https:\/\/lodash\.com\/\)' - */ - function escapeRegExp(string) { - string = baseToString(string); - return (string && reHasRegExpChars.test(string)) - ? string.replace(reRegExpChars, '\\$&') - : string; - } - - module.exports = isArray; - - -/***/ }, -/* 4 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -383,13 +89,13 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - 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) subClass.__proto__ = superClass; } + 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 _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); - var _reactPureRenderFunction = __webpack_require__(14); + var _reactPureRenderFunction = __webpack_require__(8); var _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction); @@ -413,6 +119,30 @@ return /******/ (function(modules) { // webpackBootstrap }; var GoogleMapMarkers = (function (_Component) { + _inherits(GoogleMapMarkers, _Component); + + _createClass(GoogleMapMarkers, null, [{ + key: 'propTypes', + value: { + geoService: _react.PropTypes.any, + style: _react.PropTypes.any, + distanceToMouse: _react.PropTypes.func, + dispatcher: _react.PropTypes.any, + onChildClick: _react.PropTypes.func, + onChildMouseLeave: _react.PropTypes.func, + onChildMouseEnter: _react.PropTypes.func, + hoverDistance: _react.PropTypes.number, + projectFromLeftTop: _react.PropTypes.bool + }, + enumerable: true + }, { + key: 'defaultProps', + value: { + projectFromLeftTop: false + }, + enumerable: true + }]); + function GoogleMapMarkers(props) { var _this = this; @@ -556,8 +286,6 @@ return /******/ (function(modules) { // webpackBootstrap this.state = _extends({}, this._getState(), { hoverKey: null }); } - _inherits(GoogleMapMarkers, _Component); - GoogleMapMarkers.prototype.componentWillUnmount = function componentWillUnmount() { this.props.dispatcher.removeListener('kON_CHANGE', this._onChangeHandler); this.props.dispatcher.removeListener('kON_MOUSE_POSITION_CHANGE', this._onMouseChangeHandler); @@ -615,28 +343,6 @@ return /******/ (function(modules) { // webpackBootstrap ); }; - _createClass(GoogleMapMarkers, null, [{ - key: 'propTypes', - value: { - geoService: _react.PropTypes.any, - style: _react.PropTypes.any, - distanceToMouse: _react.PropTypes.func, - dispatcher: _react.PropTypes.any, - onChildClick: _react.PropTypes.func, - onChildMouseLeave: _react.PropTypes.func, - onChildMouseEnter: _react.PropTypes.func, - hoverDistance: _react.PropTypes.number, - projectFromLeftTop: _react.PropTypes.bool - }, - enumerable: true - }, { - key: 'defaultProps', - value: { - projectFromLeftTop: false - }, - enumerable: true - }]); - return GoogleMapMarkers; })(_react.Component); @@ -644,14 +350,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 5 */ +/* 3 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; module.exports = LatLng; - var wrap = __webpack_require__(6).wrap; + var wrap = __webpack_require__(4).wrap; function LatLng(lat, lng) { if (isNaN(lat) || isNaN(lng)) { @@ -678,7 +384,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 6 */ +/* 4 */ /***/ function(module, exports) { 'use strict'; @@ -689,320 +395,20 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 7 */ -/***/ function(module, exports) { - - /** - * lodash 3.0.2 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - - /** - * The base implementation of `baseForIn` and `baseForOwn` which iterates - * over `object` properties returned by `keysFunc` invoking `iteratee` for - * each property. Iteratee functions may exit iteration early by explicitly - * returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseFor = createBaseFor(); - - /** - * Creates a base function for `_.forIn` or `_.forInRight`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var iterable = toObject(object), - props = keysFunc(object), - length = props.length, - index = fromRight ? length : -1; - - while ((fromRight ? index-- : ++index < length)) { - var key = props[index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - - /** - * Converts `value` to an object if it's not one. - * - * @private - * @param {*} value The value to process. - * @returns {Object} Returns the object. - */ - function toObject(value) { - return isObject(value) ? value : Object(value); - } - - /** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @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(1); - * // => false - */ - function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); - } - - module.exports = baseFor; - - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - /** - * lodash 3.0.1 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - - /** - * A specialized version of `baseCallback` which only supports `this` binding - * and specifying the number of arguments to provide to `func`. - * - * @private - * @param {Function} func The function to bind. - * @param {*} thisArg The `this` binding of `func`. - * @param {number} [argCount] The number of arguments to provide to `func`. - * @returns {Function} Returns the callback. - */ - function bindCallback(func, thisArg, argCount) { - if (typeof func != 'function') { - return identity; - } - if (thisArg === undefined) { - return func; - } - switch (argCount) { - case 1: return function(value) { - return func.call(thisArg, value); - }; - case 3: return function(value, index, collection) { - return func.call(thisArg, value, index, collection); - }; - case 4: return function(accumulator, value, index, collection) { - return func.call(thisArg, accumulator, value, index, collection); - }; - case 5: return function(value, other, key, object, source) { - return func.call(thisArg, value, other, key, object, source); - }; - } - return function() { - return func.apply(thisArg, arguments); - }; - } - - /** - * This method returns the first argument provided to it. - * - * @static - * @memberOf _ - * @category Utility - * @param {*} value Any value. - * @returns {*} Returns `value`. - * @example - * - * var object = { 'user': 'fred' }; - * - * _.identity(object) === object; - * // => true - */ - function identity(value) { - return value; - } - - module.exports = bindCallback; - - -/***/ }, -/* 9 */ -/***/ function(module, exports) { - - /** - * lodash 3.9.0 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - - /** `Object#toString` result references. */ - var funcTag = '[object Function]'; - - /** - * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special). - * In addition to special characters the forward slash is escaped to allow for - * easier `eval` use and `Function` compilation. - */ - var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g, - reHasRegExpChars = RegExp(reRegExpChars.source); - - /** Used to detect host constructors (Safari > 5). */ - var reIsHostCtor = /^\[object .+?Constructor\]$/; - - /** - * Converts `value` to a string if it's not one. An empty string is returned - * for `null` or `undefined` values. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - if (typeof value == 'string') { - return value; - } - return value == null ? '' : (value + ''); - } - - /** - * Checks if `value` is object-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - */ - function isObjectLike(value) { - return !!value && typeof value == 'object'; - } - - /** Used for native method references. */ - var objectProto = Object.prototype; - - /** Used to resolve the decompiled source of functions. */ - var fnToString = Function.prototype.toString; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring) - * of values. - */ - var objToString = objectProto.toString; - - /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + - escapeRegExp(fnToString.call(hasOwnProperty)) - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' - ); - - /** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ - function getNative(object, key) { - var value = object == null ? undefined : object[key]; - return isNative(value) ? value : undefined; - } - - /** - * Checks if `value` is a native function. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ - function isNative(value) { - if (value == null) { - return false; - } - if (objToString.call(value) == funcTag) { - return reIsNative.test(fnToString.call(value)); - } - return isObjectLike(value) && reIsHostCtor.test(value); - } - - /** - * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?", - * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escapeRegExp('[lodash](https://lodash.com/)'); - * // => '\[lodash\]\(https:\/\/lodash\.com\/\)' - */ - function escapeRegExp(string) { - string = baseToString(string); - return (string && reHasRegExpChars.test(string)) - ? string.replace(reRegExpChars, '\\$&') - : string; - } - - module.exports = getNative; - - -/***/ }, -/* 10 */ +/* 5 */ /***/ function(module, exports, __webpack_require__) { /** - * lodash 3.1.1 (Custom Build) + * lodash 3.1.2 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation * Based on Underscore.js 1.8.3 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var getNative = __webpack_require__(9), - isArguments = __webpack_require__(2), - isArray = __webpack_require__(3); + var getNative = __webpack_require__(26), + isArguments = __webpack_require__(27), + isArray = __webpack_require__(28); /** Used to detect unsigned integer values. */ var reIsUint = /^\d+$/; @@ -1017,7 +423,7 @@ return /******/ (function(modules) { // webpackBootstrap var nativeKeys = getNative(Object, 'keys'); /** - * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) * of an array-like value. */ var MAX_SAFE_INTEGER = 9007199254740991; @@ -1075,7 +481,7 @@ return /******/ (function(modules) { // webpackBootstrap /** * Checks if `value` is a valid array-like length. * - * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength). + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). * * @private * @param {*} value The value to check. @@ -1144,7 +550,7 @@ return /******/ (function(modules) { // webpackBootstrap * Creates an array of the own enumerable property names of `object`. * * **Note:** Non-object values are coerced to objects. See the - * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys) + * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) * for more details. * * @static @@ -1168,7 +574,7 @@ return /******/ (function(modules) { // webpackBootstrap * // => ['0', '1'] */ var keys = !nativeKeys ? shimKeys : function(object) { - var Ctor = object == null ? null : object.constructor; + var Ctor = object == null ? undefined : object.constructor; if ((typeof Ctor == 'function' && Ctor.prototype === object) || (typeof object != 'function' && isArrayLike(object))) { return shimKeys(object); @@ -1231,22 +637,28 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 11 */ -/***/ function(module, exports, __webpack_require__) { +/* 6 */ +/***/ function(module, exports) { /** - * lodash 3.0.8 (Custom Build) + * lodash 3.0.4 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation * Based on Underscore.js 1.8.3 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var isArguments = __webpack_require__(2), - isArray = __webpack_require__(3); - /** Used to detect unsigned integer values. */ - var reIsUint = /^\d+$/; + /** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } /** Used for native method references. */ var objectProto = Object.prototype; @@ -1254,30 +666,55 @@ return /******/ (function(modules) { // webpackBootstrap /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; + /** Native method references. */ + var propertyIsEnumerable = objectProto.propertyIsEnumerable; + /** - * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) * of an array-like value. */ var MAX_SAFE_INTEGER = 9007199254740991; /** - * Checks if `value` is a valid array-like index. + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new function. + */ + function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; + } + + /** + * Gets the "length" property value of `object`. + * + * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) + * that affects Safari on at least iOS 8.1-8.3 ARM64. + * + * @private + * @param {Object} object The object to query. + * @returns {*} Returns the "length" value. + */ + var getLength = baseProperty('length'); + + /** + * Checks if `value` is array-like. * * @private * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. */ - function isIndex(value, length) { - value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; - length = length == null ? MAX_SAFE_INTEGER : length; - return value > -1 && value % 1 == 0 && value < length; + function isArrayLike(value) { + return value != null && isLength(getLength(value)); } /** * Checks if `value` is a valid array-like length. * - * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength). + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). * * @private * @param {*} value The value to check. @@ -1288,161 +725,31 @@ return /******/ (function(modules) { // webpackBootstrap } /** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * Checks if `value` is classified as an `arguments` object. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * - * _.isObject({}); + * _.isArguments(function() { return arguments; }()); * // => true * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(1); + * _.isArguments([1, 2, 3]); * // => false */ - function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); + function isArguments(value) { + return isObjectLike(value) && isArrayLike(value) && + hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); } - /** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) - */ - function keysIn(object) { - if (object == null) { - return []; - } - if (!isObject(object)) { - object = Object(object); - } - var length = object.length; - length = (length && isLength(length) && - (isArray(object) || isArguments(object)) && length) || 0; - - var Ctor = object.constructor, - index = -1, - isProto = typeof Ctor == 'function' && Ctor.prototype === object, - result = Array(length), - skipIndexes = length > 0; - - while (++index < length) { - result[index] = (index + ''); - } - for (var key in object) { - if (!(skipIndexes && isIndex(key, length)) && - !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { - result.push(key); - } - } - return result; - } - - module.exports = keysIn; + module.exports = isArguments; /***/ }, -/* 12 */ -/***/ function(module, exports) { - - /** - * lodash 3.6.1 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - - /** Used as the `TypeError` message for "Functions" methods. */ - var FUNC_ERROR_TEXT = 'Expected a function'; - - /* Native method references for those with the same name as other `lodash` methods. */ - var nativeMax = Math.max; - - /** - * Creates a function that invokes `func` with the `this` binding of the - * created function and arguments from `start` and beyond provided as an array. - * - * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters). - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.restParam(function(what, names) { - * return what + ' ' + _.initial(names).join(', ') + - * (_.size(names) > 1 ? ', & ' : '') + _.last(names); - * }); - * - * say('hello', 'fred', 'barney', 'pebbles'); - * // => 'hello fred, barney, & pebbles' - */ - function restParam(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - rest = Array(length); - - while (++index < length) { - rest[index] = args[start + index]; - } - switch (start) { - case 0: return func.call(this, rest); - case 1: return func.call(this, args[0], rest); - case 2: return func.call(this, args[0], args[1], rest); - } - var otherArgs = Array(start + 1); - index = -1; - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = rest; - return func.apply(this, otherArgs); - }; - } - - module.exports = restParam; - - -/***/ }, -/* 13 */ +/* 7 */ /***/ function(module, exports) { 'use strict'; @@ -1579,7 +886,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 14 */ +/* 8 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -1589,7 +896,7 @@ return /******/ (function(modules) { // webpackBootstrap function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - var _shallowEqual = __webpack_require__(37); + var _shallowEqual = __webpack_require__(47); var _shallowEqual2 = _interopRequireDefault(_shallowEqual); @@ -1600,7 +907,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 15 */ +/* 9 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -1615,72 +922,72 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - 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) subClass.__proto__ = superClass; } + 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 _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); - var _reactPureRenderFunction = __webpack_require__(14); + var _reactPureRenderFunction = __webpack_require__(8); var _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction); - var _marker_dispatcherJs = __webpack_require__(18); + var _marker_dispatcherJs = __webpack_require__(12); var _marker_dispatcherJs2 = _interopRequireDefault(_marker_dispatcherJs); - var _google_map_mapJs = __webpack_require__(16); + var _google_map_mapJs = __webpack_require__(10); var _google_map_mapJs2 = _interopRequireDefault(_google_map_mapJs); - var _google_map_markersJs = __webpack_require__(4); + var _google_map_markersJs = __webpack_require__(2); var _google_map_markersJs2 = _interopRequireDefault(_google_map_markersJs); - var _google_map_markers_prerenderJs = __webpack_require__(17); + var _google_map_markers_prerenderJs = __webpack_require__(11); var _google_map_markers_prerenderJs2 = _interopRequireDefault(_google_map_markers_prerenderJs); - var _utilsLoadersGoogle_map_loaderJs = __webpack_require__(23); + var _utilsLoadersGoogle_map_loaderJs = __webpack_require__(17); var _utilsLoadersGoogle_map_loaderJs2 = _interopRequireDefault(_utilsLoadersGoogle_map_loaderJs); - var _utilsDetectJs = __webpack_require__(20); + var _utilsDetectJs = __webpack_require__(14); var _utilsDetectJs2 = _interopRequireDefault(_utilsDetectJs); - var _utilsGeoJs = __webpack_require__(21); + var _utilsGeoJs = __webpack_require__(15); var _utilsGeoJs2 = _interopRequireDefault(_utilsGeoJs); - var _utilsArray_helperJs = __webpack_require__(19); + var _utilsArray_helperJs = __webpack_require__(13); var _utilsArray_helperJs2 = _interopRequireDefault(_utilsArray_helperJs); - var _lodashIsfunction = __webpack_require__(30); + var _lodashIsfunction = __webpack_require__(29); var _lodashIsfunction2 = _interopRequireDefault(_lodashIsfunction); - var _lodashIsplainobject = __webpack_require__(32); + var _lodashIsplainobject = __webpack_require__(31); var _lodashIsplainobject2 = _interopRequireDefault(_lodashIsplainobject); - var _lodashPick = __webpack_require__(33); + var _lodashPick = __webpack_require__(35); var _lodashPick2 = _interopRequireDefault(_lodashPick); - var _lodashAssign = __webpack_require__(25); + var _lodashAssign = __webpack_require__(19); var _lodashAssign2 = _interopRequireDefault(_lodashAssign); - var _lodashIsnumber = __webpack_require__(31); + var _lodashIsnumber = __webpack_require__(30); var _lodashIsnumber2 = _interopRequireDefault(_lodashIsnumber); var kEPS = 0.00001; var K_GOOGLE_TILE_SIZE = 256; - function defaultOptions_() { + function defaultOptions_() /*maps*/{ return { overviewMapControl: false, streetViewControl: false, @@ -1701,6 +1008,42 @@ return /******/ (function(modules) { // webpackBootstrap }; var GoogleMap = (function (_Component) { + _inherits(GoogleMap, _Component); + + _createClass(GoogleMap, null, [{ + key: 'propTypes', + value: { + apiKey: _react.PropTypes.string, + center: _react.PropTypes.array.isRequired, + zoom: _react.PropTypes.number.isRequired, + onBoundsChange: _react.PropTypes.func, + onChildClick: _react.PropTypes.func, + onChildMouseEnter: _react.PropTypes.func, + onChildMouseLeave: _react.PropTypes.func, + options: _react.PropTypes.any, + distanceToMouse: _react.PropTypes.func, + hoverDistance: _react.PropTypes.number, + debounced: _react.PropTypes.bool, + margin: _react.PropTypes.array, + googleMapLoader: _react.PropTypes.any + }, + enumerable: true + }, { + key: 'defaultProps', + value: { + distanceToMouse: function distanceToMouse(pt, mousePos /*, markerProps*/) { + var x = pt.x; + var y = pt.y; // - 20; + return Math.sqrt((x - mousePos.x) * (x - mousePos.x) + (y - mousePos.y) * (y - mousePos.y)); + }, + hoverDistance: 30, + debounced: true, + options: defaultOptions_, + googleMapLoader: _utilsLoadersGoogle_map_loaderJs2['default'] + }, + enumerable: true + }]); + function GoogleMap(props) { var _this = this; @@ -1746,7 +1089,7 @@ return /******/ (function(modules) { // webpackBootstrap // render in overlay var this_ = _this; - var overlay = _lodashAssign2['default'](new maps.OverlayView(), { + var overlay = _this.overlay_ = _lodashAssign2['default'](new maps.OverlayView(), { onAdd: function onAdd() { var K_MAX_WIDTH = typeof screen !== 'undefined' ? screen.width + 'px' : '2000px'; var K_MAX_HEIGHT = typeof screen !== 'undefined' ? screen.height + 'px' : '2000px'; @@ -1777,6 +1120,10 @@ return /******/ (function(modules) { // webpackBootstrap }); }, + onRemove: function onRemove() { + _react2['default'].unmountComponentAtNode(this.div); + }, + draw: function draw() { var div = overlay.div; var overlayProjection = overlay.getProjection(); @@ -2001,8 +1348,6 @@ return /******/ (function(modules) { // webpackBootstrap }; } - _inherits(GoogleMap, _Component); - GoogleMap.prototype.componentDidMount = function componentDidMount() { var _this2 = this; @@ -2025,6 +1370,11 @@ return /******/ (function(modules) { // webpackBootstrap window.removeEventListener('resize', this._onWindowResize); + if (this.overlay_) { + // this triggers overlay_.onRemove(), which will unmount the + this.overlay_.setMap(null); + } + if (this.maps_ && this.map_) { this.maps_.event.clearInstanceListeners(this.map_); } @@ -2081,54 +1431,20 @@ return /******/ (function(modules) { // webpackBootstrap return _react2['default'].createElement( 'div', { style: style, onMouseMove: this._onMouseMove, onClick: this._onMapClick }, - _react2['default'].createElement(_google_map_mapJs2['default'], { ref: 'google_map_dom' }), + _react2['default'].createElement(_google_map_mapJs2['default'], { ref: "google_map_dom" }), mapMarkerPrerender ); }; - _createClass(GoogleMap, null, [{ - key: 'propTypes', - value: { - apiKey: _react.PropTypes.string, - center: _react.PropTypes.array.isRequired, - zoom: _react.PropTypes.number.isRequired, - onBoundsChange: _react.PropTypes.func, - onChildClick: _react.PropTypes.func, - onChildMouseEnter: _react.PropTypes.func, - onChildMouseLeave: _react.PropTypes.func, - options: _react.PropTypes.any, - distanceToMouse: _react.PropTypes.func, - hoverDistance: _react.PropTypes.number, - debounced: _react.PropTypes.bool, - margin: _react.PropTypes.array, - googleMapLoader: _react.PropTypes.any - }, - enumerable: true - }, { - key: 'defaultProps', - value: { - distanceToMouse: function distanceToMouse(pt, mousePos /*, markerProps*/) { - var x = pt.x; - var y = pt.y; // - 20; - return Math.sqrt((x - mousePos.x) * (x - mousePos.x) + (y - mousePos.y) * (y - mousePos.y)); - }, - hoverDistance: 30, - debounced: true, - options: defaultOptions_, - googleMapLoader: _utilsLoadersGoogle_map_loaderJs2['default'] - }, - enumerable: true - }]); - return GoogleMap; })(_react.Component); exports['default'] = GoogleMap; module.exports = exports['default']; - /*maps*/ /*render markers before map load done*/ + /*render markers before map load done*/ /***/ }, -/* 16 */ +/* 10 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -2139,7 +1455,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - 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) subClass.__proto__ = superClass; } + 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 _react = __webpack_require__(1); @@ -2156,14 +1472,14 @@ return /******/ (function(modules) { // webpackBootstrap }; var GoogleMapMap = (function (_Component) { + _inherits(GoogleMapMap, _Component); + function GoogleMapMap(props) { _classCallCheck(this, GoogleMapMap); _Component.call(this, props); } - _inherits(GoogleMapMap, _Component); - GoogleMapMap.prototype.shouldComponentUpdate = function shouldComponentUpdate() { return false; // disable react on this div }; @@ -2179,7 +1495,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 17 */ +/* 11 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -2190,13 +1506,13 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - 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) subClass.__proto__ = superClass; } + 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 _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); - var _google_map_markersJs = __webpack_require__(4); + var _google_map_markersJs = __webpack_require__(2); var _google_map_markersJs2 = _interopRequireDefault(_google_map_markersJs); @@ -2213,14 +1529,14 @@ return /******/ (function(modules) { // webpackBootstrap }; var GoogleMapMarkersPrerender = (function (_Component) { + _inherits(GoogleMapMarkersPrerender, _Component); + function GoogleMapMarkersPrerender(props) { _classCallCheck(this, GoogleMapMarkersPrerender); _Component.call(this, props); } - _inherits(GoogleMapMarkersPrerender, _Component); - GoogleMapMarkersPrerender.prototype.render = function render() { return _react2['default'].createElement( 'div', @@ -2236,7 +1552,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 18 */ +/* 12 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -2247,13 +1563,15 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - 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) subClass.__proto__ = superClass; } + 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 _eventemitter3 = __webpack_require__(24); + var _eventemitter3 = __webpack_require__(18); var _eventemitter32 = _interopRequireDefault(_eventemitter3); var MarkerDispatcher = (function (_EventEmitter) { + _inherits(MarkerDispatcher, _EventEmitter); + function MarkerDispatcher(gmapInstance) { _classCallCheck(this, MarkerDispatcher); @@ -2261,8 +1579,6 @@ return /******/ (function(modules) { // webpackBootstrap this.gmapInstance = gmapInstance; } - _inherits(MarkerDispatcher, _EventEmitter); - MarkerDispatcher.prototype.getChildren = function getChildren() { return this.gmapInstance.props.children; }; @@ -2287,7 +1603,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 19 */ +/* 13 */ /***/ function(module, exports) { "use strict"; @@ -2310,7 +1626,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports["default"]; /***/ }, -/* 20 */ +/* 14 */ /***/ function(module, exports) { // code here http://stackoverflow.com/questions/5899783/detect-safari-chrome-ie-firefox-opera-with-user-agent @@ -2352,7 +1668,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 21 */ +/* 15 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -2365,15 +1681,15 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - var _lib_geoLat_lngJs = __webpack_require__(5); + var _lib_geoLat_lngJs = __webpack_require__(3); var _lib_geoLat_lngJs2 = _interopRequireDefault(_lib_geoLat_lngJs); - var _pointGeometry = __webpack_require__(13); + var _pointGeometry = __webpack_require__(7); var _pointGeometry2 = _interopRequireDefault(_pointGeometry); - var _lib_geoTransformJs = __webpack_require__(22); + var _lib_geoTransformJs = __webpack_require__(16); var _lib_geoTransformJs2 = _interopRequireDefault(_lib_geoTransformJs); @@ -2486,14 +1802,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 22 */ +/* 16 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var LatLng = __webpack_require__(5); - var Point = __webpack_require__(13); - var wrap = __webpack_require__(6).wrap; + var LatLng = __webpack_require__(3); + var Point = __webpack_require__(7); + var wrap = __webpack_require__(4).wrap; // A single transform, generally used for a single tile to be scaled, rotated, and zoomed. @@ -2651,7 +1967,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Transform; /***/ }, -/* 23 */ +/* 17 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -2663,7 +1979,7 @@ return /******/ (function(modules) { // webpackBootstrap // TODO add libraries language and other map options module.exports = function googleMapLoader(apiKey) { if (!$script_) { - $script_ = __webpack_require__(38); + $script_ = __webpack_require__(48); } if (_loadPromise) { @@ -2703,7 +2019,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 24 */ +/* 18 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -2971,7 +2287,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 25 */ +/* 19 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2982,9 +2298,9 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseAssign = __webpack_require__(26), - createAssigner = __webpack_require__(28), - keys = __webpack_require__(10); + var baseAssign = __webpack_require__(20), + createAssigner = __webpack_require__(22), + keys = __webpack_require__(5); /** * A specialized version of `_.assign` for customizing assigned values without @@ -3057,7 +2373,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 26 */ +/* 20 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3068,8 +2384,8 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseCopy = __webpack_require__(27), - keys = __webpack_require__(10); + var baseCopy = __webpack_require__(21), + keys = __webpack_require__(5); /** * The base implementation of `_.assign` without support for argument juggling, @@ -3090,7 +2406,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 27 */ +/* 21 */ /***/ function(module, exports) { /** @@ -3128,7 +2444,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 28 */ +/* 22 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3139,9 +2455,9 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var bindCallback = __webpack_require__(8), - isIterateeCall = __webpack_require__(29), - restParam = __webpack_require__(12); + var bindCallback = __webpack_require__(23), + isIterateeCall = __webpack_require__(24), + restParam = __webpack_require__(25); /** * Creates a function that assigns properties of source object(s) to a given @@ -3186,7 +2502,78 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 29 */ +/* 23 */ +/***/ function(module, exports) { + + /** + * lodash 3.0.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** + * A specialized version of `baseCallback` which only supports `this` binding + * and specifying the number of arguments to provide to `func`. + * + * @private + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {number} [argCount] The number of arguments to provide to `func`. + * @returns {Function} Returns the callback. + */ + function bindCallback(func, thisArg, argCount) { + if (typeof func != 'function') { + return identity; + } + if (thisArg === undefined) { + return func; + } + switch (argCount) { + case 1: return function(value) { + return func.call(thisArg, value); + }; + case 3: return function(value, index, collection) { + return func.call(thisArg, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(thisArg, accumulator, value, index, collection); + }; + case 5: return function(value, other, key, object, source) { + return func.call(thisArg, value, other, key, object, source); + }; + } + return function() { + return func.apply(thisArg, arguments); + }; + } + + /** + * This method returns the first argument provided to it. + * + * @static + * @memberOf _ + * @category Utility + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'user': 'fred' }; + * + * _.identity(object) === object; + * // => true + */ + function identity(value) { + return value; + } + + module.exports = bindCallback; + + +/***/ }, +/* 24 */ /***/ function(module, exports) { /** @@ -3324,11 +2711,84 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 30 */ +/* 25 */ /***/ function(module, exports) { - /* WEBPACK VAR INJECTION */(function(global) {/** - * lodash 3.0.5 (Custom Build) + /** + * lodash 3.6.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** Used as the `TypeError` message for "Functions" methods. */ + var FUNC_ERROR_TEXT = 'Expected a function'; + + /* Native method references for those with the same name as other `lodash` methods. */ + var nativeMax = Math.max; + + /** + * Creates a function that invokes `func` with the `this` binding of the + * created function and arguments from `start` and beyond provided as an array. + * + * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters). + * + * @static + * @memberOf _ + * @category Function + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.restParam(function(what, names) { + * return what + ' ' + _.initial(names).join(', ') + + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); + * }); + * + * say('hello', 'fred', 'barney', 'pebbles'); + * // => 'hello fred, barney, & pebbles' + */ + function restParam(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + rest = Array(length); + + while (++index < length) { + rest[index] = args[start + index]; + } + switch (start) { + case 0: return func.call(this, rest); + case 1: return func.call(this, args[0], rest); + case 2: return func.call(this, args[0], args[1], rest); + } + var otherArgs = Array(start + 1); + index = -1; + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = rest; + return func.apply(this, otherArgs); + }; + } + + module.exports = restParam; + + +/***/ }, +/* 26 */ +/***/ function(module, exports) { + + /** + * lodash 3.9.1 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation * Based on Underscore.js 1.8.3 @@ -3339,46 +2799,9 @@ return /******/ (function(modules) { // webpackBootstrap /** `Object#toString` result references. */ var funcTag = '[object Function]'; - /** - * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special). - * In addition to special characters the forward slash is escaped to allow for - * easier `eval` use and `Function` compilation. - */ - var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g, - reHasRegExpChars = RegExp(reRegExpChars.source); - /** Used to detect host constructors (Safari > 5). */ var reIsHostCtor = /^\[object .+?Constructor\]$/; - /** - * The base implementation of `_.isFunction` without support for environments - * with incorrect `typeof` results. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - */ - function baseIsFunction(value) { - // Avoid a Chakra JIT bug in compatibility modes of IE 11. - // See https://github.com/jashkenas/underscore/issues/1621 for more details. - return typeof value == 'function' || false; - } - - /** - * Converts `value` to a string if it's not one. An empty string is returned - * for `null` or `undefined` values. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - if (typeof value == 'string') { - return value; - } - return value == null ? '' : (value + ''); - } - /** * Checks if `value` is object-like. * @@ -3400,20 +2823,17 @@ return /******/ (function(modules) { // webpackBootstrap var hasOwnProperty = objectProto.hasOwnProperty; /** - * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring) + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) * of values. */ var objToString = objectProto.toString; /** Used to detect if a method is native. */ var reIsNative = RegExp('^' + - escapeRegExp(fnToString.call(hasOwnProperty)) + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' ); - /** Native method references. */ - var Uint8Array = getNative(global, 'Uint8Array'); - /** * Gets the native function at `key` of `object`. * @@ -3443,12 +2863,39 @@ return /******/ (function(modules) { // webpackBootstrap * _.isFunction(/abc/); * // => false */ - var isFunction = !(baseIsFunction(/x/) || (Uint8Array && !baseIsFunction(Uint8Array))) ? baseIsFunction : function(value) { + function isFunction(value) { // The use of `Object#toString` avoids issues with the `typeof` operator // in older versions of Chrome and Safari which return 'function' for regexes // and Safari 8 equivalents which return 'object' for typed array constructors. - return objToString.call(value) == funcTag; - }; + return isObject(value) && objToString.call(value) == funcTag; + } + + /** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } /** * Checks if `value` is a native function. @@ -3470,39 +2917,393 @@ return /******/ (function(modules) { // webpackBootstrap if (value == null) { return false; } - if (objToString.call(value) == funcTag) { + if (isFunction(value)) { return reIsNative.test(fnToString.call(value)); } return isObjectLike(value) && reIsHostCtor.test(value); } + module.exports = getNative; + + +/***/ }, +/* 27 */ +/***/ function(module, exports) { + /** - * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?", - * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`. + * lodash 3.0.4 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** Native method references. */ + var propertyIsEnumerable = objectProto.propertyIsEnumerable; + + /** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new function. + */ + function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; + } + + /** + * Gets the "length" property value of `object`. + * + * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) + * that affects Safari on at least iOS 8.1-8.3 ARM64. + * + * @private + * @param {Object} object The object to query. + * @returns {*} Returns the "length" value. + */ + var getLength = baseProperty('length'); + + /** + * Checks if `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ + function isArrayLike(value) { + return value != null && isLength(getLength(value)); + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ + function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is classified as an `arguments` object. * * @static * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * - * _.escapeRegExp('[lodash](https://lodash.com/)'); - * // => '\[lodash\]\(https:\/\/lodash\.com\/\)' + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false */ - function escapeRegExp(string) { - string = baseToString(string); - return (string && reHasRegExpChars.test(string)) - ? string.replace(reRegExpChars, '\\$&') - : string; + function isArguments(value) { + return isObjectLike(value) && isArrayLike(value) && + hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); + } + + module.exports = isArguments; + + +/***/ }, +/* 28 */ +/***/ function(module, exports) { + + /** + * lodash 3.0.4 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** `Object#toString` result references. */ + var arrayTag = '[object Array]', + funcTag = '[object Function]'; + + /** Used to detect host constructors (Safari > 5). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var fnToString = Function.prototype.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objToString = objectProto.toString; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); + + /* Native method references for those with the same name as other `lodash` methods. */ + var nativeIsArray = getNative(Array, 'isArray'); + + /** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ + function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(function() { return arguments; }()); + * // => false + */ + var isArray = nativeIsArray || function(value) { + return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; + }; + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; + } + + /** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + + /** + * Checks if `value` is a native function. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ + function isNative(value) { + if (value == null) { + return false; + } + if (isFunction(value)) { + return reIsNative.test(fnToString.call(value)); + } + return isObjectLike(value) && reIsHostCtor.test(value); + } + + module.exports = isArray; + + +/***/ }, +/* 29 */ +/***/ function(module, exports) { + + /** + * lodash 3.0.6 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** `Object#toString` result references. */ + var funcTag = '[object Function]'; + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objToString = objectProto.toString; + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; + } + + /** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); } module.exports = isFunction; - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) /***/ }, -/* 31 */ +/* 30 */ /***/ function(module, exports) { /** @@ -3567,20 +3368,20 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 32 */ +/* 31 */ /***/ function(module, exports, __webpack_require__) { /** - * lodash 3.1.0 (Custom Build) + * lodash 3.2.0 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation * Based on Underscore.js 1.8.3 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseFor = __webpack_require__(7), - getNative = __webpack_require__(9), - keysIn = __webpack_require__(11); + var baseFor = __webpack_require__(32), + isArguments = __webpack_require__(6), + keysIn = __webpack_require__(33); /** `Object#toString` result references. */ var objectTag = '[object Object]'; @@ -3603,14 +3404,11 @@ return /******/ (function(modules) { // webpackBootstrap var hasOwnProperty = objectProto.hasOwnProperty; /** - * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring) + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) * of values. */ var objToString = objectProto.toString; - /** Native method references. */ - var getPrototypeOf = getNative(Object, 'getPrototypeOf'); - /** * The base implementation of `_.forIn` without support for callback * shorthands and `this` binding. @@ -3624,37 +3422,6 @@ return /******/ (function(modules) { // webpackBootstrap return baseFor(object, iteratee, keysIn); } - /** - * A fallback implementation of `_.isPlainObject` which checks if `value` - * is an object created by the `Object` constructor or has a `[[Prototype]]` - * of `null`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. - */ - function shimIsPlainObject(value) { - var Ctor; - - // Exit early for non `Object` objects. - if (!(isObjectLike(value) && objToString.call(value) == objectTag) || - (!hasOwnProperty.call(value, 'constructor') && - (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) { - return false; - } - // IE < 9 iterates inherited properties before own properties. If the first - // iterated property is an object's own property then there are no inherited - // enumerable properties. - var result; - // In most environments an object's own properties are iterated before - // its inherited properties. If the last iterated property is an object's - // own property then there are no inherited enumerable properties. - baseForIn(value, function(subValue, key) { - result = key; - }); - return result === undefined || hasOwnProperty.call(value, result); - } - /** * Checks if `value` is a plain object, that is, an object created by the * `Object` constructor or one with a `[[Prototype]]` of `null`. @@ -3685,23 +3452,448 @@ return /******/ (function(modules) { // webpackBootstrap * _.isPlainObject(Object.create(null)); * // => true */ - var isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) { - if (!(value && objToString.call(value) == objectTag)) { + function isPlainObject(value) { + var Ctor; + + // Exit early for non `Object` objects. + if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isArguments(value)) || + (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) { return false; } - var valueOf = getNative(value, 'valueOf'), - objProto = valueOf && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto); - - return objProto - ? (value == objProto || getPrototypeOf(value) == objProto) - : shimIsPlainObject(value); - }; + // IE < 9 iterates inherited properties before own properties. If the first + // iterated property is an object's own property then there are no inherited + // enumerable properties. + var result; + // In most environments an object's own properties are iterated before + // its inherited properties. If the last iterated property is an object's + // own property then there are no inherited enumerable properties. + baseForIn(value, function(subValue, key) { + result = key; + }); + return result === undefined || hasOwnProperty.call(value, result); + } module.exports = isPlainObject; +/***/ }, +/* 32 */ +/***/ function(module, exports) { + + /** + * lodash 3.0.2 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** + * The base implementation of `baseForIn` and `baseForOwn` which iterates + * over `object` properties returned by `keysFunc` invoking `iteratee` for + * each property. Iteratee functions may exit iteration early by explicitly + * returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseFor = createBaseFor(); + + /** + * Creates a base function for `_.forIn` or `_.forInRight`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var iterable = toObject(object), + props = keysFunc(object), + length = props.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length)) { + var key = props[index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } + + /** + * Converts `value` to an object if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Object} Returns the object. + */ + function toObject(value) { + return isObject(value) ? value : Object(value); + } + + /** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + + module.exports = baseFor; + + /***/ }, /* 33 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * lodash 3.0.8 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + var isArguments = __webpack_require__(6), + isArray = __webpack_require__(34); + + /** Used to detect unsigned integer values. */ + var reIsUint = /^\d+$/; + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) + * of an array-like value. + */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; + length = length == null ? MAX_SAFE_INTEGER : length; + return value > -1 && value % 1 == 0 && value < length; + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ + function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + + /** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ + function keysIn(object) { + if (object == null) { + return []; + } + if (!isObject(object)) { + object = Object(object); + } + var length = object.length; + length = (length && isLength(length) && + (isArray(object) || isArguments(object)) && length) || 0; + + var Ctor = object.constructor, + index = -1, + isProto = typeof Ctor == 'function' && Ctor.prototype === object, + result = Array(length), + skipIndexes = length > 0; + + while (++index < length) { + result[index] = (index + ''); + } + for (var key in object) { + if (!(skipIndexes && isIndex(key, length)) && + !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; + } + + module.exports = keysIn; + + +/***/ }, +/* 34 */ +/***/ function(module, exports) { + + /** + * lodash 3.0.4 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** `Object#toString` result references. */ + var arrayTag = '[object Array]', + funcTag = '[object Function]'; + + /** Used to detect host constructors (Safari > 5). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var fnToString = Function.prototype.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objToString = objectProto.toString; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); + + /* Native method references for those with the same name as other `lodash` methods. */ + var nativeIsArray = getNative(Array, 'isArray'); + + /** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ + function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(function() { return arguments; }()); + * // => false + */ + var isArray = nativeIsArray || function(value) { + return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; + }; + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; + } + + /** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + + /** + * Checks if `value` is a native function. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ + function isNative(value) { + if (value == null) { + return false; + } + if (isFunction(value)) { + return reIsNative.test(fnToString.call(value)); + } + return isObjectLike(value) && reIsHostCtor.test(value); + } + + module.exports = isArray; + + +/***/ }, +/* 35 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3712,11 +3904,11 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseFlatten = __webpack_require__(34), - bindCallback = __webpack_require__(8), - pickByArray = __webpack_require__(35), - pickByCallback = __webpack_require__(36), - restParam = __webpack_require__(12); + var baseFlatten = __webpack_require__(36), + bindCallback = __webpack_require__(39), + pickByArray = __webpack_require__(40), + pickByCallback = __webpack_require__(41), + restParam = __webpack_require__(46); /** * Creates an object composed of the picked `object` properties. Property @@ -3757,19 +3949,19 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 34 */ +/* 36 */ /***/ function(module, exports, __webpack_require__) { /** - * lodash 3.1.3 (Custom Build) + * lodash 3.1.4 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation * Based on Underscore.js 1.8.3 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var isArguments = __webpack_require__(2), - isArray = __webpack_require__(3); + var isArguments = __webpack_require__(37), + isArray = __webpack_require__(38); /** * Checks if `value` is object-like. @@ -3783,11 +3975,30 @@ return /******/ (function(modules) { // webpackBootstrap } /** - * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) * of an array-like value. */ var MAX_SAFE_INTEGER = 9007199254740991; + /** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ + function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; + } + /** * The base implementation of `_.flatten` with added support for restricting * flattening and specifying the start index. @@ -3796,13 +4007,14 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Array} array The array to flatten. * @param {boolean} [isDeep] Specify a deep flatten. * @param {boolean} [isStrict] Restrict flattening to arrays-like objects. + * @param {Array} [result=[]] The initial result value. * @returns {Array} Returns the new flattened array. */ - function baseFlatten(array, isDeep, isStrict) { + function baseFlatten(array, isDeep, isStrict, result) { + result || (result = []); + var index = -1, - length = array.length, - resIndex = -1, - result = []; + length = array.length; while (++index < length) { var value = array[index]; @@ -3810,16 +4022,12 @@ return /******/ (function(modules) { // webpackBootstrap (isStrict || isArray(value) || isArguments(value))) { if (isDeep) { // Recursively flatten arrays (susceptible to call stack limits). - value = baseFlatten(value, isDeep, isStrict); - } - var valIndex = -1, - valLength = value.length; - - while (++valIndex < valLength) { - result[++resIndex] = value[valIndex]; + baseFlatten(value, isDeep, isStrict, result); + } else { + arrayPush(result, value); } } else if (!isStrict) { - result[++resIndex] = value; + result[result.length] = value; } } return result; @@ -3864,7 +4072,7 @@ return /******/ (function(modules) { // webpackBootstrap /** * Checks if `value` is a valid array-like length. * - * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength). + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). * * @private * @param {*} value The value to check. @@ -3878,7 +4086,376 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 35 */ +/* 37 */ +/***/ function(module, exports) { + + /** + * lodash 3.0.4 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** Native method references. */ + var propertyIsEnumerable = objectProto.propertyIsEnumerable; + + /** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new function. + */ + function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; + } + + /** + * Gets the "length" property value of `object`. + * + * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) + * that affects Safari on at least iOS 8.1-8.3 ARM64. + * + * @private + * @param {Object} object The object to query. + * @returns {*} Returns the "length" value. + */ + var getLength = baseProperty('length'); + + /** + * Checks if `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ + function isArrayLike(value) { + return value != null && isLength(getLength(value)); + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ + function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is classified as an `arguments` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + function isArguments(value) { + return isObjectLike(value) && isArrayLike(value) && + hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); + } + + module.exports = isArguments; + + +/***/ }, +/* 38 */ +/***/ function(module, exports) { + + /** + * lodash 3.0.4 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** `Object#toString` result references. */ + var arrayTag = '[object Array]', + funcTag = '[object Function]'; + + /** Used to detect host constructors (Safari > 5). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var fnToString = Function.prototype.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objToString = objectProto.toString; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); + + /* Native method references for those with the same name as other `lodash` methods. */ + var nativeIsArray = getNative(Array, 'isArray'); + + /** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ + function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(function() { return arguments; }()); + * // => false + */ + var isArray = nativeIsArray || function(value) { + return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; + }; + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; + } + + /** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + + /** + * Checks if `value` is a native function. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ + function isNative(value) { + if (value == null) { + return false; + } + if (isFunction(value)) { + return reIsNative.test(fnToString.call(value)); + } + return isObjectLike(value) && reIsHostCtor.test(value); + } + + module.exports = isArray; + + +/***/ }, +/* 39 */ +/***/ function(module, exports) { + + /** + * lodash 3.0.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** + * A specialized version of `baseCallback` which only supports `this` binding + * and specifying the number of arguments to provide to `func`. + * + * @private + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {number} [argCount] The number of arguments to provide to `func`. + * @returns {Function} Returns the callback. + */ + function bindCallback(func, thisArg, argCount) { + if (typeof func != 'function') { + return identity; + } + if (thisArg === undefined) { + return func; + } + switch (argCount) { + case 1: return function(value) { + return func.call(thisArg, value); + }; + case 3: return function(value, index, collection) { + return func.call(thisArg, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(thisArg, accumulator, value, index, collection); + }; + case 5: return function(value, other, key, object, source) { + return func.call(thisArg, value, other, key, object, source); + }; + } + return function() { + return func.apply(thisArg, arguments); + }; + } + + /** + * This method returns the first argument provided to it. + * + * @static + * @memberOf _ + * @category Utility + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'user': 'fred' }; + * + * _.identity(object) === object; + * // => true + */ + function identity(value) { + return value; + } + + module.exports = bindCallback; + + +/***/ }, +/* 40 */ /***/ function(module, exports) { /** @@ -3957,7 +4534,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 36 */ +/* 41 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3968,8 +4545,8 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseFor = __webpack_require__(7), - keysIn = __webpack_require__(11); + var baseFor = __webpack_require__(42), + keysIn = __webpack_require__(43); /** * The base implementation of `_.forIn` without support for callback @@ -4007,7 +4584,608 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 37 */ +/* 42 */ +/***/ function(module, exports) { + + /** + * lodash 3.0.2 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** + * The base implementation of `baseForIn` and `baseForOwn` which iterates + * over `object` properties returned by `keysFunc` invoking `iteratee` for + * each property. Iteratee functions may exit iteration early by explicitly + * returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseFor = createBaseFor(); + + /** + * Creates a base function for `_.forIn` or `_.forInRight`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var iterable = toObject(object), + props = keysFunc(object), + length = props.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length)) { + var key = props[index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } + + /** + * Converts `value` to an object if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Object} Returns the object. + */ + function toObject(value) { + return isObject(value) ? value : Object(value); + } + + /** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + + module.exports = baseFor; + + +/***/ }, +/* 43 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * lodash 3.0.8 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + var isArguments = __webpack_require__(44), + isArray = __webpack_require__(45); + + /** Used to detect unsigned integer values. */ + var reIsUint = /^\d+$/; + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) + * of an array-like value. + */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; + length = length == null ? MAX_SAFE_INTEGER : length; + return value > -1 && value % 1 == 0 && value < length; + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ + function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + + /** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ + function keysIn(object) { + if (object == null) { + return []; + } + if (!isObject(object)) { + object = Object(object); + } + var length = object.length; + length = (length && isLength(length) && + (isArray(object) || isArguments(object)) && length) || 0; + + var Ctor = object.constructor, + index = -1, + isProto = typeof Ctor == 'function' && Ctor.prototype === object, + result = Array(length), + skipIndexes = length > 0; + + while (++index < length) { + result[index] = (index + ''); + } + for (var key in object) { + if (!(skipIndexes && isIndex(key, length)) && + !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; + } + + module.exports = keysIn; + + +/***/ }, +/* 44 */ +/***/ function(module, exports) { + + /** + * lodash 3.0.4 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** Native method references. */ + var propertyIsEnumerable = objectProto.propertyIsEnumerable; + + /** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new function. + */ + function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; + } + + /** + * Gets the "length" property value of `object`. + * + * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) + * that affects Safari on at least iOS 8.1-8.3 ARM64. + * + * @private + * @param {Object} object The object to query. + * @returns {*} Returns the "length" value. + */ + var getLength = baseProperty('length'); + + /** + * Checks if `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ + function isArrayLike(value) { + return value != null && isLength(getLength(value)); + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ + function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is classified as an `arguments` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + function isArguments(value) { + return isObjectLike(value) && isArrayLike(value) && + hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); + } + + module.exports = isArguments; + + +/***/ }, +/* 45 */ +/***/ function(module, exports) { + + /** + * lodash 3.0.4 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** `Object#toString` result references. */ + var arrayTag = '[object Array]', + funcTag = '[object Function]'; + + /** Used to detect host constructors (Safari > 5). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var fnToString = Function.prototype.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objToString = objectProto.toString; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); + + /* Native method references for those with the same name as other `lodash` methods. */ + var nativeIsArray = getNative(Array, 'isArray'); + + /** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ + function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(function() { return arguments; }()); + * // => false + */ + var isArray = nativeIsArray || function(value) { + return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; + }; + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; + } + + /** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + + /** + * Checks if `value` is a native function. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ + function isNative(value) { + if (value == null) { + return false; + } + if (isFunction(value)) { + return reIsNative.test(fnToString.call(value)); + } + return isObjectLike(value) && reIsHostCtor.test(value); + } + + module.exports = isArray; + + +/***/ }, +/* 46 */ +/***/ function(module, exports) { + + /** + * lodash 3.6.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** Used as the `TypeError` message for "Functions" methods. */ + var FUNC_ERROR_TEXT = 'Expected a function'; + + /* Native method references for those with the same name as other `lodash` methods. */ + var nativeMax = Math.max; + + /** + * Creates a function that invokes `func` with the `this` binding of the + * created function and arguments from `start` and beyond provided as an array. + * + * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters). + * + * @static + * @memberOf _ + * @category Function + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.restParam(function(what, names) { + * return what + ' ' + _.initial(names).join(', ') + + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); + * }); + * + * say('hello', 'fred', 'barney', 'pebbles'); + * // => 'hello fred, barney, & pebbles' + */ + function restParam(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + rest = Array(length); + + while (++index < length) { + rest[index] = args[start + index]; + } + switch (start) { + case 0: return func.call(this, rest); + case 1: return func.call(this, args[0], rest); + case 2: return func.call(this, args[0], args[1], rest); + } + var otherArgs = Array(start + 1); + index = -1; + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = rest; + return func.apply(this, otherArgs); + }; + } + + module.exports = restParam; + + +/***/ }, +/* 47 */ /***/ function(module, exports) { 'use strict'; @@ -4045,7 +5223,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 38 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! diff --git a/lib/umd/GoogleMapReact.min.js b/lib/umd/GoogleMapReact.min.js index a5e3348..0d3f0d1 100644 --- a/lib/umd/GoogleMapReact.min.js +++ b/lib/umd/GoogleMapReact.min.js @@ -1,7 +1,7 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports.GoogleMapReact=e(require("react")):t.GoogleMapReact=e(t.React)}(this,function(t){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={exports:{},id:o,loaded:!1};return t[o].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var r=n(15),i=o(r);e["default"]=i["default"],t.exports=e["default"]},function(e,n){e.exports=t},function(t,e){function n(t){return!!t&&"object"==typeof t}function o(t){return function(e){return null==e?void 0:e[t]}}function r(t){return null!=t&&i(f(t))}function i(t){return"number"==typeof t&&t>-1&&t%1==0&&l>=t}function s(t){return n(t)&&r(t)&&c.call(t)==u}var u="[object Arguments]",a=Object.prototype,c=a.toString,l=9007199254740991,f=o("length");t.exports=s},function(t,e){function n(t){return"string"==typeof t?t:null==t?"":t+""}function o(t){return!!t&&"object"==typeof t}function r(t,e){var n=null==t?void 0:t[e];return s(n)?n:void 0}function i(t){return"number"==typeof t&&t>-1&&t%1==0&&m>=t}function s(t){return null==t?!1:v.call(t)==c?g.test(d.call(t)):o(t)&&p.test(t)}function u(t){return t=n(t),t&&f.test(t)?t.replace(l,"\\$&"):t}var a="[object Array]",c="[object Function]",l=/[.*+?^${}()|[\]\/\\]/g,f=RegExp(l.source),p=/^\[object .+?Constructor\]$/,h=Object.prototype,d=Function.prototype.toString,_=h.hasOwnProperty,v=h.toString,g=RegExp("^"+u(d.call(_)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),y=r(Array,"isArray"),m=9007199254740991,x=y||function(t){return o(t)&&i(t.length)&&v.call(t)==a};t.exports=x},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}e.__esModule=!0;var s=Object.assign||function(t){for(var e=1;e-1&&t%1==0&&e>t}function s(t){return"number"==typeof t&&t>-1&&t%1==0&&g>=t}function u(t){for(var e=c(t),n=e.length,o=n&&t.length,r=!!o&&s(o)&&(p(t)||f(t)),u=-1,a=[];++u0;++o-1&&t%1==0&&e>t}function r(t){return"number"==typeof t&&t>-1&&t%1==0&&p>=t}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function s(t){if(null==t)return[];i(t)||(t=Object(t));var e=t.length;e=e&&r(e)&&(a(t)||u(t))&&e||0;for(var n=t.constructor,s=-1,c="function"==typeof n&&n.prototype===t,l=Array(e),p=e>0;++sn&&(o.boundingRect_=t.currentTarget.getBoundingClientRect()),o.mouseMoveTime_=e;var r=t.clientX-o.boundingRect_.left,i=t.clientY-o.boundingRect_.top;o.mouse_||(o.mouse_={x:0,y:0,lat:0,lng:0});var s=100;o.mouse_.x=r,o.mouse_.y=i;var u=o.geoService_.unproject(o.mouse_,!0);o.mouse_.lat=u.lat,o.mouse_.lng=u.lng,e-o.dragTime_t&&o.markersDispatcher_.emit("kON_CLICK")}},this._isCenterDefined=function(t){return t&&2===t.length&&$["default"](t[0])&&$["default"](t[1])},this.mounted_=!1,this.map_=null,this.maps_=null,this.prevBounds_=null,this.mouse_=null,this.mouseMoveTime_=0,this.boundingRect_=null,this.mouseInMap_=!0,this.dragTime_=0,this.fireMouseEventOnIdle_=!1,this.updateCounter_=0,this.markersDispatcher_=new d["default"](this),this.geoService_=new S["default"](R),this._isCenterDefined(this.props.center)&&this.geoService_.setView(this.props.center,this.props.zoom,0),this.state={overlayCreated:!1}}return i(e,t),e.prototype.componentDidMount=function(){var t=this;this.mounted_=!0,window.addEventListener("resize",this._onWindowResize),setTimeout(function(){t._setViewSize(),t._isCenterDefined(t.props.center)?t._initMap():t.props.googleMapLoader(t.props.apiKey)},0,this)},e.prototype.componentWillUnmount=function(){this.mounted_=!1,window.removeEventListener("resize",this._onWindowResize),this.maps_&&this.map_&&this.maps_.event.clearInstanceListeners(this.map_),this.map_=null,this.maps_=null,this.markersDispatcher_.dispose(),this.resetSizeOnIdle_=!1,delete this.map_,delete this.markersDispatcher_},e.prototype.componentWillReceiveProps=function(t){var e=this;if(!this._isCenterDefined(this.props.center)&&this._isCenterDefined(t.center)&&setTimeout(function(){return e._initMap()},0),this.map_){var n=this.geoService_.getCenter();t.center&&Math.abs(t.center[0]-n.lat)+Math.abs(t.center[1]-n.lng)>H&&this.map_.panTo({lat:t.center[0],lng:t.center[1]}),Math.abs(t.zoom-this.props.zoom)>0&&this.map_.setZoom(t.zoom)}},e.prototype.componentDidUpdate=function(){this.markersDispatcher_.emit("kON_CHANGE")},e.prototype.render=function(){var t=this.state.overlayCreated?null:l["default"].createElement(x["default"],{onChildClick:this._onChildClick,onChildMouseEnter:this._onChildMouseEnter,onChildMouseLeave:this._onChildMouseLeave,geoService:this.geoService_,projectFromLeftTop:!1,distanceToMouse:this.props.distanceToMouse,hoverDistance:this.props.hoverDistance,dispatcher:this.markersDispatcher_});return l["default"].createElement("div",{style:B,onMouseMove:this._onMouseMove,onClick:this._onMapClick},l["default"].createElement(v["default"],{ref:"google_map_dom"}),t)},a(e,null,[{key:"propTypes",value:{apiKey:c.PropTypes.string,center:c.PropTypes.array.isRequired,zoom:c.PropTypes.number.isRequired,onBoundsChange:c.PropTypes.func,onChildClick:c.PropTypes.func,onChildMouseEnter:c.PropTypes.func,onChildMouseLeave:c.PropTypes.func,options:c.PropTypes.any,distanceToMouse:c.PropTypes.func,hoverDistance:c.PropTypes.number,debounced:c.PropTypes.bool,margin:c.PropTypes.array,googleMapLoader:c.PropTypes.any},enumerable:!0},{key:"defaultProps",value:{distanceToMouse:function(t,e){var n=t.x,o=t.y;return Math.sqrt((n-e.x)*(n-e.x)+(o-e.y)*(o-e.y))},hoverDistance:30,debounced:!0,options:s,googleMapLoader:C["default"]},enumerable:!0}]),e}(c.Component);e["default"]=Z,t.exports=e["default"]},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}e.__esModule=!0;var s=n(1),u=o(s),a={width:"100%",height:"100%",left:0,top:0,margin:0,padding:0,position:"absolute"},c=function(t){function e(n){r(this,e),t.call(this,n)}return i(e,t),e.prototype.shouldComponentUpdate=function(){return!1},e.prototype.render=function(){return u["default"].createElement("div",{style:a})},e}(s.Component);e["default"]=c,t.exports=e["default"]},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}e.__esModule=!0;var s=n(1),u=o(s),a=n(4),c=o(a),l={width:"50%",height:"50%",left:"50%",top:"50%",margin:0,padding:0,position:"absolute"},f=function(t){function e(n){r(this,e),t.call(this,n)}return i(e,t),e.prototype.render=function(){return u["default"].createElement("div",{style:l},u["default"].createElement(c["default"],this.props))},e}(s.Component);e["default"]=f,t.exports=e["default"]},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}e.__esModule=!0;var s=n(24),u=o(s),a=function(t){function e(n){r(this,e),t.call(this),this.gmapInstance=n}return i(e,t),e.prototype.getChildren=function(){return this.gmapInstance.props.children},e.prototype.getMousePosition=function(){return this.gmapInstance.mouse_},e.prototype.getUpdateCounter=function(){return this.gmapInstance.updateCounter_},e.prototype.dispose=function(){this.gmapInstance=null,this.removeAllListeners()},e}(u["default"]);e["default"]=a,t.exports=e["default"]},function(t,e){"use strict";function n(t,e,n){if(t&&e){for(var o=0;o!==t.length;++o)if(Math.abs(t[o]-e[o])>n)return!1;return!0}return!1}e.__esModule=!0,e["default"]=n,t.exports=e["default"]},function(t,e){"use strict";function n(){if(o)return o;if("undefined"!=typeof navigator){var t=navigator.userAgent.indexOf("MSIE")>-1,e=navigator.userAgent.indexOf("Firefox")>-1,n=navigator.userAgent.toLowerCase().indexOf("op")>-1,r=navigator.userAgent.indexOf("Chrome")>-1,i=navigator.userAgent.indexOf("Safari")>-1;return r&&i&&(i=!1),r&&n&&(r=!1),o={isExplorer:t,isFirefox:e,isOpera:n,isChrome:r,isSafari:i}}return o={isChrome:!0,isExplorer:!1,isFirefox:!1,isOpera:!1,isSafari:!1}}e.__esModule=!0,e["default"]=n;var o=null;t.exports=e["default"]},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}e.__esModule=!0;var i=Object.assign||function(t){for(var e=1;e0&&this.getHeight()-n-r>0){var s=this.unproject({x:i-this.getWidth()/2,y:n-this.getHeight()/2}),u=this.unproject({x:this.getWidth()/2-o,y:this.getHeight()/2-r}),a=[s.lat,s.lng,u.lat,u.lng];return e&&(a=a.map(function(t){return Math.round(t*e)/e})),a}return[0,0,0,0]},t}();e["default"]=p,t.exports=e["default"]},function(t,e,n){"use strict";function o(t,e,n){this.tileSize=t||512,this._minZoom=e||0,this._maxZoom=n||52,this.latRange=[-85.05113,85.05113],this.width=0,this.height=0,this.zoom=0,this.center=new r(0,0),this.angle=0}var r=n(5),i=n(13),s=n(6).wrap;o.prototype=Object.defineProperties({zoomScale:function(t){return Math.pow(2,t)},scaleZoom:function(t){return Math.log(t)/Math.LN2},project:function(t,e){return new i(this.lngX(t.lng,e),this.latY(t.lat,e))},unproject:function(t,e){return new r(this.yLat(t.y,e),this.xLng(t.x,e))},lngX:function(t,e){return(180+t)*(e||this.worldSize)/360},latY:function(t,e){var n=180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360));return(180-n)*(e||this.worldSize)/360},xLng:function(t,e){return 360*t/(e||this.worldSize)-180},yLat:function(t,e){var n=180-360*t/(e||this.worldSize);return 360/Math.PI*Math.atan(Math.exp(n*Math.PI/180))-90},locationPoint:function(t){var e=this.project(t);return this.centerPoint._sub(this.point._sub(e)._rotate(this.angle))},pointLocation:function(t){var e=this.centerPoint._sub(t)._rotate(-this.angle);return this.unproject(this.point.sub(e))}},{minZoom:{get:function(){return this._minZoom},set:function(t){this._minZoom=t,this.zoom=Math.max(this.zoom,t)},configurable:!0,enumerable:!0},maxZoom:{get:function(){return this._maxZoom},set:function(t){this._maxZoom=t,this.zoom=Math.min(this.zoom,t)},configurable:!0,enumerable:!0},worldSize:{get:function(){return this.tileSize*this.scale},configurable:!0,enumerable:!0},centerPoint:{get:function(){return new i(0,0)},configurable:!0,enumerable:!0},size:{get:function(){return new i(this.width,this.height)},configurable:!0,enumerable:!0},bearing:{get:function(){return-this.angle/Math.PI*180},set:function(t){this.angle=-s(t,-180,180)*Math.PI/180},configurable:!0,enumerable:!0},zoom:{get:function(){return this._zoom},set:function(t){t=Math.min(Math.max(t,this.minZoom),this.maxZoom),this._zoom=t,this.scale=this.zoomScale(t),this.tileZoom=Math.floor(t),this.zoomFraction=t-this.tileZoom},configurable:!0,enumerable:!0},x:{get:function(){return this.lngX(this.center.lng)},configurable:!0,enumerable:!0},y:{get:function(){return this.latY(this.center.lat)},configurable:!0,enumerable:!0},point:{get:function(){return new i(this.x,this.y)},configurable:!0,enumerable:!0}}),t.exports=o},function(t,e,n){"use strict";var o=null,r=void 0;t.exports=function(t){return o||(o=n(38)),r?r:r=new Promise(function(e,n){if("undefined"==typeof window)return void n(new Error("google map cannot be loaded outside browser env"));if(window.google&&window.google.maps)return void e(window.google.maps);"undefined"!=typeof window._$_google_map_initialize_$_&&n(new Error("google map initialization error")),window._$_google_map_initialize_$_=function(){delete window._$_google_map_initialize_$_,e(window.google.maps)};var r=t?"&key="+t:"";o("https://maps.googleapis.com/maps/api/js?callback=_$_google_map_initialize_$_"+r,function(){"undefined"==typeof window.google&&n(new Error("google map initialization error (not loaded)"))})})}},function(t,e,n){"use strict";function o(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function r(){}var i="function"!=typeof Object.create?"~":!1;r.prototype._events=void 0,r.prototype.listeners=function(t,e){var n=i?i+t:t,o=this._events&&this._events[n];if(e)return!!o;if(!o)return[];if(o.fn)return[o.fn];for(var r=0,s=o.length,u=new Array(s);s>r;r++)u[r]=o[r].fn;return u},r.prototype.emit=function(t,e,n,o,r,s){var u=i?i+t:t;if(!this._events||!this._events[u])return!1;var a,c,l=this._events[u],f=arguments.length;if("function"==typeof l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),f){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,n),!0;case 4:return l.fn.call(l.context,e,n,o),!0;case 5:return l.fn.call(l.context,e,n,o,r),!0;case 6:return l.fn.call(l.context,e,n,o,r,s),!0}for(c=1,a=new Array(f-1);f>c;c++)a[c-1]=arguments[c];l.fn.apply(l.context,a)}else{var p,h=l.length;for(c=0;h>c;c++)switch(l[c].once&&this.removeListener(t,l[c].fn,void 0,!0),f){case 1:l[c].fn.call(l[c].context);break;case 2:l[c].fn.call(l[c].context,e);break;case 3:l[c].fn.call(l[c].context,e,n);break;default:if(!a)for(p=1,a=new Array(f-1);f>p;p++)a[p-1]=arguments[p];l[c].fn.apply(l[c].context,a)}}return!0},r.prototype.on=function(t,e,n){var r=new o(e,n||this),s=i?i+t:t;return this._events||(this._events=i?{}:Object.create(null)),this._events[s]?this._events[s].fn?this._events[s]=[this._events[s],r]:this._events[s].push(r):this._events[s]=r,this},r.prototype.once=function(t,e,n){var r=new o(e,n||this,!0),s=i?i+t:t;return this._events||(this._events=i?{}:Object.create(null)),this._events[s]?this._events[s].fn?this._events[s]=[this._events[s],r]:this._events[s].push(r):this._events[s]=r,this},r.prototype.removeListener=function(t,e,n,o){var r=i?i+t:t;if(!this._events||!this._events[r])return this;var s=this._events[r],u=[];if(e)if(s.fn)(s.fn!==e||o&&!s.once||n&&s.context!==n)&&u.push(s);else for(var a=0,c=s.length;c>a;a++)(s[a].fn!==e||o&&!s[a].once||n&&s[a].context!==n)&&u.push(s[a]);return u.length?this._events[r]=1===u.length?u[0]:u:delete this._events[r],this},r.prototype.removeAllListeners=function(t){return this._events?(t?delete this._events[i?i+t:t]:this._events=i?{}:Object.create(null),this):this},r.prototype.off=r.prototype.removeListener,r.prototype.addListener=r.prototype.on,r.prototype.setMaxListeners=function(){return this},r.prefixed=i, -t.exports=r},function(t,e,n){function o(t,e,n){for(var o=-1,r=s(e),i=r.length;++o2?n[s-2]:void 0,a=s>2?n[2]:void 0,c=s>1?n[s-1]:void 0;for("function"==typeof u?(u=r(u,c,5),s-=2):(u="function"==typeof c?c:void 0,s-=u?1:0),a&&i(n[0],n[1],a)&&(u=3>s?void 0:u,s=1);++o-1&&t%1==0&&e>t}function i(t,e,n){if(!u(n))return!1;var i=typeof e;if("number"==i?o(n)&&r(e,n.length):"string"==i&&e in n){var s=n[e];return t===t?t===s:s!==s}return!1}function s(t){return"number"==typeof t&&t>-1&&t%1==0&&c>=t}function u(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var a=/^\d+$/,c=9007199254740991,l=n("length");t.exports=i},function(t,e){(function(e){function n(t){return"function"==typeof t||!1}function o(t){return"string"==typeof t?t:null==t?"":t+""}function r(t){return!!t&&"object"==typeof t}function i(t,e){var n=null==t?void 0:t[e];return s(n)?n:void 0}function s(t){return null==t?!1:_.call(t)==a?v.test(h.call(t)):r(t)&&f.test(t)}function u(t){return t=o(t),t&&l.test(t)?t.replace(c,"\\$&"):t}var a="[object Function]",c=/[.*+?^${}()|[\]\/\\]/g,l=RegExp(c.source),f=/^\[object .+?Constructor\]$/,p=Object.prototype,h=Function.prototype.toString,d=p.hasOwnProperty,_=p.toString,v=RegExp("^"+u(h.call(d)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),g=i(e,"Uint8Array"),y=n(/x/)||g&&!n(g)?function(t){return _.call(t)==a}:n;t.exports=y}).call(e,function(){return this}())},function(t,e){function n(t){return!!t&&"object"==typeof t}function o(t){return"number"==typeof t||n(t)&&s.call(t)==r}var r="[object Number]",i=Object.prototype,s=i.toString;t.exports=o},function(t,e,n){function o(t){return!!t&&"object"==typeof t}function r(t,e){return s(t,e,a)}function i(t){var e;if(!o(t)||p.call(t)!=c||!f.call(t,"constructor")&&(e=t.constructor,"function"==typeof e&&!(e instanceof e)))return!1;var n;return r(t,function(t,e){n=e}),void 0===n||f.call(t,n)}var s=n(7),u=n(9),a=n(11),c="[object Object]",l=Object.prototype,f=l.hasOwnProperty,p=l.toString,h=u(Object,"getPrototypeOf"),d=h?function(t){if(!t||p.call(t)!=c)return!1;var e=u(t,"valueOf"),n=e&&(n=h(e))&&h(n);return n?t==n||h(t)==n:i(t)}:i;t.exports=d},function(t,e,n){var o=n(34),r=n(8),i=n(35),s=n(36),u=n(12),a=u(function(t,e){return null==t?{}:"function"==typeof e[0]?s(t,r(e[0],e[1],3)):i(t,o(e))});t.exports=a},function(t,e,n){function o(t){return!!t&&"object"==typeof t}function r(t,e,n){for(var i=-1,u=t.length,l=-1,f=[];++i-1&&t%1==0&&l>=t}var a=n(2),c=n(3),l=9007199254740991,f=i("length");t.exports=r},function(t,e){function n(t,e){t=o(t);for(var n=-1,r=e.length,i={};++n-1&&t%1==0&&e>t}function u(t){return"number"==typeof t&&t>-1&&t%1==0&&_>=t}function s(t){for(var e=c(t),n=e.length,r=n&&t.length,o=!!r&&u(r)&&(p(t)||f(t)),s=-1,a=[];++s0;++r-1&&t%1==0&&l>=t}function u(t){return n(t)&&o(t)&&a.call(t,"callee")&&!c.call(t,"callee")}var s=Object.prototype,a=s.hasOwnProperty,c=s.propertyIsEnumerable,l=9007199254740991,f=r("length");t.exports=u},function(t,e){"use strict";function n(t,e){this.x=t,this.y=e}t.exports=n,n.prototype={clone:function(){return new n(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,n=t.y-this.y;return e*e+n*n},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[0]*this.x+t[1]*this.y,n=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=n,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),n=Math.sin(t),r=e*this.x-n*this.y,o=n*this.x+e*this.y;return this.x=r,this.y=o,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},n.convert=function(t){return t instanceof n?t:Array.isArray(t)?new n(t[0],t[1]):t}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){return!u["default"](this.props,t)||!u["default"](this.state,e)}e.__esModule=!0,e["default"]=o;var i=n(47),u=r(i);t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(){return{overviewMapControl:!1,streetViewControl:!1,rotateControl:!0,mapTypeControl:!1,styles:[{featureType:"poi",elementType:"labels",stylers:[{visibility:"off"}]}],minZoom:3}}e.__esModule=!0;var s=Object.assign||function(t){for(var e=1;en&&(r.boundingRect_=t.currentTarget.getBoundingClientRect()),r.mouseMoveTime_=e;var o=t.clientX-r.boundingRect_.left,i=t.clientY-r.boundingRect_.top;r.mouse_||(r.mouse_={x:0,y:0,lat:0,lng:0});var u=100;r.mouse_.x=o,r.mouse_.y=i;var s=r.geoService_.unproject(r.mouse_,!0);r.mouse_.lat=s.lat,r.mouse_.lng=s.lng,e-r.dragTime_t&&r.markersDispatcher_.emit("kON_CLICK")}},this._isCenterDefined=function(t){return t&&2===t.length&&N["default"](t[0])&&N["default"](t[1])},this.mounted_=!1,this.map_=null,this.maps_=null,this.prevBounds_=null,this.mouse_=null,this.mouseMoveTime_=0,this.boundingRect_=null,this.mouseInMap_=!0,this.dragTime_=0,this.fireMouseEventOnIdle_=!1,this.updateCounter_=0,this.markersDispatcher_=new d["default"](this),this.geoService_=new j["default"](F),this._isCenterDefined(this.props.center)&&this.geoService_.setView(this.props.center,this.props.zoom,0),this.state={overlayCreated:!1}}return i(e,t),a(e,null,[{key:"propTypes",value:{apiKey:c.PropTypes.string,center:c.PropTypes.array.isRequired,zoom:c.PropTypes.number.isRequired,onBoundsChange:c.PropTypes.func,onChildClick:c.PropTypes.func,onChildMouseEnter:c.PropTypes.func,onChildMouseLeave:c.PropTypes.func,options:c.PropTypes.any,distanceToMouse:c.PropTypes.func,hoverDistance:c.PropTypes.number,debounced:c.PropTypes.bool,margin:c.PropTypes.array,googleMapLoader:c.PropTypes.any},enumerable:!0},{key:"defaultProps",value:{distanceToMouse:function(t,e){var n=t.x,r=t.y;return Math.sqrt((n-e.x)*(n-e.x)+(r-e.y)*(r-e.y))},hoverDistance:30,debounced:!0,options:u,googleMapLoader:w["default"]},enumerable:!0}]),e.prototype.componentDidMount=function(){var t=this;this.mounted_=!0,window.addEventListener("resize",this._onWindowResize),setTimeout(function(){t._setViewSize(),t._isCenterDefined(t.props.center)?t._initMap():t.props.googleMapLoader(t.props.apiKey)},0,this)},e.prototype.componentWillUnmount=function(){this.mounted_=!1,window.removeEventListener("resize",this._onWindowResize),this.overlay_&&this.overlay_.setMap(null),this.maps_&&this.map_&&this.maps_.event.clearInstanceListeners(this.map_),this.map_=null,this.maps_=null,this.markersDispatcher_.dispose(),this.resetSizeOnIdle_=!1,delete this.map_,delete this.markersDispatcher_},e.prototype.componentWillReceiveProps=function(t){var e=this;if(!this._isCenterDefined(this.props.center)&&this._isCenterDefined(t.center)&&setTimeout(function(){return e._initMap()},0),this.map_){var n=this.geoService_.getCenter();t.center&&Math.abs(t.center[0]-n.lat)+Math.abs(t.center[1]-n.lng)>H&&this.map_.panTo({lat:t.center[0],lng:t.center[1]}),Math.abs(t.zoom-this.props.zoom)>0&&this.map_.setZoom(t.zoom)}},e.prototype.componentDidUpdate=function(){this.markersDispatcher_.emit("kON_CHANGE")},e.prototype.render=function(){var t=this.state.overlayCreated?null:l["default"].createElement(b["default"],{onChildClick:this._onChildClick,onChildMouseEnter:this._onChildMouseEnter,onChildMouseLeave:this._onChildMouseLeave,geoService:this.geoService_,projectFromLeftTop:!1,distanceToMouse:this.props.distanceToMouse,hoverDistance:this.props.hoverDistance,dispatcher:this.markersDispatcher_});return l["default"].createElement("div",{style:R,onMouseMove:this._onMouseMove,onClick:this._onMapClick},l["default"].createElement(y["default"],{ref:"google_map_dom"}),t)},e}(c.Component);e["default"]=B,t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}e.__esModule=!0;var u=n(1),s=r(u),a={width:"100%",height:"100%",left:0,top:0,margin:0,padding:0,position:"absolute"},c=function(t){function e(n){o(this,e),t.call(this,n)}return i(e,t),e.prototype.shouldComponentUpdate=function(){return!1},e.prototype.render=function(){return s["default"].createElement("div",{style:a})},e}(u.Component);e["default"]=c,t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}e.__esModule=!0;var u=n(1),s=r(u),a=n(2),c=r(a),l={width:"50%",height:"50%",left:"50%",top:"50%",margin:0,padding:0,position:"absolute"},f=function(t){function e(n){o(this,e),t.call(this,n)}return i(e,t),e.prototype.render=function(){return s["default"].createElement("div",{style:l},s["default"].createElement(c["default"],this.props))},e}(u.Component);e["default"]=f,t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}e.__esModule=!0;var u=n(18),s=r(u),a=function(t){function e(n){o(this,e),t.call(this),this.gmapInstance=n}return i(e,t),e.prototype.getChildren=function(){return this.gmapInstance.props.children},e.prototype.getMousePosition=function(){return this.gmapInstance.mouse_},e.prototype.getUpdateCounter=function(){return this.gmapInstance.updateCounter_},e.prototype.dispose=function(){this.gmapInstance=null,this.removeAllListeners()},e}(s["default"]);e["default"]=a,t.exports=e["default"]},function(t,e){"use strict";function n(t,e,n){if(t&&e){for(var r=0;r!==t.length;++r)if(Math.abs(t[r]-e[r])>n)return!1;return!0}return!1}e.__esModule=!0,e["default"]=n,t.exports=e["default"]},function(t,e){"use strict";function n(){if(r)return r;if("undefined"!=typeof navigator){var t=navigator.userAgent.indexOf("MSIE")>-1,e=navigator.userAgent.indexOf("Firefox")>-1,n=navigator.userAgent.toLowerCase().indexOf("op")>-1,o=navigator.userAgent.indexOf("Chrome")>-1,i=navigator.userAgent.indexOf("Safari")>-1;return o&&i&&(i=!1),o&&n&&(o=!1),r={isExplorer:t,isFirefox:e,isOpera:n,isChrome:o,isSafari:i}}return r={isChrome:!0,isExplorer:!1,isFirefox:!1,isOpera:!1,isSafari:!1}}e.__esModule=!0,e["default"]=n;var r=null;t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}e.__esModule=!0;var i=Object.assign||function(t){for(var e=1;e0&&this.getHeight()-n-o>0){var u=this.unproject({x:i-this.getWidth()/2,y:n-this.getHeight()/2}),s=this.unproject({x:this.getWidth()/2-r,y:this.getHeight()/2-o}),a=[u.lat,u.lng,s.lat,s.lng];return e&&(a=a.map(function(t){return Math.round(t*e)/e})),a}return[0,0,0,0]},t}();e["default"]=p,t.exports=e["default"]},function(t,e,n){"use strict";function r(t,e,n){this.tileSize=t||512,this._minZoom=e||0,this._maxZoom=n||52,this.latRange=[-85.05113,85.05113],this.width=0,this.height=0,this.zoom=0,this.center=new o(0,0),this.angle=0}var o=n(3),i=n(7),u=n(4).wrap;r.prototype=Object.defineProperties({zoomScale:function(t){return Math.pow(2,t)},scaleZoom:function(t){return Math.log(t)/Math.LN2},project:function(t,e){return new i(this.lngX(t.lng,e),this.latY(t.lat,e))},unproject:function(t,e){return new o(this.yLat(t.y,e),this.xLng(t.x,e))},lngX:function(t,e){return(180+t)*(e||this.worldSize)/360},latY:function(t,e){var n=180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360));return(180-n)*(e||this.worldSize)/360},xLng:function(t,e){return 360*t/(e||this.worldSize)-180},yLat:function(t,e){var n=180-360*t/(e||this.worldSize);return 360/Math.PI*Math.atan(Math.exp(n*Math.PI/180))-90},locationPoint:function(t){var e=this.project(t);return this.centerPoint._sub(this.point._sub(e)._rotate(this.angle))},pointLocation:function(t){var e=this.centerPoint._sub(t)._rotate(-this.angle);return this.unproject(this.point.sub(e))}},{minZoom:{get:function(){return this._minZoom},set:function(t){this._minZoom=t,this.zoom=Math.max(this.zoom,t)},configurable:!0,enumerable:!0},maxZoom:{get:function(){return this._maxZoom},set:function(t){this._maxZoom=t,this.zoom=Math.min(this.zoom,t)},configurable:!0,enumerable:!0},worldSize:{get:function(){return this.tileSize*this.scale},configurable:!0,enumerable:!0},centerPoint:{get:function(){return new i(0,0)},configurable:!0,enumerable:!0},size:{get:function(){return new i(this.width,this.height)},configurable:!0,enumerable:!0},bearing:{get:function(){return-this.angle/Math.PI*180},set:function(t){this.angle=-u(t,-180,180)*Math.PI/180},configurable:!0,enumerable:!0},zoom:{get:function(){return this._zoom},set:function(t){t=Math.min(Math.max(t,this.minZoom),this.maxZoom),this._zoom=t,this.scale=this.zoomScale(t),this.tileZoom=Math.floor(t),this.zoomFraction=t-this.tileZoom},configurable:!0,enumerable:!0},x:{get:function(){return this.lngX(this.center.lng)},configurable:!0,enumerable:!0},y:{get:function(){return this.latY(this.center.lat)},configurable:!0,enumerable:!0},point:{get:function(){return new i(this.x,this.y)},configurable:!0,enumerable:!0}}),t.exports=r},function(t,e,n){"use strict";var r=null,o=void 0;t.exports=function(t){return r||(r=n(48)),o?o:o=new Promise(function(e,n){if("undefined"==typeof window)return void n(new Error("google map cannot be loaded outside browser env"));if(window.google&&window.google.maps)return void e(window.google.maps);"undefined"!=typeof window._$_google_map_initialize_$_&&n(new Error("google map initialization error")),window._$_google_map_initialize_$_=function(){delete window._$_google_map_initialize_$_,e(window.google.maps)};var o=t?"&key="+t:"";r("https://maps.googleapis.com/maps/api/js?callback=_$_google_map_initialize_$_"+o,function(){"undefined"==typeof window.google&&n(new Error("google map initialization error (not loaded)"))})})}},function(t,e,n){"use strict";function r(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(){}var i="function"!=typeof Object.create?"~":!1;o.prototype._events=void 0,o.prototype.listeners=function(t,e){var n=i?i+t:t,r=this._events&&this._events[n];if(e)return!!r;if(!r)return[];if(r.fn)return[r.fn];for(var o=0,u=r.length,s=new Array(u);u>o;o++)s[o]=r[o].fn;return s},o.prototype.emit=function(t,e,n,r,o,u){var s=i?i+t:t;if(!this._events||!this._events[s])return!1;var a,c,l=this._events[s],f=arguments.length;if("function"==typeof l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),f){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,n),!0;case 4:return l.fn.call(l.context,e,n,r),!0;case 5:return l.fn.call(l.context,e,n,r,o),!0;case 6:return l.fn.call(l.context,e,n,r,o,u),!0}for(c=1,a=new Array(f-1);f>c;c++)a[c-1]=arguments[c];l.fn.apply(l.context,a)}else{var p,h=l.length;for(c=0;h>c;c++)switch(l[c].once&&this.removeListener(t,l[c].fn,void 0,!0),f){case 1:l[c].fn.call(l[c].context);break;case 2:l[c].fn.call(l[c].context,e);break;case 3:l[c].fn.call(l[c].context,e,n);break;default:if(!a)for(p=1,a=new Array(f-1);f>p;p++)a[p-1]=arguments[p];l[c].fn.apply(l[c].context,a)}}return!0},o.prototype.on=function(t,e,n){var o=new r(e,n||this),u=i?i+t:t;return this._events||(this._events=i?{}:Object.create(null)),this._events[u]?this._events[u].fn?this._events[u]=[this._events[u],o]:this._events[u].push(o):this._events[u]=o,this},o.prototype.once=function(t,e,n){var o=new r(e,n||this,!0),u=i?i+t:t;return this._events||(this._events=i?{}:Object.create(null)),this._events[u]?this._events[u].fn?this._events[u]=[this._events[u],o]:this._events[u].push(o):this._events[u]=o,this},o.prototype.removeListener=function(t,e,n,r){var o=i?i+t:t;if(!this._events||!this._events[o])return this;var u=this._events[o],s=[];if(e)if(u.fn)(u.fn!==e||r&&!u.once||n&&u.context!==n)&&s.push(u);else for(var a=0,c=u.length;c>a;a++)(u[a].fn!==e||r&&!u[a].once||n&&u[a].context!==n)&&s.push(u[a]);return s.length?this._events[o]=1===s.length?s[0]:s:delete this._events[o],this},o.prototype.removeAllListeners=function(t){return this._events?(t?delete this._events[i?i+t:t]:this._events=i?{}:Object.create(null),this):this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prototype.setMaxListeners=function(){return this},o.prefixed=i,t.exports=o},function(t,e,n){function r(t,e,n){for(var r=-1,o=u(e),i=o.length;++r2?n[u-2]:void 0,a=u>2?n[2]:void 0,c=u>1?n[u-1]:void 0;for("function"==typeof s?(s=o(s,c,5),u-=2):(s="function"==typeof c?c:void 0,u-=s?1:0),a&&i(n[0],n[1],a)&&(s=3>u?void 0:s,u=1);++r-1&&t%1==0&&e>t}function i(t,e,n){if(!s(n))return!1;var i=typeof e;if("number"==i?r(n)&&o(e,n.length):"string"==i&&e in n){var u=n[e];return t===t?t===u:u!==u}return!1}function u(t){return"number"==typeof t&&t>-1&&t%1==0&&c>=t}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var a=/^\d+$/,c=9007199254740991,l=n("length");t.exports=i},function(t,e){function n(t,e){if("function"!=typeof t)throw new TypeError(r);return e=o(void 0===e?t.length-1:+e||0,0),function(){for(var n=arguments,r=-1,i=o(n.length-e,0),u=Array(i);++r-1&&t%1==0&&l>=t}function u(t){return n(t)&&o(t)&&a.call(t,"callee")&&!c.call(t,"callee")}var s=Object.prototype,a=s.hasOwnProperty,c=s.propertyIsEnumerable,l=9007199254740991,f=r("length");t.exports=u},function(t,e){function n(t){return!!t&&"object"==typeof t}function r(t,e){var n=null==t?void 0:t[e];return s(n)?n:void 0}function o(t){return"number"==typeof t&&t>-1&&t%1==0&&_>=t}function i(t){return u(t)&&d.call(t)==c}function u(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function s(t){return null==t?!1:i(t)?v.test(p.call(t)):n(t)&&l.test(t)}var a="[object Array]",c="[object Function]",l=/^\[object .+?Constructor\]$/,f=Object.prototype,p=Function.prototype.toString,h=f.hasOwnProperty,d=f.toString,v=RegExp("^"+p.call(h).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),y=r(Array,"isArray"),_=9007199254740991,g=y||function(t){return n(t)&&o(t.length)&&d.call(t)==a};t.exports=g},function(t,e){function n(t){return r(t)&&u.call(t)==o}function r(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var o="[object Function]",i=Object.prototype,u=i.toString;t.exports=n},function(t,e){function n(t){return!!t&&"object"==typeof t}function r(t){return"number"==typeof t||n(t)&&u.call(t)==o}var o="[object Number]",i=Object.prototype,u=i.toString;t.exports=r},function(t,e,n){function r(t){return!!t&&"object"==typeof t}function o(t,e){return u(t,e,a)}function i(t){var e;if(!r(t)||p.call(t)!=c||s(t)||!f.call(t,"constructor")&&(e=t.constructor,"function"==typeof e&&!(e instanceof e)))return!1;var n;return o(t,function(t,e){n=e}),void 0===n||f.call(t,n)}var u=n(32),s=n(6),a=n(33),c="[object Object]",l=Object.prototype,f=l.hasOwnProperty,p=l.toString;t.exports=i},function(t,e){function n(t){return function(e,n,o){for(var i=r(e),u=o(e),s=u.length,a=t?s:-1;t?a--:++a-1&&t%1==0&&e>t}function o(t){return"number"==typeof t&&t>-1&&t%1==0&&p>=t}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function u(t){if(null==t)return[];i(t)||(t=Object(t));var e=t.length;e=e&&o(e)&&(a(t)||s(t))&&e||0;for(var n=t.constructor,u=-1,c="function"==typeof n&&n.prototype===t,l=Array(e),p=e>0;++u-1&&t%1==0&&_>=t}function i(t){return u(t)&&d.call(t)==c}function u(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function s(t){return null==t?!1:i(t)?v.test(p.call(t)):n(t)&&l.test(t)}var a="[object Array]",c="[object Function]",l=/^\[object .+?Constructor\]$/,f=Object.prototype,p=Function.prototype.toString,h=f.hasOwnProperty,d=f.toString,v=RegExp("^"+p.call(h).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),y=r(Array,"isArray"),_=9007199254740991,g=y||function(t){return n(t)&&o(t.length)&&d.call(t)==a};t.exports=g},function(t,e,n){var r=n(36),o=n(39),i=n(40),u=n(41),s=n(46),a=s(function(t,e){return null==t?{}:"function"==typeof e[0]?u(t,o(e[0],e[1],3)):i(t,r(e))});t.exports=a},function(t,e,n){function r(t){return!!t&&"object"==typeof t}function o(t,e){for(var n=-1,r=e.length,o=t.length;++n-1&&t%1==0&&f>=t}var c=n(37),l=n(38),f=9007199254740991,p=u("length");t.exports=i},function(t,e){function n(t){return!!t&&"object"==typeof t}function r(t){return function(e){return null==e?void 0:e[t]}}function o(t){return null!=t&&i(f(t))}function i(t){return"number"==typeof t&&t>-1&&t%1==0&&l>=t}function u(t){return n(t)&&o(t)&&a.call(t,"callee")&&!c.call(t,"callee")}var s=Object.prototype,a=s.hasOwnProperty,c=s.propertyIsEnumerable,l=9007199254740991,f=r("length");t.exports=u},function(t,e){function n(t){return!!t&&"object"==typeof t}function r(t,e){var n=null==t?void 0:t[e];return s(n)?n:void 0}function o(t){return"number"==typeof t&&t>-1&&t%1==0&&_>=t}function i(t){return u(t)&&d.call(t)==c}function u(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function s(t){return null==t?!1:i(t)?v.test(p.call(t)):n(t)&&l.test(t)}var a="[object Array]",c="[object Function]",l=/^\[object .+?Constructor\]$/,f=Object.prototype,p=Function.prototype.toString,h=f.hasOwnProperty,d=f.toString,v=RegExp("^"+p.call(h).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),y=r(Array,"isArray"),_=9007199254740991,g=y||function(t){return n(t)&&o(t.length)&&d.call(t)==a};t.exports=g},function(t,e){function n(t,e,n){if("function"!=typeof t)return r;if(void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 3:return function(n,r,o){return t.call(e,n,r,o)};case 4:return function(n,r,o,i){return t.call(e,n,r,o,i)};case 5:return function(n,r,o,i,u){return t.call(e,n,r,o,i,u)}}return function(){return t.apply(e,arguments)}}function r(t){return t}t.exports=n},function(t,e){function n(t,e){t=r(t);for(var n=-1,o=e.length,i={};++n-1&&t%1==0&&e>t}function o(t){return"number"==typeof t&&t>-1&&t%1==0&&p>=t}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function u(t){if(null==t)return[];i(t)||(t=Object(t));var e=t.length;e=e&&o(e)&&(a(t)||s(t))&&e||0;for(var n=t.constructor,u=-1,c="function"==typeof n&&n.prototype===t,l=Array(e),p=e>0;++u-1&&t%1==0&&l>=t}function u(t){return n(t)&&o(t)&&a.call(t,"callee")&&!c.call(t,"callee")}var s=Object.prototype,a=s.hasOwnProperty,c=s.propertyIsEnumerable,l=9007199254740991,f=r("length");t.exports=u},function(t,e){function n(t){return!!t&&"object"==typeof t}function r(t,e){var n=null==t?void 0:t[e];return s(n)?n:void 0}function o(t){return"number"==typeof t&&t>-1&&t%1==0&&_>=t}function i(t){return u(t)&&d.call(t)==c}function u(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function s(t){return null==t?!1:i(t)?v.test(p.call(t)):n(t)&&l.test(t)}var a="[object Array]",c="[object Function]",l=/^\[object .+?Constructor\]$/,f=Object.prototype,p=Function.prototype.toString,h=f.hasOwnProperty,d=f.toString,v=RegExp("^"+p.call(h).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),y=r(Array,"isArray"),_=9007199254740991,g=y||function(t){return n(t)&&o(t.length)&&d.call(t)==a};t.exports=g},function(t,e){function n(t,e){if("function"!=typeof t)throw new TypeError(r);return e=o(void 0===e?t.length-1:+e||0,0),function(){for(var n=arguments,r=-1,i=o(n.length-e,0),u=Array(i);++rn;++n)if(!e(t[n]))return a;return 1}function e(e,n){t(e,function(t){return!n(t)})}function n(i,s,u){function a(t){return t.call?t():p[t]}function l(){if(!--y){p[g]=1,v&&v();for(var n in d)t(n.split("|"),a)&&!e(d[n],a)&&(d[n]=[])}}i=i[c]?i:[i];var f=s&&s.call,v=f?s:u,g=f?i.join(""):s,y=i.length;return setTimeout(function(){e(i,function t(e,n){return null===e?l():(e=n||-1!==e.indexOf(".js")||/^https?:\/\//.test(e)||!r?e:r+e+".js",_[e]?(g&&(h[g]=1),2==_[e]?l():setTimeout(function(){t(e,!0)},0)):(_[e]=1,g&&(h[g]=1),void o(e,l)))})},0),n}function o(t,e){var n,o=s.createElement("script");o.onload=o.onerror=o[f]=function(){o[l]&&!/^c|loade/.test(o[l])||n||(o.onload=o[f]=null,n=1,_[t]=2,e())},o.async=1,o.src=i?t+(-1===t.indexOf("?")?"?":"&")+i:t,u.insertBefore(o,u.lastChild)}var r,i,s=document,u=s.getElementsByTagName("head")[0],a=!1,c="push",l="readyState",f="onreadystatechange",p={},h={},d={},_={};return n.get=o,n.order=function(t,e,o){!function r(i){i=t.shift(),t.length?n(i,r):n(i,e,o)}()},n.path=function(t){r=t},n.urlArgs=function(t){i=t},n.ready=function(o,r,i){o=o[c]?o:[o];var s=[];return!e(o,function(t){p[t]||s[c](t)})&&t(o,function(t){return p[t]})?r():!function(t){d[t]=d[t]||[],d[t][c](r),i&&i(s)}(o.join("|")),n},n.done=function(t){n([null],t)},n})}])}); \ No newline at end of file +!function(i,u){"undefined"!=typeof t&&t.exports?t.exports=u():(r=u,o="function"==typeof r?r.call(e,n,e,t):r,!(void 0!==o&&(t.exports=o)))}("$script",function(){function t(t,e){for(var n=0,r=t.length;r>n;++n)if(!e(t[n]))return a;return 1}function e(e,n){t(e,function(t){return!n(t)})}function n(i,u,s){function a(t){return t.call?t():p[t]}function l(){if(!--g){p[_]=1,y&&y();for(var n in d)t(n.split("|"),a)&&!e(d[n],a)&&(d[n]=[])}}i=i[c]?i:[i];var f=u&&u.call,y=f?u:s,_=f?i.join(""):u,g=i.length;return setTimeout(function(){e(i,function t(e,n){return null===e?l():(e=n||-1!==e.indexOf(".js")||/^https?:\/\//.test(e)||!o?e:o+e+".js",v[e]?(_&&(h[_]=1),2==v[e]?l():setTimeout(function(){t(e,!0)},0)):(v[e]=1,_&&(h[_]=1),void r(e,l)))})},0),n}function r(t,e){var n,r=u.createElement("script");r.onload=r.onerror=r[f]=function(){r[l]&&!/^c|loade/.test(r[l])||n||(r.onload=r[f]=null,n=1,v[t]=2,e())},r.async=1,r.src=i?t+(-1===t.indexOf("?")?"?":"&")+i:t,s.insertBefore(r,s.lastChild)}var o,i,u=document,s=u.getElementsByTagName("head")[0],a=!1,c="push",l="readyState",f="onreadystatechange",p={},h={},d={},v={};return n.get=r,n.order=function(t,e,r){!function o(i){i=t.shift(),t.length?n(i,o):n(i,e,r)}()},n.path=function(t){o=t},n.urlArgs=function(t){i=t},n.ready=function(r,o,i){r=r[c]?r:[r];var u=[];return!e(r,function(t){p[t]||u[c](t)})&&t(r,function(t){return p[t]})?o():!function(t){d[t]=d[t]||[],d[t][c](o),i&&i(u)}(r.join("|")),n},n.done=function(t){n([null],t)},n})}])}); \ No newline at end of file