diff --git a/extend.php b/extend.php
index a154932..5dd2cf7 100644
--- a/extend.php
+++ b/extend.php
@@ -36,11 +36,14 @@ class UserLocationFilterMutator
return [
(new Extend\Frontend('forum'))
->js(__DIR__.'/js/dist/forum.js')
- ->css(__DIR__.'/less/forum.less'),
+ ->css(__DIR__.'/js/dist/forum.less'),
+
(new Extend\Frontend('admin'))
->js(__DIR__.'/js/dist/admin.js')
->css(__DIR__.'/less/admin.less'),
+
new Extend\Locales(__DIR__.'/locale'),
+
(new Extend\Event())
->listen(Saving::class, SaveLocationToDatabase::class),
diff --git a/js/dist/admin.js b/js/dist/admin.js
index 09f88b2..cb28ece 100644
--- a/js/dist/admin.js
+++ b/js/dist/admin.js
@@ -1,112 +1,12 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-/******/
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-/******/
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId]) {
-/******/ return installedModules[moduleId].exports;
-/******/ }
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ i: moduleId,
-/******/ l: false,
-/******/ exports: {}
-/******/ };
-/******/
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ // Flag the module as loaded
-/******/ module.l = true;
-/******/
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-/******/
-/******/
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-/******/
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-/******/
-/******/ // define getter function for harmony exports
-/******/ __webpack_require__.d = function(exports, name, getter) {
-/******/ if(!__webpack_require__.o(exports, name)) {
-/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ }
-/******/ };
-/******/
-/******/ // define __esModule on exports
-/******/ __webpack_require__.r = function(exports) {
-/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ }
-/******/ Object.defineProperty(exports, '__esModule', { value: true });
-/******/ };
-/******/
-/******/ // create a fake namespace object
-/******/ // mode & 1: value is a module id, require it
-/******/ // mode & 2: merge all properties of value into the ns
-/******/ // mode & 4: return value when already ns object
-/******/ // mode & 8|1: behave like require
-/******/ __webpack_require__.t = function(value, mode) {
-/******/ if(mode & 1) value = __webpack_require__(value);
-/******/ if(mode & 8) return value;
-/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ var ns = Object.create(null);
-/******/ __webpack_require__.r(ns);
-/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ return ns;
-/******/ };
-/******/
-/******/ // getDefaultExport function for compatibility with non-harmony modules
-/******/ __webpack_require__.n = function(module) {
-/******/ var getter = module && module.__esModule ?
-/******/ function getDefault() { return module['default']; } :
-/******/ function getModuleExports() { return module; };
-/******/ __webpack_require__.d(getter, 'a', getter);
-/******/ return getter;
-/******/ };
-/******/
-/******/ // Object.prototype.hasOwnProperty.call
-/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-/******/
-/******/
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = "./admin.js");
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ "./admin.js":
-/*!******************!*\
- !*** ./admin.js ***!
- \******************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _src_admin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/admin */ "./src/admin/index.js");
-/* empty/unused harmony star reexport */
-
-/***/ }),
+/******/ (() => { // webpackBootstrap
+/******/ // runtime can't be in strict mode because a global variable is assign and maybe created.
+/******/ var __webpack_modules__ = ({
/***/ "./src/admin/index.js":
/*!****************************!*\
!*** ./src/admin/index.js ***!
\****************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
@@ -119,17 +19,17 @@ __webpack_require__.r(__webpack_exports__);
-flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.initializers.add('justoverclock/users-map-location', function () {
- flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.extensionData["for"]('justoverclock-users-map-location').registerSetting({
+flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default().initializers.add('justoverclock/users-map-location', function () {
+ flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default().extensionData["for"]('justoverclock-users-map-location').registerSetting({
setting: 'justoverclock-users-map-location.mapBox-api-key',
name: 'justoverclock-users-map-location.mapBox-api-key',
type: 'text',
- label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.translator.trans('justoverclock-users-map-location.admin.mapBox-api-key'),
- help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.translator.trans('justoverclock-users-map-location.admin.mapBox-api-key-help')
+ label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default().translator.trans('justoverclock-users-map-location.admin.mapBox-api-key'),
+ help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default().translator.trans('justoverclock-users-map-location.admin.mapBox-api-key-help')
});
- Object(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__["extend"])(flarum_admin_components_UserListPage__WEBPACK_IMPORTED_MODULE_2___default.a.prototype, 'columns', function (items) {
+ (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_admin_components_UserListPage__WEBPACK_IMPORTED_MODULE_2___default().prototype), 'columns', function (items) {
items.add('location', {
- name: flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.translator.trans('justoverclock-users-map-location.admin.adminLocationField'),
+ name: flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default().translator.trans('justoverclock-users-map-location.admin.adminLocationField'),
content: function content(user) {
return m("div", null, user.data.attributes.location);
}
@@ -143,9 +43,9 @@ flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.initializers.add('justov
/*!**************************************************!*\
!*** external "flarum.core.compat['admin/app']" ***!
\**************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ ((module) => {
+"use strict";
module.exports = flarum.core.compat['admin/app'];
/***/ }),
@@ -154,9 +54,9 @@ module.exports = flarum.core.compat['admin/app'];
/*!**********************************************************************!*\
!*** external "flarum.core.compat['admin/components/UserListPage']" ***!
\**********************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ ((module) => {
+"use strict";
module.exports = flarum.core.compat['admin/components/UserListPage'];
/***/ }),
@@ -165,12 +65,94 @@ module.exports = flarum.core.compat['admin/components/UserListPage'];
/*!******************************************************!*\
!*** external "flarum.core.compat['common/extend']" ***!
\******************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ ((module) => {
+"use strict";
module.exports = flarum.core.compat['common/extend'];
/***/ })
-/******/ });
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/compat get default export */
+/******/ (() => {
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = (module) => {
+/******/ var getter = module && module.__esModule ?
+/******/ () => (module['default']) :
+/******/ () => (module);
+/******/ __webpack_require__.d(getter, { a: getter });
+/******/ return getter;
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/define property getters */
+/******/ (() => {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = (exports, definition) => {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ (() => {
+/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
+/******/ })();
+/******/
+/******/ /* webpack/runtime/make namespace object */
+/******/ (() => {
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = (exports) => {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/ })();
+/******/
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be in strict mode.
+(() => {
+"use strict";
+/*!******************!*\
+ !*** ./admin.js ***!
+ \******************/
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _src_admin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/admin */ "./src/admin/index.js");
+
+})();
+
+module.exports = __webpack_exports__;
+/******/ })()
+;
//# sourceMappingURL=admin.js.map
\ No newline at end of file
diff --git a/js/dist/admin.js.map b/js/dist/admin.js.map
index d651387..ef2c53e 100644
--- a/js/dist/admin.js.map
+++ b/js/dist/admin.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://@justoverclock/users-map-location/webpack/bootstrap","webpack://@justoverclock/users-map-location/./admin.js","webpack://@justoverclock/users-map-location/./src/admin/index.js","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['admin/app']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['admin/components/UserListPage']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['common/extend']\""],"names":["app","initializers","add","extensionData","registerSetting","setting","name","type","label","translator","trans","help","extend","UserListPage","prototype","items","content","user","data","attributes","location"],"mappings":";;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AClFA;AAAA;AAAA,wC;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEAA,uDAAG,CAACC,YAAJ,CAAiBC,GAAjB,CAAqB,kCAArB,EAAyD,YAAM;AAC7DF,yDAAG,CAACG,aAAJ,QAAsB,kCAAtB,EAA0DC,eAA1D,CAA0E;AACxEC,WAAO,EAAE,iDAD+D;AAExEC,QAAI,EAAE,iDAFkE;AAGxEC,QAAI,EAAE,MAHkE;AAIxEC,SAAK,EAAER,uDAAG,CAACS,UAAJ,CAAeC,KAAf,CAAqB,uDAArB,CAJiE;AAKxEC,QAAI,EAAEX,uDAAG,CAACS,UAAJ,CAAeC,KAAf,CAAqB,4DAArB;AALkE,GAA1E;AAOAE,qEAAM,CAACC,2EAAY,CAACC,SAAd,EAAyB,SAAzB,EAAoC,UAAUC,KAAV,EAAiB;AACzDA,SAAK,CAACb,GAAN,CACE,UADF,EAEE;AACEI,UAAI,EAAEN,uDAAG,CAACS,UAAJ,CAAeC,KAAf,CAAqB,2DAArB,CADR;AAEEM,aAAO,EAAE,iBAACC,IAAD,EAAU;AAEjB,eAAO,eAAMA,IAAI,CAACC,IAAL,CAAUC,UAAV,CAAqBC,QAA3B,CAAP;AACD;AALH,KAFF,EASE,CAAC,EATH;AAWD,GAZK,CAAN;AAaD,CArBD,E;;;;;;;;;;;ACJA,iD;;;;;;;;;;;ACAA,qE;;;;;;;;;;;ACAA,qD","file":"admin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./admin.js\");\n","export * from './src/admin';\n","import app from 'flarum/admin/app';\nimport { extend } from 'flarum/common/extend';\nimport UserListPage from 'flarum/admin/components/UserListPage';\n\napp.initializers.add('justoverclock/users-map-location', () => {\n app.extensionData.for('justoverclock-users-map-location').registerSetting({\n setting: 'justoverclock-users-map-location.mapBox-api-key',\n name: 'justoverclock-users-map-location.mapBox-api-key',\n type: 'text',\n label: app.translator.trans('justoverclock-users-map-location.admin.mapBox-api-key'),\n help: app.translator.trans('justoverclock-users-map-location.admin.mapBox-api-key-help'),\n });\n extend(UserListPage.prototype, 'columns', function (items) {\n items.add(\n 'location',\n {\n name: app.translator.trans('justoverclock-users-map-location.admin.adminLocationField'),\n content: (user) => {\n\n return
{user.data.attributes.location}
;\n },\n },\n -50\n );\n });\n});\n","module.exports = flarum.core.compat['admin/app'];","module.exports = flarum.core.compat['admin/components/UserListPage'];","module.exports = flarum.core.compat['common/extend'];"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"admin.js","mappings":";;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AAEAA,oEAAA,CAAiBI,GAAjB,CAAqB,kCAArB,EAAyD,YAAM;AAC7DJ,EAAAA,qEAAA,QAAsB,kCAAtB,EAA0DM,eAA1D,CAA0E;AACxEC,IAAAA,OAAO,EAAE,iDAD+D;AAExEC,IAAAA,IAAI,EAAE,iDAFkE;AAGxEC,IAAAA,IAAI,EAAE,MAHkE;AAIxEC,IAAAA,KAAK,EAAEV,kEAAA,CAAeY,KAAf,CAAqB,uDAArB,CAJiE;AAKxEC,IAAAA,IAAI,EAAEb,kEAAA,CAAeY,KAAf,CAAqB,4DAArB;AALkE,GAA1E;AAOAX,EAAAA,4DAAM,CAACC,uFAAD,EAAyB,SAAzB,EAAoC,UAAUa,KAAV,EAAiB;AACzDA,IAAAA,KAAK,CAACX,GAAN,CACE,UADF,EAEE;AACEI,MAAAA,IAAI,EAAER,kEAAA,CAAeY,KAAf,CAAqB,2DAArB,CADR;AAEEI,MAAAA,OAAO,EAAE,iBAACC,IAAD,EAAU;AAEjB,eAAO,eAAMA,IAAI,CAACC,IAAL,CAAUC,UAAV,CAAqBC,QAA3B,CAAP;AACD;AALH,KAFF,EASE,CAAC,EATH;AAWD,GAZK,CAAN;AAaD,CArBD;;;;;;;;;;;ACJA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D","sources":["webpack://@justoverclock/users-map-location/./src/admin/index.js","webpack://@justoverclock/users-map-location/external root \"flarum.core.compat['admin/app']\"","webpack://@justoverclock/users-map-location/external root \"flarum.core.compat['admin/components/UserListPage']\"","webpack://@justoverclock/users-map-location/external root \"flarum.core.compat['common/extend']\"","webpack://@justoverclock/users-map-location/webpack/bootstrap","webpack://@justoverclock/users-map-location/webpack/runtime/compat get default export","webpack://@justoverclock/users-map-location/webpack/runtime/define property getters","webpack://@justoverclock/users-map-location/webpack/runtime/hasOwnProperty shorthand","webpack://@justoverclock/users-map-location/webpack/runtime/make namespace object","webpack://@justoverclock/users-map-location/./admin.js"],"sourcesContent":["import app from 'flarum/admin/app';\nimport { extend } from 'flarum/common/extend';\nimport UserListPage from 'flarum/admin/components/UserListPage';\n\napp.initializers.add('justoverclock/users-map-location', () => {\n app.extensionData.for('justoverclock-users-map-location').registerSetting({\n setting: 'justoverclock-users-map-location.mapBox-api-key',\n name: 'justoverclock-users-map-location.mapBox-api-key',\n type: 'text',\n label: app.translator.trans('justoverclock-users-map-location.admin.mapBox-api-key'),\n help: app.translator.trans('justoverclock-users-map-location.admin.mapBox-api-key-help'),\n });\n extend(UserListPage.prototype, 'columns', function (items) {\n items.add(\n 'location',\n {\n name: app.translator.trans('justoverclock-users-map-location.admin.adminLocationField'),\n content: (user) => {\n\n return {user.data.attributes.location}
;\n },\n },\n -50\n );\n });\n});\n","module.exports = flarum.core.compat['admin/app'];","module.exports = flarum.core.compat['admin/components/UserListPage'];","module.exports = flarum.core.compat['common/extend'];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export * from './src/admin';\n"],"names":["app","extend","UserListPage","initializers","add","extensionData","registerSetting","setting","name","type","label","translator","trans","help","prototype","items","content","user","data","attributes","location"],"sourceRoot":""}
\ No newline at end of file
diff --git a/js/dist/forum.js b/js/dist/forum.js
index a2e6a11..9116059 100644
--- a/js/dist/forum.js
+++ b/js/dist/forum.js
@@ -1,146 +1,2773 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-/******/
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-/******/
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId]) {
-/******/ return installedModules[moduleId].exports;
-/******/ }
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ i: moduleId,
-/******/ l: false,
-/******/ exports: {}
-/******/ };
-/******/
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ // Flag the module as loaded
-/******/ module.l = true;
-/******/
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-/******/
-/******/
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-/******/
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-/******/
-/******/ // define getter function for harmony exports
-/******/ __webpack_require__.d = function(exports, name, getter) {
-/******/ if(!__webpack_require__.o(exports, name)) {
-/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ }
-/******/ };
-/******/
-/******/ // define __esModule on exports
-/******/ __webpack_require__.r = function(exports) {
-/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ }
-/******/ Object.defineProperty(exports, '__esModule', { value: true });
-/******/ };
-/******/
-/******/ // create a fake namespace object
-/******/ // mode & 1: value is a module id, require it
-/******/ // mode & 2: merge all properties of value into the ns
-/******/ // mode & 4: return value when already ns object
-/******/ // mode & 8|1: behave like require
-/******/ __webpack_require__.t = function(value, mode) {
-/******/ if(mode & 1) value = __webpack_require__(value);
-/******/ if(mode & 8) return value;
-/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ var ns = Object.create(null);
-/******/ __webpack_require__.r(ns);
-/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ return ns;
-/******/ };
-/******/
-/******/ // getDefaultExport function for compatibility with non-harmony modules
-/******/ __webpack_require__.n = function(module) {
-/******/ var getter = module && module.__esModule ?
-/******/ function getDefault() { return module['default']; } :
-/******/ function getModuleExports() { return module; };
-/******/ __webpack_require__.d(getter, 'a', getter);
-/******/ return getter;
-/******/ };
-/******/
-/******/ // Object.prototype.hasOwnProperty.call
-/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-/******/
-/******/
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = "./forum.js");
-/******/ })
-/************************************************************************/
-/******/ ({
+/******/ (() => { // webpackBootstrap
+/******/ var __webpack_modules__ = ({
+
+/***/ "./node_modules/leaflet.markercluster/dist/leaflet.markercluster-src.js":
+/*!******************************************************************************!*\
+ !*** ./node_modules/leaflet.markercluster/dist/leaflet.markercluster-src.js ***!
+ \******************************************************************************/
+/***/ (function(__unused_webpack_module, exports) {
+
+/*
+ * Leaflet.markercluster 1.5.3+master.e5124b2,
+ * Provides Beautiful Animated Marker Clustering functionality for Leaflet, a JS library for interactive maps.
+ * https://github.com/Leaflet/Leaflet.markercluster
+ * (c) 2012-2017, Dave Leaver, smartrak
+ */
+(function (global, factory) {
+ true ? factory(exports) : 0;
+})(this, function (exports) {
+ 'use strict';
+ /*
+ * L.MarkerClusterGroup extends L.FeatureGroup by clustering the markers contained within
+ */
+
+ var MarkerClusterGroup = L.MarkerClusterGroup = L.FeatureGroup.extend({
+ options: {
+ maxClusterRadius: 80,
+ //A cluster will cover at most this many pixels from its center
+ iconCreateFunction: null,
+ clusterPane: L.Marker.prototype.options.pane,
+ spiderfyOnEveryZoom: false,
+ spiderfyOnMaxZoom: true,
+ showCoverageOnHover: true,
+ zoomToBoundsOnClick: true,
+ singleMarkerMode: false,
+ disableClusteringAtZoom: null,
+ // Setting this to false prevents the removal of any clusters outside of the viewpoint, which
+ // is the default behaviour for performance reasons.
+ removeOutsideVisibleBounds: true,
+ // Set to false to disable all animations (zoom and spiderfy).
+ // If false, option animateAddingMarkers below has no effect.
+ // If L.DomUtil.TRANSITION is falsy, this option has no effect.
+ animate: true,
+ //Whether to animate adding markers after adding the MarkerClusterGroup to the map
+ // If you are adding individual markers set to true, if adding bulk markers leave false for massive performance gains.
+ animateAddingMarkers: false,
+ // Make it possible to provide custom function to calculate spiderfy shape positions
+ spiderfyShapePositions: null,
+ //Increase to increase the distance away that spiderfied markers appear from the center
+ spiderfyDistanceMultiplier: 1,
+ // Make it possible to specify a polyline options on a spider leg
+ spiderLegPolylineOptions: {
+ weight: 1.5,
+ color: '#222',
+ opacity: 0.5
+ },
+ // When bulk adding layers, adds markers in chunks. Means addLayers may not add all the layers in the call, others will be loaded during setTimeouts
+ chunkedLoading: false,
+ chunkInterval: 200,
+ // process markers for a maximum of ~ n milliseconds (then trigger the chunkProgress callback)
+ chunkDelay: 50,
+ // at the end of each interval, give n milliseconds back to system/browser
+ chunkProgress: null,
+ // progress callback: function(processed, total, elapsed) (e.g. for a progress indicator)
+ //Options to pass to the L.Polygon constructor
+ polygonOptions: {}
+ },
+ initialize: function initialize(options) {
+ L.Util.setOptions(this, options);
+
+ if (!this.options.iconCreateFunction) {
+ this.options.iconCreateFunction = this._defaultIconCreateFunction;
+ }
+
+ this._featureGroup = L.featureGroup();
+
+ this._featureGroup.addEventParent(this);
+
+ this._nonPointGroup = L.featureGroup();
+
+ this._nonPointGroup.addEventParent(this);
+
+ this._inZoomAnimation = 0;
+ this._needsClustering = [];
+ this._needsRemoving = []; //Markers removed while we aren't on the map need to be kept track of
+ //The bounds of the currently shown area (from _getExpandedVisibleBounds) Updated on zoom/move
+
+ this._currentShownBounds = null;
+ this._queue = [];
+ this._childMarkerEventHandlers = {
+ 'dragstart': this._childMarkerDragStart,
+ 'move': this._childMarkerMoved,
+ 'dragend': this._childMarkerDragEnd
+ }; // Hook the appropriate animation methods.
+
+ var animate = L.DomUtil.TRANSITION && this.options.animate;
+ L.extend(this, animate ? this._withAnimation : this._noAnimation); // Remember which MarkerCluster class to instantiate (animated or not).
+
+ this._markerCluster = animate ? L.MarkerCluster : L.MarkerClusterNonAnimated;
+ },
+ addLayer: function addLayer(layer) {
+ if (layer instanceof L.LayerGroup) {
+ return this.addLayers([layer]);
+ } //Don't cluster non point data
+
+
+ if (!layer.getLatLng) {
+ this._nonPointGroup.addLayer(layer);
+
+ this.fire('layeradd', {
+ layer: layer
+ });
+ return this;
+ }
+
+ if (!this._map) {
+ this._needsClustering.push(layer);
+
+ this.fire('layeradd', {
+ layer: layer
+ });
+ return this;
+ }
+
+ if (this.hasLayer(layer)) {
+ return this;
+ } //If we have already clustered we'll need to add this one to a cluster
+
+
+ if (this._unspiderfy) {
+ this._unspiderfy();
+ }
+
+ this._addLayer(layer, this._maxZoom);
+
+ this.fire('layeradd', {
+ layer: layer
+ }); // Refresh bounds and weighted positions.
+
+ this._topClusterLevel._recalculateBounds();
+
+ this._refreshClustersIcons(); //Work out what is visible
+
+
+ var visibleLayer = layer,
+ currentZoom = this._zoom;
+
+ if (layer.__parent) {
+ while (visibleLayer.__parent._zoom >= currentZoom) {
+ visibleLayer = visibleLayer.__parent;
+ }
+ }
+
+ if (this._currentShownBounds.contains(visibleLayer.getLatLng())) {
+ if (this.options.animateAddingMarkers) {
+ this._animationAddLayer(layer, visibleLayer);
+ } else {
+ this._animationAddLayerNonAnimated(layer, visibleLayer);
+ }
+ }
+
+ return this;
+ },
+ removeLayer: function removeLayer(layer) {
+ if (layer instanceof L.LayerGroup) {
+ return this.removeLayers([layer]);
+ } //Non point layers
+
+
+ if (!layer.getLatLng) {
+ this._nonPointGroup.removeLayer(layer);
+
+ this.fire('layerremove', {
+ layer: layer
+ });
+ return this;
+ }
+
+ if (!this._map) {
+ if (!this._arraySplice(this._needsClustering, layer) && this.hasLayer(layer)) {
+ this._needsRemoving.push({
+ layer: layer,
+ latlng: layer._latlng
+ });
+ }
+
+ this.fire('layerremove', {
+ layer: layer
+ });
+ return this;
+ }
+
+ if (!layer.__parent) {
+ return this;
+ }
+
+ if (this._unspiderfy) {
+ this._unspiderfy();
+
+ this._unspiderfyLayer(layer);
+ } //Remove the marker from clusters
+
+
+ this._removeLayer(layer, true);
+
+ this.fire('layerremove', {
+ layer: layer
+ }); // Refresh bounds and weighted positions.
+
+ this._topClusterLevel._recalculateBounds();
+
+ this._refreshClustersIcons();
+
+ layer.off(this._childMarkerEventHandlers, this);
+
+ if (this._featureGroup.hasLayer(layer)) {
+ this._featureGroup.removeLayer(layer);
+
+ if (layer.clusterShow) {
+ layer.clusterShow();
+ }
+ }
+
+ return this;
+ },
+ //Takes an array of markers and adds them in bulk
+ addLayers: function addLayers(layersArray, skipLayerAddEvent) {
+ if (!L.Util.isArray(layersArray)) {
+ return this.addLayer(layersArray);
+ }
+
+ var fg = this._featureGroup,
+ npg = this._nonPointGroup,
+ chunked = this.options.chunkedLoading,
+ chunkInterval = this.options.chunkInterval,
+ chunkProgress = this.options.chunkProgress,
+ l = layersArray.length,
+ offset = 0,
+ originalArray = true,
+ m;
+
+ if (this._map) {
+ var started = new Date().getTime();
+ var process = L.bind(function () {
+ var start = new Date().getTime(); // Make sure to unspiderfy before starting to add some layers
+
+ if (this._map && this._unspiderfy) {
+ this._unspiderfy();
+ }
+
+ for (; offset < l; offset++) {
+ if (chunked && offset % 200 === 0) {
+ // every couple hundred markers, instrument the time elapsed since processing started:
+ var elapsed = new Date().getTime() - start;
+
+ if (elapsed > chunkInterval) {
+ break; // been working too hard, time to take a break :-)
+ }
+ }
+
+ m = layersArray[offset]; // Group of layers, append children to layersArray and skip.
+ // Side effects:
+ // - Total increases, so chunkProgress ratio jumps backward.
+ // - Groups are not included in this group, only their non-group child layers (hasLayer).
+ // Changing array length while looping does not affect performance in current browsers:
+ // http://jsperf.com/for-loop-changing-length/6
+
+ if (m instanceof L.LayerGroup) {
+ if (originalArray) {
+ layersArray = layersArray.slice();
+ originalArray = false;
+ }
+
+ this._extractNonGroupLayers(m, layersArray);
+
+ l = layersArray.length;
+ continue;
+ } //Not point data, can't be clustered
+
+
+ if (!m.getLatLng) {
+ npg.addLayer(m);
+
+ if (!skipLayerAddEvent) {
+ this.fire('layeradd', {
+ layer: m
+ });
+ }
+
+ continue;
+ }
+
+ if (this.hasLayer(m)) {
+ continue;
+ }
+
+ this._addLayer(m, this._maxZoom);
+
+ if (!skipLayerAddEvent) {
+ this.fire('layeradd', {
+ layer: m
+ });
+ } //If we just made a cluster of size 2 then we need to remove the other marker from the map (if it is) or we never will
+
+
+ if (m.__parent) {
+ if (m.__parent.getChildCount() === 2) {
+ var markers = m.__parent.getAllChildMarkers(),
+ otherMarker = markers[0] === m ? markers[1] : markers[0];
+
+ fg.removeLayer(otherMarker);
+ }
+ }
+ }
+
+ if (chunkProgress) {
+ // report progress and time elapsed:
+ chunkProgress(offset, l, new Date().getTime() - started);
+ } // Completed processing all markers.
+
+
+ if (offset === l) {
+ // Refresh bounds and weighted positions.
+ this._topClusterLevel._recalculateBounds();
+
+ this._refreshClustersIcons();
+
+ this._topClusterLevel._recursivelyAddChildrenToMap(null, this._zoom, this._currentShownBounds);
+ } else {
+ setTimeout(process, this.options.chunkDelay);
+ }
+ }, this);
+ process();
+ } else {
+ var needsClustering = this._needsClustering;
+
+ for (; offset < l; offset++) {
+ m = layersArray[offset]; // Group of layers, append children to layersArray and skip.
+
+ if (m instanceof L.LayerGroup) {
+ if (originalArray) {
+ layersArray = layersArray.slice();
+ originalArray = false;
+ }
+
+ this._extractNonGroupLayers(m, layersArray);
+
+ l = layersArray.length;
+ continue;
+ } //Not point data, can't be clustered
+
+
+ if (!m.getLatLng) {
+ npg.addLayer(m);
+ continue;
+ }
+
+ if (this.hasLayer(m)) {
+ continue;
+ }
+
+ needsClustering.push(m);
+ }
+ }
+
+ return this;
+ },
+ //Takes an array of markers and removes them in bulk
+ removeLayers: function removeLayers(layersArray) {
+ var i,
+ m,
+ l = layersArray.length,
+ fg = this._featureGroup,
+ npg = this._nonPointGroup,
+ originalArray = true;
+
+ if (!this._map) {
+ for (i = 0; i < l; i++) {
+ m = layersArray[i]; // Group of layers, append children to layersArray and skip.
+
+ if (m instanceof L.LayerGroup) {
+ if (originalArray) {
+ layersArray = layersArray.slice();
+ originalArray = false;
+ }
+
+ this._extractNonGroupLayers(m, layersArray);
+
+ l = layersArray.length;
+ continue;
+ }
+
+ this._arraySplice(this._needsClustering, m);
+
+ npg.removeLayer(m);
+
+ if (this.hasLayer(m)) {
+ this._needsRemoving.push({
+ layer: m,
+ latlng: m._latlng
+ });
+ }
+
+ this.fire('layerremove', {
+ layer: m
+ });
+ }
+
+ return this;
+ }
+
+ if (this._unspiderfy) {
+ this._unspiderfy(); // Work on a copy of the array, so that next loop is not affected.
+
+
+ var layersArray2 = layersArray.slice(),
+ l2 = l;
+
+ for (i = 0; i < l2; i++) {
+ m = layersArray2[i]; // Group of layers, append children to layersArray and skip.
+
+ if (m instanceof L.LayerGroup) {
+ this._extractNonGroupLayers(m, layersArray2);
+
+ l2 = layersArray2.length;
+ continue;
+ }
+
+ this._unspiderfyLayer(m);
+ }
+ }
+
+ for (i = 0; i < l; i++) {
+ m = layersArray[i]; // Group of layers, append children to layersArray and skip.
+
+ if (m instanceof L.LayerGroup) {
+ if (originalArray) {
+ layersArray = layersArray.slice();
+ originalArray = false;
+ }
+
+ this._extractNonGroupLayers(m, layersArray);
+
+ l = layersArray.length;
+ continue;
+ }
+
+ if (!m.__parent) {
+ npg.removeLayer(m);
+ this.fire('layerremove', {
+ layer: m
+ });
+ continue;
+ }
+
+ this._removeLayer(m, true, true);
+
+ this.fire('layerremove', {
+ layer: m
+ });
+
+ if (fg.hasLayer(m)) {
+ fg.removeLayer(m);
+
+ if (m.clusterShow) {
+ m.clusterShow();
+ }
+ }
+ } // Refresh bounds and weighted positions.
+
+
+ this._topClusterLevel._recalculateBounds();
+
+ this._refreshClustersIcons(); //Fix up the clusters and markers on the map
+
+
+ this._topClusterLevel._recursivelyAddChildrenToMap(null, this._zoom, this._currentShownBounds);
+
+ return this;
+ },
+ //Removes all layers from the MarkerClusterGroup
+ clearLayers: function clearLayers() {
+ //Need our own special implementation as the LayerGroup one doesn't work for us
+ //If we aren't on the map (yet), blow away the markers we know of
+ if (!this._map) {
+ this._needsClustering = [];
+ this._needsRemoving = [];
+ delete this._gridClusters;
+ delete this._gridUnclustered;
+ }
+
+ if (this._noanimationUnspiderfy) {
+ this._noanimationUnspiderfy();
+ } //Remove all the visible layers
+
+
+ this._featureGroup.clearLayers();
+
+ this._nonPointGroup.clearLayers();
+
+ this.eachLayer(function (marker) {
+ marker.off(this._childMarkerEventHandlers, this);
+ delete marker.__parent;
+ }, this);
+
+ if (this._map) {
+ //Reset _topClusterLevel and the DistanceGrids
+ this._generateInitialClusters();
+ }
+
+ return this;
+ },
+ //Override FeatureGroup.getBounds as it doesn't work
+ getBounds: function getBounds() {
+ var bounds = new L.LatLngBounds();
+
+ if (this._topClusterLevel) {
+ bounds.extend(this._topClusterLevel._bounds);
+ }
+
+ for (var i = this._needsClustering.length - 1; i >= 0; i--) {
+ bounds.extend(this._needsClustering[i].getLatLng());
+ }
+
+ bounds.extend(this._nonPointGroup.getBounds());
+ return bounds;
+ },
+ //Overrides LayerGroup.eachLayer
+ eachLayer: function eachLayer(method, context) {
+ var markers = this._needsClustering.slice(),
+ needsRemoving = this._needsRemoving,
+ thisNeedsRemoving,
+ i,
+ j;
+
+ if (this._topClusterLevel) {
+ this._topClusterLevel.getAllChildMarkers(markers);
+ }
+
+ for (i = markers.length - 1; i >= 0; i--) {
+ thisNeedsRemoving = true;
+
+ for (j = needsRemoving.length - 1; j >= 0; j--) {
+ if (needsRemoving[j].layer === markers[i]) {
+ thisNeedsRemoving = false;
+ break;
+ }
+ }
+
+ if (thisNeedsRemoving) {
+ method.call(context, markers[i]);
+ }
+ }
+
+ this._nonPointGroup.eachLayer(method, context);
+ },
+ //Overrides LayerGroup.getLayers
+ getLayers: function getLayers() {
+ var layers = [];
+ this.eachLayer(function (l) {
+ layers.push(l);
+ });
+ return layers;
+ },
+ //Overrides LayerGroup.getLayer, WARNING: Really bad performance
+ getLayer: function getLayer(id) {
+ var result = null;
+ id = parseInt(id, 10);
+ this.eachLayer(function (l) {
+ if (L.stamp(l) === id) {
+ result = l;
+ }
+ });
+ return result;
+ },
+ //Returns true if the given layer is in this MarkerClusterGroup
+ hasLayer: function hasLayer(layer) {
+ if (!layer) {
+ return false;
+ }
+
+ var i,
+ anArray = this._needsClustering;
+
+ for (i = anArray.length - 1; i >= 0; i--) {
+ if (anArray[i] === layer) {
+ return true;
+ }
+ }
+
+ anArray = this._needsRemoving;
+
+ for (i = anArray.length - 1; i >= 0; i--) {
+ if (anArray[i].layer === layer) {
+ return false;
+ }
+ }
+
+ return !!(layer.__parent && layer.__parent._group === this) || this._nonPointGroup.hasLayer(layer);
+ },
+ //Zoom down to show the given layer (spiderfying if necessary) then calls the callback
+ zoomToShowLayer: function zoomToShowLayer(layer, callback) {
+ var map = this._map;
+
+ if (typeof callback !== 'function') {
+ callback = function callback() {};
+ }
+
+ var showMarker = function showMarker() {
+ // Assumes that map.hasLayer checks for direct appearance on map, not recursively calling
+ // hasLayer on Layer Groups that are on map (typically not calling this MarkerClusterGroup.hasLayer, which would always return true)
+ if ((map.hasLayer(layer) || map.hasLayer(layer.__parent)) && !this._inZoomAnimation) {
+ this._map.off('moveend', showMarker, this);
+
+ this.off('animationend', showMarker, this);
+
+ if (map.hasLayer(layer)) {
+ callback();
+ } else if (layer.__parent._icon) {
+ this.once('spiderfied', callback, this);
+
+ layer.__parent.spiderfy();
+ }
+ }
+ };
+
+ if (layer._icon && this._map.getBounds().contains(layer.getLatLng())) {
+ //Layer is visible ond on screen, immediate return
+ callback();
+ } else if (layer.__parent._zoom < Math.round(this._map._zoom)) {
+ //Layer should be visible at this zoom level. It must not be on screen so just pan over to it
+ this._map.on('moveend', showMarker, this);
+
+ this._map.panTo(layer.getLatLng());
+ } else {
+ this._map.on('moveend', showMarker, this);
+
+ this.on('animationend', showMarker, this);
+
+ layer.__parent.zoomToBounds();
+ }
+ },
+ //Overrides FeatureGroup.onAdd
+ onAdd: function onAdd(map) {
+ this._map = map;
+ var i, l, layer;
+
+ if (!isFinite(this._map.getMaxZoom())) {
+ throw "Map has no maxZoom specified";
+ }
+
+ this._featureGroup.addTo(map);
+
+ this._nonPointGroup.addTo(map);
+
+ if (!this._gridClusters) {
+ this._generateInitialClusters();
+ }
+
+ this._maxLat = map.options.crs.projection.MAX_LATITUDE; //Restore all the positions as they are in the MCG before removing them
+
+ for (i = 0, l = this._needsRemoving.length; i < l; i++) {
+ layer = this._needsRemoving[i];
+ layer.newlatlng = layer.layer._latlng;
+ layer.layer._latlng = layer.latlng;
+ } //Remove them, then restore their new positions
+
+
+ for (i = 0, l = this._needsRemoving.length; i < l; i++) {
+ layer = this._needsRemoving[i];
+
+ this._removeLayer(layer.layer, true);
+
+ layer.layer._latlng = layer.newlatlng;
+ }
+
+ this._needsRemoving = []; //Remember the current zoom level and bounds
+
+ this._zoom = Math.round(this._map._zoom);
+ this._currentShownBounds = this._getExpandedVisibleBounds();
+
+ this._map.on('zoomend', this._zoomEnd, this);
+
+ this._map.on('moveend', this._moveEnd, this);
+
+ if (this._spiderfierOnAdd) {
+ //TODO FIXME: Not sure how to have spiderfier add something on here nicely
+ this._spiderfierOnAdd();
+ }
+
+ this._bindEvents(); //Actually add our markers to the map:
+
+
+ l = this._needsClustering;
+ this._needsClustering = [];
+ this.addLayers(l, true);
+ },
+ //Overrides FeatureGroup.onRemove
+ onRemove: function onRemove(map) {
+ map.off('zoomend', this._zoomEnd, this);
+ map.off('moveend', this._moveEnd, this);
+
+ this._unbindEvents(); //In case we are in a cluster animation
+
+
+ this._map._mapPane.className = this._map._mapPane.className.replace(' leaflet-cluster-anim', '');
+
+ if (this._spiderfierOnRemove) {
+ //TODO FIXME: Not sure how to have spiderfier add something on here nicely
+ this._spiderfierOnRemove();
+ }
+
+ delete this._maxLat; //Clean up all the layers we added to the map
+
+ this._hideCoverage();
+
+ this._featureGroup.remove();
+
+ this._nonPointGroup.remove();
+
+ this._featureGroup.clearLayers();
+
+ this._map = null;
+ },
+ getVisibleParent: function getVisibleParent(marker) {
+ var vMarker = marker;
+
+ while (vMarker && !vMarker._icon) {
+ vMarker = vMarker.__parent;
+ }
+
+ return vMarker || null;
+ },
+ //Remove the given object from the given array
+ _arraySplice: function _arraySplice(anArray, obj) {
+ for (var i = anArray.length - 1; i >= 0; i--) {
+ if (anArray[i] === obj) {
+ anArray.splice(i, 1);
+ return true;
+ }
+ }
+ },
+
+ /**
+ * Removes a marker from all _gridUnclustered zoom levels, starting at the supplied zoom.
+ * @param marker to be removed from _gridUnclustered.
+ * @param z integer bottom start zoom level (included)
+ * @private
+ */
+ _removeFromGridUnclustered: function _removeFromGridUnclustered(marker, z) {
+ var map = this._map,
+ gridUnclustered = this._gridUnclustered,
+ minZoom = Math.floor(this._map.getMinZoom());
+
+ for (; z >= minZoom; z--) {
+ if (!gridUnclustered[z].removeObject(marker, map.project(marker.getLatLng(), z))) {
+ break;
+ }
+ }
+ },
+ _childMarkerDragStart: function _childMarkerDragStart(e) {
+ e.target.__dragStart = e.target._latlng;
+ },
+ _childMarkerMoved: function _childMarkerMoved(e) {
+ if (!this._ignoreMove && !e.target.__dragStart) {
+ var isPopupOpen = e.target._popup && e.target._popup.isOpen();
+
+ this._moveChild(e.target, e.oldLatLng, e.latlng);
+
+ if (isPopupOpen) {
+ e.target.openPopup();
+ }
+ }
+ },
+ _moveChild: function _moveChild(layer, from, to) {
+ layer._latlng = from;
+ this.removeLayer(layer);
+ layer._latlng = to;
+ this.addLayer(layer);
+ },
+ _childMarkerDragEnd: function _childMarkerDragEnd(e) {
+ var dragStart = e.target.__dragStart;
+ delete e.target.__dragStart;
+
+ if (dragStart) {
+ this._moveChild(e.target, dragStart, e.target._latlng);
+ }
+ },
+ //Internal function for removing a marker from everything.
+ //dontUpdateMap: set to true if you will handle updating the map manually (for bulk functions)
+ _removeLayer: function _removeLayer(marker, removeFromDistanceGrid, dontUpdateMap) {
+ var gridClusters = this._gridClusters,
+ gridUnclustered = this._gridUnclustered,
+ fg = this._featureGroup,
+ map = this._map,
+ minZoom = Math.floor(this._map.getMinZoom()); //Remove the marker from distance clusters it might be in
+
+ if (removeFromDistanceGrid) {
+ this._removeFromGridUnclustered(marker, this._maxZoom);
+ } //Work our way up the clusters removing them as we go if required
+
+
+ var cluster = marker.__parent,
+ markers = cluster._markers,
+ otherMarker; //Remove the marker from the immediate parents marker list
+
+ this._arraySplice(markers, marker);
+
+ while (cluster) {
+ cluster._childCount--;
+ cluster._boundsNeedUpdate = true;
+
+ if (cluster._zoom < minZoom) {
+ //Top level, do nothing
+ break;
+ } else if (removeFromDistanceGrid && cluster._childCount <= 1) {
+ //Cluster no longer required
+ //We need to push the other marker up to the parent
+ otherMarker = cluster._markers[0] === marker ? cluster._markers[1] : cluster._markers[0]; //Update distance grid
+
+ gridClusters[cluster._zoom].removeObject(cluster, map.project(cluster._cLatLng, cluster._zoom));
+
+ gridUnclustered[cluster._zoom].addObject(otherMarker, map.project(otherMarker.getLatLng(), cluster._zoom)); //Move otherMarker up to parent
+
+
+ this._arraySplice(cluster.__parent._childClusters, cluster);
+
+ cluster.__parent._markers.push(otherMarker);
+
+ otherMarker.__parent = cluster.__parent;
+
+ if (cluster._icon) {
+ //Cluster is currently on the map, need to put the marker on the map instead
+ fg.removeLayer(cluster);
+
+ if (!dontUpdateMap) {
+ fg.addLayer(otherMarker);
+ }
+ }
+ } else {
+ cluster._iconNeedsUpdate = true;
+ }
+
+ cluster = cluster.__parent;
+ }
+
+ delete marker.__parent;
+ },
+ _isOrIsParent: function _isOrIsParent(el, oel) {
+ while (oel) {
+ if (el === oel) {
+ return true;
+ }
+
+ oel = oel.parentNode;
+ }
+
+ return false;
+ },
+ //Override L.Evented.fire
+ fire: function fire(type, data, propagate) {
+ if (data && data.layer instanceof L.MarkerCluster) {
+ //Prevent multiple clustermouseover/off events if the icon is made up of stacked divs (Doesn't work in ie <= 8, no relatedTarget)
+ if (data.originalEvent && this._isOrIsParent(data.layer._icon, data.originalEvent.relatedTarget)) {
+ return;
+ }
+
+ type = 'cluster' + type;
+ }
+
+ L.FeatureGroup.prototype.fire.call(this, type, data, propagate);
+ },
+ //Override L.Evented.listens
+ listens: function listens(type, propagate) {
+ return L.FeatureGroup.prototype.listens.call(this, type, propagate) || L.FeatureGroup.prototype.listens.call(this, 'cluster' + type, propagate);
+ },
+ //Default functionality
+ _defaultIconCreateFunction: function _defaultIconCreateFunction(cluster) {
+ var childCount = cluster.getChildCount();
+ var c = ' marker-cluster-';
+
+ if (childCount < 10) {
+ c += 'small';
+ } else if (childCount < 100) {
+ c += 'medium';
+ } else {
+ c += 'large';
+ }
+
+ return new L.DivIcon({
+ html: '' + childCount + '
',
+ className: 'marker-cluster' + c,
+ iconSize: new L.Point(40, 40)
+ });
+ },
+ _bindEvents: function _bindEvents() {
+ var map = this._map,
+ spiderfyOnMaxZoom = this.options.spiderfyOnMaxZoom,
+ showCoverageOnHover = this.options.showCoverageOnHover,
+ zoomToBoundsOnClick = this.options.zoomToBoundsOnClick,
+ spiderfyOnEveryZoom = this.options.spiderfyOnEveryZoom; //Zoom on cluster click or spiderfy if we are at the lowest level
+
+ if (spiderfyOnMaxZoom || zoomToBoundsOnClick || spiderfyOnEveryZoom) {
+ this.on('clusterclick clusterkeypress', this._zoomOrSpiderfy, this);
+ } //Show convex hull (boundary) polygon on mouse over
+
+
+ if (showCoverageOnHover) {
+ this.on('clustermouseover', this._showCoverage, this);
+ this.on('clustermouseout', this._hideCoverage, this);
+ map.on('zoomend', this._hideCoverage, this);
+ }
+ },
+ _zoomOrSpiderfy: function _zoomOrSpiderfy(e) {
+ var cluster = e.layer,
+ bottomCluster = cluster;
+
+ if (e.type === 'clusterkeypress' && e.originalEvent && e.originalEvent.keyCode !== 13) {
+ return;
+ }
+
+ while (bottomCluster._childClusters.length === 1) {
+ bottomCluster = bottomCluster._childClusters[0];
+ }
+
+ if (bottomCluster._zoom === this._maxZoom && bottomCluster._childCount === cluster._childCount && this.options.spiderfyOnMaxZoom) {
+ // All child markers are contained in a single cluster from this._maxZoom to this cluster.
+ cluster.spiderfy();
+ } else if (this.options.zoomToBoundsOnClick) {
+ cluster.zoomToBounds();
+ }
+
+ if (this.options.spiderfyOnEveryZoom) {
+ cluster.spiderfy();
+ } // Focus the map again for keyboard users.
+
+
+ if (e.originalEvent && e.originalEvent.keyCode === 13) {
+ this._map._container.focus();
+ }
+ },
+ _showCoverage: function _showCoverage(e) {
+ var map = this._map;
+
+ if (this._inZoomAnimation) {
+ return;
+ }
+
+ if (this._shownPolygon) {
+ map.removeLayer(this._shownPolygon);
+ }
+
+ if (e.layer.getChildCount() > 2 && e.layer !== this._spiderfied) {
+ this._shownPolygon = new L.Polygon(e.layer.getConvexHull(), this.options.polygonOptions);
+ map.addLayer(this._shownPolygon);
+ }
+ },
+ _hideCoverage: function _hideCoverage() {
+ if (this._shownPolygon) {
+ this._map.removeLayer(this._shownPolygon);
+
+ this._shownPolygon = null;
+ }
+ },
+ _unbindEvents: function _unbindEvents() {
+ var spiderfyOnMaxZoom = this.options.spiderfyOnMaxZoom,
+ showCoverageOnHover = this.options.showCoverageOnHover,
+ zoomToBoundsOnClick = this.options.zoomToBoundsOnClick,
+ spiderfyOnEveryZoom = this.options.spiderfyOnEveryZoom,
+ map = this._map;
+
+ if (spiderfyOnMaxZoom || zoomToBoundsOnClick || spiderfyOnEveryZoom) {
+ this.off('clusterclick clusterkeypress', this._zoomOrSpiderfy, this);
+ }
+
+ if (showCoverageOnHover) {
+ this.off('clustermouseover', this._showCoverage, this);
+ this.off('clustermouseout', this._hideCoverage, this);
+ map.off('zoomend', this._hideCoverage, this);
+ }
+ },
+ _zoomEnd: function _zoomEnd() {
+ if (!this._map) {
+ //May have been removed from the map by a zoomEnd handler
+ return;
+ }
+
+ this._mergeSplitClusters();
+
+ this._zoom = Math.round(this._map._zoom);
+ this._currentShownBounds = this._getExpandedVisibleBounds();
+ },
+ _moveEnd: function _moveEnd() {
+ if (this._inZoomAnimation) {
+ return;
+ }
+
+ var newBounds = this._getExpandedVisibleBounds();
+
+ this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), this._zoom, newBounds);
+
+ this._topClusterLevel._recursivelyAddChildrenToMap(null, Math.round(this._map._zoom), newBounds);
+
+ this._currentShownBounds = newBounds;
+ return;
+ },
+ _generateInitialClusters: function _generateInitialClusters() {
+ var maxZoom = Math.ceil(this._map.getMaxZoom()),
+ minZoom = Math.floor(this._map.getMinZoom()),
+ radius = this.options.maxClusterRadius,
+ radiusFn = radius; //If we just set maxClusterRadius to a single number, we need to create
+ //a simple function to return that number. Otherwise, we just have to
+ //use the function we've passed in.
+
+ if (typeof radius !== "function") {
+ radiusFn = function radiusFn() {
+ return radius;
+ };
+ }
+
+ if (this.options.disableClusteringAtZoom !== null) {
+ maxZoom = this.options.disableClusteringAtZoom - 1;
+ }
+
+ this._maxZoom = maxZoom;
+ this._gridClusters = {};
+ this._gridUnclustered = {}; //Set up DistanceGrids for each zoom
+
+ for (var zoom = maxZoom; zoom >= minZoom; zoom--) {
+ this._gridClusters[zoom] = new L.DistanceGrid(radiusFn(zoom));
+ this._gridUnclustered[zoom] = new L.DistanceGrid(radiusFn(zoom));
+ } // Instantiate the appropriate L.MarkerCluster class (animated or not).
+
+
+ this._topClusterLevel = new this._markerCluster(this, minZoom - 1);
+ },
+ //Zoom: Zoom to start adding at (Pass this._maxZoom to start at the bottom)
+ _addLayer: function _addLayer(layer, zoom) {
+ var gridClusters = this._gridClusters,
+ gridUnclustered = this._gridUnclustered,
+ minZoom = Math.floor(this._map.getMinZoom()),
+ markerPoint,
+ z;
+
+ if (this.options.singleMarkerMode) {
+ this._overrideMarkerIcon(layer);
+ }
+
+ layer.on(this._childMarkerEventHandlers, this); //Find the lowest zoom level to slot this one in
+
+ for (; zoom >= minZoom; zoom--) {
+ markerPoint = this._map.project(layer.getLatLng(), zoom); // calculate pixel position
+ //Try find a cluster close by
+
+ var closest = gridClusters[zoom].getNearObject(markerPoint);
+
+ if (closest) {
+ closest._addChild(layer);
+
+ layer.__parent = closest;
+ return;
+ } //Try find a marker close by to form a new cluster with
+
+
+ closest = gridUnclustered[zoom].getNearObject(markerPoint);
+
+ if (closest) {
+ var parent = closest.__parent;
+
+ if (parent) {
+ this._removeLayer(closest, false);
+ } //Create new cluster with these 2 in it
+
+
+ var newCluster = new this._markerCluster(this, zoom, closest, layer);
+ gridClusters[zoom].addObject(newCluster, this._map.project(newCluster._cLatLng, zoom));
+ closest.__parent = newCluster;
+ layer.__parent = newCluster; //First create any new intermediate parent clusters that don't exist
+
+ var lastParent = newCluster;
+
+ for (z = zoom - 1; z > parent._zoom; z--) {
+ lastParent = new this._markerCluster(this, z, lastParent);
+ gridClusters[z].addObject(lastParent, this._map.project(closest.getLatLng(), z));
+ }
+
+ parent._addChild(lastParent); //Remove closest from this zoom level and any above that it is in, replace with newCluster
+
+
+ this._removeFromGridUnclustered(closest, zoom);
+
+ return;
+ } //Didn't manage to cluster in at this zoom, record us as a marker here and continue upwards
+
+
+ gridUnclustered[zoom].addObject(layer, markerPoint);
+ } //Didn't get in anything, add us to the top
+
+
+ this._topClusterLevel._addChild(layer);
+
+ layer.__parent = this._topClusterLevel;
+ return;
+ },
+
+ /**
+ * Refreshes the icon of all "dirty" visible clusters.
+ * Non-visible "dirty" clusters will be updated when they are added to the map.
+ * @private
+ */
+ _refreshClustersIcons: function _refreshClustersIcons() {
+ this._featureGroup.eachLayer(function (c) {
+ if (c instanceof L.MarkerCluster && c._iconNeedsUpdate) {
+ c._updateIcon();
+ }
+ });
+ },
+ //Enqueue code to fire after the marker expand/contract has happened
+ _enqueue: function _enqueue(fn) {
+ this._queue.push(fn);
+
+ if (!this._queueTimeout) {
+ this._queueTimeout = setTimeout(L.bind(this._processQueue, this), 300);
+ }
+ },
+ _processQueue: function _processQueue() {
+ for (var i = 0; i < this._queue.length; i++) {
+ this._queue[i].call(this);
+ }
+
+ this._queue.length = 0;
+ clearTimeout(this._queueTimeout);
+ this._queueTimeout = null;
+ },
+ //Merge and split any existing clusters that are too big or small
+ _mergeSplitClusters: function _mergeSplitClusters() {
+ var mapZoom = Math.round(this._map._zoom); //In case we are starting to split before the animation finished
+
+ this._processQueue();
+
+ if (this._zoom < mapZoom && this._currentShownBounds.intersects(this._getExpandedVisibleBounds())) {
+ //Zoom in, split
+ this._animationStart(); //Remove clusters now off screen
+
+
+ this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), this._zoom, this._getExpandedVisibleBounds());
+
+ this._animationZoomIn(this._zoom, mapZoom);
+ } else if (this._zoom > mapZoom) {
+ //Zoom out, merge
+ this._animationStart();
+
+ this._animationZoomOut(this._zoom, mapZoom);
+ } else {
+ this._moveEnd();
+ }
+ },
+ //Gets the maps visible bounds expanded in each direction by the size of the screen (so the user cannot see an area we do not cover in one pan)
+ _getExpandedVisibleBounds: function _getExpandedVisibleBounds() {
+ if (!this.options.removeOutsideVisibleBounds) {
+ return this._mapBoundsInfinite;
+ } else if (L.Browser.mobile) {
+ return this._checkBoundsMaxLat(this._map.getBounds());
+ }
+
+ return this._checkBoundsMaxLat(this._map.getBounds().pad(1)); // Padding expands the bounds by its own dimensions but scaled with the given factor.
+ },
+
+ /**
+ * Expands the latitude to Infinity (or -Infinity) if the input bounds reach the map projection maximum defined latitude
+ * (in the case of Web/Spherical Mercator, it is 85.0511287798 / see https://en.wikipedia.org/wiki/Web_Mercator#Formulas).
+ * Otherwise, the removeOutsideVisibleBounds option will remove markers beyond that limit, whereas the same markers without
+ * this option (or outside MCG) will have their position floored (ceiled) by the projection and rendered at that limit,
+ * making the user think that MCG "eats" them and never displays them again.
+ * @param bounds L.LatLngBounds
+ * @returns {L.LatLngBounds}
+ * @private
+ */
+ _checkBoundsMaxLat: function _checkBoundsMaxLat(bounds) {
+ var maxLat = this._maxLat;
+
+ if (maxLat !== undefined) {
+ if (bounds.getNorth() >= maxLat) {
+ bounds._northEast.lat = Infinity;
+ }
+
+ if (bounds.getSouth() <= -maxLat) {
+ bounds._southWest.lat = -Infinity;
+ }
+ }
+
+ return bounds;
+ },
+ //Shared animation code
+ _animationAddLayerNonAnimated: function _animationAddLayerNonAnimated(layer, newCluster) {
+ if (newCluster === layer) {
+ this._featureGroup.addLayer(layer);
+ } else if (newCluster._childCount === 2) {
+ newCluster._addToMap();
+
+ var markers = newCluster.getAllChildMarkers();
+
+ this._featureGroup.removeLayer(markers[0]);
+
+ this._featureGroup.removeLayer(markers[1]);
+ } else {
+ newCluster._updateIcon();
+ }
+ },
+
+ /**
+ * Extracts individual (i.e. non-group) layers from a Layer Group.
+ * @param group to extract layers from.
+ * @param output {Array} in which to store the extracted layers.
+ * @returns {*|Array}
+ * @private
+ */
+ _extractNonGroupLayers: function _extractNonGroupLayers(group, output) {
+ var layers = group.getLayers(),
+ i = 0,
+ layer;
+ output = output || [];
+
+ for (; i < layers.length; i++) {
+ layer = layers[i];
+
+ if (layer instanceof L.LayerGroup) {
+ this._extractNonGroupLayers(layer, output);
+
+ continue;
+ }
+
+ output.push(layer);
+ }
+
+ return output;
+ },
+
+ /**
+ * Implements the singleMarkerMode option.
+ * @param layer Marker to re-style using the Clusters iconCreateFunction.
+ * @returns {L.Icon} The newly created icon.
+ * @private
+ */
+ _overrideMarkerIcon: function _overrideMarkerIcon(layer) {
+ var icon = layer.options.icon = this.options.iconCreateFunction({
+ getChildCount: function getChildCount() {
+ return 1;
+ },
+ getAllChildMarkers: function getAllChildMarkers() {
+ return [layer];
+ }
+ });
+ return icon;
+ }
+ }); // Constant bounds used in case option "removeOutsideVisibleBounds" is set to false.
+
+ L.MarkerClusterGroup.include({
+ _mapBoundsInfinite: new L.LatLngBounds(new L.LatLng(-Infinity, -Infinity), new L.LatLng(Infinity, Infinity))
+ });
+ L.MarkerClusterGroup.include({
+ _noAnimation: {
+ //Non Animated versions of everything
+ _animationStart: function _animationStart() {//Do nothing...
+ },
+ _animationZoomIn: function _animationZoomIn(previousZoomLevel, newZoomLevel) {
+ this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), previousZoomLevel);
+
+ this._topClusterLevel._recursivelyAddChildrenToMap(null, newZoomLevel, this._getExpandedVisibleBounds()); //We didn't actually animate, but we use this event to mean "clustering animations have finished"
+
+
+ this.fire('animationend');
+ },
+ _animationZoomOut: function _animationZoomOut(previousZoomLevel, newZoomLevel) {
+ this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), previousZoomLevel);
+
+ this._topClusterLevel._recursivelyAddChildrenToMap(null, newZoomLevel, this._getExpandedVisibleBounds()); //We didn't actually animate, but we use this event to mean "clustering animations have finished"
+
+
+ this.fire('animationend');
+ },
+ _animationAddLayer: function _animationAddLayer(layer, newCluster) {
+ this._animationAddLayerNonAnimated(layer, newCluster);
+ }
+ },
+ _withAnimation: {
+ //Animated versions here
+ _animationStart: function _animationStart() {
+ this._map._mapPane.className += ' leaflet-cluster-anim';
+ this._inZoomAnimation++;
+ },
+ _animationZoomIn: function _animationZoomIn(previousZoomLevel, newZoomLevel) {
+ var bounds = this._getExpandedVisibleBounds(),
+ fg = this._featureGroup,
+ minZoom = Math.floor(this._map.getMinZoom()),
+ i;
+
+ this._ignoreMove = true; //Add all children of current clusters to map and remove those clusters from map
+
+ this._topClusterLevel._recursively(bounds, previousZoomLevel, minZoom, function (c) {
+ var startPos = c._latlng,
+ markers = c._markers,
+ m;
+
+ if (!bounds.contains(startPos)) {
+ startPos = null;
+ }
+
+ if (c._isSingleParent() && previousZoomLevel + 1 === newZoomLevel) {
+ //Immediately add the new child and remove us
+ fg.removeLayer(c);
+
+ c._recursivelyAddChildrenToMap(null, newZoomLevel, bounds);
+ } else {
+ //Fade out old cluster
+ c.clusterHide();
+
+ c._recursivelyAddChildrenToMap(startPos, newZoomLevel, bounds);
+ } //Remove all markers that aren't visible any more
+ //TODO: Do we actually need to do this on the higher levels too?
+
+
+ for (i = markers.length - 1; i >= 0; i--) {
+ m = markers[i];
+
+ if (!bounds.contains(m._latlng)) {
+ fg.removeLayer(m);
+ }
+ }
+ });
+
+ this._forceLayout(); //Update opacities
+
+
+ this._topClusterLevel._recursivelyBecomeVisible(bounds, newZoomLevel); //TODO Maybe? Update markers in _recursivelyBecomeVisible
+
+
+ fg.eachLayer(function (n) {
+ if (!(n instanceof L.MarkerCluster) && n._icon) {
+ n.clusterShow();
+ }
+ }); //update the positions of the just added clusters/markers
+
+ this._topClusterLevel._recursively(bounds, previousZoomLevel, newZoomLevel, function (c) {
+ c._recursivelyRestoreChildPositions(newZoomLevel);
+ });
+
+ this._ignoreMove = false; //Remove the old clusters and close the zoom animation
+
+ this._enqueue(function () {
+ //update the positions of the just added clusters/markers
+ this._topClusterLevel._recursively(bounds, previousZoomLevel, minZoom, function (c) {
+ fg.removeLayer(c);
+ c.clusterShow();
+ });
+
+ this._animationEnd();
+ });
+ },
+ _animationZoomOut: function _animationZoomOut(previousZoomLevel, newZoomLevel) {
+ this._animationZoomOutSingle(this._topClusterLevel, previousZoomLevel - 1, newZoomLevel); //Need to add markers for those that weren't on the map before but are now
+
+
+ this._topClusterLevel._recursivelyAddChildrenToMap(null, newZoomLevel, this._getExpandedVisibleBounds()); //Remove markers that were on the map before but won't be now
+
+
+ this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), previousZoomLevel, this._getExpandedVisibleBounds());
+ },
+ _animationAddLayer: function _animationAddLayer(layer, newCluster) {
+ var me = this,
+ fg = this._featureGroup;
+ fg.addLayer(layer);
+
+ if (newCluster !== layer) {
+ if (newCluster._childCount > 2) {
+ //Was already a cluster
+ newCluster._updateIcon();
+
+ this._forceLayout();
+
+ this._animationStart();
+
+ layer._setPos(this._map.latLngToLayerPoint(newCluster.getLatLng()));
+
+ layer.clusterHide();
+
+ this._enqueue(function () {
+ fg.removeLayer(layer);
+ layer.clusterShow();
+
+ me._animationEnd();
+ });
+ } else {
+ //Just became a cluster
+ this._forceLayout();
+
+ me._animationStart();
+
+ me._animationZoomOutSingle(newCluster, this._map.getMaxZoom(), this._zoom);
+ }
+ }
+ }
+ },
+ // Private methods for animated versions.
+ _animationZoomOutSingle: function _animationZoomOutSingle(cluster, previousZoomLevel, newZoomLevel) {
+ var bounds = this._getExpandedVisibleBounds(),
+ minZoom = Math.floor(this._map.getMinZoom()); //Animate all of the markers in the clusters to move to their cluster center point
+
+
+ cluster._recursivelyAnimateChildrenInAndAddSelfToMap(bounds, minZoom, previousZoomLevel + 1, newZoomLevel);
+
+ var me = this; //Update the opacity (If we immediately set it they won't animate)
+
+ this._forceLayout();
+
+ cluster._recursivelyBecomeVisible(bounds, newZoomLevel); //TODO: Maybe use the transition timing stuff to make this more reliable
+ //When the animations are done, tidy up
+
+
+ this._enqueue(function () {
+ //This cluster stopped being a cluster before the timeout fired
+ if (cluster._childCount === 1) {
+ var m = cluster._markers[0]; //If we were in a cluster animation at the time then the opacity and position of our child could be wrong now, so fix it
+
+ this._ignoreMove = true;
+ m.setLatLng(m.getLatLng());
+ this._ignoreMove = false;
+
+ if (m.clusterShow) {
+ m.clusterShow();
+ }
+ } else {
+ cluster._recursively(bounds, newZoomLevel, minZoom, function (c) {
+ c._recursivelyRemoveChildrenFromMap(bounds, minZoom, previousZoomLevel + 1);
+ });
+ }
+
+ me._animationEnd();
+ });
+ },
+ _animationEnd: function _animationEnd() {
+ if (this._map) {
+ this._map._mapPane.className = this._map._mapPane.className.replace(' leaflet-cluster-anim', '');
+ }
+
+ this._inZoomAnimation--;
+ this.fire('animationend');
+ },
+ //Force a browser layout of stuff in the map
+ // Should apply the current opacity and location to all elements so we can update them again for an animation
+ _forceLayout: function _forceLayout() {
+ //In my testing this works, infact offsetWidth of any element seems to work.
+ //Could loop all this._layers and do this for each _icon if it stops working
+ L.Util.falseFn(document.body.offsetWidth);
+ }
+ });
+
+ L.markerClusterGroup = function (options) {
+ return new L.MarkerClusterGroup(options);
+ };
+
+ var MarkerCluster = L.MarkerCluster = L.Marker.extend({
+ options: L.Icon.prototype.options,
+ initialize: function initialize(group, zoom, a, b) {
+ L.Marker.prototype.initialize.call(this, a ? a._cLatLng || a.getLatLng() : new L.LatLng(0, 0), {
+ icon: this,
+ pane: group.options.clusterPane
+ });
+ this._group = group;
+ this._zoom = zoom;
+ this._markers = [];
+ this._childClusters = [];
+ this._childCount = 0;
+ this._iconNeedsUpdate = true;
+ this._boundsNeedUpdate = true;
+ this._bounds = new L.LatLngBounds();
+
+ if (a) {
+ this._addChild(a);
+ }
+
+ if (b) {
+ this._addChild(b);
+ }
+ },
+ //Recursively retrieve all child markers of this cluster
+ getAllChildMarkers: function getAllChildMarkers(storageArray, ignoreDraggedMarker) {
+ storageArray = storageArray || [];
+
+ for (var i = this._childClusters.length - 1; i >= 0; i--) {
+ this._childClusters[i].getAllChildMarkers(storageArray, ignoreDraggedMarker);
+ }
+
+ for (var j = this._markers.length - 1; j >= 0; j--) {
+ if (ignoreDraggedMarker && this._markers[j].__dragStart) {
+ continue;
+ }
+
+ storageArray.push(this._markers[j]);
+ }
+
+ return storageArray;
+ },
+ //Returns the count of how many child markers we have
+ getChildCount: function getChildCount() {
+ return this._childCount;
+ },
+ //Zoom to the minimum of showing all of the child markers, or the extents of this cluster
+ zoomToBounds: function zoomToBounds(fitBoundsOptions) {
+ var childClusters = this._childClusters.slice(),
+ map = this._group._map,
+ boundsZoom = map.getBoundsZoom(this._bounds),
+ zoom = this._zoom + 1,
+ mapZoom = map.getZoom(),
+ i; //calculate how far we need to zoom down to see all of the markers
+
+
+ while (childClusters.length > 0 && boundsZoom > zoom) {
+ zoom++;
+ var newClusters = [];
+
+ for (i = 0; i < childClusters.length; i++) {
+ newClusters = newClusters.concat(childClusters[i]._childClusters);
+ }
+
+ childClusters = newClusters;
+ }
+
+ if (boundsZoom > zoom) {
+ this._group._map.setView(this._latlng, zoom);
+ } else if (boundsZoom <= mapZoom) {
+ //If fitBounds wouldn't zoom us down, zoom us down instead
+ this._group._map.setView(this._latlng, mapZoom + 1);
+ } else {
+ this._group._map.fitBounds(this._bounds, fitBoundsOptions);
+ }
+ },
+ getBounds: function getBounds() {
+ var bounds = new L.LatLngBounds();
+ bounds.extend(this._bounds);
+ return bounds;
+ },
+ _updateIcon: function _updateIcon() {
+ this._iconNeedsUpdate = true;
+
+ if (this._icon) {
+ this.setIcon(this);
+ }
+ },
+ //Cludge for Icon, we pretend to be an icon for performance
+ createIcon: function createIcon() {
+ if (this._iconNeedsUpdate) {
+ this._iconObj = this._group.options.iconCreateFunction(this);
+ this._iconNeedsUpdate = false;
+ }
+
+ return this._iconObj.createIcon();
+ },
+ createShadow: function createShadow() {
+ return this._iconObj.createShadow();
+ },
+ _addChild: function _addChild(new1, isNotificationFromChild) {
+ this._iconNeedsUpdate = true;
+ this._boundsNeedUpdate = true;
+
+ this._setClusterCenter(new1);
+
+ if (new1 instanceof L.MarkerCluster) {
+ if (!isNotificationFromChild) {
+ this._childClusters.push(new1);
+
+ new1.__parent = this;
+ }
+
+ this._childCount += new1._childCount;
+ } else {
+ if (!isNotificationFromChild) {
+ this._markers.push(new1);
+ }
+
+ this._childCount++;
+ }
+
+ if (this.__parent) {
+ this.__parent._addChild(new1, true);
+ }
+ },
+
+ /**
+ * Makes sure the cluster center is set. If not, uses the child center if it is a cluster, or the marker position.
+ * @param child L.MarkerCluster|L.Marker that will be used as cluster center if not defined yet.
+ * @private
+ */
+ _setClusterCenter: function _setClusterCenter(child) {
+ if (!this._cLatLng) {
+ // when clustering, take position of the first point as the cluster center
+ this._cLatLng = child._cLatLng || child._latlng;
+ }
+ },
+
+ /**
+ * Assigns impossible bounding values so that the next extend entirely determines the new bounds.
+ * This method avoids having to trash the previous L.LatLngBounds object and to create a new one, which is much slower for this class.
+ * As long as the bounds are not extended, most other methods would probably fail, as they would with bounds initialized but not extended.
+ * @private
+ */
+ _resetBounds: function _resetBounds() {
+ var bounds = this._bounds;
+
+ if (bounds._southWest) {
+ bounds._southWest.lat = Infinity;
+ bounds._southWest.lng = Infinity;
+ }
+
+ if (bounds._northEast) {
+ bounds._northEast.lat = -Infinity;
+ bounds._northEast.lng = -Infinity;
+ }
+ },
+ _recalculateBounds: function _recalculateBounds() {
+ var markers = this._markers,
+ childClusters = this._childClusters,
+ latSum = 0,
+ lngSum = 0,
+ totalCount = this._childCount,
+ i,
+ child,
+ childLatLng,
+ childCount; // Case where all markers are removed from the map and we are left with just an empty _topClusterLevel.
+
+ if (totalCount === 0) {
+ return;
+ } // Reset rather than creating a new object, for performance.
+
+
+ this._resetBounds(); // Child markers.
+
+
+ for (i = 0; i < markers.length; i++) {
+ childLatLng = markers[i]._latlng;
+
+ this._bounds.extend(childLatLng);
+
+ latSum += childLatLng.lat;
+ lngSum += childLatLng.lng;
+ } // Child clusters.
+
+
+ for (i = 0; i < childClusters.length; i++) {
+ child = childClusters[i]; // Re-compute child bounds and weighted position first if necessary.
+
+ if (child._boundsNeedUpdate) {
+ child._recalculateBounds();
+ }
+
+ this._bounds.extend(child._bounds);
+
+ childLatLng = child._wLatLng;
+ childCount = child._childCount;
+ latSum += childLatLng.lat * childCount;
+ lngSum += childLatLng.lng * childCount;
+ }
+
+ this._latlng = this._wLatLng = new L.LatLng(latSum / totalCount, lngSum / totalCount); // Reset dirty flag.
+
+ this._boundsNeedUpdate = false;
+ },
+ //Set our markers position as given and add it to the map
+ _addToMap: function _addToMap(startPos) {
+ if (startPos) {
+ this._backupLatlng = this._latlng;
+ this.setLatLng(startPos);
+ }
+
+ this._group._featureGroup.addLayer(this);
+ },
+ _recursivelyAnimateChildrenIn: function _recursivelyAnimateChildrenIn(bounds, center, maxZoom) {
+ this._recursively(bounds, this._group._map.getMinZoom(), maxZoom - 1, function (c) {
+ var markers = c._markers,
+ i,
+ m;
+
+ for (i = markers.length - 1; i >= 0; i--) {
+ m = markers[i]; //Only do it if the icon is still on the map
+
+ if (m._icon) {
+ m._setPos(center);
+
+ m.clusterHide();
+ }
+ }
+ }, function (c) {
+ var childClusters = c._childClusters,
+ j,
+ cm;
+
+ for (j = childClusters.length - 1; j >= 0; j--) {
+ cm = childClusters[j];
+
+ if (cm._icon) {
+ cm._setPos(center);
+
+ cm.clusterHide();
+ }
+ }
+ });
+ },
+ _recursivelyAnimateChildrenInAndAddSelfToMap: function _recursivelyAnimateChildrenInAndAddSelfToMap(bounds, mapMinZoom, previousZoomLevel, newZoomLevel) {
+ this._recursively(bounds, newZoomLevel, mapMinZoom, function (c) {
+ c._recursivelyAnimateChildrenIn(bounds, c._group._map.latLngToLayerPoint(c.getLatLng()).round(), previousZoomLevel); //TODO: depthToAnimateIn affects _isSingleParent, if there is a multizoom we may/may not be.
+ //As a hack we only do a animation free zoom on a single level zoom, if someone does multiple levels then we always animate
+
+
+ if (c._isSingleParent() && previousZoomLevel - 1 === newZoomLevel) {
+ c.clusterShow();
+
+ c._recursivelyRemoveChildrenFromMap(bounds, mapMinZoom, previousZoomLevel); //Immediately remove our children as we are replacing them. TODO previousBounds not bounds
+
+ } else {
+ c.clusterHide();
+ }
+
+ c._addToMap();
+ });
+ },
+ _recursivelyBecomeVisible: function _recursivelyBecomeVisible(bounds, zoomLevel) {
+ this._recursively(bounds, this._group._map.getMinZoom(), zoomLevel, null, function (c) {
+ c.clusterShow();
+ });
+ },
+ _recursivelyAddChildrenToMap: function _recursivelyAddChildrenToMap(startPos, zoomLevel, bounds) {
+ this._recursively(bounds, this._group._map.getMinZoom() - 1, zoomLevel, function (c) {
+ if (zoomLevel === c._zoom) {
+ return;
+ } //Add our child markers at startPos (so they can be animated out)
+
+
+ for (var i = c._markers.length - 1; i >= 0; i--) {
+ var nm = c._markers[i];
+
+ if (!bounds.contains(nm._latlng)) {
+ continue;
+ }
+
+ if (startPos) {
+ nm._backupLatlng = nm.getLatLng();
+ nm.setLatLng(startPos);
+
+ if (nm.clusterHide) {
+ nm.clusterHide();
+ }
+ }
+
+ c._group._featureGroup.addLayer(nm);
+ }
+ }, function (c) {
+ c._addToMap(startPos);
+ });
+ },
+ _recursivelyRestoreChildPositions: function _recursivelyRestoreChildPositions(zoomLevel) {
+ //Fix positions of child markers
+ for (var i = this._markers.length - 1; i >= 0; i--) {
+ var nm = this._markers[i];
+
+ if (nm._backupLatlng) {
+ nm.setLatLng(nm._backupLatlng);
+ delete nm._backupLatlng;
+ }
+ }
+
+ if (zoomLevel - 1 === this._zoom) {
+ //Reposition child clusters
+ for (var j = this._childClusters.length - 1; j >= 0; j--) {
+ this._childClusters[j]._restorePosition();
+ }
+ } else {
+ for (var k = this._childClusters.length - 1; k >= 0; k--) {
+ this._childClusters[k]._recursivelyRestoreChildPositions(zoomLevel);
+ }
+ }
+ },
+ _restorePosition: function _restorePosition() {
+ if (this._backupLatlng) {
+ this.setLatLng(this._backupLatlng);
+ delete this._backupLatlng;
+ }
+ },
+ //exceptBounds: If set, don't remove any markers/clusters in it
+ _recursivelyRemoveChildrenFromMap: function _recursivelyRemoveChildrenFromMap(previousBounds, mapMinZoom, zoomLevel, exceptBounds) {
+ var m, i;
+
+ this._recursively(previousBounds, mapMinZoom - 1, zoomLevel - 1, function (c) {
+ //Remove markers at every level
+ for (i = c._markers.length - 1; i >= 0; i--) {
+ m = c._markers[i];
+
+ if (!exceptBounds || !exceptBounds.contains(m._latlng)) {
+ c._group._featureGroup.removeLayer(m);
+
+ if (m.clusterShow) {
+ m.clusterShow();
+ }
+ }
+ }
+ }, function (c) {
+ //Remove child clusters at just the bottom level
+ for (i = c._childClusters.length - 1; i >= 0; i--) {
+ m = c._childClusters[i];
+
+ if (!exceptBounds || !exceptBounds.contains(m._latlng)) {
+ c._group._featureGroup.removeLayer(m);
+
+ if (m.clusterShow) {
+ m.clusterShow();
+ }
+ }
+ }
+ });
+ },
+ //Run the given functions recursively to this and child clusters
+ // boundsToApplyTo: a L.LatLngBounds representing the bounds of what clusters to recurse in to
+ // zoomLevelToStart: zoom level to start running functions (inclusive)
+ // zoomLevelToStop: zoom level to stop running functions (inclusive)
+ // runAtEveryLevel: function that takes an L.MarkerCluster as an argument that should be applied on every level
+ // runAtBottomLevel: function that takes an L.MarkerCluster as an argument that should be applied at only the bottom level
+ _recursively: function _recursively(boundsToApplyTo, zoomLevelToStart, zoomLevelToStop, runAtEveryLevel, runAtBottomLevel) {
+ var childClusters = this._childClusters,
+ zoom = this._zoom,
+ i,
+ c;
+
+ if (zoomLevelToStart <= zoom) {
+ if (runAtEveryLevel) {
+ runAtEveryLevel(this);
+ }
+
+ if (runAtBottomLevel && zoom === zoomLevelToStop) {
+ runAtBottomLevel(this);
+ }
+ }
+
+ if (zoom < zoomLevelToStart || zoom < zoomLevelToStop) {
+ for (i = childClusters.length - 1; i >= 0; i--) {
+ c = childClusters[i];
+
+ if (c._boundsNeedUpdate) {
+ c._recalculateBounds();
+ }
+
+ if (boundsToApplyTo.intersects(c._bounds)) {
+ c._recursively(boundsToApplyTo, zoomLevelToStart, zoomLevelToStop, runAtEveryLevel, runAtBottomLevel);
+ }
+ }
+ }
+ },
+ //Returns true if we are the parent of only one cluster and that cluster is the same as us
+ _isSingleParent: function _isSingleParent() {
+ //Don't need to check this._markers as the rest won't work if there are any
+ return this._childClusters.length > 0 && this._childClusters[0]._childCount === this._childCount;
+ }
+ });
+ /*
+ * Extends L.Marker to include two extra methods: clusterHide and clusterShow.
+ *
+ * They work as setOpacity(0) and setOpacity(1) respectively, but
+ * don't overwrite the options.opacity
+ *
+ */
+
+ L.Marker.include({
+ clusterHide: function clusterHide() {
+ var backup = this.options.opacity;
+ this.setOpacity(0);
+ this.options.opacity = backup;
+ return this;
+ },
+ clusterShow: function clusterShow() {
+ return this.setOpacity(this.options.opacity);
+ }
+ });
+
+ L.DistanceGrid = function (cellSize) {
+ this._cellSize = cellSize;
+ this._sqCellSize = cellSize * cellSize;
+ this._grid = {};
+ this._objectPoint = {};
+ };
+
+ L.DistanceGrid.prototype = {
+ addObject: function addObject(obj, point) {
+ var x = this._getCoord(point.x),
+ y = this._getCoord(point.y),
+ grid = this._grid,
+ row = grid[y] = grid[y] || {},
+ cell = row[x] = row[x] || [],
+ stamp = L.Util.stamp(obj);
+
+ this._objectPoint[stamp] = point;
+ cell.push(obj);
+ },
+ updateObject: function updateObject(obj, point) {
+ this.removeObject(obj);
+ this.addObject(obj, point);
+ },
+ //Returns true if the object was found
+ removeObject: function removeObject(obj, point) {
+ var x = this._getCoord(point.x),
+ y = this._getCoord(point.y),
+ grid = this._grid,
+ row = grid[y] = grid[y] || {},
+ cell = row[x] = row[x] || [],
+ i,
+ len;
+
+ delete this._objectPoint[L.Util.stamp(obj)];
+
+ for (i = 0, len = cell.length; i < len; i++) {
+ if (cell[i] === obj) {
+ cell.splice(i, 1);
+
+ if (len === 1) {
+ delete row[x];
+ }
+
+ return true;
+ }
+ }
+ },
+ eachObject: function eachObject(fn, context) {
+ var i,
+ j,
+ k,
+ len,
+ row,
+ cell,
+ removed,
+ grid = this._grid;
+
+ for (i in grid) {
+ row = grid[i];
+
+ for (j in row) {
+ cell = row[j];
+
+ for (k = 0, len = cell.length; k < len; k++) {
+ removed = fn.call(context, cell[k]);
+
+ if (removed) {
+ k--;
+ len--;
+ }
+ }
+ }
+ }
+ },
+ getNearObject: function getNearObject(point) {
+ var x = this._getCoord(point.x),
+ y = this._getCoord(point.y),
+ i,
+ j,
+ k,
+ row,
+ cell,
+ len,
+ obj,
+ dist,
+ objectPoint = this._objectPoint,
+ closestDistSq = this._sqCellSize,
+ closest = null;
+
+ for (i = y - 1; i <= y + 1; i++) {
+ row = this._grid[i];
+
+ if (row) {
+ for (j = x - 1; j <= x + 1; j++) {
+ cell = row[j];
+
+ if (cell) {
+ for (k = 0, len = cell.length; k < len; k++) {
+ obj = cell[k];
+ dist = this._sqDist(objectPoint[L.Util.stamp(obj)], point);
+
+ if (dist < closestDistSq || dist <= closestDistSq && closest === null) {
+ closestDistSq = dist;
+ closest = obj;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return closest;
+ },
+ _getCoord: function _getCoord(x) {
+ var coord = Math.floor(x / this._cellSize);
+ return isFinite(coord) ? coord : x;
+ },
+ _sqDist: function _sqDist(p, p2) {
+ var dx = p2.x - p.x,
+ dy = p2.y - p.y;
+ return dx * dx + dy * dy;
+ }
+ };
+ /* Copyright (c) 2012 the authors listed at the following URL, and/or
+ the authors of referenced articles or incorporated external code:
+ http://en.literateprograms.org/Quickhull_(Javascript)?action=history&offset=20120410175256
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ Retrieved from: http://en.literateprograms.org/Quickhull_(Javascript)?oldid=18434
+ */
+
+ (function () {
+ L.QuickHull = {
+ /*
+ * @param {Object} cpt a point to be measured from the baseline
+ * @param {Array} bl the baseline, as represented by a two-element
+ * array of latlng objects.
+ * @returns {Number} an approximate distance measure
+ */
+ getDistant: function getDistant(cpt, bl) {
+ var vY = bl[1].lat - bl[0].lat,
+ vX = bl[0].lng - bl[1].lng;
+ return vX * (cpt.lat - bl[0].lat) + vY * (cpt.lng - bl[0].lng);
+ },
+
+ /*
+ * @param {Array} baseLine a two-element array of latlng objects
+ * representing the baseline to project from
+ * @param {Array} latLngs an array of latlng objects
+ * @returns {Object} the maximum point and all new points to stay
+ * in consideration for the hull.
+ */
+ findMostDistantPointFromBaseLine: function findMostDistantPointFromBaseLine(baseLine, latLngs) {
+ var maxD = 0,
+ maxPt = null,
+ newPoints = [],
+ i,
+ pt,
+ d;
+
+ for (i = latLngs.length - 1; i >= 0; i--) {
+ pt = latLngs[i];
+ d = this.getDistant(pt, baseLine);
+
+ if (d > 0) {
+ newPoints.push(pt);
+ } else {
+ continue;
+ }
+
+ if (d > maxD) {
+ maxD = d;
+ maxPt = pt;
+ }
+ }
+
+ return {
+ maxPoint: maxPt,
+ newPoints: newPoints
+ };
+ },
+
+ /*
+ * Given a baseline, compute the convex hull of latLngs as an array
+ * of latLngs.
+ *
+ * @param {Array} latLngs
+ * @returns {Array}
+ */
+ buildConvexHull: function buildConvexHull(baseLine, latLngs) {
+ var convexHullBaseLines = [],
+ t = this.findMostDistantPointFromBaseLine(baseLine, latLngs);
+
+ if (t.maxPoint) {
+ // if there is still a point "outside" the base line
+ convexHullBaseLines = convexHullBaseLines.concat(this.buildConvexHull([baseLine[0], t.maxPoint], t.newPoints));
+ convexHullBaseLines = convexHullBaseLines.concat(this.buildConvexHull([t.maxPoint, baseLine[1]], t.newPoints));
+ return convexHullBaseLines;
+ } else {
+ // if there is no more point "outside" the base line, the current base line is part of the convex hull
+ return [baseLine[0]];
+ }
+ },
+
+ /*
+ * Given an array of latlngs, compute a convex hull as an array
+ * of latlngs
+ *
+ * @param {Array} latLngs
+ * @returns {Array}
+ */
+ getConvexHull: function getConvexHull(latLngs) {
+ // find first baseline
+ var maxLat = false,
+ minLat = false,
+ maxLng = false,
+ minLng = false,
+ maxLatPt = null,
+ minLatPt = null,
+ maxLngPt = null,
+ minLngPt = null,
+ maxPt = null,
+ minPt = null,
+ i;
+
+ for (i = latLngs.length - 1; i >= 0; i--) {
+ var pt = latLngs[i];
+
+ if (maxLat === false || pt.lat > maxLat) {
+ maxLatPt = pt;
+ maxLat = pt.lat;
+ }
+
+ if (minLat === false || pt.lat < minLat) {
+ minLatPt = pt;
+ minLat = pt.lat;
+ }
+
+ if (maxLng === false || pt.lng > maxLng) {
+ maxLngPt = pt;
+ maxLng = pt.lng;
+ }
+
+ if (minLng === false || pt.lng < minLng) {
+ minLngPt = pt;
+ minLng = pt.lng;
+ }
+ }
+
+ if (minLat !== maxLat) {
+ minPt = minLatPt;
+ maxPt = maxLatPt;
+ } else {
+ minPt = minLngPt;
+ maxPt = maxLngPt;
+ }
+
+ var ch = [].concat(this.buildConvexHull([minPt, maxPt], latLngs), this.buildConvexHull([maxPt, minPt], latLngs));
+ return ch;
+ }
+ };
+ })();
+
+ L.MarkerCluster.include({
+ getConvexHull: function getConvexHull() {
+ var childMarkers = this.getAllChildMarkers(),
+ points = [],
+ p,
+ i;
+
+ for (i = childMarkers.length - 1; i >= 0; i--) {
+ p = childMarkers[i].getLatLng();
+ points.push(p);
+ }
+
+ return L.QuickHull.getConvexHull(points);
+ }
+ }); //This code is 100% based on https://github.com/jawj/OverlappingMarkerSpiderfier-Leaflet
+ //Huge thanks to jawj for implementing it first to make my job easy :-)
+
+ L.MarkerCluster.include({
+ _2PI: Math.PI * 2,
+ _circleFootSeparation: 25,
+ //related to circumference of circle
+ _circleStartAngle: 0,
+ _spiralFootSeparation: 28,
+ //related to size of spiral (experiment!)
+ _spiralLengthStart: 11,
+ _spiralLengthFactor: 5,
+ _circleSpiralSwitchover: 9,
+ //show spiral instead of circle from this marker count upwards.
+ // 0 -> always spiral; Infinity -> always circle
+ spiderfy: function spiderfy() {
+ if (this._group._spiderfied === this || this._group._inZoomAnimation) {
+ return;
+ }
+
+ var childMarkers = this.getAllChildMarkers(null, true),
+ group = this._group,
+ map = group._map,
+ center = map.latLngToLayerPoint(this._latlng),
+ positions;
+
+ this._group._unspiderfy();
+
+ this._group._spiderfied = this; //TODO Maybe: childMarkers order by distance to center
+
+ if (this._group.options.spiderfyShapePositions) {
+ positions = this._group.options.spiderfyShapePositions(childMarkers.length, center);
+ } else if (childMarkers.length >= this._circleSpiralSwitchover) {
+ positions = this._generatePointsSpiral(childMarkers.length, center);
+ } else {
+ center.y += 10; // Otherwise circles look wrong => hack for standard blue icon, renders differently for other icons.
+
+ positions = this._generatePointsCircle(childMarkers.length, center);
+ }
+
+ this._animationSpiderfy(childMarkers, positions);
+ },
+ unspiderfy: function unspiderfy(zoomDetails) {
+ /// Argument from zoomanim if being called in a zoom animation or null otherwise
+ if (this._group._inZoomAnimation) {
+ return;
+ }
+
+ this._animationUnspiderfy(zoomDetails);
+
+ this._group._spiderfied = null;
+ },
+ _generatePointsCircle: function _generatePointsCircle(count, centerPt) {
+ var circumference = this._group.options.spiderfyDistanceMultiplier * this._circleFootSeparation * (2 + count),
+ legLength = circumference / this._2PI,
+ //radius from circumference
+ angleStep = this._2PI / count,
+ res = [],
+ i,
+ angle;
+ legLength = Math.max(legLength, 35); // Minimum distance to get outside the cluster icon.
+
+ res.length = count;
+
+ for (i = 0; i < count; i++) {
+ // Clockwise, like spiral.
+ angle = this._circleStartAngle + i * angleStep;
+ res[i] = new L.Point(centerPt.x + legLength * Math.cos(angle), centerPt.y + legLength * Math.sin(angle))._round();
+ }
+
+ return res;
+ },
+ _generatePointsSpiral: function _generatePointsSpiral(count, centerPt) {
+ var spiderfyDistanceMultiplier = this._group.options.spiderfyDistanceMultiplier,
+ legLength = spiderfyDistanceMultiplier * this._spiralLengthStart,
+ separation = spiderfyDistanceMultiplier * this._spiralFootSeparation,
+ lengthFactor = spiderfyDistanceMultiplier * this._spiralLengthFactor * this._2PI,
+ angle = 0,
+ res = [],
+ i;
+ res.length = count; // Higher index, closer position to cluster center.
+
+ for (i = count; i >= 0; i--) {
+ // Skip the first position, so that we are already farther from center and we avoid
+ // being under the default cluster icon (especially important for Circle Markers).
+ if (i < count) {
+ res[i] = new L.Point(centerPt.x + legLength * Math.cos(angle), centerPt.y + legLength * Math.sin(angle))._round();
+ }
+
+ angle += separation / legLength + i * 0.0005;
+ legLength += lengthFactor / angle;
+ }
+
+ return res;
+ },
+ _noanimationUnspiderfy: function _noanimationUnspiderfy() {
+ var group = this._group,
+ map = group._map,
+ fg = group._featureGroup,
+ childMarkers = this.getAllChildMarkers(null, true),
+ m,
+ i;
+ group._ignoreMove = true;
+ this.setOpacity(1);
+
+ for (i = childMarkers.length - 1; i >= 0; i--) {
+ m = childMarkers[i];
+ fg.removeLayer(m);
+
+ if (m._preSpiderfyLatlng) {
+ m.setLatLng(m._preSpiderfyLatlng);
+ delete m._preSpiderfyLatlng;
+ }
+
+ if (m.setZIndexOffset) {
+ m.setZIndexOffset(0);
+ }
+
+ if (m._spiderLeg) {
+ map.removeLayer(m._spiderLeg);
+ delete m._spiderLeg;
+ }
+ }
+
+ group.fire('unspiderfied', {
+ cluster: this,
+ markers: childMarkers
+ });
+ group._ignoreMove = false;
+ group._spiderfied = null;
+ }
+ }); //Non Animated versions of everything
+
+ L.MarkerClusterNonAnimated = L.MarkerCluster.extend({
+ _animationSpiderfy: function _animationSpiderfy(childMarkers, positions) {
+ var group = this._group,
+ map = group._map,
+ fg = group._featureGroup,
+ legOptions = this._group.options.spiderLegPolylineOptions,
+ i,
+ m,
+ leg,
+ newPos;
+ group._ignoreMove = true; // Traverse in ascending order to make sure that inner circleMarkers are on top of further legs. Normal markers are re-ordered by newPosition.
+ // The reverse order trick no longer improves performance on modern browsers.
+
+ for (i = 0; i < childMarkers.length; i++) {
+ newPos = map.layerPointToLatLng(positions[i]);
+ m = childMarkers[i]; // Add the leg before the marker, so that in case the latter is a circleMarker, the leg is behind it.
+
+ leg = new L.Polyline([this._latlng, newPos], legOptions);
+ map.addLayer(leg);
+ m._spiderLeg = leg; // Now add the marker.
+
+ m._preSpiderfyLatlng = m._latlng;
+ m.setLatLng(newPos);
+
+ if (m.setZIndexOffset) {
+ m.setZIndexOffset(1000000); //Make these appear on top of EVERYTHING
+ }
+
+ fg.addLayer(m);
+ }
+
+ this.setOpacity(0.3);
+ group._ignoreMove = false;
+ group.fire('spiderfied', {
+ cluster: this,
+ markers: childMarkers
+ });
+ },
+ _animationUnspiderfy: function _animationUnspiderfy() {
+ this._noanimationUnspiderfy();
+ }
+ }); //Animated versions here
+
+ L.MarkerCluster.include({
+ _animationSpiderfy: function _animationSpiderfy(childMarkers, positions) {
+ var me = this,
+ group = this._group,
+ map = group._map,
+ fg = group._featureGroup,
+ thisLayerLatLng = this._latlng,
+ thisLayerPos = map.latLngToLayerPoint(thisLayerLatLng),
+ svg = L.Path.SVG,
+ legOptions = L.extend({}, this._group.options.spiderLegPolylineOptions),
+ // Copy the options so that we can modify them for animation.
+ finalLegOpacity = legOptions.opacity,
+ i,
+ m,
+ leg,
+ legPath,
+ legLength,
+ newPos;
+
+ if (finalLegOpacity === undefined) {
+ finalLegOpacity = L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity;
+ }
+
+ if (svg) {
+ // If the initial opacity of the spider leg is not 0 then it appears before the animation starts.
+ legOptions.opacity = 0; // Add the class for CSS transitions.
+
+ legOptions.className = (legOptions.className || '') + ' leaflet-cluster-spider-leg';
+ } else {
+ // Make sure we have a defined opacity.
+ legOptions.opacity = finalLegOpacity;
+ }
+
+ group._ignoreMove = true; // Add markers and spider legs to map, hidden at our center point.
+ // Traverse in ascending order to make sure that inner circleMarkers are on top of further legs. Normal markers are re-ordered by newPosition.
+ // The reverse order trick no longer improves performance on modern browsers.
+
+ for (i = 0; i < childMarkers.length; i++) {
+ m = childMarkers[i];
+ newPos = map.layerPointToLatLng(positions[i]); // Add the leg before the marker, so that in case the latter is a circleMarker, the leg is behind it.
+
+ leg = new L.Polyline([thisLayerLatLng, newPos], legOptions);
+ map.addLayer(leg);
+ m._spiderLeg = leg; // Explanations: https://jakearchibald.com/2013/animated-line-drawing-svg/
+ // In our case the transition property is declared in the CSS file.
+
+ if (svg) {
+ legPath = leg._path;
+ legLength = legPath.getTotalLength() + 0.1; // Need a small extra length to avoid remaining dot in Firefox.
+
+ legPath.style.strokeDasharray = legLength; // Just 1 length is enough, it will be duplicated.
+
+ legPath.style.strokeDashoffset = legLength;
+ } // If it is a marker, add it now and we'll animate it out
+
+
+ if (m.setZIndexOffset) {
+ m.setZIndexOffset(1000000); // Make normal markers appear on top of EVERYTHING
+ }
+
+ if (m.clusterHide) {
+ m.clusterHide();
+ } // Vectors just get immediately added
+
+
+ fg.addLayer(m);
+
+ if (m._setPos) {
+ m._setPos(thisLayerPos);
+ }
+ }
+
+ group._forceLayout();
+
+ group._animationStart(); // Reveal markers and spider legs.
+
+
+ for (i = childMarkers.length - 1; i >= 0; i--) {
+ newPos = map.layerPointToLatLng(positions[i]);
+ m = childMarkers[i]; //Move marker to new position
+
+ m._preSpiderfyLatlng = m._latlng;
+ m.setLatLng(newPos);
+
+ if (m.clusterShow) {
+ m.clusterShow();
+ } // Animate leg (animation is actually delegated to CSS transition).
+
+
+ if (svg) {
+ leg = m._spiderLeg;
+ legPath = leg._path;
+ legPath.style.strokeDashoffset = 0; //legPath.style.strokeOpacity = finalLegOpacity;
+
+ leg.setStyle({
+ opacity: finalLegOpacity
+ });
+ }
+ }
+
+ this.setOpacity(0.3);
+ group._ignoreMove = false;
+ setTimeout(function () {
+ group._animationEnd();
+
+ group.fire('spiderfied', {
+ cluster: me,
+ markers: childMarkers
+ });
+ }, 200);
+ },
+ _animationUnspiderfy: function _animationUnspiderfy(zoomDetails) {
+ var me = this,
+ group = this._group,
+ map = group._map,
+ fg = group._featureGroup,
+ thisLayerPos = zoomDetails ? map._latLngToNewLayerPoint(this._latlng, zoomDetails.zoom, zoomDetails.center) : map.latLngToLayerPoint(this._latlng),
+ childMarkers = this.getAllChildMarkers(null, true),
+ svg = L.Path.SVG,
+ m,
+ i,
+ leg,
+ legPath,
+ legLength,
+ nonAnimatable;
+ group._ignoreMove = true;
-/***/ "./forum.js":
-/*!******************!*\
- !*** ./forum.js ***!
- \******************/
-/*! exports provided: AddLocationComponent */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+ group._animationStart(); //Make us visible and bring the child markers back in
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _src_forum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/forum */ "./src/forum/index.js");
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AddLocationComponent", function() { return _src_forum__WEBPACK_IMPORTED_MODULE_0__["AddLocationComponent"]; });
+ this.setOpacity(1);
+ for (i = childMarkers.length - 1; i >= 0; i--) {
+ m = childMarkers[i]; //Marker was added to us after we were spiderfied
-/***/ }),
+ if (!m._preSpiderfyLatlng) {
+ continue;
+ } //Close any popup on the marker first, otherwise setting the location of the marker will make the map scroll
-/***/ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js":
-/*!******************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js ***!
- \******************************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _inheritsLoose; });
-/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js");
+ m.closePopup(); //Fix up the location to the real one
-function _inheritsLoose(subClass, superClass) {
- subClass.prototype = Object.create(superClass.prototype);
- subClass.prototype.constructor = subClass;
- Object(_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__["default"])(subClass, superClass);
-}
+ m.setLatLng(m._preSpiderfyLatlng);
+ delete m._preSpiderfyLatlng; //Hack override the location to be our center
-/***/ }),
+ nonAnimatable = true;
-/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":
-/*!*******************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
- \*******************************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+ if (m._setPos) {
+ m._setPos(thisLayerPos);
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _setPrototypeOf; });
-function _setPrototypeOf(o, p) {
- _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
- o.__proto__ = p;
- return o;
- };
+ nonAnimatable = false;
+ }
- return _setPrototypeOf(o, p);
-}
+ if (m.clusterHide) {
+ m.clusterHide();
+ nonAnimatable = false;
+ }
+
+ if (nonAnimatable) {
+ fg.removeLayer(m);
+ } // Animate the spider leg back in (animation is actually delegated to CSS transition).
+
+
+ if (svg) {
+ leg = m._spiderLeg;
+ legPath = leg._path;
+ legLength = legPath.getTotalLength() + 0.1;
+ legPath.style.strokeDashoffset = legLength;
+ leg.setStyle({
+ opacity: 0
+ });
+ }
+ }
+
+ group._ignoreMove = false;
+ setTimeout(function () {
+ //If we have only <= one child left then that marker will be shown on the map so don't remove it!
+ var stillThereChildCount = 0;
+
+ for (i = childMarkers.length - 1; i >= 0; i--) {
+ m = childMarkers[i];
+
+ if (m._spiderLeg) {
+ stillThereChildCount++;
+ }
+ }
+
+ for (i = childMarkers.length - 1; i >= 0; i--) {
+ m = childMarkers[i];
+
+ if (!m._spiderLeg) {
+ //Has already been unspiderfied
+ continue;
+ }
+
+ if (m.clusterShow) {
+ m.clusterShow();
+ }
+
+ if (m.setZIndexOffset) {
+ m.setZIndexOffset(0);
+ }
+
+ if (stillThereChildCount > 1) {
+ fg.removeLayer(m);
+ }
+
+ map.removeLayer(m._spiderLeg);
+ delete m._spiderLeg;
+ }
+
+ group._animationEnd();
+
+ group.fire('unspiderfied', {
+ cluster: me,
+ markers: childMarkers
+ });
+ }, 200);
+ }
+ });
+ L.MarkerClusterGroup.include({
+ //The MarkerCluster currently spiderfied (if any)
+ _spiderfied: null,
+ unspiderfy: function unspiderfy() {
+ this._unspiderfy.apply(this, arguments);
+ },
+ _spiderfierOnAdd: function _spiderfierOnAdd() {
+ this._map.on('click', this._unspiderfyWrapper, this);
+
+ if (this._map.options.zoomAnimation) {
+ this._map.on('zoomstart', this._unspiderfyZoomStart, this);
+ } //Browsers without zoomAnimation or a big zoom don't fire zoomstart
+
+
+ this._map.on('zoomend', this._noanimationUnspiderfy, this);
+
+ if (!L.Browser.touch) {
+ this._map.getRenderer(this); //Needs to happen in the pageload, not after, or animations don't work in webkit
+ // http://stackoverflow.com/questions/8455200/svg-animate-with-dynamically-added-elements
+ //Disable on touch browsers as the animation messes up on a touch zoom and isn't very noticable
+
+ }
+ },
+ _spiderfierOnRemove: function _spiderfierOnRemove() {
+ this._map.off('click', this._unspiderfyWrapper, this);
+
+ this._map.off('zoomstart', this._unspiderfyZoomStart, this);
+
+ this._map.off('zoomanim', this._unspiderfyZoomAnim, this);
+
+ this._map.off('zoomend', this._noanimationUnspiderfy, this); //Ensure that markers are back where they should be
+ // Use no animation to avoid a sticky leaflet-cluster-anim class on mapPane
+
+
+ this._noanimationUnspiderfy();
+ },
+ //On zoom start we add a zoomanim handler so that we are guaranteed to be last (after markers are animated)
+ //This means we can define the animation they do rather than Markers doing an animation to their actual location
+ _unspiderfyZoomStart: function _unspiderfyZoomStart() {
+ if (!this._map) {
+ //May have been removed from the map by a zoomEnd handler
+ return;
+ }
+
+ this._map.on('zoomanim', this._unspiderfyZoomAnim, this);
+ },
+ _unspiderfyZoomAnim: function _unspiderfyZoomAnim(zoomDetails) {
+ //Wait until the first zoomanim after the user has finished touch-zooming before running the animation
+ if (L.DomUtil.hasClass(this._map._mapPane, 'leaflet-touching')) {
+ return;
+ }
+
+ this._map.off('zoomanim', this._unspiderfyZoomAnim, this);
+
+ this._unspiderfy(zoomDetails);
+ },
+ _unspiderfyWrapper: function _unspiderfyWrapper() {
+ /// _unspiderfy but passes no arguments
+ this._unspiderfy();
+ },
+ _unspiderfy: function _unspiderfy(zoomDetails) {
+ if (this._spiderfied) {
+ this._spiderfied.unspiderfy(zoomDetails);
+ }
+ },
+ _noanimationUnspiderfy: function _noanimationUnspiderfy() {
+ if (this._spiderfied) {
+ this._spiderfied._noanimationUnspiderfy();
+ }
+ },
+ //If the given layer is currently being spiderfied then we unspiderfy it so it isn't on the map anymore etc
+ _unspiderfyLayer: function _unspiderfyLayer(layer) {
+ if (layer._spiderLeg) {
+ this._featureGroup.removeLayer(layer);
+
+ if (layer.clusterShow) {
+ layer.clusterShow();
+ } //Position will be fixed up immediately in _animationUnspiderfy
+
+
+ if (layer.setZIndexOffset) {
+ layer.setZIndexOffset(0);
+ }
+
+ this._map.removeLayer(layer._spiderLeg);
+
+ delete layer._spiderLeg;
+ }
+ }
+ });
+ /**
+ * Adds 1 public method to MCG and 1 to L.Marker to facilitate changing
+ * markers' icon options and refreshing their icon and their parent clusters
+ * accordingly (case where their iconCreateFunction uses data of childMarkers
+ * to make up the cluster icon).
+ */
+
+ L.MarkerClusterGroup.include({
+ /**
+ * Updates the icon of all clusters which are parents of the given marker(s).
+ * In singleMarkerMode, also updates the given marker(s) icon.
+ * @param layers L.MarkerClusterGroup|L.LayerGroup|Array(L.Marker)|Map(L.Marker)|
+ * L.MarkerCluster|L.Marker (optional) list of markers (or single marker) whose parent
+ * clusters need to be updated. If not provided, retrieves all child markers of this.
+ * @returns {L.MarkerClusterGroup}
+ */
+ refreshClusters: function refreshClusters(layers) {
+ if (!layers) {
+ layers = this._topClusterLevel.getAllChildMarkers();
+ } else if (layers instanceof L.MarkerClusterGroup) {
+ layers = layers._topClusterLevel.getAllChildMarkers();
+ } else if (layers instanceof L.LayerGroup) {
+ layers = layers._layers;
+ } else if (layers instanceof L.MarkerCluster) {
+ layers = layers.getAllChildMarkers();
+ } else if (layers instanceof L.Marker) {
+ layers = [layers];
+ } // else: must be an Array(L.Marker)|Map(L.Marker)
+
+
+ this._flagParentsIconsNeedUpdate(layers);
+
+ this._refreshClustersIcons(); // In case of singleMarkerMode, also re-draw the markers.
+
+
+ if (this.options.singleMarkerMode) {
+ this._refreshSingleMarkerModeMarkers(layers);
+ }
+
+ return this;
+ },
+
+ /**
+ * Simply flags all parent clusters of the given markers as having a "dirty" icon.
+ * @param layers Array(L.Marker)|Map(L.Marker) list of markers.
+ * @private
+ */
+ _flagParentsIconsNeedUpdate: function _flagParentsIconsNeedUpdate(layers) {
+ var id, parent; // Assumes layers is an Array or an Object whose prototype is non-enumerable.
+
+ for (id in layers) {
+ // Flag parent clusters' icon as "dirty", all the way up.
+ // Dumb process that flags multiple times upper parents, but still
+ // much more efficient than trying to be smart and make short lists,
+ // at least in the case of a hierarchy following a power law:
+ // http://jsperf.com/flag-nodes-in-power-hierarchy/2
+ parent = layers[id].__parent;
+
+ while (parent) {
+ parent._iconNeedsUpdate = true;
+ parent = parent.__parent;
+ }
+ }
+ },
+
+ /**
+ * Re-draws the icon of the supplied markers.
+ * To be used in singleMarkerMode only.
+ * @param layers Array(L.Marker)|Map(L.Marker) list of markers.
+ * @private
+ */
+ _refreshSingleMarkerModeMarkers: function _refreshSingleMarkerModeMarkers(layers) {
+ var id, layer;
+
+ for (id in layers) {
+ layer = layers[id]; // Make sure we do not override markers that do not belong to THIS group.
+
+ if (this.hasLayer(layer)) {
+ // Need to re-create the icon first, then re-draw the marker.
+ layer.setIcon(this._overrideMarkerIcon(layer));
+ }
+ }
+ }
+ });
+ L.Marker.include({
+ /**
+ * Updates the given options in the marker's icon and refreshes the marker.
+ * @param options map object of icon options.
+ * @param directlyRefreshClusters boolean (optional) true to trigger
+ * MCG.refreshClustersOf() right away with this single marker.
+ * @returns {L.Marker}
+ */
+ refreshIconOptions: function refreshIconOptions(options, directlyRefreshClusters) {
+ var icon = this.options.icon;
+ L.setOptions(icon, options);
+ this.setIcon(icon); // Shortcut to refresh the associated MCG clusters right away.
+ // To be used when refreshing a single marker.
+ // Otherwise, better use MCG.refreshClusters() once at the end with
+ // the list of modified markers.
+
+ if (directlyRefreshClusters && this.__parent) {
+ this.__parent._group.refreshClusters(this);
+ }
+
+ return this;
+ }
+ });
+ exports.MarkerClusterGroup = MarkerClusterGroup;
+ exports.MarkerCluster = MarkerCluster;
+ Object.defineProperty(exports, '__esModule', {
+ value: true
+ });
+});
/***/ }),
@@ -148,15 +2775,14 @@ function _setPrototypeOf(o, p) {
/*!**************************************************!*\
!*** ./node_modules/leaflet/dist/leaflet-src.js ***!
\**************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
+/***/ (function(__unused_webpack_module, exports) {
/* @preserve
* Leaflet 1.7.1, a JS library for interactive maps. http://leafletjs.com
* (c) 2010-2019 Vladimir Agafonkin, (c) 2010-2011 CloudMade
*/
(function (global, factory) {
- true ? factory(exports) : undefined;
+ true ? factory(exports) : 0;
})(this, function (exports) {
'use strict';
@@ -13486,12 +16112,13 @@ function _setPrototypeOf(o, p) {
/*!******************************************************!*\
!*** ./src/forum/components/AddLocationComponent.js ***!
\******************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return AddLocationComponent; });
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ AddLocationComponent)
+/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js");
/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app");
/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__);
@@ -13505,7 +16132,7 @@ __webpack_require__.r(__webpack_exports__);
var AddLocationComponent = /*#__PURE__*/function (_Component) {
- Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(AddLocationComponent, _Component);
+ (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(AddLocationComponent, _Component);
function AddLocationComponent() {
return _Component.apply(this, arguments) || this;
@@ -13516,11 +16143,11 @@ var AddLocationComponent = /*#__PURE__*/function (_Component) {
_proto.oninit = function oninit(vnode) {
_Component.prototype.oninit.call(this, vnode);
- this.search_country = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.session.user.location_country() || 'France';
- this.search_city = ((flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.session.user.location_postcode() || '') + ' ' + (flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.session.user.location_city() || '')).trim();
- this.location = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.session.user.location_latitude() ? {
- lat: flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.session.user.location_latitude(),
- lon: flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.session.user.location_longitude()
+ this.search_country = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().session.user.location_country() || 'France';
+ this.search_city = ((flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().session.user.location_postcode() || '') + ' ' + (flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().session.user.location_city() || '')).trim();
+ this.location = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().session.user.location_latitude() ? {
+ lat: flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().session.user.location_latitude(),
+ lon: flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().session.user.location_longitude()
} : null; //console.log(this.location);
this.enableLocation = this.location != null;
@@ -13533,16 +16160,16 @@ var AddLocationComponent = /*#__PURE__*/function (_Component) {
return m("fieldset", {
className: "Settings-theme"
- }, m("legend", null, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('justoverclock-users-map-location.forum.location')), m(flarum_common_components_Switch__WEBPACK_IMPORTED_MODULE_3___default.a, {
+ }, m("legend", null, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('justoverclock-users-map-location.forum.location')), m((flarum_common_components_Switch__WEBPACK_IMPORTED_MODULE_3___default()), {
state: this.enableLocation,
onchange: function onchange(val) {
return _this.setEnableLocation(val);
}
- }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('justoverclock-users-map-location.forum.enableLocation')), m("div", {
+ }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('justoverclock-users-map-location.forum.enableLocation')), m("div", {
className: "fieldset-separator"
}), this.enableLocation ? m("div", null, m("label", {
"for": "search-country"
- }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('justoverclock-users-map-location.forum.locationCountry')), m("input", {
+ }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('justoverclock-users-map-location.forum.locationCountry')), m("input", {
type: "text",
className: "FormControl search-country",
id: "search-country",
@@ -13553,9 +16180,9 @@ var AddLocationComponent = /*#__PURE__*/function (_Component) {
className: "fieldset-separator"
}), m("label", {
"for": "search-city"
- }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('justoverclock-users-map-location.forum.locationCity')), m("p", {
+ }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('justoverclock-users-map-location.forum.locationCity')), m("p", {
className: "helpText"
- }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('justoverclock-users-map-location.forum.locationCityDescription')), m("input", {
+ }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('justoverclock-users-map-location.forum.locationCityDescription')), m("input", {
type: "text",
className: "FormControl search-city",
id: "search-city",
@@ -13590,8 +16217,8 @@ var AddLocationComponent = /*#__PURE__*/function (_Component) {
if (mapElements.length > 0) {
if (!this.map) {
var mapElement = mapElements[0];
- var publicToken = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.forum.attribute('justoverclock-users-map-location.mapBox-api-key');
- var markerIconPath = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.forum.attribute('baseUrl') + '/assets/extensions/justoverclock-users-map-location/marker-icon.png';
+ var publicToken = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().forum.attribute('justoverclock-users-map-location.mapBox-api-key');
+ var markerIconPath = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().forum.attribute('baseUrl') + '/assets/extensions/justoverclock-users-map-location/marker-icon.png';
var markerIcon = L.icon({
iconUrl: markerIconPath,
iconSize: [25, 41],
@@ -13641,7 +16268,7 @@ var AddLocationComponent = /*#__PURE__*/function (_Component) {
if (this.search_country == '' || this.search_city == '') {
if (this.location) {
- var user = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.session.user;
+ var user = (flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().session).user;
var attributes = {
location_country: null,
location_countrycode: null,
@@ -13654,9 +16281,9 @@ var AddLocationComponent = /*#__PURE__*/function (_Component) {
_this2.search_country = 'France';
_this2.search_city = '';
_this2.location = null;
- flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.alerts.show({
+ flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().alerts.show({
type: 'success'
- }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('justoverclock-users-map-location.forum.locationCleared'));
+ }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('justoverclock-users-map-location.forum.locationCleared'));
_this2.updateMap();
});
@@ -13721,7 +16348,7 @@ var AddLocationComponent = /*#__PURE__*/function (_Component) {
//console.log('found valid result:');
//console.log(result);
foundResult = true;
- var user = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.session.user;
+ var user = (flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().session).user;
var attributes = {
location_country: result.address.country,
location_countrycode: result.address.country_code,
@@ -13737,9 +16364,9 @@ var AddLocationComponent = /*#__PURE__*/function (_Component) {
lat: attributes.location_latitude,
lon: attributes.location_longitude
};
- flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.alerts.show({
+ flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().alerts.show({
type: 'success'
- }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('justoverclock-users-map-location.forum.locationSaved'));
+ }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('justoverclock-users-map-location.forum.locationSaved'));
_this2.updateMap();
});
@@ -13751,15 +16378,15 @@ var AddLocationComponent = /*#__PURE__*/function (_Component) {
}
if (!foundResult) {
- flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.alerts.show({
+ flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().alerts.show({
type: 'error'
- }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('justoverclock-users-map-location.forum.locationNotFound'));
+ }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('justoverclock-users-map-location.forum.locationNotFound'));
}
});
};
return AddLocationComponent;
-}(flarum_Component__WEBPACK_IMPORTED_MODULE_2___default.a);
+}((flarum_Component__WEBPACK_IMPORTED_MODULE_2___default()));
@@ -13769,12 +16396,13 @@ var AddLocationComponent = /*#__PURE__*/function (_Component) {
/*!************************************************!*\
!*** ./src/forum/components/GlobalMapPage.tsx ***!
\************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return GlobalMapPage; });
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ GlobalMapPage)
+/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js");
/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app");
/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__);
@@ -13782,14 +16410,25 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var flarum_common_components_Page__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Page__WEBPACK_IMPORTED_MODULE_2__);
+function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+
function translate(id) {
- return flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans(id);
+ return flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans(id);
}
+var escapeHtml = function escapeHtml(unsafe) {
+ return unsafe.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('"', '"').replaceAll("'", ''');
+};
+
var GlobalMapPage = /*#__PURE__*/function (_Page) {
- Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(GlobalMapPage, _Page);
+ (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(GlobalMapPage, _Page);
function GlobalMapPage() {
return _Page.apply(this, arguments) || this;
@@ -13800,7 +16439,7 @@ var GlobalMapPage = /*#__PURE__*/function (_Page) {
_proto.oninit = function oninit(vnode) {
_Page.prototype.oninit.call(this, vnode);
- flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.setTitle(translate('justoverclock-users-map-location.forum.global-map.title'));
+ flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().setTitle(translate('justoverclock-users-map-location.forum.global-map.title'));
this.map = null;
};
@@ -13819,14 +16458,16 @@ var GlobalMapPage = /*#__PURE__*/function (_Page) {
};
_proto.onupdate = function onupdate(vnode) {
+ var _this = this;
+
var dom = vnode.dom;
var mapElements = dom.getElementsByClassName('global-map');
if (mapElements.length > 0) {
if (!this.map) {
var mapElement = mapElements[0];
- var publicToken = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.forum.attribute('justoverclock-users-map-location.mapBox-api-key');
- var markerIconPath = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default.a.forum.attribute('baseUrl') + '/assets/extensions/justoverclock-users-map-location/marker-icon.png';
+ var publicToken = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().forum.attribute('justoverclock-users-map-location.mapBox-api-key');
+ var markerIconPath = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().forum.attribute('baseUrl') + '/assets/extensions/justoverclock-users-map-location/marker-icon.png';
var markerIcon = L.icon({
iconUrl: markerIconPath,
iconSize: [25, 41],
@@ -13843,7 +16484,22 @@ var GlobalMapPage = /*#__PURE__*/function (_Page) {
zoomOffset: -1,
accessToken: publicToken
}).addTo(this.map);
- this.map.setView([46, 2], 6);
+ this.map.setView([47, 2], 6);
+ flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().store.find('user-locations').then(function (response) {
+ var markers = L.markerClusterGroup();
+
+ for (var _iterator = _createForOfIteratorHelperLoose(response), _step; !(_step = _iterator()).done;) {
+ var item = _step.value;
+ var user = item.data.attributes;
+ var marker = L.marker([parseFloat(user.location_latitude), parseFloat(user.location_longitude)], {
+ icon: markerIcon
+ });
+ marker.bindPopup('' + escapeHtml(user.displayName) + '');
+ markers.addLayer(marker);
+ }
+
+ _this.map.addLayer(markers);
+ });
}
} else {
this.map = null;
@@ -13851,7 +16507,7 @@ var GlobalMapPage = /*#__PURE__*/function (_Page) {
};
return GlobalMapPage;
-}(flarum_common_components_Page__WEBPACK_IMPORTED_MODULE_2___default.a);
+}((flarum_common_components_Page__WEBPACK_IMPORTED_MODULE_2___default()));
@@ -13861,11 +16517,13 @@ var GlobalMapPage = /*#__PURE__*/function (_Page) {
/*!****************************!*\
!*** ./src/forum/index.js ***!
\****************************/
-/*! exports provided: AddLocationComponent */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ AddLocationComponent: () => (/* reexport safe */ _components_AddLocationComponent__WEBPACK_IMPORTED_MODULE_5__["default"])
+/* harmony export */ });
/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app");
/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/common/extend */ "flarum/common/extend");
@@ -13877,8 +16535,6 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var flarum_common_Model__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/common/Model */ "flarum/common/Model");
/* harmony import */ var flarum_common_Model__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_common_Model__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _components_AddLocationComponent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/AddLocationComponent */ "./src/forum/components/AddLocationComponent.js");
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AddLocationComponent", function() { return _components_AddLocationComponent__WEBPACK_IMPORTED_MODULE_5__["default"]; });
-
/* harmony import */ var flarum_forum_components_UserCard__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! flarum/forum/components/UserCard */ "flarum/forum/components/UserCard");
/* harmony import */ var flarum_forum_components_UserCard__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_UserCard__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var flarum_forum_components_HeaderPrimary__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! flarum/forum/components/HeaderPrimary */ "flarum/forum/components/HeaderPrimary");
@@ -13887,7 +16543,15 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! leaflet */ "./node_modules/leaflet/dist/leaflet-src.js");
/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(leaflet__WEBPACK_IMPORTED_MODULE_9__);
-/* harmony import */ var _components_GlobalMapPage__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./components/GlobalMapPage */ "./src/forum/components/GlobalMapPage.tsx");
+/* harmony import */ var leaflet_markercluster__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! leaflet.markercluster */ "./node_modules/leaflet.markercluster/dist/leaflet.markercluster-src.js");
+/* harmony import */ var leaflet_markercluster__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(leaflet_markercluster__WEBPACK_IMPORTED_MODULE_10__);
+/* harmony import */ var _components_GlobalMapPage__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./components/GlobalMapPage */ "./src/forum/components/GlobalMapPage.tsx");
+/* harmony import */ var _less_forum_less__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./../../../less/forum.less */ "../less/forum.less");
+/* harmony import */ var _node_modules_leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./../../node_modules/leaflet/dist/leaflet.css */ "./node_modules/leaflet/dist/leaflet.css");
+/* harmony import */ var _node_modules_leaflet_markercluster_dist_MarkerCluster_css__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./../../node_modules/leaflet.markercluster/dist/MarkerCluster.css */ "./node_modules/leaflet.markercluster/dist/MarkerCluster.css");
+/* harmony import */ var _node_modules_leaflet_markercluster_dist_MarkerCluster_Default_css__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./../../node_modules/leaflet.markercluster/dist/MarkerCluster.Default.css */ "./node_modules/leaflet.markercluster/dist/MarkerCluster.Default.css");
+
+
@@ -13899,18 +16563,21 @@ __webpack_require__.r(__webpack_exports__);
-flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default.a.initializers.add('justoverclock/users-map-location', function (app) {
- flarum_common_models_User__WEBPACK_IMPORTED_MODULE_3___default.a.prototype.location_country = flarum_common_Model__WEBPACK_IMPORTED_MODULE_4___default.a.attribute('location_country');
- flarum_common_models_User__WEBPACK_IMPORTED_MODULE_3___default.a.prototype.location_countrycode = flarum_common_Model__WEBPACK_IMPORTED_MODULE_4___default.a.attribute('location_countrycode');
- flarum_common_models_User__WEBPACK_IMPORTED_MODULE_3___default.a.prototype.location_postcode = flarum_common_Model__WEBPACK_IMPORTED_MODULE_4___default.a.attribute('location_postcode');
- flarum_common_models_User__WEBPACK_IMPORTED_MODULE_3___default.a.prototype.location_city = flarum_common_Model__WEBPACK_IMPORTED_MODULE_4___default.a.attribute('location_city');
- flarum_common_models_User__WEBPACK_IMPORTED_MODULE_3___default.a.prototype.location_latitude = flarum_common_Model__WEBPACK_IMPORTED_MODULE_4___default.a.attribute('location_latitude');
- flarum_common_models_User__WEBPACK_IMPORTED_MODULE_3___default.a.prototype.location_longitude = flarum_common_Model__WEBPACK_IMPORTED_MODULE_4___default.a.attribute('location_longitude');
+
+
+
+flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().initializers.add('justoverclock/users-map-location', function (app) {
+ (flarum_common_models_User__WEBPACK_IMPORTED_MODULE_3___default().prototype).location_country = flarum_common_Model__WEBPACK_IMPORTED_MODULE_4___default().attribute('location_country');
+ (flarum_common_models_User__WEBPACK_IMPORTED_MODULE_3___default().prototype).location_countrycode = flarum_common_Model__WEBPACK_IMPORTED_MODULE_4___default().attribute('location_countrycode');
+ (flarum_common_models_User__WEBPACK_IMPORTED_MODULE_3___default().prototype).location_postcode = flarum_common_Model__WEBPACK_IMPORTED_MODULE_4___default().attribute('location_postcode');
+ (flarum_common_models_User__WEBPACK_IMPORTED_MODULE_3___default().prototype).location_city = flarum_common_Model__WEBPACK_IMPORTED_MODULE_4___default().attribute('location_city');
+ (flarum_common_models_User__WEBPACK_IMPORTED_MODULE_3___default().prototype).location_latitude = flarum_common_Model__WEBPACK_IMPORTED_MODULE_4___default().attribute('location_latitude');
+ (flarum_common_models_User__WEBPACK_IMPORTED_MODULE_3___default().prototype).location_longitude = flarum_common_Model__WEBPACK_IMPORTED_MODULE_4___default().attribute('location_longitude');
app.routes['justoverclock.global-map'] = {
path: '/global-map',
- component: _components_GlobalMapPage__WEBPACK_IMPORTED_MODULE_10__["default"]
+ component: _components_GlobalMapPage__WEBPACK_IMPORTED_MODULE_11__["default"]
};
- Object(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__["extend"])(flarum_forum_components_UserCard__WEBPACK_IMPORTED_MODULE_6___default.a.prototype, 'infoItems', function (items) {
+ (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_UserCard__WEBPACK_IMPORTED_MODULE_6___default().prototype), 'infoItems', function (items) {
var user = this.attrs.user;
if (user.location_latitude()) {
@@ -13919,7 +16586,7 @@ flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default.a.initializers.add('justov
}), -100);
}
});
- Object(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__["extend"])(flarum_forum_components_UserCard__WEBPACK_IMPORTED_MODULE_6___default.a.prototype, 'oncreate', function (originalResult, vnode) {
+ (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_UserCard__WEBPACK_IMPORTED_MODULE_6___default().prototype), 'oncreate', function (originalResult, vnode) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = app.forum.attribute('baseUrl') + '/assets/extensions/justoverclock-users-map-location/leaflet.edgebuffer.js';
@@ -13963,11 +16630,11 @@ flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default.a.initializers.add('justov
onMapResized();
new ResizeObserver(onMapResized).observe(mapElement);
});
- Object(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__["extend"])(flarum_forum_components_SettingsPage__WEBPACK_IMPORTED_MODULE_2___default.a.prototype, 'settingsItems', function (items) {
+ (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_SettingsPage__WEBPACK_IMPORTED_MODULE_2___default().prototype), 'settingsItems', function (items) {
items.add('location', m(_components_AddLocationComponent__WEBPACK_IMPORTED_MODULE_5__["default"], null));
});
});
-Object(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__["extend"])(flarum_forum_components_HeaderPrimary__WEBPACK_IMPORTED_MODULE_7___default.a.prototype, 'onupdate', function () {
+(0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_HeaderPrimary__WEBPACK_IMPORTED_MODULE_7___default().prototype), 'onupdate', function () {
var homeLink = document.getElementById('home-link');
if (homeLink) {
@@ -13979,7 +16646,7 @@ Object(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__["extend"])(flarum_forum
globalMapLink = document.createElement('span');
globalMapLink.setAttribute('id', 'global-map-link');
(_homeLink$parentEleme = homeLink.parentElement) == null ? void 0 : _homeLink$parentEleme.append(globalMapLink);
- m.render(globalMapLink, m(flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_8___default.a, {
+ m.render(globalMapLink, m((flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_8___default()), {
href: "/global-map",
id: "map-link"
}, "Carte"));
@@ -13988,15 +16655,67 @@ Object(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__["extend"])(flarum_forum
});
+/***/ }),
+
+/***/ "./node_modules/leaflet.markercluster/dist/MarkerCluster.Default.css":
+/*!***************************************************************************!*\
+ !*** ./node_modules/leaflet.markercluster/dist/MarkerCluster.Default.css ***!
+ \***************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+// extracted by mini-css-extract-plugin
+
+
+/***/ }),
+
+/***/ "./node_modules/leaflet.markercluster/dist/MarkerCluster.css":
+/*!*******************************************************************!*\
+ !*** ./node_modules/leaflet.markercluster/dist/MarkerCluster.css ***!
+ \*******************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+// extracted by mini-css-extract-plugin
+
+
+/***/ }),
+
+/***/ "./node_modules/leaflet/dist/leaflet.css":
+/*!***********************************************!*\
+ !*** ./node_modules/leaflet/dist/leaflet.css ***!
+ \***********************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+// extracted by mini-css-extract-plugin
+
+
+/***/ }),
+
+/***/ "../less/forum.less":
+/*!**************************!*\
+ !*** ../less/forum.less ***!
+ \**************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+// extracted by mini-css-extract-plugin
+
+
/***/ }),
/***/ "flarum/Component":
/*!**************************************************!*\
!*** external "flarum.core.compat['Component']" ***!
\**************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ ((module) => {
+"use strict";
module.exports = flarum.core.compat['Component'];
/***/ }),
@@ -14005,9 +16724,9 @@ module.exports = flarum.core.compat['Component'];
/*!*****************************************************!*\
!*** external "flarum.core.compat['common/Model']" ***!
\*****************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ ((module) => {
+"use strict";
module.exports = flarum.core.compat['common/Model'];
/***/ }),
@@ -14016,9 +16735,9 @@ module.exports = flarum.core.compat['common/Model'];
/*!***************************************************************!*\
!*** external "flarum.core.compat['common/components/Link']" ***!
\***************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ ((module) => {
+"use strict";
module.exports = flarum.core.compat['common/components/Link'];
/***/ }),
@@ -14027,9 +16746,9 @@ module.exports = flarum.core.compat['common/components/Link'];
/*!***************************************************************!*\
!*** external "flarum.core.compat['common/components/Page']" ***!
\***************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ ((module) => {
+"use strict";
module.exports = flarum.core.compat['common/components/Page'];
/***/ }),
@@ -14038,9 +16757,9 @@ module.exports = flarum.core.compat['common/components/Page'];
/*!*****************************************************************!*\
!*** external "flarum.core.compat['common/components/Switch']" ***!
\*****************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ ((module) => {
+"use strict";
module.exports = flarum.core.compat['common/components/Switch'];
/***/ }),
@@ -14049,9 +16768,9 @@ module.exports = flarum.core.compat['common/components/Switch'];
/*!******************************************************!*\
!*** external "flarum.core.compat['common/extend']" ***!
\******************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ ((module) => {
+"use strict";
module.exports = flarum.core.compat['common/extend'];
/***/ }),
@@ -14060,9 +16779,9 @@ module.exports = flarum.core.compat['common/extend'];
/*!***********************************************************!*\
!*** external "flarum.core.compat['common/models/User']" ***!
\***********************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ ((module) => {
+"use strict";
module.exports = flarum.core.compat['common/models/User'];
/***/ }),
@@ -14071,9 +16790,9 @@ module.exports = flarum.core.compat['common/models/User'];
/*!**************************************************!*\
!*** external "flarum.core.compat['forum/app']" ***!
\**************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ ((module) => {
+"use strict";
module.exports = flarum.core.compat['forum/app'];
/***/ }),
@@ -14082,9 +16801,9 @@ module.exports = flarum.core.compat['forum/app'];
/*!***********************************************************************!*\
!*** external "flarum.core.compat['forum/components/HeaderPrimary']" ***!
\***********************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ ((module) => {
+"use strict";
module.exports = flarum.core.compat['forum/components/HeaderPrimary'];
/***/ }),
@@ -14093,9 +16812,9 @@ module.exports = flarum.core.compat['forum/components/HeaderPrimary'];
/*!**********************************************************************!*\
!*** external "flarum.core.compat['forum/components/SettingsPage']" ***!
\**********************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ ((module) => {
+"use strict";
module.exports = flarum.core.compat['forum/components/SettingsPage'];
/***/ }),
@@ -14104,12 +16823,140 @@ module.exports = flarum.core.compat['forum/components/SettingsPage'];
/*!******************************************************************!*\
!*** external "flarum.core.compat['forum/components/UserCard']" ***!
\******************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ ((module) => {
+"use strict";
module.exports = flarum.core.compat['forum/components/UserCard'];
+/***/ }),
+
+/***/ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js":
+/*!******************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js ***!
+ \******************************************************************/
+/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ _inheritsLoose)
+/* harmony export */ });
+/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js");
+
+function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+ (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__["default"])(subClass, superClass);
+}
+
+/***/ }),
+
+/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":
+/*!*******************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
+ \*******************************************************************/
+/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ _setPrototypeOf)
+/* harmony export */ });
+function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+}
+
/***/ })
-/******/ });
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/compat get default export */
+/******/ (() => {
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = (module) => {
+/******/ var getter = module && module.__esModule ?
+/******/ () => (module['default']) :
+/******/ () => (module);
+/******/ __webpack_require__.d(getter, { a: getter });
+/******/ return getter;
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/define property getters */
+/******/ (() => {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = (exports, definition) => {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ (() => {
+/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
+/******/ })();
+/******/
+/******/ /* webpack/runtime/make namespace object */
+/******/ (() => {
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = (exports) => {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/ })();
+/******/
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be in strict mode.
+(() => {
+"use strict";
+/*!******************!*\
+ !*** ./forum.js ***!
+ \******************/
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ AddLocationComponent: () => (/* reexport safe */ _src_forum__WEBPACK_IMPORTED_MODULE_0__.AddLocationComponent)
+/* harmony export */ });
+/* harmony import */ var _src_forum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/forum */ "./src/forum/index.js");
+
+})();
+
+module.exports = __webpack_exports__;
+/******/ })()
+;
//# sourceMappingURL=forum.js.map
\ No newline at end of file
diff --git a/js/dist/forum.js.map b/js/dist/forum.js.map
index efc31d6..77898ec 100644
--- a/js/dist/forum.js.map
+++ b/js/dist/forum.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://@justoverclock/users-map-location/webpack/bootstrap","webpack://@justoverclock/users-map-location/./forum.js","webpack://@justoverclock/users-map-location/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@justoverclock/users-map-location/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@justoverclock/users-map-location/../src/core/Util.js","webpack://@justoverclock/users-map-location/../src/core/Class.js","webpack://@justoverclock/users-map-location/../src/core/Events.js","webpack://@justoverclock/users-map-location/../src/geometry/Point.js","webpack://@justoverclock/users-map-location/../src/geometry/Bounds.js","webpack://@justoverclock/users-map-location/../src/geo/LatLngBounds.js","webpack://@justoverclock/users-map-location/../src/geo/LatLng.js","webpack://@justoverclock/users-map-location/../src/geo/crs/CRS.js","webpack://@justoverclock/users-map-location/../src/geo/crs/CRS.Earth.js","webpack://@justoverclock/users-map-location/../src/geo/projection/Projection.SphericalMercator.js","webpack://@justoverclock/users-map-location/../src/geometry/Transformation.js","webpack://@justoverclock/users-map-location/../src/geo/crs/CRS.EPSG3857.js","webpack://@justoverclock/users-map-location/../src/layer/vector/SVG.Util.js","webpack://@justoverclock/users-map-location/../src/core/Browser.js","webpack://@justoverclock/users-map-location/../src/dom/DomEvent.Pointer.js","webpack://@justoverclock/users-map-location/../src/dom/DomEvent.DoubleTap.js","webpack://@justoverclock/users-map-location/../src/dom/DomUtil.js","webpack://@justoverclock/users-map-location/../src/dom/DomEvent.js","webpack://@justoverclock/users-map-location/../src/dom/PosAnimation.js","webpack://@justoverclock/users-map-location/../src/map/Map.js","webpack://@justoverclock/users-map-location/../src/control/Control.js","webpack://@justoverclock/users-map-location/../src/control/Control.Layers.js","webpack://@justoverclock/users-map-location/../src/control/Control.Zoom.js","webpack://@justoverclock/users-map-location/../src/control/Control.Scale.js","webpack://@justoverclock/users-map-location/../src/control/Control.Attribution.js","webpack://@justoverclock/users-map-location/../src/control/index.js","webpack://@justoverclock/users-map-location/../src/core/Handler.js","webpack://@justoverclock/users-map-location/../src/core/index.js","webpack://@justoverclock/users-map-location/../src/dom/Draggable.js","webpack://@justoverclock/users-map-location/../src/geometry/LineUtil.js","webpack://@justoverclock/users-map-location/../src/geometry/PolyUtil.js","webpack://@justoverclock/users-map-location/../src/geo/projection/Projection.LonLat.js","webpack://@justoverclock/users-map-location/../src/geo/projection/Projection.Mercator.js","webpack://@justoverclock/users-map-location/../src/geo/projection/index.js","webpack://@justoverclock/users-map-location/../src/geo/crs/CRS.EPSG3395.js","webpack://@justoverclock/users-map-location/../src/geo/crs/CRS.EPSG4326.js","webpack://@justoverclock/users-map-location/../src/geo/crs/CRS.Simple.js","webpack://@justoverclock/users-map-location/../src/geo/crs/index.js","webpack://@justoverclock/users-map-location/../src/layer/Layer.js","webpack://@justoverclock/users-map-location/../src/layer/LayerGroup.js","webpack://@justoverclock/users-map-location/../src/layer/FeatureGroup.js","webpack://@justoverclock/users-map-location/../src/layer/marker/Icon.js","webpack://@justoverclock/users-map-location/../src/layer/marker/Icon.Default.js","webpack://@justoverclock/users-map-location/../src/layer/marker/Marker.Drag.js","webpack://@justoverclock/users-map-location/../src/layer/marker/Marker.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Path.js","webpack://@justoverclock/users-map-location/../src/layer/vector/CircleMarker.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Circle.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Polyline.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Polygon.js","webpack://@justoverclock/users-map-location/../src/layer/GeoJSON.js","webpack://@justoverclock/users-map-location/../src/layer/ImageOverlay.js","webpack://@justoverclock/users-map-location/../src/layer/VideoOverlay.js","webpack://@justoverclock/users-map-location/../src/layer/SVGOverlay.js","webpack://@justoverclock/users-map-location/../src/layer/DivOverlay.js","webpack://@justoverclock/users-map-location/../src/layer/Popup.js","webpack://@justoverclock/users-map-location/../src/layer/Tooltip.js","webpack://@justoverclock/users-map-location/../src/layer/marker/DivIcon.js","webpack://@justoverclock/users-map-location/../src/layer/marker/index.js","webpack://@justoverclock/users-map-location/../src/layer/tile/GridLayer.js","webpack://@justoverclock/users-map-location/../src/layer/tile/TileLayer.js","webpack://@justoverclock/users-map-location/../src/layer/tile/TileLayer.WMS.js","webpack://@justoverclock/users-map-location/../src/layer/tile/index.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Renderer.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Canvas.js","webpack://@justoverclock/users-map-location/../src/layer/vector/SVG.VML.js","webpack://@justoverclock/users-map-location/../src/layer/vector/SVG.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Renderer.getRenderer.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Rectangle.js","webpack://@justoverclock/users-map-location/../src/layer/vector/index.js","webpack://@justoverclock/users-map-location/../src/layer/index.js","webpack://@justoverclock/users-map-location/../src/map/handler/Map.BoxZoom.js","webpack://@justoverclock/users-map-location/../src/map/handler/Map.DoubleClickZoom.js","webpack://@justoverclock/users-map-location/../src/map/handler/Map.Drag.js","webpack://@justoverclock/users-map-location/../src/map/handler/Map.Keyboard.js","webpack://@justoverclock/users-map-location/../src/map/handler/Map.ScrollWheelZoom.js","webpack://@justoverclock/users-map-location/../src/map/handler/Map.Tap.js","webpack://@justoverclock/users-map-location/../src/map/handler/Map.TouchZoom.js","webpack://@justoverclock/users-map-location/../src/map/index.js","webpack://@justoverclock/users-map-location/./src/forum/components/AddLocationComponent.js","webpack://@justoverclock/users-map-location/./src/forum/components/GlobalMapPage.tsx","webpack://@justoverclock/users-map-location/./src/forum/index.js","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['Component']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['common/Model']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['common/components/Link']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['common/components/Page']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['common/components/Switch']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['common/extend']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['common/models/User']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['forum/app']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['forum/components/HeaderPrimary']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['forum/components/SettingsPage']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['forum/components/UserCard']\""],"names":["_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","setPrototypeOf","_setPrototypeOf","o","p","__proto__","extend","dest","i","j","len","src","arguments","length","F","proto","bind","fn","obj","slice","Array","apply","call","args","concat","lastId","stamp","_leaflet_id","throttle","time","context","lock","wrapperFn","later","setTimeout","wrapNum","x","range","includeMax","max","min","d","falseFn","formatNum","num","digits","pow","Math","undefined","round","trim","str","replace","splitWords","split","setOptions","options","hasOwnProperty","getParamString","existingUrl","uppercase","params","push","encodeURIComponent","toUpperCase","indexOf","join","templateRe","template","data","key","value","Error","isArray","toString","array","el","emptyImageUrl","getPrefixed","name","window","lastTime","timeoutDefer","Date","timeToCall","requestFn","requestAnimationFrame","cancelFn","cancelAnimationFrame","id","clearTimeout","requestAnimFrame","immediate","cancelAnimFrame","Class","props","NewClass","initialize","callInitHooks","parentProto","__super__","Util.create","statics","Util.extend","includes","checkDeprecatedMixinEvents","_initHooks","_initHooksCalled","include","mergeOptions","addInitHook","init","L","Mixin","Util.isArray","Events","console","warn","stack","on","types","type","_on","Util.splitWords","off","_events","_off","typeListeners","newListener","ctx","listeners","Util.falseFn","l","_firingCount","splice","fire","propagate","listens","event","target","sourceTarget","_propagateEvent","_eventParents","once","handler","Util.bind","addEventParent","Util.stamp","removeEventParent","e","layer","propagatedFrom","addEventListener","removeEventListener","clearAllEventListeners","addOneTimeEventListener","fireEvent","hasEventListeners","Evented","Point","y","trunc","v","floor","ceil","clone","add","point","_add","toPoint","subtract","_subtract","divideBy","_divideBy","multiplyBy","_multiplyBy","scaleBy","unscaleBy","_round","_floor","_ceil","_trunc","distanceTo","sqrt","equals","contains","abs","Bounds","a","b","points","getCenter","getBottomLeft","getTopRight","getTopLeft","getBottomRight","getSize","toBounds","intersects","bounds","min2","max2","xIntersects","yIntersects","overlaps","xOverlaps","yOverlaps","isValid","LatLngBounds","corner1","corner2","latlngs","sw","_southWest","ne","_northEast","sw2","ne2","LatLng","toLatLng","toLatLngBounds","lat","lng","pad","bufferRatio","heightBuffer","widthBuffer","getSouthWest","getNorthEast","getNorthWest","getNorth","getWest","getSouthEast","getSouth","getEast","latIntersects","lngIntersects","latOverlaps","lngOverlaps","toBBoxString","maxMargin","alt","isNaN","margin","precision","Util.formatNum","other","Earth","distance","wrap","wrapLatLng","sizeInMeters","latAccuracy","lngAccuracy","cos","PI","c","lon","CRS","latLngToPoint","latlng","zoom","projectedPoint","projection","project","scale","transformation","_transform","pointToLatLng","untransformedPoint","untransform","unproject","log","LN2","getProjectedBounds","infinite","s","transform","wrapLng","Util.wrapNum","wrapLat","wrapLatLngBounds","center","newCenter","latShift","lngShift","newSw","newNe","R","latlng1","latlng2","rad","lat1","lat2","sinDLat","sin","sinDLon","atan2","earthRadius","SphericalMercator","MAX_LATITUDE","atan","exp","Transformation","_a","_b","_c","_d","toTransformation","EPSG3857","code","EPSG900913","svgCreate","document","createElementNS","pointsToPath","rings","closed","len2","Browser.svg","style","documentElement","ie","ielt9","edge","navigator","webkit","userAgentContains","android","android23","webkitVer","parseInt","exec","userAgent","androidStock","opera","chrome","gecko","safari","phantom","opera12","win","platform","ie3d","webkit3d","WebKitCSSMatrix","gecko3d","any3d","L_DISABLE_3D","mobile","orientation","mobileWebkit","mobileWebkit3d","msPointer","PointerEvent","MSPointerEvent","pointer","touch","L_NO_TOUCH","DocumentTouch","mobileOpera","mobileGecko","retina","devicePixelRatio","screen","deviceXDPI","logicalXDPI","passiveEvents","supportsPassiveOption","opts","defineProperty","get","canvas","createElement","getContext","svg","createSVGRect","vml","div","innerHTML","shape","firstChild","behavior","adj","toLowerCase","POINTER_DOWN","Browser.msPointer","POINTER_MOVE","POINTER_UP","POINTER_CANCEL","_pointers","_pointerDocListener","addPointerListener","_addPointerStart","_addPointerMove","_addPointerEnd","removePointerListener","onDown","MSPOINTER_TYPE_TOUCH","pointerType","DomEvent.preventDefault","_handlePointer","_globalPointerDown","_globalPointerMove","_globalPointerUp","pointerId","touches","changedTouches","onMove","MSPOINTER_TYPE_MOUSE","buttons","onUp","_touchstart","Browser.pointer","_touchend","_pre","addDoubleTapListener","last","doubleTap","delay","onTouchStart","isPrimary","now","delta","onTouchEnd","cancelBubble","newTouch","prop","button","Browser.passiveEvents","passive","removeDoubleTapListener","touchstart","touchend","dblclick","TRANSFORM","testProp","TRANSITION","TRANSITION_END","getElementById","getStyle","currentStyle","defaultView","css","getComputedStyle","tagName","className","container","appendChild","remove","parent","parentNode","removeChild","empty","toFront","lastChild","toBack","insertBefore","hasClass","classList","getClass","RegExp","test","addClass","classes","setClass","removeClass","Util.trim","baseVal","correspondingElement","setOpacity","opacity","_setOpacityIE","filter","filterName","filters","item","Enabled","Opacity","setTransform","offset","pos","Browser.ie3d","setPosition","_leaflet_pos","Browser.any3d","left","top","getPosition","disableTextSelection","enableTextSelection","_userSelect","DomEvent.on","DomEvent.off","userSelectProperty","disableImageDrag","enableImageDrag","_outlineElement","_outlineStyle","preventOutline","element","tabIndex","restoreOutline","outline","getSizedParentNode","offsetWidth","offsetHeight","body","getScale","rect","getBoundingClientRect","width","height","boundingClientRect","addOne","eventsKey","removeOne","browserFiresNativeDblClick","Browser.edge","Browser.safari","mouseSubst","mouseenter","mouseleave","wheel","originalHandler","Browser.touch","isExternalTarget","attachEvent","detachEvent","stopPropagation","originalEvent","_stopped","skipped","disableScrollPropagation","disableClickPropagation","fakeStop","preventDefault","returnValue","stop","getMousePosition","clientX","clientY","clientLeft","clientTop","wheelPxFactor","Browser.win","Browser.chrome","Browser.gecko","getWheelDelta","wheelDeltaY","deltaY","deltaMode","deltaX","deltaZ","wheelDelta","detail","skipEvents","events","related","relatedTarget","err","PosAnimation","run","newPos","duration","easeLinearity","_el","_inProgress","_duration","_easeOutPower","_startPos","DomUtil.getPosition","_offset","_startTime","_animate","_step","_complete","_animId","Util.requestAnimFrame","elapsed","_runFrame","_easeOut","progress","DomUtil.setPosition","Util.cancelAnimFrame","t","Map","crs","minZoom","maxZoom","layers","maxBounds","renderer","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","transform3DLimit","zoomSnap","zoomDelta","trackResize","Util.setOptions","_handlers","_layers","_zoomBoundLayers","_sizeChanged","_initContainer","_initLayout","_onResize","_initEvents","setMaxBounds","_zoom","_limitZoom","setView","reset","_zoomAnimated","DomUtil.TRANSITION","Browser.mobileOpera","_createAnimProxy","_proxy","DomUtil.TRANSITION_END","_catchTransitionEnd","_addLayers","_limitCenter","_stop","_loaded","animate","pan","moved","_tryAnimatedZoom","_tryAnimatedPan","_sizeTimer","_resetView","setZoom","zoomIn","zoomOut","setZoomAround","getZoomScale","viewHalf","containerPoint","latLngToContainerPoint","centerOffset","containerPointToLatLng","_getBoundsCenterZoom","getBounds","paddingTL","paddingTopLeft","padding","paddingBR","paddingBottomRight","getBoundsZoom","Infinity","paddingOffset","swPoint","nePoint","fitBounds","fitWorld","panTo","panBy","getZoom","_panAnim","_onPanTransitionStep","_onPanTransitionEnd","noMoveStart","DomUtil.addClass","_mapPane","_getMapPanePos","_rawPanBy","flyTo","targetCenter","targetZoom","from","to","size","startZoom","w0","w1","u1","rho","rho2","r","s1","s2","t1","b1","sq","sinh","n","cosh","tanh","r0","w","u","easeOut","start","S","frame","_flyToFrame","_move","getScaleZoom","_moveEnd","_moveStart","flyToBounds","_panInsideMaxBounds","setMinZoom","oldZoom","setMaxZoom","panInsideBounds","_enforcingBounds","panInside","pixelCenter","pixelPoint","pixelBounds","getPixelBounds","halfPixelBounds","paddedBounds","diff","invalidateSize","oldSize","_lastCenter","newSize","oldCenter","debounceMoveend","locate","_locateOptions","timeout","watch","_handleGeolocationError","message","onResponse","_handleGeolocationResponse","onError","_locationWatchId","geolocation","watchPosition","getCurrentPosition","stopLocate","clearWatch","error","coords","latitude","longitude","accuracy","timestamp","addHandler","HandlerClass","enable","_containerId","_container","DomUtil.remove","_clearControlPos","_resizeRequest","_clearHandlers","_panes","_renderer","createPane","pane","DomUtil.create","_checkIfLoaded","_moved","layerPointToLatLng","_getCenterLayerPoint","getMinZoom","_layersMinZoom","getMaxZoom","_layersMaxZoom","inside","nw","se","boundsSize","snap","scalex","scaley","_size","clientWidth","clientHeight","topLeftPoint","_getTopLeftPoint","getPixelOrigin","_pixelOrigin","getPixelWorldBounds","getPane","getPanes","getContainer","toZoom","fromZoom","latLngToLayerPoint","containerPointToLayerPoint","layerPointToContainerPoint","layerPoint","mouseEventToContainerPoint","DomEvent.getMousePosition","mouseEventToLayerPoint","mouseEventToLatLng","DomUtil.get","_onScroll","_fadeAnimated","Browser.retina","Browser.ielt9","position","DomUtil.getStyle","_initPanes","_initControlPos","panes","_paneRenderers","markerPane","shadowPane","loading","zoomChanged","_getNewPixelOrigin","pinch","_getZoomSpan","_targets","onOff","_handleDOMEvent","_onMoveEnd","scrollTop","scrollLeft","_findEventTargets","targets","isHover","srcElement","dragging","_simulated","_draggableMoved","DomEvent.isExternalTarget","DomEvent.skipped","DomUtil.preventOutline","_fireDOMEvent","_mouseEvents","synth","isMarker","getLatLng","_radius","bubblingMouseEvents","Util.indexOf","enabled","boxZoom","disable","whenReady","callback","pixelOrigin","_latLngToNewLayerPoint","topLeft","_latLngBoundsToNewLayerBounds","latLngBounds","_getCenterOffset","centerPoint","viewBounds","_getBoundsOffset","_limitOffset","newBounds","pxBounds","projectedMaxBounds","minOffset","maxOffset","dx","_rebound","dy","right","DomUtil.removeClass","proxy","mapPane","DomUtil.TRANSFORM","DomUtil.setTransform","_animatingZoom","_onZoomTransitionEnd","_animMoveEnd","_destroyAnimProxy","z","propertyName","_nothingToAnimate","getElementsByClassName","_animateZoom","startAnim","noUpdate","_animateToCenter","_animateToZoom","createMap","Control","map","_map","removeControl","addControl","addTo","onAdd","corner","_controlCorners","onRemove","_refocusOnMap","screenX","screenY","focus","control","corners","_controlContainer","createCorner","vSide","hSide","Layers","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","layerA","layerB","nameA","nameB","baseLayers","overlays","_layerControlInputs","_lastZIndex","_handlingClick","_addLayer","_update","_checkDisabledLayers","_onLayerChange","_expandIfNotCollapsed","addBaseLayer","addOverlay","removeLayer","_getLayer","expand","_section","acceptableHeight","offsetTop","collapse","setAttribute","DomEvent.disableClickPropagation","DomEvent.disableScrollPropagation","section","Browser.android","link","_layersLink","href","title","DomEvent.stop","_baseLayersList","_separator","_overlaysList","overlay","sort","setZIndex","DomUtil.empty","baseLayersPresent","overlaysPresent","baseLayersCount","_addItem","display","_createRadioElement","checked","radioHtml","radioFragment","label","hasLayer","input","defaultChecked","layerId","_onInputClick","holder","inputs","addedLayers","removedLayers","addLayer","disabled","_expand","_collapse","Zoom","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","zoomName","_zoomInButton","_createButton","_zoomIn","_zoomOutButton","_zoomOut","_updateDisabled","_disabled","shiftKey","html","zoomControl","Scale","maxWidth","metric","imperial","_addScales","updateWhenIdle","_mScale","_iScale","maxMeters","_updateScales","_updateMetric","_updateImperial","meters","_getRoundNum","_updateScale","maxFeet","maxMiles","miles","feet","text","ratio","pow10","Attribution","prefix","_attributions","attributionControl","getAttribution","addAttribution","setPrefix","removeAttribution","attribs","prefixAndAttribs","attribution","Handler","_enabled","addHooks","removeHooks","START","END","mousedown","pointerdown","MSPointerDown","MOVE","Draggable","clickTolerance","dragStartTarget","_element","_dragStartTarget","_preventOutline","_onDown","_dragging","finishDrag","DomUtil.hasClass","which","DomUtil.disableImageDrag","DomUtil.disableTextSelection","_moving","first","sizedParent","DomUtil.getSizedParentNode","_startPoint","_parentScale","DomUtil.getScale","_onMove","_onUp","_lastTarget","SVGElementInstance","correspondingUseElement","_newPos","_animRequest","_lastEvent","_updatePosition","DomUtil.enableImageDrag","DomUtil.enableTextSelection","simplify","tolerance","sqTolerance","_reducePoints","_simplifyDP","pointToSegmentDistance","p1","p2","_sqClosestPointOnSegment","closestPointOnSegment","ArrayConstructor","Uint8Array","markers","_simplifyDPStep","newPoints","maxSqDist","index","sqDist","reducedPoints","prev","_sqDist","_lastCode","clipSegment","useLastCode","codeA","_getBitCode","codeB","codeOut","newCode","_getEdgeIntersection","dot","isFlat","_flat","clipPolygon","clippedPoints","edges","k","_code","LineUtil._getBitCode","LineUtil._getEdgeIntersection","LonLat","Mercator","R_MINOR","tmp","con","ts","tan","phi","dphi","EPSG3395","EPSG4326","Simple","Layer","removeFrom","_mapToAdd","addInteractiveTarget","targetEl","removeInteractiveTarget","_layerAdd","getEvents","beforeAdd","eachLayer","method","_addZoomLimit","_updateZoomLevels","_removeZoomLimit","oldZoomSpan","LayerGroup","getLayerId","clearLayers","invoke","methodName","getLayer","getLayers","zIndex","layerGroup","FeatureGroup","setStyle","bringToFront","bringToBack","featureGroup","Icon","popupAnchor","tooltipAnchor","createIcon","oldIcon","_createIcon","createShadow","_getIconUrl","img","_createImg","_setIconStyles","sizeOption","anchor","shadowAnchor","iconAnchor","marginLeft","marginTop","icon","IconDefault","iconUrl","iconRetinaUrl","shadowUrl","iconSize","shadowSize","imagePath","_detectIconPath","path","MarkerDrag","marker","_marker","_icon","_draggable","dragstart","_onDragStart","predrag","_onPreDrag","drag","_onDrag","dragend","_onDragEnd","_adjustPan","speed","autoPanSpeed","autoPanPadding","iconPos","origin","panBounds","movement","_panRequest","_oldLatLng","closePopup","autoPan","shadow","_shadow","_latlng","oldLatLng","Marker","interactive","keyboard","zIndexOffset","riseOnHover","riseOffset","draggable","latLng","_initIcon","update","_removeIcon","_removeShadow","viewreset","setLatLng","setZIndexOffset","getIcon","setIcon","_popup","bindPopup","getElement","_setPos","classToAdd","addIcon","mouseover","_bringToFront","mouseout","_resetZIndex","newShadow","addShadow","_updateOpacity","_initInteraction","_zIndex","_updateZIndex","opt","DomUtil.setOpacity","_getPopupAnchor","_getTooltipAnchor","Path","stroke","color","weight","lineCap","lineJoin","dashArray","dashOffset","fill","fillColor","fillOpacity","fillRule","getRenderer","_initPath","_reset","_addPath","_removePath","redraw","_updatePath","_updateStyle","_updateBounds","_bringToBack","_path","_project","_clickTolerance","CircleMarker","radius","setRadius","getRadius","_point","r2","_radiusY","_pxBounds","_updateCircle","_empty","_bounds","_containsPoint","circleMarker","Circle","legacyOptions","_mRadius","half","latR","bottom","lngR","acos","circle","Polyline","smoothFactor","noClip","_setLatLngs","getLatLngs","_latlngs","setLatLngs","isEmpty","closestLayerPoint","minDistance","minPoint","closest","LineUtil._sqClosestPointOnSegment","jLen","_parts","halfDist","segDist","dist","_rings","addLatLng","_defaultShape","_convertLatLngs","LineUtil.isFlat","result","flat","_projectLatlngs","_rawPxBounds","projectedBounds","ring","_clipPoints","parts","segment","LineUtil.clipSegment","_simplifyPoints","LineUtil.simplify","_updatePoly","part","LineUtil.pointToSegmentDistance","polyline","LineUtil._flat","Polygon","f","area","pop","clipped","PolyUtil.clipPolygon","polygon","GeoJSON","geojson","addData","features","feature","geometries","geometry","coordinates","geometryToLayer","asFeature","defaultOptions","resetStyle","onEachFeature","_setLayerStyle","pointToLayer","_coordsToLatLng","coordsToLatLng","_pointToLayer","coordsToLatLngs","properties","pointToLayerFn","markersInheritOptions","levelsDeep","latLngToCoords","latLngsToCoords","getFeature","newGeometry","PointToGeoJSON","toGeoJSON","multi","holes","toMultiPoint","isGeometryCollection","jsons","json","geoJSON","geoJson","ImageOverlay","crossOrigin","errorOverlayUrl","url","_url","_image","_initImage","styleOpts","DomUtil.toFront","DomUtil.toBack","setUrl","setBounds","zoomanim","wasElementSupplied","onselectstart","onmousemove","onload","onerror","_overlayOnError","image","errorUrl","imageOverlay","VideoOverlay","autoplay","loop","keepAspectRatio","muted","vid","onloadeddata","sourceElements","getElementsByTagName","sources","source","videoOverlay","video","SVGOverlay","svgOverlay","DivOverlay","_source","_removeTimeout","getContent","_content","setContent","content","visibility","_updateContent","_updateLayout","isOpen","_prepareOpen","node","_contentNode","hasChildNodes","_getAnchor","_containerBottom","_containerLeft","_containerWidth","Popup","minWidth","maxHeight","autoPanPaddingTopLeft","autoPanPaddingBottomRight","keepInView","closeButton","autoClose","closeOnEscapeKey","openOn","openPopup","popup","DomEvent.stopPropagation","closeOnClick","closePopupOnClick","preclick","_close","moveend","wrapper","_wrapper","_tipContainer","_tip","_closeButton","_onCloseButtonClick","whiteSpace","scrolledClass","marginBottom","containerHeight","containerWidth","layerPos","containerPos","_popupHandlersAdded","click","_openPopup","keypress","_onKeyPress","move","_movePopup","unbindPopup","togglePopup","isPopupOpen","setPopupContent","getPopup","keyCode","Tooltip","direction","permanent","sticky","tooltip","closeTooltip","_setPosition","subX","subY","tooltipPoint","tooltipWidth","tooltipHeight","openTooltip","bindTooltip","_tooltip","_initTooltipInteractions","unbindTooltip","_tooltipHandlersAdded","_moveTooltip","_openTooltip","mousemove","toggleTooltip","isTooltipOpen","setTooltipContent","getTooltip","DivIcon","bgPos","Element","backgroundPosition","divIcon","Default","GridLayer","tileSize","Browser.mobile","updateWhenZooming","updateInterval","maxNativeZoom","minNativeZoom","noWrap","keepBuffer","_levels","_tiles","_removeAllTiles","_tileZoom","_setAutoZIndex","isLoading","_loading","viewprereset","_invalidateAll","Util.throttle","createTile","getTileSize","compare","children","edgeZIndex","isFinite","nextFrame","willPrune","tile","current","loaded","fade","active","_onOpaqueTile","_noPrune","_pruneTiles","_fadeFrame","_updateLevels","Number","_onUpdateLevel","_removeTilesAtZoom","_onRemoveLevel","level","_setZoomTransform","_onCreateLevel","_level","retain","_retainParent","_retainChildren","_removeTile","x2","y2","z2","coords2","_tileCoordsToKey","animating","_setView","_clampZoom","noPrune","tileZoom","tileZoomChanged","_abortLoading","_resetGrid","_setZoomTransforms","translate","_tileSize","_globalTileRange","_pxBoundsToTileRange","_wrapX","_wrapY","_getTiledPixelBounds","mapZoom","halfSize","tileRange","tileCenter","queue","noPruneRange","_isValidTile","fragment","createDocumentFragment","_addTile","tileBounds","_tileCoordsToBounds","_keyToBounds","_keyToTileCoords","_tileCoordsToNwSe","nwPoint","sePoint","bp","_initTile","Browser.android23","WebkitBackfaceVisibility","tilePos","_getTilePos","_wrapCoords","_tileReady","_noTilesToLoad","newCoords","gridLayer","TileLayer","subdomains","errorTileUrl","zoomOffset","tms","zoomReverse","detectRetina","_onTileRemove","noRedraw","done","_tileOnLoad","_tileOnError","getTileUrl","_getSubdomain","_getZoomForUrl","invertedY","Util.template","getAttribute","tilePoint","complete","Util.emptyImageUrl","Browser.androidStock","tileLayer","TileLayerWMS","defaultWmsParams","service","request","styles","format","transparent","version","wmsParams","realRetina","_crs","_wmsVersion","parseFloat","projectionKey","bbox","setParams","tileLayerWMS","WMS","wms","Renderer","_updatePaths","_destroyContainer","_onZoom","zoomend","_onZoomEnd","_onAnimZoom","ev","_updateTransform","currentCenterPoint","_center","destCenterPoint","topLeftOffset","Canvas","_onViewPreReset","_postponeUpdatePaths","_draw","_onMouseMove","_onClick","_handleMouseOut","_ctx","_redrawRequest","_redrawBounds","_redraw","m","_updateDashArray","order","_order","_drawLast","next","_drawFirst","_requestRedraw","_extendRedrawBounds","dashValue","_dashArray","_clear","clearRect","save","restore","beginPath","clip","_drawing","closePath","_fillStroke","arc","globalAlpha","fillStyle","setLineDash","lineWidth","strokeStyle","clickedLayer","DomEvent.fakeStop","_fireEvent","moving","_handleMouseHover","_hoveredLayer","_mouseHoverThrottled","candidateHoveredLayer","Browser.canvas","vmlCreate","namespaces","vmlMixin","coordsize","_stroke","_fill","stroked","filled","dashStyle","endcap","joinstyle","_setPath","Browser.vml","SVG","zoomstart","_onZoomStart","_rootGroup","_svgSize","removeAttribute","_getPaneRenderer","_createRenderer","preferCanvas","Rectangle","_boundsToLatLngs","rectangle","BoxZoom","_pane","overlayPane","_resetStateTimeout","_destroy","_onMouseDown","_resetState","_clearDeferredResetState","contextmenu","mouseup","_onMouseUp","keydown","_onKeyDown","_box","_finish","boxZoomBounds","doubleClickZoom","DoubleClickZoom","_onDoubleClick","inertia","inertiaDeceleration","inertiaMaxSpeed","worldCopyJump","maxBoundsViscosity","Drag","_onPreDragLimit","_onPreDragWrap","_positions","_times","_offsetLimit","_viscosity","_lastTime","_lastPos","_absPos","_prunePositions","shift","pxCenter","pxWorldCenter","_initialWorldOffset","_worldWidth","_viscousLimit","threshold","limit","worldWidth","halfWidth","newX1","newX2","newX","noInertia","ease","speedVector","limitedSpeed","limitedSpeedVector","decelerationDuration","keyboardPanDelta","Keyboard","keyCodes","down","up","_setPanDelta","_setZoomDelta","_onFocus","blur","_onBlur","_addHooks","_removeHooks","_focused","docEl","scrollTo","panDelta","keys","_panKeys","codes","_zoomKeys","altKey","ctrlKey","metaKey","scrollWheelZoom","wheelDebounceTime","wheelPxPerZoomLevel","ScrollWheelZoom","_onWheelScroll","_delta","DomEvent.getWheelDelta","debounce","_lastMousePos","_timer","_performZoom","d2","d3","d4","tap","tapTolerance","Tap","_fireClick","_holdTimeout","_isTapValid","_simulateEvent","touchmove","simulatedEvent","createEvent","_simulatedClick","initMouseEvent","dispatchEvent","touchZoom","bounceAtZoomLimits","TouchZoom","_onTouchStart","_zooming","_centerPoint","_startLatLng","_pinchStartLatLng","_startDist","_startZoom","_onTouchMove","_onTouchEnd","moveFn","AddLocationComponent","oninit","vnode","search_country","app","session","user","location_country","search_city","location_postcode","location_city","location","location_latitude","location_longitude","enableLocation","locationMarker","view","translator","trans","val","setEnableLocation","countryChanged","cityChanged","oncreate","onupdate","dom","mapElements","mapElement","publicToken","forum","attribute","markerIconPath","markerIcon","edgeBufferTiles","accessToken","updateMap","attributes","location_countrycode","then","alerts","show","postcodeRegexps","postcode","city","postcodeReIdx","postcodeRe","mode","re","match","encodeURI","query","fetch","responseText","response","foundResult","idx","address","country","country_code","village","town","administrative","Component","GlobalMapPage","setTitle","Page","initializers","User","Model","routes","component","UserCard","items","attrs","originalResult","script","head","layerUserCard","onMapResized","ResizeObserver","observe","SettingsPage","HeaderPrimary","homeLink","globalMapLink","parentElement","append","render"],"mappings":"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","file":"forum.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./forum.js\");\n","export * from './src/forum';\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","/*\r\n * @namespace Util\r\n *\r\n * Various utility functions, used by Leaflet internally.\r\n */\r\n\r\n// @function extend(dest: Object, src?: Object): Object\r\n// Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut.\r\nexport function extend(dest) {\r\n\tvar i, j, len, src;\r\n\r\n\tfor (j = 1, len = arguments.length; j < len; j++) {\r\n\t\tsrc = arguments[j];\r\n\t\tfor (i in src) {\r\n\t\t\tdest[i] = src[i];\r\n\t\t}\r\n\t}\r\n\treturn dest;\r\n}\r\n\r\n// @function create(proto: Object, properties?: Object): Object\r\n// Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create)\r\nexport var create = Object.create || (function () {\r\n\tfunction F() {}\r\n\treturn function (proto) {\r\n\t\tF.prototype = proto;\r\n\t\treturn new F();\r\n\t};\r\n})();\r\n\r\n// @function bind(fn: Function, …): Function\r\n// Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\r\n// Has a `L.bind()` shortcut.\r\nexport function bind(fn, obj) {\r\n\tvar slice = Array.prototype.slice;\r\n\r\n\tif (fn.bind) {\r\n\t\treturn fn.bind.apply(fn, slice.call(arguments, 1));\r\n\t}\r\n\r\n\tvar args = slice.call(arguments, 2);\r\n\r\n\treturn function () {\r\n\t\treturn fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments);\r\n\t};\r\n}\r\n\r\n// @property lastId: Number\r\n// Last unique ID used by [`stamp()`](#util-stamp)\r\nexport var lastId = 0;\r\n\r\n// @function stamp(obj: Object): Number\r\n// Returns the unique ID of an object, assigning it one if it doesn't have it.\r\nexport function stamp(obj) {\r\n\t/*eslint-disable */\r\n\tobj._leaflet_id = obj._leaflet_id || ++lastId;\r\n\treturn obj._leaflet_id;\r\n\t/* eslint-enable */\r\n}\r\n\r\n// @function throttle(fn: Function, time: Number, context: Object): Function\r\n// Returns a function which executes function `fn` with the given scope `context`\r\n// (so that the `this` keyword refers to `context` inside `fn`'s code). The function\r\n// `fn` will be called no more than one time per given amount of `time`. The arguments\r\n// received by the bound function will be any arguments passed when binding the\r\n// function, followed by any arguments passed when invoking the bound function.\r\n// Has an `L.throttle` shortcut.\r\nexport function throttle(fn, time, context) {\r\n\tvar lock, args, wrapperFn, later;\r\n\r\n\tlater = function () {\r\n\t\t// reset lock and call if queued\r\n\t\tlock = false;\r\n\t\tif (args) {\r\n\t\t\twrapperFn.apply(context, args);\r\n\t\t\targs = false;\r\n\t\t}\r\n\t};\r\n\r\n\twrapperFn = function () {\r\n\t\tif (lock) {\r\n\t\t\t// called too soon, queue to call later\r\n\t\t\targs = arguments;\r\n\r\n\t\t} else {\r\n\t\t\t// call and lock until later\r\n\t\t\tfn.apply(context, arguments);\r\n\t\t\tsetTimeout(later, time);\r\n\t\t\tlock = true;\r\n\t\t}\r\n\t};\r\n\r\n\treturn wrapperFn;\r\n}\r\n\r\n// @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number\r\n// Returns the number `num` modulo `range` in such a way so it lies within\r\n// `range[0]` and `range[1]`. The returned value will be always smaller than\r\n// `range[1]` unless `includeMax` is set to `true`.\r\nexport function wrapNum(x, range, includeMax) {\r\n\tvar max = range[1],\r\n\t min = range[0],\r\n\t d = max - min;\r\n\treturn x === max && includeMax ? x : ((x - min) % d + d) % d + min;\r\n}\r\n\r\n// @function falseFn(): Function\r\n// Returns a function which always returns `false`.\r\nexport function falseFn() { return false; }\r\n\r\n// @function formatNum(num: Number, digits?: Number): Number\r\n// Returns the number `num` rounded to `digits` decimals, or to 6 decimals by default.\r\nexport function formatNum(num, digits) {\r\n\tvar pow = Math.pow(10, (digits === undefined ? 6 : digits));\r\n\treturn Math.round(num * pow) / pow;\r\n}\r\n\r\n// @function trim(str: String): String\r\n// Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim)\r\nexport function trim(str) {\r\n\treturn str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\r\n}\r\n\r\n// @function splitWords(str: String): String[]\r\n// Trims and splits the string on whitespace and returns the array of parts.\r\nexport function splitWords(str) {\r\n\treturn trim(str).split(/\\s+/);\r\n}\r\n\r\n// @function setOptions(obj: Object, options: Object): Object\r\n// Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut.\r\nexport function setOptions(obj, options) {\r\n\tif (!Object.prototype.hasOwnProperty.call(obj, 'options')) {\r\n\t\tobj.options = obj.options ? create(obj.options) : {};\r\n\t}\r\n\tfor (var i in options) {\r\n\t\tobj.options[i] = options[i];\r\n\t}\r\n\treturn obj.options;\r\n}\r\n\r\n// @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String\r\n// Converts an object into a parameter URL string, e.g. `{a: \"foo\", b: \"bar\"}`\r\n// translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will\r\n// be appended at the end. If `uppercase` is `true`, the parameter names will\r\n// be uppercased (e.g. `'?A=foo&B=bar'`)\r\nexport function getParamString(obj, existingUrl, uppercase) {\r\n\tvar params = [];\r\n\tfor (var i in obj) {\r\n\t\tparams.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i]));\r\n\t}\r\n\treturn ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');\r\n}\r\n\r\nvar templateRe = /\\{ *([\\w_-]+) *\\}/g;\r\n\r\n// @function template(str: String, data: Object): String\r\n// Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'`\r\n// and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string\r\n// `('Hello foo, bar')`. You can also specify functions instead of strings for\r\n// data values — they will be evaluated passing `data` as an argument.\r\nexport function template(str, data) {\r\n\treturn str.replace(templateRe, function (str, key) {\r\n\t\tvar value = data[key];\r\n\r\n\t\tif (value === undefined) {\r\n\t\t\tthrow new Error('No value provided for variable ' + str);\r\n\r\n\t\t} else if (typeof value === 'function') {\r\n\t\t\tvalue = value(data);\r\n\t\t}\r\n\t\treturn value;\r\n\t});\r\n}\r\n\r\n// @function isArray(obj): Boolean\r\n// Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)\r\nexport var isArray = Array.isArray || function (obj) {\r\n\treturn (Object.prototype.toString.call(obj) === '[object Array]');\r\n};\r\n\r\n// @function indexOf(array: Array, el: Object): Number\r\n// Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)\r\nexport function indexOf(array, el) {\r\n\tfor (var i = 0; i < array.length; i++) {\r\n\t\tif (array[i] === el) { return i; }\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\n// @property emptyImageUrl: String\r\n// Data URI string containing a base64-encoded empty GIF image.\r\n// Used as a hack to free memory from unused images on WebKit-powered\r\n// mobile devices (by setting image `src` to this string).\r\nexport var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\r\n\r\n// inspired by http://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n\r\nfunction getPrefixed(name) {\r\n\treturn window['webkit' + name] || window['moz' + name] || window['ms' + name];\r\n}\r\n\r\nvar lastTime = 0;\r\n\r\n// fallback for IE 7-8\r\nfunction timeoutDefer(fn) {\r\n\tvar time = +new Date(),\r\n\t timeToCall = Math.max(0, 16 - (time - lastTime));\r\n\r\n\tlastTime = time + timeToCall;\r\n\treturn window.setTimeout(fn, timeToCall);\r\n}\r\n\r\nexport var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer;\r\nexport var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') ||\r\n\t\tgetPrefixed('CancelRequestAnimationFrame') || function (id) { window.clearTimeout(id); };\r\n\r\n// @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number\r\n// Schedules `fn` to be executed when the browser repaints. `fn` is bound to\r\n// `context` if given. When `immediate` is set, `fn` is called immediately if\r\n// the browser doesn't have native support for\r\n// [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame),\r\n// otherwise it's delayed. Returns a request ID that can be used to cancel the request.\r\nexport function requestAnimFrame(fn, context, immediate) {\r\n\tif (immediate && requestFn === timeoutDefer) {\r\n\t\tfn.call(context);\r\n\t} else {\r\n\t\treturn requestFn.call(window, bind(fn, context));\r\n\t}\r\n}\r\n\r\n// @function cancelAnimFrame(id: Number): undefined\r\n// Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame).\r\nexport function cancelAnimFrame(id) {\r\n\tif (id) {\r\n\t\tcancelFn.call(window, id);\r\n\t}\r\n}\r\n","import * as Util from './Util';\r\n\r\n// @class Class\r\n// @aka L.Class\r\n\r\n// @section\r\n// @uninheritable\r\n\r\n// Thanks to John Resig and Dean Edwards for inspiration!\r\n\r\nexport function Class() {}\r\n\r\nClass.extend = function (props) {\r\n\r\n\t// @function extend(props: Object): Function\r\n\t// [Extends the current class](#class-inheritance) given the properties to be included.\r\n\t// Returns a Javascript function that is a class constructor (to be called with `new`).\r\n\tvar NewClass = function () {\r\n\r\n\t\t// call the constructor\r\n\t\tif (this.initialize) {\r\n\t\t\tthis.initialize.apply(this, arguments);\r\n\t\t}\r\n\r\n\t\t// call all constructor hooks\r\n\t\tthis.callInitHooks();\r\n\t};\r\n\r\n\tvar parentProto = NewClass.__super__ = this.prototype;\r\n\r\n\tvar proto = Util.create(parentProto);\r\n\tproto.constructor = NewClass;\r\n\r\n\tNewClass.prototype = proto;\r\n\r\n\t// inherit parent's statics\r\n\tfor (var i in this) {\r\n\t\tif (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') {\r\n\t\t\tNewClass[i] = this[i];\r\n\t\t}\r\n\t}\r\n\r\n\t// mix static properties into the class\r\n\tif (props.statics) {\r\n\t\tUtil.extend(NewClass, props.statics);\r\n\t\tdelete props.statics;\r\n\t}\r\n\r\n\t// mix includes into the prototype\r\n\tif (props.includes) {\r\n\t\tcheckDeprecatedMixinEvents(props.includes);\r\n\t\tUtil.extend.apply(null, [proto].concat(props.includes));\r\n\t\tdelete props.includes;\r\n\t}\r\n\r\n\t// merge options\r\n\tif (proto.options) {\r\n\t\tprops.options = Util.extend(Util.create(proto.options), props.options);\r\n\t}\r\n\r\n\t// mix given properties into the prototype\r\n\tUtil.extend(proto, props);\r\n\r\n\tproto._initHooks = [];\r\n\r\n\t// add method for calling all hooks\r\n\tproto.callInitHooks = function () {\r\n\r\n\t\tif (this._initHooksCalled) { return; }\r\n\r\n\t\tif (parentProto.callInitHooks) {\r\n\t\t\tparentProto.callInitHooks.call(this);\r\n\t\t}\r\n\r\n\t\tthis._initHooksCalled = true;\r\n\r\n\t\tfor (var i = 0, len = proto._initHooks.length; i < len; i++) {\r\n\t\t\tproto._initHooks[i].call(this);\r\n\t\t}\r\n\t};\r\n\r\n\treturn NewClass;\r\n};\r\n\r\n\r\n// @function include(properties: Object): this\r\n// [Includes a mixin](#class-includes) into the current class.\r\nClass.include = function (props) {\r\n\tUtil.extend(this.prototype, props);\r\n\treturn this;\r\n};\r\n\r\n// @function mergeOptions(options: Object): this\r\n// [Merges `options`](#class-options) into the defaults of the class.\r\nClass.mergeOptions = function (options) {\r\n\tUtil.extend(this.prototype.options, options);\r\n\treturn this;\r\n};\r\n\r\n// @function addInitHook(fn: Function): this\r\n// Adds a [constructor hook](#class-constructor-hooks) to the class.\r\nClass.addInitHook = function (fn) { // (Function) || (String, args...)\r\n\tvar args = Array.prototype.slice.call(arguments, 1);\r\n\r\n\tvar init = typeof fn === 'function' ? fn : function () {\r\n\t\tthis[fn].apply(this, args);\r\n\t};\r\n\r\n\tthis.prototype._initHooks = this.prototype._initHooks || [];\r\n\tthis.prototype._initHooks.push(init);\r\n\treturn this;\r\n};\r\n\r\nfunction checkDeprecatedMixinEvents(includes) {\r\n\tif (typeof L === 'undefined' || !L || !L.Mixin) { return; }\r\n\r\n\tincludes = Util.isArray(includes) ? includes : [includes];\r\n\r\n\tfor (var i = 0; i < includes.length; i++) {\r\n\t\tif (includes[i] === L.Mixin.Events) {\r\n\t\t\tconsole.warn('Deprecated include of L.Mixin.Events: ' +\r\n\t\t\t\t'this property will be removed in future releases, ' +\r\n\t\t\t\t'please inherit from L.Evented instead.', new Error().stack);\r\n\t\t}\r\n\t}\r\n}\r\n","import {Class} from './Class';\r\nimport * as Util from './Util';\r\n\r\n/*\r\n * @class Evented\r\n * @aka L.Evented\r\n * @inherits Class\r\n *\r\n * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event).\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * map.on('click', function(e) {\r\n * \talert(e.latlng);\r\n * } );\r\n * ```\r\n *\r\n * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function:\r\n *\r\n * ```js\r\n * function onClick(e) { ... }\r\n *\r\n * map.on('click', onClick);\r\n * map.off('click', onClick);\r\n * ```\r\n */\r\n\r\nexport var Events = {\r\n\t/* @method on(type: String, fn: Function, context?: Object): this\r\n\t * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`).\r\n\t *\r\n\t * @alternative\r\n\t * @method on(eventMap: Object): this\r\n\t * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n\t */\r\n\ton: function (types, fn, context) {\r\n\r\n\t\t// types can be a map of types/handlers\r\n\t\tif (typeof types === 'object') {\r\n\t\t\tfor (var type in types) {\r\n\t\t\t\t// we don't process space-separated events here for performance;\r\n\t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n\t\t\t\tthis._on(type, types[type], fn);\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\t// types can be a string of space-separated words\r\n\t\t\ttypes = Util.splitWords(types);\r\n\r\n\t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n\t\t\t\tthis._on(types[i], fn, context);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t/* @method off(type: String, fn?: Function, context?: Object): this\r\n\t * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener.\r\n\t *\r\n\t * @alternative\r\n\t * @method off(eventMap: Object): this\r\n\t * Removes a set of type/listener pairs.\r\n\t *\r\n\t * @alternative\r\n\t * @method off: this\r\n\t * Removes all listeners to all events on the object. This includes implicitly attached events.\r\n\t */\r\n\toff: function (types, fn, context) {\r\n\r\n\t\tif (!types) {\r\n\t\t\t// clear all listeners if called without arguments\r\n\t\t\tdelete this._events;\r\n\r\n\t\t} else if (typeof types === 'object') {\r\n\t\t\tfor (var type in types) {\r\n\t\t\t\tthis._off(type, types[type], fn);\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\ttypes = Util.splitWords(types);\r\n\r\n\t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n\t\t\t\tthis._off(types[i], fn, context);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// attach listener (without syntactic sugar now)\r\n\t_on: function (type, fn, context) {\r\n\t\tthis._events = this._events || {};\r\n\r\n\t\t/* get/init listeners for type */\r\n\t\tvar typeListeners = this._events[type];\r\n\t\tif (!typeListeners) {\r\n\t\t\ttypeListeners = [];\r\n\t\t\tthis._events[type] = typeListeners;\r\n\t\t}\r\n\r\n\t\tif (context === this) {\r\n\t\t\t// Less memory footprint.\r\n\t\t\tcontext = undefined;\r\n\t\t}\r\n\t\tvar newListener = {fn: fn, ctx: context},\r\n\t\t listeners = typeListeners;\r\n\r\n\t\t// check if fn already there\r\n\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\tif (listeners[i].fn === fn && listeners[i].ctx === context) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlisteners.push(newListener);\r\n\t},\r\n\r\n\t_off: function (type, fn, context) {\r\n\t\tvar listeners,\r\n\t\t i,\r\n\t\t len;\r\n\r\n\t\tif (!this._events) { return; }\r\n\r\n\t\tlisteners = this._events[type];\r\n\r\n\t\tif (!listeners) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!fn) {\r\n\t\t\t// Set all removed listeners to noop so they are not called if remove happens in fire\r\n\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\t\tlisteners[i].fn = Util.falseFn;\r\n\t\t\t}\r\n\t\t\t// clear all listeners for a type if function isn't specified\r\n\t\t\tdelete this._events[type];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (context === this) {\r\n\t\t\tcontext = undefined;\r\n\t\t}\r\n\r\n\t\tif (listeners) {\r\n\r\n\t\t\t// find fn and remove it\r\n\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\t\tvar l = listeners[i];\r\n\t\t\t\tif (l.ctx !== context) { continue; }\r\n\t\t\t\tif (l.fn === fn) {\r\n\r\n\t\t\t\t\t// set the removed listener to noop so that's not called if remove happens in fire\r\n\t\t\t\t\tl.fn = Util.falseFn;\r\n\r\n\t\t\t\t\tif (this._firingCount) {\r\n\t\t\t\t\t\t/* copy array in case events are being fired */\r\n\t\t\t\t\t\tthis._events[type] = listeners = listeners.slice();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlisteners.splice(i, 1);\r\n\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t// @method fire(type: String, data?: Object, propagate?: Boolean): this\r\n\t// Fires an event of the specified type. You can optionally provide an data\r\n\t// object — the first argument of the listener function will contain its\r\n\t// properties. The event can optionally be propagated to event parents.\r\n\tfire: function (type, data, propagate) {\r\n\t\tif (!this.listens(type, propagate)) { return this; }\r\n\r\n\t\tvar event = Util.extend({}, data, {\r\n\t\t\ttype: type,\r\n\t\t\ttarget: this,\r\n\t\t\tsourceTarget: data && data.sourceTarget || this\r\n\t\t});\r\n\r\n\t\tif (this._events) {\r\n\t\t\tvar listeners = this._events[type];\r\n\r\n\t\t\tif (listeners) {\r\n\t\t\t\tthis._firingCount = (this._firingCount + 1) || 1;\r\n\t\t\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\t\t\tvar l = listeners[i];\r\n\t\t\t\t\tl.fn.call(l.ctx || this, event);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._firingCount--;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (propagate) {\r\n\t\t\t// propagate the event to parents (set with addEventParent)\r\n\t\t\tthis._propagateEvent(event);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method listens(type: String): Boolean\r\n\t// Returns `true` if a particular event type has any listeners attached to it.\r\n\tlistens: function (type, propagate) {\r\n\t\tvar listeners = this._events && this._events[type];\r\n\t\tif (listeners && listeners.length) { return true; }\r\n\r\n\t\tif (propagate) {\r\n\t\t\t// also check parents for listeners if event propagates\r\n\t\t\tfor (var id in this._eventParents) {\r\n\t\t\t\tif (this._eventParents[id].listens(type, propagate)) { return true; }\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t// @method once(…): this\r\n\t// Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed.\r\n\tonce: function (types, fn, context) {\r\n\r\n\t\tif (typeof types === 'object') {\r\n\t\t\tfor (var type in types) {\r\n\t\t\t\tthis.once(type, types[type], fn);\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tvar handler = Util.bind(function () {\r\n\t\t\tthis\r\n\t\t\t .off(types, fn, context)\r\n\t\t\t .off(types, handler, context);\r\n\t\t}, this);\r\n\r\n\t\t// add a listener that's executed once and removed after that\r\n\t\treturn this\r\n\t\t .on(types, fn, context)\r\n\t\t .on(types, handler, context);\r\n\t},\r\n\r\n\t// @method addEventParent(obj: Evented): this\r\n\t// Adds an event parent - an `Evented` that will receive propagated events\r\n\taddEventParent: function (obj) {\r\n\t\tthis._eventParents = this._eventParents || {};\r\n\t\tthis._eventParents[Util.stamp(obj)] = obj;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method removeEventParent(obj: Evented): this\r\n\t// Removes an event parent, so it will stop receiving propagated events\r\n\tremoveEventParent: function (obj) {\r\n\t\tif (this._eventParents) {\r\n\t\t\tdelete this._eventParents[Util.stamp(obj)];\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_propagateEvent: function (e) {\r\n\t\tfor (var id in this._eventParents) {\r\n\t\t\tthis._eventParents[id].fire(e.type, Util.extend({\r\n\t\t\t\tlayer: e.target,\r\n\t\t\t\tpropagatedFrom: e.target\r\n\t\t\t}, e), true);\r\n\t\t}\r\n\t}\r\n};\r\n\r\n// aliases; we should ditch those eventually\r\n\r\n// @method addEventListener(…): this\r\n// Alias to [`on(…)`](#evented-on)\r\nEvents.addEventListener = Events.on;\r\n\r\n// @method removeEventListener(…): this\r\n// Alias to [`off(…)`](#evented-off)\r\n\r\n// @method clearAllEventListeners(…): this\r\n// Alias to [`off()`](#evented-off)\r\nEvents.removeEventListener = Events.clearAllEventListeners = Events.off;\r\n\r\n// @method addOneTimeEventListener(…): this\r\n// Alias to [`once(…)`](#evented-once)\r\nEvents.addOneTimeEventListener = Events.once;\r\n\r\n// @method fireEvent(…): this\r\n// Alias to [`fire(…)`](#evented-fire)\r\nEvents.fireEvent = Events.fire;\r\n\r\n// @method hasEventListeners(…): Boolean\r\n// Alias to [`listens(…)`](#evented-listens)\r\nEvents.hasEventListeners = Events.listens;\r\n\r\nexport var Evented = Class.extend(Events);\r\n","import {isArray, formatNum} from '../core/Util';\r\n\r\n/*\r\n * @class Point\r\n * @aka L.Point\r\n *\r\n * Represents a point with `x` and `y` coordinates in pixels.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var point = L.point(200, 300);\r\n * ```\r\n *\r\n * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```js\r\n * map.panBy([200, 300]);\r\n * map.panBy(L.point(200, 300));\r\n * ```\r\n *\r\n * Note that `Point` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nexport function Point(x, y, round) {\r\n\t// @property x: Number; The `x` coordinate of the point\r\n\tthis.x = (round ? Math.round(x) : x);\r\n\t// @property y: Number; The `y` coordinate of the point\r\n\tthis.y = (round ? Math.round(y) : y);\r\n}\r\n\r\nvar trunc = Math.trunc || function (v) {\r\n\treturn v > 0 ? Math.floor(v) : Math.ceil(v);\r\n};\r\n\r\nPoint.prototype = {\r\n\r\n\t// @method clone(): Point\r\n\t// Returns a copy of the current point.\r\n\tclone: function () {\r\n\t\treturn new Point(this.x, this.y);\r\n\t},\r\n\r\n\t// @method add(otherPoint: Point): Point\r\n\t// Returns the result of addition of the current and the given points.\r\n\tadd: function (point) {\r\n\t\t// non-destructive, returns a new point\r\n\t\treturn this.clone()._add(toPoint(point));\r\n\t},\r\n\r\n\t_add: function (point) {\r\n\t\t// destructive, used directly for performance in situations where it's safe to modify existing point\r\n\t\tthis.x += point.x;\r\n\t\tthis.y += point.y;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method subtract(otherPoint: Point): Point\r\n\t// Returns the result of subtraction of the given point from the current.\r\n\tsubtract: function (point) {\r\n\t\treturn this.clone()._subtract(toPoint(point));\r\n\t},\r\n\r\n\t_subtract: function (point) {\r\n\t\tthis.x -= point.x;\r\n\t\tthis.y -= point.y;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method divideBy(num: Number): Point\r\n\t// Returns the result of division of the current point by the given number.\r\n\tdivideBy: function (num) {\r\n\t\treturn this.clone()._divideBy(num);\r\n\t},\r\n\r\n\t_divideBy: function (num) {\r\n\t\tthis.x /= num;\r\n\t\tthis.y /= num;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method multiplyBy(num: Number): Point\r\n\t// Returns the result of multiplication of the current point by the given number.\r\n\tmultiplyBy: function (num) {\r\n\t\treturn this.clone()._multiplyBy(num);\r\n\t},\r\n\r\n\t_multiplyBy: function (num) {\r\n\t\tthis.x *= num;\r\n\t\tthis.y *= num;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method scaleBy(scale: Point): Point\r\n\t// Multiply each coordinate of the current point by each coordinate of\r\n\t// `scale`. In linear algebra terms, multiply the point by the\r\n\t// [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation)\r\n\t// defined by `scale`.\r\n\tscaleBy: function (point) {\r\n\t\treturn new Point(this.x * point.x, this.y * point.y);\r\n\t},\r\n\r\n\t// @method unscaleBy(scale: Point): Point\r\n\t// Inverse of `scaleBy`. Divide each coordinate of the current point by\r\n\t// each coordinate of `scale`.\r\n\tunscaleBy: function (point) {\r\n\t\treturn new Point(this.x / point.x, this.y / point.y);\r\n\t},\r\n\r\n\t// @method round(): Point\r\n\t// Returns a copy of the current point with rounded coordinates.\r\n\tround: function () {\r\n\t\treturn this.clone()._round();\r\n\t},\r\n\r\n\t_round: function () {\r\n\t\tthis.x = Math.round(this.x);\r\n\t\tthis.y = Math.round(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method floor(): Point\r\n\t// Returns a copy of the current point with floored coordinates (rounded down).\r\n\tfloor: function () {\r\n\t\treturn this.clone()._floor();\r\n\t},\r\n\r\n\t_floor: function () {\r\n\t\tthis.x = Math.floor(this.x);\r\n\t\tthis.y = Math.floor(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method ceil(): Point\r\n\t// Returns a copy of the current point with ceiled coordinates (rounded up).\r\n\tceil: function () {\r\n\t\treturn this.clone()._ceil();\r\n\t},\r\n\r\n\t_ceil: function () {\r\n\t\tthis.x = Math.ceil(this.x);\r\n\t\tthis.y = Math.ceil(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method trunc(): Point\r\n\t// Returns a copy of the current point with truncated coordinates (rounded towards zero).\r\n\ttrunc: function () {\r\n\t\treturn this.clone()._trunc();\r\n\t},\r\n\r\n\t_trunc: function () {\r\n\t\tthis.x = trunc(this.x);\r\n\t\tthis.y = trunc(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method distanceTo(otherPoint: Point): Number\r\n\t// Returns the cartesian distance between the current and the given points.\r\n\tdistanceTo: function (point) {\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\tvar x = point.x - this.x,\r\n\t\t y = point.y - this.y;\r\n\r\n\t\treturn Math.sqrt(x * x + y * y);\r\n\t},\r\n\r\n\t// @method equals(otherPoint: Point): Boolean\r\n\t// Returns `true` if the given point has the same coordinates.\r\n\tequals: function (point) {\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\treturn point.x === this.x &&\r\n\t\t point.y === this.y;\r\n\t},\r\n\r\n\t// @method contains(otherPoint: Point): Boolean\r\n\t// Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values).\r\n\tcontains: function (point) {\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\treturn Math.abs(point.x) <= Math.abs(this.x) &&\r\n\t\t Math.abs(point.y) <= Math.abs(this.y);\r\n\t},\r\n\r\n\t// @method toString(): String\r\n\t// Returns a string representation of the point for debugging purposes.\r\n\ttoString: function () {\r\n\t\treturn 'Point(' +\r\n\t\t formatNum(this.x) + ', ' +\r\n\t\t formatNum(this.y) + ')';\r\n\t}\r\n};\r\n\r\n// @factory L.point(x: Number, y: Number, round?: Boolean)\r\n// Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values.\r\n\r\n// @alternative\r\n// @factory L.point(coords: Number[])\r\n// Expects an array of the form `[x, y]` instead.\r\n\r\n// @alternative\r\n// @factory L.point(coords: Object)\r\n// Expects a plain object of the form `{x: Number, y: Number}` instead.\r\nexport function toPoint(x, y, round) {\r\n\tif (x instanceof Point) {\r\n\t\treturn x;\r\n\t}\r\n\tif (isArray(x)) {\r\n\t\treturn new Point(x[0], x[1]);\r\n\t}\r\n\tif (x === undefined || x === null) {\r\n\t\treturn x;\r\n\t}\r\n\tif (typeof x === 'object' && 'x' in x && 'y' in x) {\r\n\t\treturn new Point(x.x, x.y);\r\n\t}\r\n\treturn new Point(x, y, round);\r\n}\r\n","import {Point, toPoint} from './Point';\r\n\r\n/*\r\n * @class Bounds\r\n * @aka L.Bounds\r\n *\r\n * Represents a rectangular area in pixel coordinates.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var p1 = L.point(10, 10),\r\n * p2 = L.point(40, 60),\r\n * bounds = L.bounds(p1, p2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * otherBounds.intersects([[10, 10], [40, 60]]);\r\n * ```\r\n *\r\n * Note that `Bounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nexport function Bounds(a, b) {\r\n\tif (!a) { return; }\r\n\r\n\tvar points = b ? [a, b] : a;\r\n\r\n\tfor (var i = 0, len = points.length; i < len; i++) {\r\n\t\tthis.extend(points[i]);\r\n\t}\r\n}\r\n\r\nBounds.prototype = {\r\n\t// @method extend(point: Point): this\r\n\t// Extends the bounds to contain the given point.\r\n\textend: function (point) { // (Point)\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\t// @property min: Point\r\n\t\t// The top left corner of the rectangle.\r\n\t\t// @property max: Point\r\n\t\t// The bottom right corner of the rectangle.\r\n\t\tif (!this.min && !this.max) {\r\n\t\t\tthis.min = point.clone();\r\n\t\t\tthis.max = point.clone();\r\n\t\t} else {\r\n\t\t\tthis.min.x = Math.min(point.x, this.min.x);\r\n\t\t\tthis.max.x = Math.max(point.x, this.max.x);\r\n\t\t\tthis.min.y = Math.min(point.y, this.min.y);\r\n\t\t\tthis.max.y = Math.max(point.y, this.max.y);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method getCenter(round?: Boolean): Point\r\n\t// Returns the center point of the bounds.\r\n\tgetCenter: function (round) {\r\n\t\treturn new Point(\r\n\t\t (this.min.x + this.max.x) / 2,\r\n\t\t (this.min.y + this.max.y) / 2, round);\r\n\t},\r\n\r\n\t// @method getBottomLeft(): Point\r\n\t// Returns the bottom-left point of the bounds.\r\n\tgetBottomLeft: function () {\r\n\t\treturn new Point(this.min.x, this.max.y);\r\n\t},\r\n\r\n\t// @method getTopRight(): Point\r\n\t// Returns the top-right point of the bounds.\r\n\tgetTopRight: function () { // -> Point\r\n\t\treturn new Point(this.max.x, this.min.y);\r\n\t},\r\n\r\n\t// @method getTopLeft(): Point\r\n\t// Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)).\r\n\tgetTopLeft: function () {\r\n\t\treturn this.min; // left, top\r\n\t},\r\n\r\n\t// @method getBottomRight(): Point\r\n\t// Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)).\r\n\tgetBottomRight: function () {\r\n\t\treturn this.max; // right, bottom\r\n\t},\r\n\r\n\t// @method getSize(): Point\r\n\t// Returns the size of the given bounds\r\n\tgetSize: function () {\r\n\t\treturn this.max.subtract(this.min);\r\n\t},\r\n\r\n\t// @method contains(otherBounds: Bounds): Boolean\r\n\t// Returns `true` if the rectangle contains the given one.\r\n\t// @alternative\r\n\t// @method contains(point: Point): Boolean\r\n\t// Returns `true` if the rectangle contains the given point.\r\n\tcontains: function (obj) {\r\n\t\tvar min, max;\r\n\r\n\t\tif (typeof obj[0] === 'number' || obj instanceof Point) {\r\n\t\t\tobj = toPoint(obj);\r\n\t\t} else {\r\n\t\t\tobj = toBounds(obj);\r\n\t\t}\r\n\r\n\t\tif (obj instanceof Bounds) {\r\n\t\t\tmin = obj.min;\r\n\t\t\tmax = obj.max;\r\n\t\t} else {\r\n\t\t\tmin = max = obj;\r\n\t\t}\r\n\r\n\t\treturn (min.x >= this.min.x) &&\r\n\t\t (max.x <= this.max.x) &&\r\n\t\t (min.y >= this.min.y) &&\r\n\t\t (max.y <= this.max.y);\r\n\t},\r\n\r\n\t// @method intersects(otherBounds: Bounds): Boolean\r\n\t// Returns `true` if the rectangle intersects the given bounds. Two bounds\r\n\t// intersect if they have at least one point in common.\r\n\tintersects: function (bounds) { // (Bounds) -> Boolean\r\n\t\tbounds = toBounds(bounds);\r\n\r\n\t\tvar min = this.min,\r\n\t\t max = this.max,\r\n\t\t min2 = bounds.min,\r\n\t\t max2 = bounds.max,\r\n\t\t xIntersects = (max2.x >= min.x) && (min2.x <= max.x),\r\n\t\t yIntersects = (max2.y >= min.y) && (min2.y <= max.y);\r\n\r\n\t\treturn xIntersects && yIntersects;\r\n\t},\r\n\r\n\t// @method overlaps(otherBounds: Bounds): Boolean\r\n\t// Returns `true` if the rectangle overlaps the given bounds. Two bounds\r\n\t// overlap if their intersection is an area.\r\n\toverlaps: function (bounds) { // (Bounds) -> Boolean\r\n\t\tbounds = toBounds(bounds);\r\n\r\n\t\tvar min = this.min,\r\n\t\t max = this.max,\r\n\t\t min2 = bounds.min,\r\n\t\t max2 = bounds.max,\r\n\t\t xOverlaps = (max2.x > min.x) && (min2.x < max.x),\r\n\t\t yOverlaps = (max2.y > min.y) && (min2.y < max.y);\r\n\r\n\t\treturn xOverlaps && yOverlaps;\r\n\t},\r\n\r\n\tisValid: function () {\r\n\t\treturn !!(this.min && this.max);\r\n\t}\r\n};\r\n\r\n\r\n// @factory L.bounds(corner1: Point, corner2: Point)\r\n// Creates a Bounds object from two corners coordinate pairs.\r\n// @alternative\r\n// @factory L.bounds(points: Point[])\r\n// Creates a Bounds object from the given array of points.\r\nexport function toBounds(a, b) {\r\n\tif (!a || a instanceof Bounds) {\r\n\t\treturn a;\r\n\t}\r\n\treturn new Bounds(a, b);\r\n}\r\n","import {LatLng, toLatLng} from './LatLng';\r\n\r\n/*\r\n * @class LatLngBounds\r\n * @aka L.LatLngBounds\r\n *\r\n * Represents a rectangular geographical area on a map.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var corner1 = L.latLng(40.712, -74.227),\r\n * corner2 = L.latLng(40.774, -74.125),\r\n * bounds = L.latLngBounds(corner1, corner2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * map.fitBounds([\r\n * \t[40.712, -74.227],\r\n * \t[40.774, -74.125]\r\n * ]);\r\n * ```\r\n *\r\n * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range.\r\n *\r\n * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nexport function LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[])\r\n\tif (!corner1) { return; }\r\n\r\n\tvar latlngs = corner2 ? [corner1, corner2] : corner1;\r\n\r\n\tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n\t\tthis.extend(latlngs[i]);\r\n\t}\r\n}\r\n\r\nLatLngBounds.prototype = {\r\n\r\n\t// @method extend(latlng: LatLng): this\r\n\t// Extend the bounds to contain the given point\r\n\r\n\t// @alternative\r\n\t// @method extend(otherBounds: LatLngBounds): this\r\n\t// Extend the bounds to contain the given bounds\r\n\textend: function (obj) {\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2, ne2;\r\n\r\n\t\tif (obj instanceof LatLng) {\r\n\t\t\tsw2 = obj;\r\n\t\t\tne2 = obj;\r\n\r\n\t\t} else if (obj instanceof LatLngBounds) {\r\n\t\t\tsw2 = obj._southWest;\r\n\t\t\tne2 = obj._northEast;\r\n\r\n\t\t\tif (!sw2 || !ne2) { return this; }\r\n\r\n\t\t} else {\r\n\t\t\treturn obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this;\r\n\t\t}\r\n\r\n\t\tif (!sw && !ne) {\r\n\t\t\tthis._southWest = new LatLng(sw2.lat, sw2.lng);\r\n\t\t\tthis._northEast = new LatLng(ne2.lat, ne2.lng);\r\n\t\t} else {\r\n\t\t\tsw.lat = Math.min(sw2.lat, sw.lat);\r\n\t\t\tsw.lng = Math.min(sw2.lng, sw.lng);\r\n\t\t\tne.lat = Math.max(ne2.lat, ne.lat);\r\n\t\t\tne.lng = Math.max(ne2.lng, ne.lng);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method pad(bufferRatio: Number): LatLngBounds\r\n\t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n\t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n\t// Negative values will retract the bounds.\r\n\tpad: function (bufferRatio) {\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio,\r\n\t\t widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio;\r\n\r\n\t\treturn new LatLngBounds(\r\n\t\t new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer),\r\n\t\t new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer));\r\n\t},\r\n\r\n\t// @method getCenter(): LatLng\r\n\t// Returns the center point of the bounds.\r\n\tgetCenter: function () {\r\n\t\treturn new LatLng(\r\n\t\t (this._southWest.lat + this._northEast.lat) / 2,\r\n\t\t (this._southWest.lng + this._northEast.lng) / 2);\r\n\t},\r\n\r\n\t// @method getSouthWest(): LatLng\r\n\t// Returns the south-west point of the bounds.\r\n\tgetSouthWest: function () {\r\n\t\treturn this._southWest;\r\n\t},\r\n\r\n\t// @method getNorthEast(): LatLng\r\n\t// Returns the north-east point of the bounds.\r\n\tgetNorthEast: function () {\r\n\t\treturn this._northEast;\r\n\t},\r\n\r\n\t// @method getNorthWest(): LatLng\r\n\t// Returns the north-west point of the bounds.\r\n\tgetNorthWest: function () {\r\n\t\treturn new LatLng(this.getNorth(), this.getWest());\r\n\t},\r\n\r\n\t// @method getSouthEast(): LatLng\r\n\t// Returns the south-east point of the bounds.\r\n\tgetSouthEast: function () {\r\n\t\treturn new LatLng(this.getSouth(), this.getEast());\r\n\t},\r\n\r\n\t// @method getWest(): Number\r\n\t// Returns the west longitude of the bounds\r\n\tgetWest: function () {\r\n\t\treturn this._southWest.lng;\r\n\t},\r\n\r\n\t// @method getSouth(): Number\r\n\t// Returns the south latitude of the bounds\r\n\tgetSouth: function () {\r\n\t\treturn this._southWest.lat;\r\n\t},\r\n\r\n\t// @method getEast(): Number\r\n\t// Returns the east longitude of the bounds\r\n\tgetEast: function () {\r\n\t\treturn this._northEast.lng;\r\n\t},\r\n\r\n\t// @method getNorth(): Number\r\n\t// Returns the north latitude of the bounds\r\n\tgetNorth: function () {\r\n\t\treturn this._northEast.lat;\r\n\t},\r\n\r\n\t// @method contains(otherBounds: LatLngBounds): Boolean\r\n\t// Returns `true` if the rectangle contains the given one.\r\n\r\n\t// @alternative\r\n\t// @method contains (latlng: LatLng): Boolean\r\n\t// Returns `true` if the rectangle contains the given point.\r\n\tcontains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean\r\n\t\tif (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) {\r\n\t\t\tobj = toLatLng(obj);\r\n\t\t} else {\r\n\t\t\tobj = toLatLngBounds(obj);\r\n\t\t}\r\n\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2, ne2;\r\n\r\n\t\tif (obj instanceof LatLngBounds) {\r\n\t\t\tsw2 = obj.getSouthWest();\r\n\t\t\tne2 = obj.getNorthEast();\r\n\t\t} else {\r\n\t\t\tsw2 = ne2 = obj;\r\n\t\t}\r\n\r\n\t\treturn (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) &&\r\n\t\t (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng);\r\n\t},\r\n\r\n\t// @method intersects(otherBounds: LatLngBounds): Boolean\r\n\t// Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common.\r\n\tintersects: function (bounds) {\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2 = bounds.getSouthWest(),\r\n\t\t ne2 = bounds.getNorthEast(),\r\n\r\n\t\t latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat),\r\n\t\t lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng);\r\n\r\n\t\treturn latIntersects && lngIntersects;\r\n\t},\r\n\r\n\t// @method overlaps(otherBounds: LatLngBounds): Boolean\r\n\t// Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area.\r\n\toverlaps: function (bounds) {\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2 = bounds.getSouthWest(),\r\n\t\t ne2 = bounds.getNorthEast(),\r\n\r\n\t\t latOverlaps = (ne2.lat > sw.lat) && (sw2.lat < ne.lat),\r\n\t\t lngOverlaps = (ne2.lng > sw.lng) && (sw2.lng < ne.lng);\r\n\r\n\t\treturn latOverlaps && lngOverlaps;\r\n\t},\r\n\r\n\t// @method toBBoxString(): String\r\n\t// Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data.\r\n\ttoBBoxString: function () {\r\n\t\treturn [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(',');\r\n\t},\r\n\r\n\t// @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean\r\n\t// Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number.\r\n\tequals: function (bounds, maxMargin) {\r\n\t\tif (!bounds) { return false; }\r\n\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\treturn this._southWest.equals(bounds.getSouthWest(), maxMargin) &&\r\n\t\t this._northEast.equals(bounds.getNorthEast(), maxMargin);\r\n\t},\r\n\r\n\t// @method isValid(): Boolean\r\n\t// Returns `true` if the bounds are properly initialized.\r\n\tisValid: function () {\r\n\t\treturn !!(this._southWest && this._northEast);\r\n\t}\r\n};\r\n\r\n// TODO International date line?\r\n\r\n// @factory L.latLngBounds(corner1: LatLng, corner2: LatLng)\r\n// Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle.\r\n\r\n// @alternative\r\n// @factory L.latLngBounds(latlngs: LatLng[])\r\n// Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds).\r\nexport function toLatLngBounds(a, b) {\r\n\tif (a instanceof LatLngBounds) {\r\n\t\treturn a;\r\n\t}\r\n\treturn new LatLngBounds(a, b);\r\n}\r\n","import * as Util from '../core/Util';\r\nimport {Earth} from './crs/CRS.Earth';\r\nimport {toLatLngBounds} from './LatLngBounds';\r\n\r\n/* @class LatLng\r\n * @aka L.LatLng\r\n *\r\n * Represents a geographical point with a certain latitude and longitude.\r\n *\r\n * @example\r\n *\r\n * ```\r\n * var latlng = L.latLng(50.5, 30.5);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```\r\n * map.panTo([50, 30]);\r\n * map.panTo({lon: 30, lat: 50});\r\n * map.panTo({lat: 50, lng: 30});\r\n * map.panTo(L.latLng(50, 30));\r\n * ```\r\n *\r\n * Note that `LatLng` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nexport function LatLng(lat, lng, alt) {\r\n\tif (isNaN(lat) || isNaN(lng)) {\r\n\t\tthrow new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');\r\n\t}\r\n\r\n\t// @property lat: Number\r\n\t// Latitude in degrees\r\n\tthis.lat = +lat;\r\n\r\n\t// @property lng: Number\r\n\t// Longitude in degrees\r\n\tthis.lng = +lng;\r\n\r\n\t// @property alt: Number\r\n\t// Altitude in meters (optional)\r\n\tif (alt !== undefined) {\r\n\t\tthis.alt = +alt;\r\n\t}\r\n}\r\n\r\nLatLng.prototype = {\r\n\t// @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean\r\n\t// Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number.\r\n\tequals: function (obj, maxMargin) {\r\n\t\tif (!obj) { return false; }\r\n\r\n\t\tobj = toLatLng(obj);\r\n\r\n\t\tvar margin = Math.max(\r\n\t\t Math.abs(this.lat - obj.lat),\r\n\t\t Math.abs(this.lng - obj.lng));\r\n\r\n\t\treturn margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin);\r\n\t},\r\n\r\n\t// @method toString(): String\r\n\t// Returns a string representation of the point (for debugging purposes).\r\n\ttoString: function (precision) {\r\n\t\treturn 'LatLng(' +\r\n\t\t Util.formatNum(this.lat, precision) + ', ' +\r\n\t\t Util.formatNum(this.lng, precision) + ')';\r\n\t},\r\n\r\n\t// @method distanceTo(otherLatLng: LatLng): Number\r\n\t// Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines).\r\n\tdistanceTo: function (other) {\r\n\t\treturn Earth.distance(this, toLatLng(other));\r\n\t},\r\n\r\n\t// @method wrap(): LatLng\r\n\t// Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees.\r\n\twrap: function () {\r\n\t\treturn Earth.wrapLatLng(this);\r\n\t},\r\n\r\n\t// @method toBounds(sizeInMeters: Number): LatLngBounds\r\n\t// Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`.\r\n\ttoBounds: function (sizeInMeters) {\r\n\t\tvar latAccuracy = 180 * sizeInMeters / 40075017,\r\n\t\t lngAccuracy = latAccuracy / Math.cos((Math.PI / 180) * this.lat);\r\n\r\n\t\treturn toLatLngBounds(\r\n\t\t [this.lat - latAccuracy, this.lng - lngAccuracy],\r\n\t\t [this.lat + latAccuracy, this.lng + lngAccuracy]);\r\n\t},\r\n\r\n\tclone: function () {\r\n\t\treturn new LatLng(this.lat, this.lng, this.alt);\r\n\t}\r\n};\r\n\r\n\r\n\r\n// @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng\r\n// Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude).\r\n\r\n// @alternative\r\n// @factory L.latLng(coords: Array): LatLng\r\n// Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead.\r\n\r\n// @alternative\r\n// @factory L.latLng(coords: Object): LatLng\r\n// Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead.\r\n\r\nexport function toLatLng(a, b, c) {\r\n\tif (a instanceof LatLng) {\r\n\t\treturn a;\r\n\t}\r\n\tif (Util.isArray(a) && typeof a[0] !== 'object') {\r\n\t\tif (a.length === 3) {\r\n\t\t\treturn new LatLng(a[0], a[1], a[2]);\r\n\t\t}\r\n\t\tif (a.length === 2) {\r\n\t\t\treturn new LatLng(a[0], a[1]);\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\tif (a === undefined || a === null) {\r\n\t\treturn a;\r\n\t}\r\n\tif (typeof a === 'object' && 'lat' in a) {\r\n\t\treturn new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt);\r\n\t}\r\n\tif (b === undefined) {\r\n\t\treturn null;\r\n\t}\r\n\treturn new LatLng(a, b, c);\r\n}\r\n","\r\nimport {Bounds} from '../../geometry/Bounds';\r\nimport {LatLng} from '../LatLng';\r\nimport {LatLngBounds} from '../LatLngBounds';\r\nimport * as Util from '../../core/Util';\r\n\r\n/*\r\n * @namespace CRS\r\n * @crs L.CRS.Base\r\n * Object that defines coordinate reference systems for projecting\r\n * geographical points into pixel (screen) coordinates and back (and to\r\n * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See\r\n * [spatial reference system](http://en.wikipedia.org/wiki/Coordinate_reference_system).\r\n *\r\n * Leaflet defines the most usual CRSs by default. If you want to use a\r\n * CRS not defined by default, take a look at the\r\n * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin.\r\n *\r\n * Note that the CRS instances do not inherit from Leaflet's `Class` object,\r\n * and can't be instantiated. Also, new classes can't inherit from them,\r\n * and methods can't be added to them with the `include` function.\r\n */\r\n\r\nexport var CRS = {\r\n\t// @method latLngToPoint(latlng: LatLng, zoom: Number): Point\r\n\t// Projects geographical coordinates into pixel coordinates for a given zoom.\r\n\tlatLngToPoint: function (latlng, zoom) {\r\n\t\tvar projectedPoint = this.projection.project(latlng),\r\n\t\t scale = this.scale(zoom);\r\n\r\n\t\treturn this.transformation._transform(projectedPoint, scale);\r\n\t},\r\n\r\n\t// @method pointToLatLng(point: Point, zoom: Number): LatLng\r\n\t// The inverse of `latLngToPoint`. Projects pixel coordinates on a given\r\n\t// zoom into geographical coordinates.\r\n\tpointToLatLng: function (point, zoom) {\r\n\t\tvar scale = this.scale(zoom),\r\n\t\t untransformedPoint = this.transformation.untransform(point, scale);\r\n\r\n\t\treturn this.projection.unproject(untransformedPoint);\r\n\t},\r\n\r\n\t// @method project(latlng: LatLng): Point\r\n\t// Projects geographical coordinates into coordinates in units accepted for\r\n\t// this CRS (e.g. meters for EPSG:3857, for passing it to WMS services).\r\n\tproject: function (latlng) {\r\n\t\treturn this.projection.project(latlng);\r\n\t},\r\n\r\n\t// @method unproject(point: Point): LatLng\r\n\t// Given a projected coordinate returns the corresponding LatLng.\r\n\t// The inverse of `project`.\r\n\tunproject: function (point) {\r\n\t\treturn this.projection.unproject(point);\r\n\t},\r\n\r\n\t// @method scale(zoom: Number): Number\r\n\t// Returns the scale used when transforming projected coordinates into\r\n\t// pixel coordinates for a particular zoom. For example, it returns\r\n\t// `256 * 2^zoom` for Mercator-based CRS.\r\n\tscale: function (zoom) {\r\n\t\treturn 256 * Math.pow(2, zoom);\r\n\t},\r\n\r\n\t// @method zoom(scale: Number): Number\r\n\t// Inverse of `scale()`, returns the zoom level corresponding to a scale\r\n\t// factor of `scale`.\r\n\tzoom: function (scale) {\r\n\t\treturn Math.log(scale / 256) / Math.LN2;\r\n\t},\r\n\r\n\t// @method getProjectedBounds(zoom: Number): Bounds\r\n\t// Returns the projection's bounds scaled and transformed for the provided `zoom`.\r\n\tgetProjectedBounds: function (zoom) {\r\n\t\tif (this.infinite) { return null; }\r\n\r\n\t\tvar b = this.projection.bounds,\r\n\t\t s = this.scale(zoom),\r\n\t\t min = this.transformation.transform(b.min, s),\r\n\t\t max = this.transformation.transform(b.max, s);\r\n\r\n\t\treturn new Bounds(min, max);\r\n\t},\r\n\r\n\t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n\t// Returns the distance between two geographical coordinates.\r\n\r\n\t// @property code: String\r\n\t// Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`)\r\n\t//\r\n\t// @property wrapLng: Number[]\r\n\t// An array of two numbers defining whether the longitude (horizontal) coordinate\r\n\t// axis wraps around a given range and how. Defaults to `[-180, 180]` in most\r\n\t// geographical CRSs. If `undefined`, the longitude axis does not wrap around.\r\n\t//\r\n\t// @property wrapLat: Number[]\r\n\t// Like `wrapLng`, but for the latitude (vertical) axis.\r\n\r\n\t// wrapLng: [min, max],\r\n\t// wrapLat: [min, max],\r\n\r\n\t// @property infinite: Boolean\r\n\t// If true, the coordinate space will be unbounded (infinite in both axes)\r\n\tinfinite: false,\r\n\r\n\t// @method wrapLatLng(latlng: LatLng): LatLng\r\n\t// Returns a `LatLng` where lat and lng has been wrapped according to the\r\n\t// CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds.\r\n\twrapLatLng: function (latlng) {\r\n\t\tvar lng = this.wrapLng ? Util.wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng,\r\n\t\t lat = this.wrapLat ? Util.wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat,\r\n\t\t alt = latlng.alt;\r\n\r\n\t\treturn new LatLng(lat, lng, alt);\r\n\t},\r\n\r\n\t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n\t// Returns a `LatLngBounds` with the same size as the given one, ensuring\r\n\t// that its center is within the CRS's bounds.\r\n\t// Only accepts actual `L.LatLngBounds` instances, not arrays.\r\n\twrapLatLngBounds: function (bounds) {\r\n\t\tvar center = bounds.getCenter(),\r\n\t\t newCenter = this.wrapLatLng(center),\r\n\t\t latShift = center.lat - newCenter.lat,\r\n\t\t lngShift = center.lng - newCenter.lng;\r\n\r\n\t\tif (latShift === 0 && lngShift === 0) {\r\n\t\t\treturn bounds;\r\n\t\t}\r\n\r\n\t\tvar sw = bounds.getSouthWest(),\r\n\t\t ne = bounds.getNorthEast(),\r\n\t\t newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift),\r\n\t\t newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift);\r\n\r\n\t\treturn new LatLngBounds(newSw, newNe);\r\n\t}\r\n};\r\n","import {CRS} from './CRS';\nimport * as Util from '../../core/Util';\n\n/*\n * @namespace CRS\n * @crs L.CRS.Earth\n *\n * Serves as the base for CRS that are global such that they cover the earth.\n * Can only be used as the base for other CRS and cannot be used directly,\n * since it does not have a `code`, `projection` or `transformation`. `distance()` returns\n * meters.\n */\n\nexport var Earth = Util.extend({}, CRS, {\n\twrapLng: [-180, 180],\n\n\t// Mean Earth Radius, as recommended for use by\n\t// the International Union of Geodesy and Geophysics,\n\t// see http://rosettacode.org/wiki/Haversine_formula\n\tR: 6371000,\n\n\t// distance between two geographical points using spherical law of cosines approximation\n\tdistance: function (latlng1, latlng2) {\n\t\tvar rad = Math.PI / 180,\n\t\t lat1 = latlng1.lat * rad,\n\t\t lat2 = latlng2.lat * rad,\n\t\t sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2),\n\t\t sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2),\n\t\t a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon,\n\t\t c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n\t\treturn this.R * c;\n\t}\n});\n","import {LatLng} from '../LatLng';\r\nimport {Bounds} from '../../geometry/Bounds';\r\nimport {Point} from '../../geometry/Point';\r\n\r\n/*\r\n * @namespace Projection\r\n * @projection L.Projection.SphericalMercator\r\n *\r\n * Spherical Mercator projection — the most common projection for online maps,\r\n * used by almost all free and commercial tile providers. Assumes that Earth is\r\n * a sphere. Used by the `EPSG:3857` CRS.\r\n */\r\n\r\nvar earthRadius = 6378137;\r\n\r\nexport var SphericalMercator = {\r\n\r\n\tR: earthRadius,\r\n\tMAX_LATITUDE: 85.0511287798,\r\n\r\n\tproject: function (latlng) {\r\n\t\tvar d = Math.PI / 180,\r\n\t\t max = this.MAX_LATITUDE,\r\n\t\t lat = Math.max(Math.min(max, latlng.lat), -max),\r\n\t\t sin = Math.sin(lat * d);\r\n\r\n\t\treturn new Point(\r\n\t\t\tthis.R * latlng.lng * d,\r\n\t\t\tthis.R * Math.log((1 + sin) / (1 - sin)) / 2);\r\n\t},\r\n\r\n\tunproject: function (point) {\r\n\t\tvar d = 180 / Math.PI;\r\n\r\n\t\treturn new LatLng(\r\n\t\t\t(2 * Math.atan(Math.exp(point.y / this.R)) - (Math.PI / 2)) * d,\r\n\t\t\tpoint.x * d / this.R);\r\n\t},\r\n\r\n\tbounds: (function () {\r\n\t\tvar d = earthRadius * Math.PI;\r\n\t\treturn new Bounds([-d, -d], [d, d]);\r\n\t})()\r\n};\r\n","import {Point} from './Point';\r\nimport * as Util from '../core/Util';\r\n\r\n/*\r\n * @class Transformation\r\n * @aka L.Transformation\r\n *\r\n * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d`\r\n * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing\r\n * the reverse. Used by Leaflet in its projections code.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var transformation = L.transformation(2, 5, -1, 10),\r\n * \tp = L.point(1, 2),\r\n * \tp2 = transformation.transform(p), // L.point(7, 8)\r\n * \tp3 = transformation.untransform(p2); // L.point(1, 2)\r\n * ```\r\n */\r\n\r\n\r\n// factory new L.Transformation(a: Number, b: Number, c: Number, d: Number)\r\n// Creates a `Transformation` object with the given coefficients.\r\nexport function Transformation(a, b, c, d) {\r\n\tif (Util.isArray(a)) {\r\n\t\t// use array properties\r\n\t\tthis._a = a[0];\r\n\t\tthis._b = a[1];\r\n\t\tthis._c = a[2];\r\n\t\tthis._d = a[3];\r\n\t\treturn;\r\n\t}\r\n\tthis._a = a;\r\n\tthis._b = b;\r\n\tthis._c = c;\r\n\tthis._d = d;\r\n}\r\n\r\nTransformation.prototype = {\r\n\t// @method transform(point: Point, scale?: Number): Point\r\n\t// Returns a transformed point, optionally multiplied by the given scale.\r\n\t// Only accepts actual `L.Point` instances, not arrays.\r\n\ttransform: function (point, scale) { // (Point, Number) -> Point\r\n\t\treturn this._transform(point.clone(), scale);\r\n\t},\r\n\r\n\t// destructive transform (faster)\r\n\t_transform: function (point, scale) {\r\n\t\tscale = scale || 1;\r\n\t\tpoint.x = scale * (this._a * point.x + this._b);\r\n\t\tpoint.y = scale * (this._c * point.y + this._d);\r\n\t\treturn point;\r\n\t},\r\n\r\n\t// @method untransform(point: Point, scale?: Number): Point\r\n\t// Returns the reverse transformation of the given point, optionally divided\r\n\t// by the given scale. Only accepts actual `L.Point` instances, not arrays.\r\n\tuntransform: function (point, scale) {\r\n\t\tscale = scale || 1;\r\n\t\treturn new Point(\r\n\t\t (point.x / scale - this._b) / this._a,\r\n\t\t (point.y / scale - this._d) / this._c);\r\n\t}\r\n};\r\n\r\n// factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n\r\n// @factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n// Instantiates a Transformation object with the given coefficients.\r\n\r\n// @alternative\r\n// @factory L.transformation(coefficients: Array): Transformation\r\n// Expects an coefficients array of the form\r\n// `[a: Number, b: Number, c: Number, d: Number]`.\r\n\r\nexport function toTransformation(a, b, c, d) {\r\n\treturn new Transformation(a, b, c, d);\r\n}\r\n","import {Earth} from './CRS.Earth';\r\nimport {SphericalMercator} from '../projection/Projection.SphericalMercator';\r\nimport {toTransformation} from '../../geometry/Transformation';\r\nimport * as Util from '../../core/Util';\r\n\r\n/*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3857\r\n *\r\n * The most common CRS for online maps, used by almost all free and commercial\r\n * tile providers. Uses Spherical Mercator projection. Set in by default in\r\n * Map's `crs` option.\r\n */\r\n\r\nexport var EPSG3857 = Util.extend({}, Earth, {\r\n\tcode: 'EPSG:3857',\r\n\tprojection: SphericalMercator,\r\n\r\n\ttransformation: (function () {\r\n\t\tvar scale = 0.5 / (Math.PI * SphericalMercator.R);\r\n\t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n\t}())\r\n});\r\n\r\nexport var EPSG900913 = Util.extend({}, EPSG3857, {\r\n\tcode: 'EPSG:900913'\r\n});\r\n","import * as Browser from '../../core/Browser';\n\n// @namespace SVG; @section\n// There are several static functions which can be called without instantiating L.SVG:\n\n// @function create(name: String): SVGElement\n// Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement),\n// corresponding to the class name passed. For example, using 'line' will return\n// an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement).\nexport function svgCreate(name) {\n\treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n\n// @function pointsToPath(rings: Point[], closed: Boolean): String\n// Generates a SVG path string for multiple rings, with each ring turning\n// into \"M..L..L..\" instructions\nexport function pointsToPath(rings, closed) {\n\tvar str = '',\n\ti, j, len, len2, points, p;\n\n\tfor (i = 0, len = rings.length; i < len; i++) {\n\t\tpoints = rings[i];\n\n\t\tfor (j = 0, len2 = points.length; j < len2; j++) {\n\t\t\tp = points[j];\n\t\t\tstr += (j ? 'L' : 'M') + p.x + ' ' + p.y;\n\t\t}\n\n\t\t// closes the ring for polygons; \"x\" is VML syntax\n\t\tstr += closed ? (Browser.svg ? 'z' : 'x') : '';\n\t}\n\n\t// SVG complains about empty path strings\n\treturn str || 'M0 0';\n}\n\n\n\n\n","import * as Util from './Util';\r\nimport {svgCreate} from '../layer/vector/SVG.Util';\r\n\r\n/*\r\n * @namespace Browser\r\n * @aka L.Browser\r\n *\r\n * A namespace with static properties for browser/feature detection used by Leaflet internally.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * if (L.Browser.ielt9) {\r\n * alert('Upgrade your browser, dude!');\r\n * }\r\n * ```\r\n */\r\n\r\nvar style = document.documentElement.style;\r\n\r\n// @property ie: Boolean; `true` for all Internet Explorer versions (not Edge).\r\nexport var ie = 'ActiveXObject' in window;\r\n\r\n// @property ielt9: Boolean; `true` for Internet Explorer versions less than 9.\r\nexport var ielt9 = ie && !document.addEventListener;\r\n\r\n// @property edge: Boolean; `true` for the Edge web browser.\r\nexport var edge = 'msLaunchUri' in navigator && !('documentMode' in document);\r\n\r\n// @property webkit: Boolean;\r\n// `true` for webkit-based browsers like Chrome and Safari (including mobile versions).\r\nexport var webkit = userAgentContains('webkit');\r\n\r\n// @property android: Boolean\r\n// `true` for any browser running on an Android platform.\r\nexport var android = userAgentContains('android');\r\n\r\n// @property android23: Boolean; `true` for browsers running on Android 2 or Android 3.\r\nexport var android23 = userAgentContains('android 2') || userAgentContains('android 3');\r\n\r\n/* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */\r\nvar webkitVer = parseInt(/WebKit\\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit\r\n// @property androidStock: Boolean; `true` for the Android stock browser (i.e. not Chrome)\r\nexport var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window);\r\n\r\n// @property opera: Boolean; `true` for the Opera browser\r\nexport var opera = !!window.opera;\r\n\r\n// @property chrome: Boolean; `true` for the Chrome browser.\r\nexport var chrome = !edge && userAgentContains('chrome');\r\n\r\n// @property gecko: Boolean; `true` for gecko-based browsers like Firefox.\r\nexport var gecko = userAgentContains('gecko') && !webkit && !opera && !ie;\r\n\r\n// @property safari: Boolean; `true` for the Safari browser.\r\nexport var safari = !chrome && userAgentContains('safari');\r\n\r\nexport var phantom = userAgentContains('phantom');\r\n\r\n// @property opera12: Boolean\r\n// `true` for the Opera browser supporting CSS transforms (version 12 or later).\r\nexport var opera12 = 'OTransition' in style;\r\n\r\n// @property win: Boolean; `true` when the browser is running in a Windows platform\r\nexport var win = navigator.platform.indexOf('Win') === 0;\r\n\r\n// @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms.\r\nexport var ie3d = ie && ('transition' in style);\r\n\r\n// @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms.\r\nexport var webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23;\r\n\r\n// @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms.\r\nexport var gecko3d = 'MozPerspective' in style;\r\n\r\n// @property any3d: Boolean\r\n// `true` for all browsers supporting CSS transforms.\r\nexport var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom;\r\n\r\n// @property mobile: Boolean; `true` for all browsers running in a mobile device.\r\nexport var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile');\r\n\r\n// @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device.\r\nexport var mobileWebkit = mobile && webkit;\r\n\r\n// @property mobileWebkit3d: Boolean\r\n// `true` for all webkit-based browsers in a mobile device supporting CSS transforms.\r\nexport var mobileWebkit3d = mobile && webkit3d;\r\n\r\n// @property msPointer: Boolean\r\n// `true` for browsers implementing the Microsoft touch events model (notably IE10).\r\nexport var msPointer = !window.PointerEvent && window.MSPointerEvent;\r\n\r\n// @property pointer: Boolean\r\n// `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).\r\nexport var pointer = !!(window.PointerEvent || msPointer);\r\n\r\n// @property touch: Boolean\r\n// `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).\r\n// This does not necessarily mean that the browser is running in a computer with\r\n// a touchscreen, it only means that the browser is capable of understanding\r\n// touch events.\r\nexport var touch = !window.L_NO_TOUCH && (pointer || 'ontouchstart' in window ||\r\n\t\t(window.DocumentTouch && document instanceof window.DocumentTouch));\r\n\r\n// @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device.\r\nexport var mobileOpera = mobile && opera;\r\n\r\n// @property mobileGecko: Boolean\r\n// `true` for gecko-based browsers running in a mobile device.\r\nexport var mobileGecko = mobile && gecko;\r\n\r\n// @property retina: Boolean\r\n// `true` for browsers on a high-resolution \"retina\" screen or on any screen when browser's display zoom is more than 100%.\r\nexport var retina = (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1;\r\n\r\n// @property passiveEvents: Boolean\r\n// `true` for browsers that support passive events.\r\nexport var passiveEvents = (function () {\r\n\tvar supportsPassiveOption = false;\r\n\ttry {\r\n\t\tvar opts = Object.defineProperty({}, 'passive', {\r\n\t\t\tget: function () { // eslint-disable-line getter-return\r\n\t\t\t\tsupportsPassiveOption = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('testPassiveEventSupport', Util.falseFn, opts);\r\n\t\twindow.removeEventListener('testPassiveEventSupport', Util.falseFn, opts);\r\n\t} catch (e) {\r\n\t\t// Errors can safely be ignored since this is only a browser support test.\r\n\t}\r\n\treturn supportsPassiveOption;\r\n}());\r\n\r\n// @property canvas: Boolean\r\n// `true` when the browser supports [`