jam-cloud/jam-ui/node_modules/react-leaflet/dist/react-leaflet.js

2908 lines
85 KiB
JavaScript

(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('leaflet'), require('react-dom')) :
typeof define === 'function' && define.amd ? define(['exports', 'react', 'leaflet', 'react-dom'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactLeaflet = {}, global.React, global.L, global.ReactDOM));
}(this, (function (exports, React, leaflet, reactDom) { 'use strict';
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
var _extends_1 = createCommonjsModule(function (module) {
function _extends() {
module.exports = _extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
return _extends.apply(this, arguments);
}
module.exports = _extends;
});
var reactIs_development = createCommonjsModule(function (module, exports) {
{
(function() {
// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
// nor polyfill, then a plain number is used for performance.
var hasSymbol = typeof Symbol === 'function' && Symbol.for;
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
// (unstable) APIs that have been removed. Can we remove the symbols?
var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
function isValidElementType(type) {
return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
}
function typeOf(object) {
if (typeof object === 'object' && object !== null) {
var $$typeof = object.$$typeof;
switch ($$typeof) {
case REACT_ELEMENT_TYPE:
var type = object.type;
switch (type) {
case REACT_ASYNC_MODE_TYPE:
case REACT_CONCURRENT_MODE_TYPE:
case REACT_FRAGMENT_TYPE:
case REACT_PROFILER_TYPE:
case REACT_STRICT_MODE_TYPE:
case REACT_SUSPENSE_TYPE:
return type;
default:
var $$typeofType = type && type.$$typeof;
switch ($$typeofType) {
case REACT_CONTEXT_TYPE:
case REACT_FORWARD_REF_TYPE:
case REACT_LAZY_TYPE:
case REACT_MEMO_TYPE:
case REACT_PROVIDER_TYPE:
return $$typeofType;
default:
return $$typeof;
}
}
case REACT_PORTAL_TYPE:
return $$typeof;
}
}
return undefined;
} // AsyncMode is deprecated along with isAsyncMode
var AsyncMode = REACT_ASYNC_MODE_TYPE;
var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
var ContextConsumer = REACT_CONTEXT_TYPE;
var ContextProvider = REACT_PROVIDER_TYPE;
var Element = REACT_ELEMENT_TYPE;
var ForwardRef = REACT_FORWARD_REF_TYPE;
var Fragment = REACT_FRAGMENT_TYPE;
var Lazy = REACT_LAZY_TYPE;
var Memo = REACT_MEMO_TYPE;
var Portal = REACT_PORTAL_TYPE;
var Profiler = REACT_PROFILER_TYPE;
var StrictMode = REACT_STRICT_MODE_TYPE;
var Suspense = REACT_SUSPENSE_TYPE;
var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
function isAsyncMode(object) {
{
if (!hasWarnedAboutDeprecatedIsAsyncMode) {
hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
}
}
return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
}
function isConcurrentMode(object) {
return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
}
function isContextConsumer(object) {
return typeOf(object) === REACT_CONTEXT_TYPE;
}
function isContextProvider(object) {
return typeOf(object) === REACT_PROVIDER_TYPE;
}
function isElement(object) {
return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
}
function isForwardRef(object) {
return typeOf(object) === REACT_FORWARD_REF_TYPE;
}
function isFragment(object) {
return typeOf(object) === REACT_FRAGMENT_TYPE;
}
function isLazy(object) {
return typeOf(object) === REACT_LAZY_TYPE;
}
function isMemo(object) {
return typeOf(object) === REACT_MEMO_TYPE;
}
function isPortal(object) {
return typeOf(object) === REACT_PORTAL_TYPE;
}
function isProfiler(object) {
return typeOf(object) === REACT_PROFILER_TYPE;
}
function isStrictMode(object) {
return typeOf(object) === REACT_STRICT_MODE_TYPE;
}
function isSuspense(object) {
return typeOf(object) === REACT_SUSPENSE_TYPE;
}
exports.AsyncMode = AsyncMode;
exports.ConcurrentMode = ConcurrentMode;
exports.ContextConsumer = ContextConsumer;
exports.ContextProvider = ContextProvider;
exports.Element = Element;
exports.ForwardRef = ForwardRef;
exports.Fragment = Fragment;
exports.Lazy = Lazy;
exports.Memo = Memo;
exports.Portal = Portal;
exports.Profiler = Profiler;
exports.StrictMode = StrictMode;
exports.Suspense = Suspense;
exports.isAsyncMode = isAsyncMode;
exports.isConcurrentMode = isConcurrentMode;
exports.isContextConsumer = isContextConsumer;
exports.isContextProvider = isContextProvider;
exports.isElement = isElement;
exports.isForwardRef = isForwardRef;
exports.isFragment = isFragment;
exports.isLazy = isLazy;
exports.isMemo = isMemo;
exports.isPortal = isPortal;
exports.isProfiler = isProfiler;
exports.isStrictMode = isStrictMode;
exports.isSuspense = isSuspense;
exports.isValidElementType = isValidElementType;
exports.typeOf = typeOf;
})();
}
});
var reactIs_development_1 = reactIs_development.AsyncMode;
var reactIs_development_2 = reactIs_development.ConcurrentMode;
var reactIs_development_3 = reactIs_development.ContextConsumer;
var reactIs_development_4 = reactIs_development.ContextProvider;
var reactIs_development_5 = reactIs_development.Element;
var reactIs_development_6 = reactIs_development.ForwardRef;
var reactIs_development_7 = reactIs_development.Fragment;
var reactIs_development_8 = reactIs_development.Lazy;
var reactIs_development_9 = reactIs_development.Memo;
var reactIs_development_10 = reactIs_development.Portal;
var reactIs_development_11 = reactIs_development.Profiler;
var reactIs_development_12 = reactIs_development.StrictMode;
var reactIs_development_13 = reactIs_development.Suspense;
var reactIs_development_14 = reactIs_development.isAsyncMode;
var reactIs_development_15 = reactIs_development.isConcurrentMode;
var reactIs_development_16 = reactIs_development.isContextConsumer;
var reactIs_development_17 = reactIs_development.isContextProvider;
var reactIs_development_18 = reactIs_development.isElement;
var reactIs_development_19 = reactIs_development.isForwardRef;
var reactIs_development_20 = reactIs_development.isFragment;
var reactIs_development_21 = reactIs_development.isLazy;
var reactIs_development_22 = reactIs_development.isMemo;
var reactIs_development_23 = reactIs_development.isPortal;
var reactIs_development_24 = reactIs_development.isProfiler;
var reactIs_development_25 = reactIs_development.isStrictMode;
var reactIs_development_26 = reactIs_development.isSuspense;
var reactIs_development_27 = reactIs_development.isValidElementType;
var reactIs_development_28 = reactIs_development.typeOf;
var reactIs = createCommonjsModule(function (module) {
{
module.exports = reactIs_development;
}
});
/**
* Copyright 2015, Yahoo! Inc.
* Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
*/
var REACT_STATICS = {
childContextTypes: true,
contextType: true,
contextTypes: true,
defaultProps: true,
displayName: true,
getDefaultProps: true,
getDerivedStateFromError: true,
getDerivedStateFromProps: true,
mixins: true,
propTypes: true,
type: true
};
var KNOWN_STATICS = {
name: true,
length: true,
prototype: true,
caller: true,
callee: true,
arguments: true,
arity: true
};
var FORWARD_REF_STATICS = {
'$$typeof': true,
render: true,
defaultProps: true,
displayName: true,
propTypes: true
};
var MEMO_STATICS = {
'$$typeof': true,
compare: true,
defaultProps: true,
displayName: true,
propTypes: true,
type: true
};
var TYPE_STATICS = {};
TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;
function getStatics(component) {
// React v16.11 and below
if (reactIs.isMemo(component)) {
return MEMO_STATICS;
} // React v16.12 and above
return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
}
var defineProperty = Object.defineProperty;
var getOwnPropertyNames = Object.getOwnPropertyNames;
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var getPrototypeOf = Object.getPrototypeOf;
var objectPrototype = Object.prototype;
function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
if (typeof sourceComponent !== 'string') {
// don't hoist over string (html) components
if (objectPrototype) {
var inheritedComponent = getPrototypeOf(sourceComponent);
if (inheritedComponent && inheritedComponent !== objectPrototype) {
hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
}
}
var keys = getOwnPropertyNames(sourceComponent);
if (getOwnPropertySymbols) {
keys = keys.concat(getOwnPropertySymbols(sourceComponent));
}
var targetStatics = getStatics(targetComponent);
var sourceStatics = getStatics(sourceComponent);
for (var i = 0; i < keys.length; ++i) {
var key = keys[i];
if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
try {
// Avoid failures from read-only properties
defineProperty(targetComponent, key, descriptor);
} catch (e) {}
}
}
}
return targetComponent;
}
var hoistNonReactStatics_cjs = hoistNonReactStatics;
var leafletContext = /*#__PURE__*/React.createContext({});
var useLeaflet = function useLeaflet() {
return React.useContext(leafletContext);
};
var LeafletConsumer = leafletContext.Consumer;
var LeafletProvider = leafletContext.Provider;
var withLeaflet = function withLeaflet(WrappedComponent) {
var WithLeafletComponent = function WithLeafletComponent(props, ref) {
return /*#__PURE__*/React__default['default'].createElement(LeafletConsumer, null, function (leaflet) {
return /*#__PURE__*/React__default['default'].createElement(WrappedComponent, _extends_1({}, props, {
leaflet: leaflet,
ref: ref
}));
});
};
var name = // flowlint-next-line sketchy-null-string:off
WrappedComponent.displayName || WrappedComponent.name || 'Component';
WithLeafletComponent.displayName = "Leaflet(".concat(name, ")");
var LeafletComponent = /*#__PURE__*/React.forwardRef(WithLeafletComponent);
hoistNonReactStatics_cjs(LeafletComponent, WrappedComponent);
return LeafletComponent;
};
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
var classCallCheck = _classCallCheck;
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
var createClass = _createClass;
var setPrototypeOf = createCommonjsModule(function (module) {
function _setPrototypeOf(o, p) {
module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
};
return _setPrototypeOf(o, p);
}
module.exports = _setPrototypeOf;
});
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function");
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
writable: true,
configurable: true
}
});
if (superClass) setPrototypeOf(subClass, superClass);
}
var inherits = _inherits;
var getPrototypeOf$1 = createCommonjsModule(function (module) {
function _getPrototypeOf(o) {
module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
return o.__proto__ || Object.getPrototypeOf(o);
};
return _getPrototypeOf(o);
}
module.exports = _getPrototypeOf;
});
function _isNativeReflectConstruct() {
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
if (Reflect.construct.sham) return false;
if (typeof Proxy === "function") return true;
try {
Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
return true;
} catch (e) {
return false;
}
}
var isNativeReflectConstruct = _isNativeReflectConstruct;
var _typeof_1 = createCommonjsModule(function (module) {
function _typeof(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
module.exports = _typeof = function _typeof(obj) {
return typeof obj;
};
} else {
module.exports = _typeof = function _typeof(obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
}
return _typeof(obj);
}
module.exports = _typeof;
});
function _assertThisInitialized(self) {
if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
var assertThisInitialized = _assertThisInitialized;
function _possibleConstructorReturn(self, call) {
if (call && (_typeof_1(call) === "object" || typeof call === "function")) {
return call;
}
return assertThisInitialized(self);
}
var possibleConstructorReturn = _possibleConstructorReturn;
function _createSuper(Derived) {
var hasNativeReflectConstruct = isNativeReflectConstruct();
return function _createSuperInternal() {
var Super = getPrototypeOf$1(Derived),
result;
if (hasNativeReflectConstruct) {
var NewTarget = getPrototypeOf$1(this).constructor;
result = Reflect.construct(Super, arguments, NewTarget);
} else {
result = Super.apply(this, arguments);
}
return possibleConstructorReturn(this, result);
};
}
var createSuper = _createSuper;
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
var defineProperty$1 = _defineProperty;
var MapControl = /*#__PURE__*/function (_Component) {
inherits(MapControl, _Component);
var _super = createSuper(MapControl);
function MapControl(props) {
var _this;
classCallCheck(this, MapControl);
_this = _super.call(this, props);
defineProperty$1(assertThisInitialized(_this), "leafletElement", void 0);
_this.leafletElement = _this.createLeafletElement(_this.props);
return _this;
}
createClass(MapControl, [{
key: "createLeafletElement",
value: function createLeafletElement(_props) {
throw new Error('createLeafletElement() must be implemented');
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
if (toProps.position !== fromProps.position) {
this.leafletElement.setPosition(toProps.position);
}
}
}, {
key: "componentDidMount",
value: function componentDidMount() {
this.leafletElement.addTo(this.props.leaflet.map);
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
this.updateLeafletElement(prevProps, this.props);
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
this.leafletElement.remove();
}
}, {
key: "render",
value: function render() {
return null;
}
}]);
return MapControl;
}(React.Component);
var AttributionControl = /*#__PURE__*/function (_MapControl) {
inherits(AttributionControl, _MapControl);
var _super = createSuper(AttributionControl);
function AttributionControl() {
classCallCheck(this, AttributionControl);
return _super.apply(this, arguments);
}
createClass(AttributionControl, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
return new leaflet.Control.Attribution(props);
}
}]);
return AttributionControl;
}(MapControl);
var AttributionControl$1 = withLeaflet(AttributionControl);
function _objectWithoutPropertiesLoose(source, excluded) {
if (source == null) return {};
var target = {};
var sourceKeys = Object.keys(source);
var key, i;
for (i = 0; i < sourceKeys.length; i++) {
key = sourceKeys[i];
if (excluded.indexOf(key) >= 0) continue;
target[key] = source[key];
}
return target;
}
var objectWithoutPropertiesLoose = _objectWithoutPropertiesLoose;
function _objectWithoutProperties(source, excluded) {
if (source == null) return {};
var target = objectWithoutPropertiesLoose(source, excluded);
var key, i;
if (Object.getOwnPropertySymbols) {
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
for (i = 0; i < sourceSymbolKeys.length; i++) {
key = sourceSymbolKeys[i];
if (excluded.indexOf(key) >= 0) continue;
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
target[key] = source[key];
}
}
return target;
}
var objectWithoutProperties = _objectWithoutProperties;
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
if (enumerableOnly) symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
});
keys.push.apply(keys, symbols);
}
return keys;
}
function _objectSpread2(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
if (i % 2) {
ownKeys(Object(source), true).forEach(function (key) {
defineProperty$1(target, key, source[key]);
});
} else if (Object.getOwnPropertyDescriptors) {
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
} else {
ownKeys(Object(source)).forEach(function (key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
}
return target;
}
var objectSpread2 = _objectSpread2;
function _superPropBase(object, property) {
while (!Object.prototype.hasOwnProperty.call(object, property)) {
object = getPrototypeOf$1(object);
if (object === null) break;
}
return object;
}
var superPropBase = _superPropBase;
var get = createCommonjsModule(function (module) {
function _get(target, property, receiver) {
if (typeof Reflect !== "undefined" && Reflect.get) {
module.exports = _get = Reflect.get;
} else {
module.exports = _get = function _get(target, property, receiver) {
var base = superPropBase(target, property);
if (!base) return;
var desc = Object.getOwnPropertyDescriptor(base, property);
if (desc.get) {
return desc.get.call(receiver);
}
return desc.value;
};
}
return _get(target, property, receiver || target);
}
module.exports = _get;
});
// do not edit .js files directly - edit src/index.jst
var fastDeepEqual = function equal(a, b) {
if (a === b) return true;
if (a && b && typeof a == 'object' && typeof b == 'object') {
if (a.constructor !== b.constructor) return false;
var length, i, keys;
if (Array.isArray(a)) {
length = a.length;
if (length != b.length) return false;
for (i = length; i-- !== 0;)
if (!equal(a[i], b[i])) return false;
return true;
}
if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
keys = Object.keys(a);
length = keys.length;
if (length !== Object.keys(b).length) return false;
for (i = length; i-- !== 0;)
if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
for (i = length; i-- !== 0;) {
var key = keys[i];
if (!equal(a[key], b[key])) return false;
}
return true;
}
// true if both NaN, false otherwise
return a!==a && b!==b;
};
var EVENTS_RE = /^on(.+)$/i;
var MapEvented = /*#__PURE__*/function (_Component) {
inherits(MapEvented, _Component);
var _super = createSuper(MapEvented);
function MapEvented(props) {
var _this;
classCallCheck(this, MapEvented);
_this = _super.call(this, props);
defineProperty$1(assertThisInitialized(_this), "_leafletEvents", void 0);
defineProperty$1(assertThisInitialized(_this), "leafletElement", void 0);
_this._leafletEvents = _this.extractLeafletEvents(props);
return _this;
}
createClass(MapEvented, [{
key: "componentDidMount",
value: function componentDidMount() {
this.bindLeafletEvents(this._leafletEvents);
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate(_prevProps) {
this._leafletEvents = this.bindLeafletEvents(this.extractLeafletEvents(this.props), this._leafletEvents);
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
var _this2 = this;
var el = this.leafletElement;
if (!el) return;
Object.keys(this._leafletEvents).forEach(function (ev) {
el.off(ev, _this2._leafletEvents[ev]);
});
}
}, {
key: "extractLeafletEvents",
value: function extractLeafletEvents(props) {
return Object.keys(props).reduce(function (res, prop) {
if (EVENTS_RE.test(prop)) {
if (props[prop] != null) {
var _key = prop.replace(EVENTS_RE, function (match, p) {
return p.toLowerCase();
});
res[_key] = props[prop];
}
}
return res;
}, {});
}
}, {
key: "bindLeafletEvents",
value: function bindLeafletEvents() {
var next = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var prev = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var el = this.leafletElement;
if (el == null || el.on == null) return {};
var diff = objectSpread2({}, prev);
Object.keys(prev).forEach(function (ev) {
if (next[ev] == null || prev[ev] !== next[ev]) {
delete diff[ev];
el.off(ev, prev[ev]);
}
});
Object.keys(next).forEach(function (ev) {
if (prev[ev] == null || next[ev] !== prev[ev]) {
diff[ev] = next[ev];
el.on(ev, next[ev]);
}
});
return diff;
}
}, {
key: "fireLeafletEvent",
value: function fireLeafletEvent(type, data) {
var el = this.leafletElement;
if (el) el.fire(type, data);
}
}]);
return MapEvented;
}(React.Component);
var MapComponent = /*#__PURE__*/function (_MapEvented) {
inherits(MapComponent, _MapEvented);
var _super = createSuper(MapComponent);
function MapComponent() {
classCallCheck(this, MapComponent);
return _super.apply(this, arguments);
}
createClass(MapComponent, [{
key: "getOptions",
value: function getOptions(props) {
if (props.pane != null) {
return props;
}
if (props.leaflet != null && props.leaflet.pane != null) {
return objectSpread2(objectSpread2({}, props), {}, {
pane: props.leaflet.pane
});
}
return props;
}
}]);
return MapComponent;
}(MapEvented);
var MapLayer = /*#__PURE__*/function (_MapComponent) {
inherits(MapLayer, _MapComponent);
var _super = createSuper(MapLayer);
function MapLayer(props) {
var _this;
classCallCheck(this, MapLayer);
_this = _super.call(this, props);
defineProperty$1(assertThisInitialized(_this), "contextValue", void 0);
defineProperty$1(assertThisInitialized(_this), "leafletElement", void 0);
_this.leafletElement = _this.createLeafletElement(props);
return _this;
}
createClass(MapLayer, [{
key: "createLeafletElement",
value: function createLeafletElement(_props) {
throw new Error('createLeafletElement() must be implemented');
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(_fromProps, _toProps) {}
}, {
key: "componentDidMount",
value: function componentDidMount() {
get(getPrototypeOf$1(MapLayer.prototype), "componentDidMount", this).call(this);
this.layerContainer.addLayer(this.leafletElement);
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
get(getPrototypeOf$1(MapLayer.prototype), "componentDidUpdate", this).call(this, prevProps);
if (this.props.attribution !== prevProps.attribution) {
var map = this.props.leaflet.map;
if (map != null && map.attributionControl != null) {
map.attributionControl.removeAttribution(prevProps.attribution);
map.attributionControl.addAttribution(this.props.attribution);
}
}
this.updateLeafletElement(prevProps, this.props);
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
get(getPrototypeOf$1(MapLayer.prototype), "componentWillUnmount", this).call(this);
this.layerContainer.removeLayer(this.leafletElement);
}
}, {
key: "render",
value: function render() {
var children = this.props.children;
if (children == null) {
return null;
}
return this.contextValue == null ? /*#__PURE__*/React__default['default'].createElement(React.Fragment, null, children) : /*#__PURE__*/React__default['default'].createElement(LeafletProvider, {
value: this.contextValue
}, children);
}
}, {
key: "layerContainer",
get: function get() {
return this.props.leaflet.layerContainer || this.props.leaflet.map;
}
}]);
return MapLayer;
}(MapComponent);
function pick(object, keys) {
return keys.reduce(function (obj, key) {
if (typeof object[key] !== 'undefined') {
obj[key] = object[key];
}
return obj;
}, {});
}
var OPTIONS = ['stroke', 'color', 'weight', 'opacity', 'lineCap', 'lineJoin', 'dashArray', 'dashOffset', 'fill', 'fillColor', 'fillOpacity', 'fillRule', 'bubblingMouseEvents', 'renderer', 'className', // Interactive Layer
'interactive', // Layer
'pane', 'attribution'];
var Path = /*#__PURE__*/function (_MapLayer) {
inherits(Path, _MapLayer);
var _super = createSuper(Path);
function Path(props) {
var _this;
classCallCheck(this, Path);
_this = _super.call(this, props);
if (_this.contextValue == null) {
_this.contextValue = objectSpread2(objectSpread2({}, props.leaflet), {}, {
popupContainer: _this.leafletElement
});
}
return _this;
}
createClass(Path, [{
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
get(getPrototypeOf$1(Path.prototype), "componentDidUpdate", this).call(this, prevProps);
this.setStyleIfChanged(prevProps, this.props);
}
}, {
key: "getPathOptions",
value: function getPathOptions(props) {
return pick(props, OPTIONS);
}
}, {
key: "setStyle",
value: function setStyle() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
this.leafletElement.setStyle(options);
}
}, {
key: "setStyleIfChanged",
value: function setStyleIfChanged(fromProps, toProps) {
var nextStyle = this.getPathOptions(toProps);
if (!fastDeepEqual(nextStyle, this.getPathOptions(fromProps))) {
this.setStyle(nextStyle);
}
}
}]);
return Path;
}(MapLayer);
var Circle = /*#__PURE__*/function (_Path) {
inherits(Circle, _Path);
var _super = createSuper(Circle);
function Circle() {
classCallCheck(this, Circle);
return _super.apply(this, arguments);
}
createClass(Circle, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
var center = props.center,
radius = props.radius,
options = objectWithoutProperties(props, ["center", "radius"]);
return new leaflet.Circle(center, radius, this.getOptions(options));
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
if (toProps.center !== fromProps.center) {
this.leafletElement.setLatLng(toProps.center);
}
if (toProps.radius !== fromProps.radius) {
this.leafletElement.setRadius(toProps.radius);
}
}
}]);
return Circle;
}(Path);
var Circle$1 = withLeaflet(Circle);
var CircleMarker = /*#__PURE__*/function (_Path) {
inherits(CircleMarker, _Path);
var _super = createSuper(CircleMarker);
function CircleMarker() {
classCallCheck(this, CircleMarker);
return _super.apply(this, arguments);
}
createClass(CircleMarker, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
var el = new leaflet.CircleMarker(props.center, this.getOptions(props));
this.contextValue = objectSpread2(objectSpread2({}, props.leaflet), {}, {
popupContainer: el
});
return el;
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
if (toProps.center !== fromProps.center) {
this.leafletElement.setLatLng(toProps.center);
}
if (toProps.radius !== fromProps.radius) {
this.leafletElement.setRadius(toProps.radius);
}
}
}]);
return CircleMarker;
}(Path);
var CircleMarker$1 = withLeaflet(CircleMarker);
var splitClassName = function splitClassName() {
var className = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return className.split(' ').filter(Boolean);
};
var addClassName = function addClassName(container, className) {
splitClassName(className).forEach(function (cls) {
leaflet.DomUtil.addClass(container, cls);
});
};
var removeClassName = function removeClassName(container, className) {
splitClassName(className).forEach(function (cls) {
leaflet.DomUtil.removeClass(container, cls);
});
};
var updateClassName = (function (container, prevClassName, nextClassName) {
if (container != null && nextClassName !== prevClassName) {
if (prevClassName != null && prevClassName.length > 0) {
removeClassName(container, prevClassName);
}
if (nextClassName != null && nextClassName.length > 0) {
addClassName(container, nextClassName);
}
}
});
var DivOverlay = /*#__PURE__*/function (_MapComponent) {
inherits(DivOverlay, _MapComponent);
var _super = createSuper(DivOverlay);
function DivOverlay(props) {
var _this;
classCallCheck(this, DivOverlay);
_this = _super.call(this, props);
defineProperty$1(assertThisInitialized(_this), "onClose", function () {
if (_this.props.onClose) {
_this.props.onClose();
}
});
defineProperty$1(assertThisInitialized(_this), "onOpen", function () {
_this.forceUpdate(); // Re-render now that leafletElement is created
if (_this.props.onOpen) {
_this.props.onOpen();
}
});
_this.leafletElement = _this.createLeafletElement(props);
return _this;
}
createClass(DivOverlay, [{
key: "createLeafletElement",
value: function createLeafletElement(_props) {
throw new Error('createLeafletElement() must be implemented');
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(_prevProps, _props) {}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
updateClassName(this.leafletElement._container, prevProps.className, this.props.className);
this.updateLeafletElement(prevProps, this.props);
if (this.leafletElement.isOpen()) {
this.leafletElement.update();
this.onRender();
}
}
}, {
key: "onRender",
value: function onRender() {}
}, {
key: "render",
value: function render() {
if (this.leafletElement._contentNode) {
return /*#__PURE__*/reactDom.createPortal(this.props.children, this.leafletElement._contentNode);
}
return null;
}
}]);
return DivOverlay;
}(MapComponent);
var FeatureGroup = /*#__PURE__*/function (_Path) {
inherits(FeatureGroup, _Path);
var _super = createSuper(FeatureGroup);
function FeatureGroup() {
classCallCheck(this, FeatureGroup);
return _super.apply(this, arguments);
}
createClass(FeatureGroup, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
var el = new leaflet.FeatureGroup(this.getOptions(props));
this.contextValue = objectSpread2(objectSpread2({}, props.leaflet), {}, {
layerContainer: el,
popupContainer: el
});
return el;
}
}, {
key: "componentDidMount",
value: function componentDidMount() {
get(getPrototypeOf$1(FeatureGroup.prototype), "componentDidMount", this).call(this);
this.setStyle(this.props);
}
}]);
return FeatureGroup;
}(Path);
var FeatureGroup$1 = withLeaflet(FeatureGroup);
var GeoJSON = /*#__PURE__*/function (_Path) {
inherits(GeoJSON, _Path);
var _super = createSuper(GeoJSON);
function GeoJSON() {
classCallCheck(this, GeoJSON);
return _super.apply(this, arguments);
}
createClass(GeoJSON, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
return new leaflet.GeoJSON(props.data, this.getOptions(props));
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
if (typeof toProps.style === 'function') {
this.leafletElement.setStyle(toProps.style);
} else {
this.setStyleIfChanged(fromProps, toProps);
}
}
}]);
return GeoJSON;
}(Path);
var GeoJSON$1 = withLeaflet(GeoJSON);
var GridLayer = /*#__PURE__*/function (_MapLayer) {
inherits(GridLayer, _MapLayer);
var _super = createSuper(GridLayer);
function GridLayer() {
classCallCheck(this, GridLayer);
return _super.apply(this, arguments);
}
createClass(GridLayer, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
return new leaflet.GridLayer(this.getOptions(props));
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
var opacity = toProps.opacity,
zIndex = toProps.zIndex;
if (opacity !== fromProps.opacity) {
this.leafletElement.setOpacity(opacity);
}
if (zIndex !== fromProps.zIndex) {
this.leafletElement.setZIndex(zIndex);
}
}
}, {
key: "getOptions",
value: function getOptions(props) {
var options = objectSpread2({}, get(getPrototypeOf$1(GridLayer.prototype), "getOptions", this).call(this, props));
var map = props.leaflet.map;
if (map != null) {
// $FlowFixMe: Object spread
if (options.maxZoom == null && map.options.maxZoom != null) {
// $FlowFixMe: Object spread
options.maxZoom = map.options.maxZoom;
} // $FlowFixMe: Object spread
if (options.minZoom == null && map.options.minZoom != null) {
// $FlowFixMe: Object spread
options.minZoom = map.options.minZoom;
}
}
return options;
}
}, {
key: "render",
value: function render() {
return null;
}
}]);
return GridLayer;
}(MapLayer);
var ImageOverlay = /*#__PURE__*/function (_MapLayer) {
inherits(ImageOverlay, _MapLayer);
var _super = createSuper(ImageOverlay);
function ImageOverlay() {
classCallCheck(this, ImageOverlay);
return _super.apply(this, arguments);
}
createClass(ImageOverlay, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
var el = new leaflet.ImageOverlay(props.url, props.bounds, this.getOptions(props));
this.contextValue = objectSpread2(objectSpread2({}, props.leaflet), {}, {
popupContainer: el
});
return el;
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
if (toProps.url !== fromProps.url) {
this.leafletElement.setUrl(toProps.url);
}
if (toProps.bounds !== fromProps.bounds) {
this.leafletElement.setBounds(leaflet.latLngBounds(toProps.bounds));
}
if (toProps.opacity !== fromProps.opacity) {
this.leafletElement.setOpacity(toProps.opacity);
}
if (toProps.zIndex !== fromProps.zIndex) {
this.leafletElement.setZIndex(toProps.zIndex);
}
}
}]);
return ImageOverlay;
}(MapLayer);
var ImageOverlay$1 = withLeaflet(ImageOverlay);
var LayerGroup = /*#__PURE__*/function (_MapLayer) {
inherits(LayerGroup, _MapLayer);
var _super = createSuper(LayerGroup);
function LayerGroup() {
classCallCheck(this, LayerGroup);
return _super.apply(this, arguments);
}
createClass(LayerGroup, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
var el = new leaflet.LayerGroup([], this.getOptions(props));
this.contextValue = objectSpread2(objectSpread2({}, props.leaflet), {}, {
layerContainer: el
});
return el;
}
}]);
return LayerGroup;
}(MapLayer);
var LayerGroup$1 = withLeaflet(LayerGroup);
// Abtract class for layer container, extended by BaseLayer and Overlay
var ControlledLayer = /*#__PURE__*/function (_Component) {
inherits(ControlledLayer, _Component);
var _super = createSuper(ControlledLayer);
function ControlledLayer() {
var _this;
classCallCheck(this, ControlledLayer);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _super.call.apply(_super, [this].concat(args));
defineProperty$1(assertThisInitialized(_this), "contextValue", void 0);
defineProperty$1(assertThisInitialized(_this), "layer", void 0);
return _this;
}
createClass(ControlledLayer, [{
key: "componentDidUpdate",
value: function componentDidUpdate(_ref) {
var checked = _ref.checked;
if (this.props.leaflet.map == null) {
return;
} // Handle dynamically (un)checking the layer => adding/removing from the map
if (this.props.checked === true && (checked == null || checked === false)) {
this.props.leaflet.map.addLayer(this.layer);
} else if (checked === true && (this.props.checked == null || this.props.checked === false)) {
this.props.leaflet.map.removeLayer(this.layer);
}
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
this.props.removeLayerControl(this.layer);
}
}, {
key: "addLayer",
value: function addLayer() {
throw new Error('Must be implemented in extending class');
}
}, {
key: "removeLayer",
value: function removeLayer(layer) {
this.props.removeLayer(layer);
}
}, {
key: "render",
value: function render() {
var children = this.props.children;
return children ? /*#__PURE__*/React__default['default'].createElement(LeafletProvider, {
value: this.contextValue
}, children) : null;
}
}]);
return ControlledLayer;
}(React.Component);
var BaseLayer = /*#__PURE__*/function (_ControlledLayer) {
inherits(BaseLayer, _ControlledLayer);
var _super2 = createSuper(BaseLayer);
function BaseLayer(props) {
var _this2;
classCallCheck(this, BaseLayer);
_this2 = _super2.call(this, props);
defineProperty$1(assertThisInitialized(_this2), "addLayer", function (layer) {
_this2.layer = layer; // Keep layer reference to handle dynamic changes of props
var _this2$props = _this2.props,
addBaseLayer = _this2$props.addBaseLayer,
checked = _this2$props.checked,
name = _this2$props.name;
addBaseLayer(layer, name, checked);
});
_this2.contextValue = objectSpread2(objectSpread2({}, props.leaflet), {}, {
layerContainer: {
addLayer: _this2.addLayer.bind(assertThisInitialized(_this2)),
removeLayer: _this2.removeLayer.bind(assertThisInitialized(_this2))
}
});
return _this2;
}
return BaseLayer;
}(ControlledLayer);
var Overlay = /*#__PURE__*/function (_ControlledLayer2) {
inherits(Overlay, _ControlledLayer2);
var _super3 = createSuper(Overlay);
function Overlay(props) {
var _this3;
classCallCheck(this, Overlay);
_this3 = _super3.call(this, props);
defineProperty$1(assertThisInitialized(_this3), "addLayer", function (layer) {
_this3.layer = layer; // Keep layer reference to handle dynamic changes of props
var _this3$props = _this3.props,
addOverlay = _this3$props.addOverlay,
checked = _this3$props.checked,
name = _this3$props.name;
addOverlay(layer, name, checked);
});
_this3.contextValue = objectSpread2(objectSpread2({}, props.leaflet), {}, {
layerContainer: {
addLayer: _this3.addLayer.bind(assertThisInitialized(_this3)),
removeLayer: _this3.removeLayer.bind(assertThisInitialized(_this3))
}
});
return _this3;
}
return Overlay;
}(ControlledLayer);
var LayersControl = /*#__PURE__*/function (_MapControl) {
inherits(LayersControl, _MapControl);
var _super4 = createSuper(LayersControl);
function LayersControl(props) {
var _this4;
classCallCheck(this, LayersControl);
_this4 = _super4.call(this, props);
defineProperty$1(assertThisInitialized(_this4), "controlProps", void 0);
_this4.controlProps = {
addBaseLayer: _this4.addBaseLayer.bind(assertThisInitialized(_this4)),
addOverlay: _this4.addOverlay.bind(assertThisInitialized(_this4)),
leaflet: props.leaflet,
removeLayer: _this4.removeLayer.bind(assertThisInitialized(_this4)),
removeLayerControl: _this4.removeLayerControl.bind(assertThisInitialized(_this4))
};
return _this4;
}
createClass(LayersControl, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
var _children = props.children,
options = objectWithoutProperties(props, ["children"]);
return new leaflet.Control.Layers(undefined, undefined, options);
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
get(getPrototypeOf$1(LayersControl.prototype), "updateLeafletElement", this).call(this, fromProps, toProps);
if (toProps.collapsed !== fromProps.collapsed) {
if (toProps.collapsed === true) {
this.leafletElement.collapse();
} else {
this.leafletElement.expand();
}
}
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
var _this5 = this;
setTimeout(function () {
get(getPrototypeOf$1(LayersControl.prototype), "componentWillUnmount", _this5).call(_this5);
}, 0);
}
}, {
key: "addBaseLayer",
value: function addBaseLayer(layer, name) {
var checked = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
if (checked && this.props.leaflet.map != null) {
this.props.leaflet.map.addLayer(layer);
}
this.leafletElement.addBaseLayer(layer, name);
}
}, {
key: "addOverlay",
value: function addOverlay(layer, name) {
var checked = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
if (checked && this.props.leaflet.map != null) {
this.props.leaflet.map.addLayer(layer);
}
this.leafletElement.addOverlay(layer, name);
}
}, {
key: "removeLayer",
value: function removeLayer(layer) {
if (this.props.leaflet.map != null) {
this.props.leaflet.map.removeLayer(layer);
}
}
}, {
key: "removeLayerControl",
value: function removeLayerControl(layer) {
this.leafletElement.removeLayer(layer);
}
}, {
key: "render",
value: function render() {
var _this6 = this;
var children = React.Children.map(this.props.children, function (child) {
return child ? /*#__PURE__*/React.cloneElement(child, _this6.controlProps) : null;
});
return /*#__PURE__*/React__default['default'].createElement(React.Fragment, null, children);
}
}]);
return LayersControl;
}(MapControl);
var LayersControlExport = withLeaflet(LayersControl);
LayersControlExport.BaseLayer = BaseLayer;
LayersControlExport.Overlay = Overlay;
function omit(obj) {
for (var _len = arguments.length, keysToOmit = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
keysToOmit[_key - 1] = arguments[_key];
}
return Object.keys(obj).reduce(function (acc, key) {
if (keysToOmit.indexOf(key) === -1) {
acc[key] = obj[key];
}
return acc;
}, {});
}
var OTHER_PROPS = ['children', 'className', 'id', 'style', 'useFlyTo', 'whenReady'];
var normalizeCenter = function normalizeCenter(pos) {
return Array.isArray(pos) ? [pos[0], pos[1]] : [pos.lat, pos.lon ? pos.lon : pos.lng];
};
var Map = /*#__PURE__*/function (_MapEvented) {
inherits(Map, _MapEvented);
var _super = createSuper(Map);
function Map(props) {
var _this;
classCallCheck(this, Map);
_this = _super.call(this, props);
defineProperty$1(assertThisInitialized(_this), "className", void 0);
defineProperty$1(assertThisInitialized(_this), "contextValue", void 0);
defineProperty$1(assertThisInitialized(_this), "container", void 0);
defineProperty$1(assertThisInitialized(_this), "viewport", {
center: undefined,
zoom: undefined
});
defineProperty$1(assertThisInitialized(_this), "_ready", false);
defineProperty$1(assertThisInitialized(_this), "_updating", false);
defineProperty$1(assertThisInitialized(_this), "onViewportChange", function () {
var center = _this.leafletElement.getCenter();
_this.viewport = {
center: center ? [center.lat, center.lng] : undefined,
zoom: _this.leafletElement.getZoom()
};
if (_this.props.onViewportChange && !_this._updating) {
_this.props.onViewportChange(_this.viewport);
}
});
defineProperty$1(assertThisInitialized(_this), "onViewportChanged", function () {
if (_this.props.onViewportChanged && !_this._updating) {
_this.props.onViewportChanged(_this.viewport);
}
});
defineProperty$1(assertThisInitialized(_this), "bindContainer", function (container) {
_this.container = container;
});
_this.className = props.className;
return _this;
}
createClass(Map, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
var viewport = props.viewport,
options = objectWithoutProperties(props, ["viewport"]);
if (viewport) {
if (viewport.center) {
options.center = viewport.center;
}
if (typeof viewport.zoom === 'number') {
options.zoom = viewport.zoom;
}
}
return new leaflet.Map(this.container, options);
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
this._updating = true;
var bounds = toProps.bounds,
boundsOptions = toProps.boundsOptions,
boxZoom = toProps.boxZoom,
center = toProps.center,
className = toProps.className,
doubleClickZoom = toProps.doubleClickZoom,
dragging = toProps.dragging,
keyboard = toProps.keyboard,
maxBounds = toProps.maxBounds,
scrollWheelZoom = toProps.scrollWheelZoom,
tap = toProps.tap,
touchZoom = toProps.touchZoom,
useFlyTo = toProps.useFlyTo,
viewport = toProps.viewport,
zoom = toProps.zoom;
updateClassName(this.container, fromProps.className, className);
if (viewport && viewport !== fromProps.viewport) {
var c = viewport.center ? viewport.center : center;
var z = viewport.zoom == null ? zoom : viewport.zoom;
if (useFlyTo === true) {
this.leafletElement.flyTo(c, z, this.getZoomPanOptions(toProps));
} else {
this.leafletElement.setView(c, z, this.getZoomPanOptions(toProps));
}
} else if (center && this.shouldUpdateCenter(center, fromProps.center)) {
if (useFlyTo === true) {
this.leafletElement.flyTo(center, zoom, this.getZoomPanOptions(toProps));
} else {
this.leafletElement.setView(center, zoom, this.getZoomPanOptions(toProps));
}
} else if (typeof zoom === 'number' && zoom !== fromProps.zoom) {
if (fromProps.zoom == null) {
this.leafletElement.setView(center, zoom, this.getZoomPanOptions(toProps));
} else {
this.leafletElement.setZoom(zoom, this.getZoomPanOptions(toProps));
}
}
if (maxBounds && this.shouldUpdateBounds(maxBounds, fromProps.maxBounds)) {
this.leafletElement.setMaxBounds(maxBounds);
}
if (bounds && (this.shouldUpdateBounds(bounds, fromProps.bounds) || boundsOptions !== fromProps.boundsOptions)) {
if (useFlyTo === true) {
this.leafletElement.flyToBounds(bounds, this.getFitBoundsOptions(toProps));
} else {
this.leafletElement.fitBounds(bounds, this.getFitBoundsOptions(toProps));
}
}
if (boxZoom !== fromProps.boxZoom) {
if (boxZoom === true) {
this.leafletElement.boxZoom.enable();
} else {
this.leafletElement.boxZoom.disable();
}
}
if (doubleClickZoom !== fromProps.doubleClickZoom) {
if (doubleClickZoom === true || typeof doubleClickZoom === 'string') {
this.leafletElement.options.doubleClickZoom = doubleClickZoom;
this.leafletElement.doubleClickZoom.enable();
} else {
this.leafletElement.doubleClickZoom.disable();
}
}
if (dragging !== fromProps.dragging) {
if (dragging === true) {
this.leafletElement.dragging.enable();
} else {
this.leafletElement.dragging.disable();
}
}
if (keyboard !== fromProps.keyboard) {
if (keyboard === true) {
this.leafletElement.keyboard.enable();
} else {
this.leafletElement.keyboard.disable();
}
}
if (scrollWheelZoom !== fromProps.scrollWheelZoom) {
if (scrollWheelZoom === true || typeof scrollWheelZoom === 'string') {
this.leafletElement.options.scrollWheelZoom = scrollWheelZoom;
this.leafletElement.scrollWheelZoom.enable();
} else {
this.leafletElement.scrollWheelZoom.disable();
}
}
if (tap !== fromProps.tap) {
if (tap === true) {
this.leafletElement.tap.enable();
} else {
this.leafletElement.tap.disable();
}
}
if (touchZoom !== fromProps.touchZoom) {
if (touchZoom === true || typeof touchZoom === 'string') {
this.leafletElement.options.touchZoom = touchZoom;
this.leafletElement.touchZoom.enable();
} else {
this.leafletElement.touchZoom.disable();
}
}
this._updating = false;
}
}, {
key: "getZoomPanOptions",
value: function getZoomPanOptions(props) {
var animate = props.animate,
duration = props.duration,
easeLinearity = props.easeLinearity,
noMoveStart = props.noMoveStart;
return {
animate: animate,
duration: duration,
easeLinearity: easeLinearity,
noMoveStart: noMoveStart
};
}
}, {
key: "getFitBoundsOptions",
value: function getFitBoundsOptions(props) {
var zoomPanOptions = this.getZoomPanOptions(props);
return objectSpread2(objectSpread2({}, zoomPanOptions), props.boundsOptions);
}
}, {
key: "componentDidMount",
value: function componentDidMount() {
var props = omit.apply(void 0, [this.props].concat(OTHER_PROPS));
this.leafletElement = this.createLeafletElement(props);
this.leafletElement.on('move', this.onViewportChange);
this.leafletElement.on('moveend', this.onViewportChanged);
if (props.bounds != null) {
this.leafletElement.fitBounds(props.bounds, this.getFitBoundsOptions(props));
}
this.contextValue = {
layerContainer: this.leafletElement,
map: this.leafletElement
};
get(getPrototypeOf$1(Map.prototype), "componentDidMount", this).call(this);
this.forceUpdate(); // Re-render now that leafletElement is created
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
if (this._ready === false) {
this._ready = true;
if (this.props.whenReady) {
this.leafletElement.whenReady(this.props.whenReady);
}
}
get(getPrototypeOf$1(Map.prototype), "componentDidUpdate", this).call(this, prevProps);
this.updateLeafletElement(prevProps, this.props);
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
get(getPrototypeOf$1(Map.prototype), "componentWillUnmount", this).call(this);
this.leafletElement.off('move', this.onViewportChange);
this.leafletElement.off('moveend', this.onViewportChanged); // The canvas renderer uses requestAnimationFrame, making a deferred call to a deleted object
// When preferCanvas is set, use simpler teardown logic
if (this.props.preferCanvas === true) {
this.leafletElement._initEvents(true);
this.leafletElement._stop();
} else {
this.leafletElement.remove();
}
}
}, {
key: "shouldUpdateCenter",
value: function shouldUpdateCenter(next, prev) {
if (!prev) return true;
next = normalizeCenter(next);
prev = normalizeCenter(prev);
return next[0] !== prev[0] || next[1] !== prev[1];
}
}, {
key: "shouldUpdateBounds",
value: function shouldUpdateBounds(next, prev) {
return prev ? !leaflet.latLngBounds(next).equals(leaflet.latLngBounds(prev)) : true;
}
}, {
key: "render",
value: function render() {
return /*#__PURE__*/React__default['default'].createElement("div", {
className: this.className,
id: this.props.id,
ref: this.bindContainer,
style: this.props.style
}, this.contextValue ? /*#__PURE__*/React__default['default'].createElement(LeafletProvider, {
value: this.contextValue
}, this.props.children) : null);
}
}]);
return Map;
}(MapEvented);
var Marker = /*#__PURE__*/function (_MapLayer) {
inherits(Marker, _MapLayer);
var _super = createSuper(Marker);
function Marker() {
classCallCheck(this, Marker);
return _super.apply(this, arguments);
}
createClass(Marker, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
var el = new leaflet.Marker(props.position, this.getOptions(props));
this.contextValue = objectSpread2(objectSpread2({}, props.leaflet), {}, {
popupContainer: el
});
return el;
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
if (toProps.position !== fromProps.position) {
this.leafletElement.setLatLng(toProps.position);
}
if (toProps.icon !== fromProps.icon) {
this.leafletElement.setIcon(toProps.icon);
}
if (toProps.zIndexOffset !== fromProps.zIndexOffset) {
this.leafletElement.setZIndexOffset(toProps.zIndexOffset);
}
if (toProps.opacity !== fromProps.opacity) {
this.leafletElement.setOpacity(toProps.opacity);
}
if (toProps.draggable !== fromProps.draggable) {
if (toProps.draggable === true) {
this.leafletElement.dragging.enable();
} else {
this.leafletElement.dragging.disable();
}
}
}
}, {
key: "render",
value: function render() {
var children = this.props.children;
return children == null || this.contextValue == null ? null : /*#__PURE__*/React__default['default'].createElement(LeafletProvider, {
value: this.contextValue
}, children);
}
}]);
return Marker;
}(MapLayer);
var Marker$1 = withLeaflet(Marker);
/**
* Copyright (c) 2014-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var warning = function() {};
{
var printWarning = function printWarning(format, args) {
var len = arguments.length;
args = new Array(len > 1 ? len - 1 : 0);
for (var key = 1; key < len; key++) {
args[key - 1] = arguments[key];
}
var argIndex = 0;
var message = 'Warning: ' +
format.replace(/%s/g, function() {
return args[argIndex++];
});
if (typeof console !== 'undefined') {
console.error(message);
}
try {
// --- Welcome to debugging React ---
// This error was thrown as a convenience so that you can use this stack
// to find the callsite that caused this warning to fire.
throw new Error(message);
} catch (x) {}
};
warning = function(condition, format, args) {
var len = arguments.length;
args = new Array(len > 2 ? len - 2 : 0);
for (var key = 2; key < len; key++) {
args[key - 2] = arguments[key];
}
if (format === undefined) {
throw new Error(
'`warning(condition, format, ...args)` requires a warning ' +
'message argument'
);
}
if (!condition) {
printWarning.apply(null, [format].concat(args));
}
};
}
var warning_1 = warning;
var idCounter = 0;
var uniqueId = function uniqueId() {
return ++idCounter;
};
var LEAFLET_PANES = ['tile', 'shadow', 'overlay', 'map', 'marker', 'tooltip', 'popup'];
var PANE_RE = /-*pane/gi;
var isLeafletPane = function isLeafletPane(name) {
return LEAFLET_PANES.indexOf(name.replace(PANE_RE, '')) !== -1;
};
var paneStyles = {
position: 'absolute',
top: 0,
right: 0,
bottom: 0,
left: 0
};
var Pane = /*#__PURE__*/function (_Component) {
inherits(Pane, _Component);
var _super = createSuper(Pane);
function Pane() {
var _this;
classCallCheck(this, Pane);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _super.call.apply(_super, [this].concat(args));
defineProperty$1(assertThisInitialized(_this), "state", {
name: undefined,
context: undefined
});
defineProperty$1(assertThisInitialized(_this), "setStyle", function () {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props,
style = _ref.style,
className = _ref.className;
var pane = _this.getPane(_this.state.name);
if (pane) {
if (className) {
addClassName(pane, className);
}
if (style) {
// Without the cast, Flow throws this error:
// Cannot assign style[key] to pane.style[key] because string
// is incompatible with number.
Object.keys(style).forEach(function (key) {
pane.style[key] = style[key];
});
}
}
});
return _this;
}
createClass(Pane, [{
key: "componentDidMount",
value: function componentDidMount() {
this.createPane(this.props);
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
if (!this.state.name) {
// Do nothing if this.state.name is undefined due to errors or
// an invalid props.name value
return;
} // If the 'name' prop has changed the current pane is unmounted and a new
// pane is created.
if (this.props.name !== prevProps.name) {
this.removePane();
this.createPane(this.props);
} else {
// Remove the previous css class name from the pane if it has changed.
// setStyle() will take care of adding in the updated className
if (prevProps.className && this.props.className !== prevProps.className) {
var pane = this.getPane(this.state.name);
if (pane != null && prevProps.className != null) {
removeClassName(pane, prevProps.className);
}
} // Update the pane's DOM node style and class
this.setStyle(this.props);
}
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
this.removePane();
}
}, {
key: "createPane",
value: function createPane(props) {
var map = props.leaflet.map;
var name = props.name || "pane-".concat(uniqueId());
if (map != null && map.createPane != null) {
var isDefault = isLeafletPane(name);
var existing = isDefault || this.getPane(name);
if (existing == null) {
map.createPane(name, this.getParentPane());
} else {
var message = isDefault ? "You must use a unique name for a pane that is not a default leaflet pane (".concat(name, ")") : "A pane with this name already exists. (".concat(name, ")");
warning_1(false, message) ;
}
this.setState({
name: name,
context: objectSpread2(objectSpread2({}, props.leaflet), {}, {
pane: name
})
}, this.setStyle);
}
}
}, {
key: "removePane",
value: function removePane() {
// Remove the created pane
var name = this.state.name;
if (name != null) {
var pane = this.getPane(name);
if (pane != null && pane.remove) pane.remove();
var map = this.props.leaflet.map;
if (map != null && map._panes != null) {
map._panes = omit(map._panes, name);
map._paneRenderers = omit(map._paneRenderers, name);
}
}
}
}, {
key: "getParentPane",
value: function getParentPane() {
return this.getPane(this.props.pane || this.props.leaflet.pane);
}
}, {
key: "getPane",
value: function getPane(name) {
if (name != null && this.props.leaflet.map != null) {
return this.props.leaflet.map.getPane(name);
}
}
}, {
key: "render",
value: function render() {
var context = this.state.context;
return context ? /*#__PURE__*/React__default['default'].createElement(LeafletProvider, {
value: context
}, /*#__PURE__*/React__default['default'].createElement("div", {
style: paneStyles
}, this.props.children)) : null;
}
}]);
return Pane;
}(React.Component);
var Pane$1 = withLeaflet(Pane);
var Polygon = /*#__PURE__*/function (_Path) {
inherits(Polygon, _Path);
var _super = createSuper(Polygon);
function Polygon() {
classCallCheck(this, Polygon);
return _super.apply(this, arguments);
}
createClass(Polygon, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
return new leaflet.Polygon(props.positions, this.getOptions(props));
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
if (toProps.positions !== fromProps.positions) {
this.leafletElement.setLatLngs(toProps.positions);
}
this.setStyleIfChanged(fromProps, toProps);
}
}]);
return Polygon;
}(Path);
var Polygon$1 = withLeaflet(Polygon);
var Polyline = /*#__PURE__*/function (_Path) {
inherits(Polyline, _Path);
var _super = createSuper(Polyline);
function Polyline() {
classCallCheck(this, Polyline);
return _super.apply(this, arguments);
}
createClass(Polyline, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
return new leaflet.Polyline(props.positions, this.getOptions(props));
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
if (toProps.positions !== fromProps.positions) {
this.leafletElement.setLatLngs(toProps.positions);
}
this.setStyleIfChanged(fromProps, toProps);
}
}]);
return Polyline;
}(Path);
var Polyline$1 = withLeaflet(Polyline);
var Popup = /*#__PURE__*/function (_DivOverlay) {
inherits(Popup, _DivOverlay);
var _super = createSuper(Popup);
function Popup() {
var _this;
classCallCheck(this, Popup);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _super.call.apply(_super, [this].concat(args));
defineProperty$1(assertThisInitialized(_this), "onPopupOpen", function (_ref) {
var popup = _ref.popup;
if (popup === _this.leafletElement) {
_this.onOpen();
}
});
defineProperty$1(assertThisInitialized(_this), "onPopupClose", function (_ref2) {
var popup = _ref2.popup;
if (popup === _this.leafletElement) {
_this.onClose();
}
});
defineProperty$1(assertThisInitialized(_this), "onRender", function () {
if (_this.props.autoPan !== false && _this.leafletElement.isOpen()) {
if (_this.leafletElement._map && _this.leafletElement._map._panAnim) {
_this.leafletElement._map._panAnim = undefined;
}
_this.leafletElement._adjustPan();
}
});
return _this;
}
createClass(Popup, [{
key: "getOptions",
value: function getOptions(props) {
return objectSpread2(objectSpread2({}, get(getPrototypeOf$1(Popup.prototype), "getOptions", this).call(this, props)), {}, {
autoPan: false
});
}
}, {
key: "createLeafletElement",
value: function createLeafletElement(props) {
var options = this.getOptions(props);
options.autoPan = props.autoPan !== false;
return new leaflet.Popup(options, props.leaflet.popupContainer);
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
if (toProps.position !== fromProps.position) {
this.leafletElement.setLatLng(toProps.position);
}
}
}, {
key: "componentDidMount",
value: function componentDidMount() {
var position = this.props.position;
var _this$props$leaflet = this.props.leaflet,
map = _this$props$leaflet.map,
popupContainer = _this$props$leaflet.popupContainer;
var el = this.leafletElement;
if (map != null) {
map.on({
popupopen: this.onPopupOpen,
popupclose: this.onPopupClose
});
}
if (popupContainer) {
// Attach to container component
popupContainer.bindPopup(el);
} else {
// Attach to a Map
if (position) {
el.setLatLng(position);
}
el.openOn(map);
}
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
var map = this.props.leaflet.map;
if (map != null) {
map.off({
popupopen: this.onPopupOpen,
popupclose: this.onPopupClose
});
map.removeLayer(this.leafletElement);
}
get(getPrototypeOf$1(Popup.prototype), "componentWillUnmount", this).call(this);
}
}]);
return Popup;
}(DivOverlay);
defineProperty$1(Popup, "defaultProps", {
pane: 'popupPane'
});
var Popup$1 = withLeaflet(Popup);
var Rectangle = /*#__PURE__*/function (_Path) {
inherits(Rectangle, _Path);
var _super = createSuper(Rectangle);
function Rectangle() {
classCallCheck(this, Rectangle);
return _super.apply(this, arguments);
}
createClass(Rectangle, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
return new leaflet.Rectangle(props.bounds, this.getOptions(props));
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
if (toProps.bounds !== fromProps.bounds) {
this.leafletElement.setBounds(toProps.bounds);
}
this.setStyleIfChanged(fromProps, toProps);
}
}]);
return Rectangle;
}(Path);
var Rectangle$1 = withLeaflet(Rectangle);
var ScaleControl = /*#__PURE__*/function (_MapControl) {
inherits(ScaleControl, _MapControl);
var _super = createSuper(ScaleControl);
function ScaleControl() {
classCallCheck(this, ScaleControl);
return _super.apply(this, arguments);
}
createClass(ScaleControl, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
return new leaflet.Control.Scale(props);
}
}]);
return ScaleControl;
}(MapControl);
var ScaleControl$1 = withLeaflet(ScaleControl);
function setAttribute(el, name, value) {
if (value != null) {
el.setAttribute(name, value);
} else {
el.removeAttribute(name);
}
}
var SVGOverlay = /*#__PURE__*/function (_MapComponent) {
inherits(SVGOverlay, _MapComponent);
var _super = createSuper(SVGOverlay);
function SVGOverlay(props) {
var _this;
classCallCheck(this, SVGOverlay);
_this = _super.call(this, props);
defineProperty$1(assertThisInitialized(_this), "leafletElement", void 0);
defineProperty$1(assertThisInitialized(_this), "container", void 0);
_this.leafletElement = _this.createLeafletElement(props);
return _this;
}
createClass(SVGOverlay, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
var container = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
setAttribute(container, 'xmlns', 'http://www.w3.org/2000/svg');
setAttribute(container, 'preserveAspectRatio', props.preserveAspectRatio);
setAttribute(container, 'viewBox', props.viewBox);
this.container = container;
return new leaflet.SVGOverlay(container, props.bounds, this.getOptions(props));
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
if (toProps.bounds !== fromProps.bounds) {
this.leafletElement.setBounds(toProps.bounds);
}
if (toProps.opacity !== fromProps.opacity) {
this.leafletElement.setOpacity(toProps.opacity);
}
if (this.container && toProps.preserveAspectRatio !== fromProps.preserveAspectRatio) {
setAttribute(this.container, 'preserveAspectRatio', toProps.preserveAspectRatio);
}
if (this.container && toProps.viewBox !== fromProps.viewBox) {
setAttribute(this.container, 'viewBox', toProps.viewBox);
}
if (toProps.zIndex !== fromProps.zIndex) {
this.leafletElement.setZIndex(toProps.zIndex);
}
}
}, {
key: "componentDidMount",
value: function componentDidMount() {
get(getPrototypeOf$1(SVGOverlay.prototype), "componentDidMount", this).call(this);
this.layerContainer.addLayer(this.leafletElement);
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
get(getPrototypeOf$1(SVGOverlay.prototype), "componentDidUpdate", this).call(this, prevProps);
if (this.props.attribution !== prevProps.attribution) {
var map = this.props.leaflet.map;
if (map != null && map.attributionControl != null) {
map.attributionControl.removeAttribution(prevProps.attribution);
map.attributionControl.addAttribution(this.props.attribution);
}
}
this.updateLeafletElement(prevProps, this.props);
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
get(getPrototypeOf$1(SVGOverlay.prototype), "componentWillUnmount", this).call(this);
this.layerContainer.removeLayer(this.leafletElement);
this.container = null;
}
}, {
key: "render",
value: function render() {
var children = this.props.children;
if (children == null || this.container == null) {
return null;
}
return /*#__PURE__*/reactDom.createPortal(children, this.container);
}
}, {
key: "layerContainer",
get: function get() {
return this.props.leaflet.layerContainer || this.props.leaflet.map;
}
}]);
return SVGOverlay;
}(MapComponent);
var SVGOverlay$1 = withLeaflet(SVGOverlay);
var TileLayer = /*#__PURE__*/function (_GridLayer) {
inherits(TileLayer, _GridLayer);
var _super = createSuper(TileLayer);
function TileLayer() {
classCallCheck(this, TileLayer);
return _super.apply(this, arguments);
}
createClass(TileLayer, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
return new leaflet.TileLayer(props.url, this.getOptions(props));
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
get(getPrototypeOf$1(TileLayer.prototype), "updateLeafletElement", this).call(this, fromProps, toProps);
if (toProps.url !== fromProps.url) {
this.leafletElement.setUrl(toProps.url);
}
}
}]);
return TileLayer;
}(GridLayer);
var TileLayer$1 = withLeaflet(TileLayer);
var Tooltip = /*#__PURE__*/function (_DivOverlay) {
inherits(Tooltip, _DivOverlay);
var _super = createSuper(Tooltip);
function Tooltip() {
var _this;
classCallCheck(this, Tooltip);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _super.call.apply(_super, [this].concat(args));
defineProperty$1(assertThisInitialized(_this), "onTooltipOpen", function (_ref) {
var tooltip = _ref.tooltip;
if (tooltip === _this.leafletElement) {
_this.onOpen();
}
});
defineProperty$1(assertThisInitialized(_this), "onTooltipClose", function (_ref2) {
var tooltip = _ref2.tooltip;
if (tooltip === _this.leafletElement) {
_this.onClose();
}
});
return _this;
}
createClass(Tooltip, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
return new leaflet.Tooltip(this.getOptions(props), props.leaflet.popupContainer);
}
}, {
key: "componentDidMount",
value: function componentDidMount() {
var popupContainer = this.props.leaflet.popupContainer;
if (popupContainer == null) return;
popupContainer.on({
tooltipopen: this.onTooltipOpen,
tooltipclose: this.onTooltipClose
});
popupContainer.bindTooltip(this.leafletElement);
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
var popupContainer = this.props.leaflet.popupContainer;
if (popupContainer == null) return;
popupContainer.off({
tooltipopen: this.onTooltipOpen,
tooltipclose: this.onTooltipClose
});
if (popupContainer._map != null) {
popupContainer.unbindTooltip(this.leafletElement);
}
}
}]);
return Tooltip;
}(DivOverlay);
defineProperty$1(Tooltip, "defaultProps", {
pane: 'tooltipPane'
});
var Tooltip$1 = withLeaflet(Tooltip);
var VideoOverlay = /*#__PURE__*/function (_MapLayer) {
inherits(VideoOverlay, _MapLayer);
var _super = createSuper(VideoOverlay);
function VideoOverlay() {
classCallCheck(this, VideoOverlay);
return _super.apply(this, arguments);
}
createClass(VideoOverlay, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
return new leaflet.VideoOverlay(props.url, props.bounds, this.getOptions(props));
}
}, {
key: "componentDidMount",
value: function componentDidMount() {
get(getPrototypeOf$1(VideoOverlay.prototype), "componentDidMount", this).call(this);
if (this.props.play === true) {
this.leafletElement.getElement().play();
}
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
if (toProps.url !== fromProps.url) {
this.leafletElement.setUrl(toProps.url);
}
if (toProps.bounds !== fromProps.bounds) {
this.leafletElement.setBounds(leaflet.latLngBounds(toProps.bounds));
}
if (toProps.opacity !== fromProps.opacity) {
this.leafletElement.setOpacity(toProps.opacity);
}
if (toProps.zIndex !== fromProps.zIndex) {
this.leafletElement.setZIndex(toProps.zIndex);
} // flowlint-next-line sketchy-null-bool:off
if (toProps.play === true && !fromProps.play) {
this.leafletElement.getElement().play(); // flowlint-next-line sketchy-null-bool:off
} else if (!toProps.play && fromProps.play === true) {
this.leafletElement.getElement().pause();
}
}
}]);
return VideoOverlay;
}(MapLayer);
var VideoOverlay$1 = withLeaflet(VideoOverlay);
var WMSTileLayer = /*#__PURE__*/function (_GridLayer) {
inherits(WMSTileLayer, _GridLayer);
var _super = createSuper(WMSTileLayer);
function WMSTileLayer() {
classCallCheck(this, WMSTileLayer);
return _super.apply(this, arguments);
}
createClass(WMSTileLayer, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
var url = props.url,
params = objectWithoutProperties(props, ["url"]);
var _this$getOptions = this.getOptions(params),
_l = _this$getOptions.leaflet,
options = objectWithoutProperties(_this$getOptions, ["leaflet"]);
return new leaflet.TileLayer.WMS(url, options);
}
}, {
key: "updateLeafletElement",
value: function updateLeafletElement(fromProps, toProps) {
get(getPrototypeOf$1(WMSTileLayer.prototype), "updateLeafletElement", this).call(this, fromProps, toProps);
var prevUrl = fromProps.url,
_po = fromProps.opacity,
_pz = fromProps.zIndex,
prevProps = objectWithoutProperties(fromProps, ["url", "opacity", "zIndex"]);
var _this$getOptions2 = this.getOptions(prevProps),
_pl = _this$getOptions2.leaflet,
prevParams = objectWithoutProperties(_this$getOptions2, ["leaflet"]);
var url = toProps.url,
_o = toProps.opacity,
_z = toProps.zIndex,
props = objectWithoutProperties(toProps, ["url", "opacity", "zIndex"]);
var _this$getOptions3 = this.getOptions(props),
_l = _this$getOptions3.leaflet,
params = objectWithoutProperties(_this$getOptions3, ["leaflet"]);
if (url !== prevUrl) {
this.leafletElement.setUrl(url);
}
if (!fastDeepEqual(params, prevParams)) {
this.leafletElement.setParams(params);
}
}
}, {
key: "getOptions",
value: function getOptions(params) {
var superOptions = get(getPrototypeOf$1(WMSTileLayer.prototype), "getOptions", this).call(this, params);
return Object.keys(superOptions).reduce(function (options, key) {
if (!EVENTS_RE.test(key)) {
options[key] = superOptions[key];
}
return options;
}, {});
}
}]);
return WMSTileLayer;
}(GridLayer);
var WMSTileLayer$1 = withLeaflet(WMSTileLayer);
var ZoomControl = /*#__PURE__*/function (_MapControl) {
inherits(ZoomControl, _MapControl);
var _super = createSuper(ZoomControl);
function ZoomControl() {
classCallCheck(this, ZoomControl);
return _super.apply(this, arguments);
}
createClass(ZoomControl, [{
key: "createLeafletElement",
value: function createLeafletElement(props) {
return new leaflet.Control.Zoom(props);
}
}]);
return ZoomControl;
}(MapControl);
var ZoomControl$1 = withLeaflet(ZoomControl);
exports.AttributionControl = AttributionControl$1;
exports.Circle = Circle$1;
exports.CircleMarker = CircleMarker$1;
exports.ControlledLayer = ControlledLayer;
exports.DivOverlay = DivOverlay;
exports.FeatureGroup = FeatureGroup$1;
exports.GeoJSON = GeoJSON$1;
exports.GridLayer = GridLayer;
exports.ImageOverlay = ImageOverlay$1;
exports.LayerGroup = LayerGroup$1;
exports.LayersControl = LayersControlExport;
exports.LeafletConsumer = LeafletConsumer;
exports.LeafletProvider = LeafletProvider;
exports.Map = Map;
exports.MapComponent = MapComponent;
exports.MapControl = MapControl;
exports.MapEvented = MapEvented;
exports.MapLayer = MapLayer;
exports.Marker = Marker$1;
exports.Pane = Pane$1;
exports.Path = Path;
exports.Polygon = Polygon$1;
exports.Polyline = Polyline$1;
exports.Popup = Popup$1;
exports.Rectangle = Rectangle$1;
exports.SVGOverlay = SVGOverlay$1;
exports.ScaleControl = ScaleControl$1;
exports.TileLayer = TileLayer$1;
exports.Tooltip = Tooltip$1;
exports.VideoOverlay = VideoOverlay$1;
exports.WMSTileLayer = WMSTileLayer$1;
exports.ZoomControl = ZoomControl$1;
exports.useLeaflet = useLeaflet;
exports.withLeaflet = withLeaflet;
Object.defineProperty(exports, '__esModule', { value: true });
})));